OpenGL Blending

Für allgemeine Fragen zur Programmierung mit PureBasic.
Benutzeravatar
X0r
Beiträge: 2770
Registriert: 15.03.2007 21:47
Kontaktdaten:

Beitrag von X0r »

Das bewirkt, oder sollte bewirken, dass der "Würfel" sich "um sich selbst dreht und nicht um den Punkt links, unten".
Oder ist das etwa falsch?

>aber du weichstwieder einmal der Frage aus...

Nein, ich finds nur unhöflich einem OpenGL Noob wie mir(Der eigentlich noch nicht mal dieses Matrix Kacke in der Schule hatte/hat(Zur Info: Gehe in die 11. Klasse)) mit
>vil. solltest du eher mal die mathematik können...

anzukommen. Da du ja der Experte bist kannst du mir jetzt sicherlich sagen, wie man das "richtig" macht. :allright:
Andreas_S
Beiträge: 787
Registriert: 14.04.2007 16:48
Wohnort: Wien Umgebung
Kontaktdaten:

Beitrag von Andreas_S »

X0r hat geschrieben:Nein, ich finds nur unhöflich einem OpenGL Noob wie mir(Der eigentlich noch nicht mal dieses Matrix Kacke in der Schule hatte/hat(Zur Info: Gehe in die 11. Klasse)) mit
Du bist echt bemitleidenswert :allright:

Zuerst: (Ich kann Mathe)
Dann: (Der eigentlich noch nicht mal dieses Matrix Kacke in der Schule hatte/hat)

:allright:
Benutz jetzt mal deine Art...
(Alle meine Lehrer halten viel von mir weil ich in Mathe, Physik, Programmieren ect. sehr talentiert bin)
(bin erst in der 10. Klasse)
(kann mit matrize rechen)
...
(ich hasse diese Art)


Habe auch nie behauptet, dass ich der Experte bin. Am besten fragst du DD
oh sorry, mit dem hast du's ja verscherzt (bzw. mit immer mehr leuten...)
weiter so :allright:
Benutzeravatar
X0r
Beiträge: 2770
Registriert: 15.03.2007 21:47
Kontaktdaten:

Beitrag von X0r »

Du bist echt bemitleidenswert Allright
Du auch. ;)
Zuerst: (Ich kann Mathe)
Dann: (Der eigentlich noch nicht mal dieses Matrix Kacke in der Schule hatte/hat)
Achso, das heisst also, dass die Leute, die keine Ahnung vom Matrix Zeug haben kein Mathe können. Lustig...
Allright
Benutz jetzt mal deinen Stil... (Alle meine Lehrer halten viel von mir weil ich
in Mathe, Physik, Programmieren ect. sehr talentiert bin)
Das ist überhaupt nicht mein Stil, lol. Denk dir jetzt keinen Scheiss aus. Wo habe ich jemals behauptet, dass ich ein talentierter Programmierer oder Physiker bin(Physik interessiert mich so oder so 0)?


>(kann mit matrize rechen)
Ja ist doch toll, dann sag mir doch wo mein Fehler liegt.


>oh sorry, mit dem hast du's ja verscherzt (bzw. mit immer mehr leuten...)
Ne, weil der sich bei mir entschuldigt hat(und umgekehrt) ;)
Schau mal, macht das irgendwie Sinn, was du hier von dir gibst? Mir mir hattest dus doch auch verscherzt, trotzdem habe ich dir geholfen, ist das jetzt der Dank dafür?
Erst meinste der Abschnitt vom code wäre Müll(Was ja auch sein kein, weiß ich nicht) und jetzt plötzlich keine Ahnung? :?

>(bzw. mit immer mehr leuten...)
Ich habs mit Leuten wie dir, edel, kiffi verscherzt, weil solche Leute meinen, sie müssten mir wegen meiner Meinung ans Bein pissen.

Ich denke mal, dass du dich wegen dem "lol" angegriffen gefühlt hast.
Wie würdest du denn reagieren, wenn dir jemand mit "hör jetzt mal mit entity auf..." ankommt? Ohne Begründung noch dazu.
DarkDragon
Beiträge: 6291
Registriert: 29.08.2004 08:37
Computerausstattung: Hoffentlich bald keine mehr
Kontaktdaten:

Re: OpenGL Blending

Beitrag von DarkDragon »

X0r hat geschrieben:Ist das eigentlich normal, dass bei

Code: Alles auswählen

  glColor4f_(1.0,1.0,1.0,1.0)
  glBlendFunc_(#GL_SRC_ALPHA,#GL_ONE); 
das entity trotzdem transparent dargestellt wird, obwohl a.f=1.0 ist?
#GL_SRC_ALPHA, #GL_ONE bedeutet es nimmt vom Vordergrund die Farbe * Alphawert + vom Hintergrund die Farbe oder zumindest etwas annähernd ähnliches (Aus STARGATES Blending-Topic kannst du erkennen, dass es bei den Grafikkarten zu unterschieden kommt). D.h. die Hintergrundfarbe wird immer mit im Spiel sein.

Es sei denn du änderst den additiven Blendingmodus mittels glBlendEquation:
http://wiki.delphigl.com/index.php/glBlendEquation

Aber da gibt es auch nur subtrahierende Alternativen.

Was du noch versuchen könntest ist statt #GL_ONE #GL_ONE_MINUS_SRC_ALPHA zu verwenden um dann das ganze so zu verändern:
vom Vordergrund die Farbe * Alphawert + vom Hintergrund die Farbe * (1.0 - Alphawert)

#GL_CONSTANT_ALPHA_EXT könntest du auch testen in Verbindung mit glBlendColor, falls das mit #GL_ONE_MINUS_SRC_ALPHA nicht zum gewünschten Ergebnis führt.
Angenommen es gäbe einen Algorithmus mit imaginärer Laufzeit O(i * n), dann gilt O((i * n)^2) = O(-1 * n^2) d.h. wenn man diesen Algorithmus verschachtelt ist er fertig, bevor er angefangen hat.
Benutzeravatar
Vermilion
Beiträge: 1846
Registriert: 08.04.2006 16:00
Computerausstattung: Apple iMac (2010) & HP Notebook
Wohnort: Heidekreis

Beitrag von Vermilion »

Du hast anscheinend sowieso ein seltsames Sprachverständnis...

Versuche es doch einfach mal mit einem anderen Blending Mode.
RedBook hat geschrieben:Constant, Relevant Factor, Computed Blend Factor
#GL_ZERO, source Or destination, (0, 0, 0, 0)
#GL_ONE, source Or destination, (1, 1, 1, 1)
#GL_DST_COLOR, source, (Rd, Gd, Bd, Ad)
#GL_SRC_COLOR, destination, (Rs, Gs, Bs, As)
#GL_ONE_MINUS_DST_COLOR, source, (1, 1, 1, 1)-(Rd, Gd, Bd, Ad)
#GL_ONE_MINUS_SRC_COLOR, destination, (1, 1, 1, 1)-(Rs, Gs, Bs, As)
#GL_SRC_ALPHA , source Or destination, (As, As, As, As)
#GL_ONE_MINUS_SRC_ALPHA, source Or destination, (1, 1, 1, 1)-(As, As, As, As)
#GL_DST_ALPHA, source Or destination, (Ad, Ad, Ad, Ad)
#GL_ONE_MINUS_DST_ALPHA, source Or destination, (1, 1, 1, 1)-(Ad, Ad, Ad, Ad)
#GL_SRC_ALPHA_SATURATE, source, (f, f, f, 1); f=min(As, 1-Ad)
PS: Kloppt euch doch ihr Kinder, es ist sowas von irrelevant in wleche Klasse man geht, und die Aussage "ich kann Mathe" gilt wohl kaum. Diese "Matrix Kacke" brauch man gar nicht in der Schule gehabt haben. Schaut euch auch mal xperience an, der hat (laut eigener Aussage, wenn ich mich richtig erinnere) immer noch nicht wirklich Ahnung von Vektorrechnung und kriegt trotzdem was gebacken. Räumliches Vorstellungsvermögen ist da weitaus nützlicher.
Einbringen von nicht angebrachten Fachbegriffen (Verweis auf "Entity") ist ebenfalls nur irreführende Quasselei. In der OpenGL Matrix gibt es keine Entities...

XOr hat geschrieben:Kannst mich anmachen so oft du willst, die richtigen Leuten werden mich schon verteidigen. ;)
Fragt sich bloß wer die sind.

Und folgendes ist doch wohl nicht dein ernst:
XOr hat geschrieben:Nein, ich finds nur unhöflich einem OpenGL Noob wie mir(Der eigentlich noch nicht mal dieses Matrix Kacke in der Schule hatte/hat(Zur Info: Gehe in die 11. Klasse)) mit
>vil. solltest du eher mal die mathematik können...

anzukommen. Da du ja der Experte bist kannst du mir jetzt sicherlich sagen, wie man das "richtig" macht
wenn du selber in einem anderen Thread mit Neulingen so umspringst. Und es geht ums Prinzip.
Es ist schon verständlich dass bei Andreas_S' Aussage deine Arroganz anschlägt, jedoch ist der Grund für die Art und Weise seiner Aussage ebenso verständlich.
Benutzeravatar
X0r
Beiträge: 2770
Registriert: 15.03.2007 21:47
Kontaktdaten:

Beitrag von X0r »

@DarkDragon:
Vielen Dank, das hat mir weitergeholfen.
Könntest du mir aber eventuell noch sagen, was ich bei dem Code-Abschnitt anscheinend falsch gemacht habe?


Jetzt kommt alles unwichtige:

>Einbringen von nicht angebrachten Fachbegriffen (Verweis auf "Entity") ist ebenfalls nur irreführende Quasselei. In der OpenGL Matrix gibt es keine Entities...

Tut mir Leid, aber du hast anscheinend auch ein seltames Verständnis. Wo habe ich behauptet, dass es in OpenGL entities gibt? Wo? Ich habe doch gesagt, dass ich ein eigenes Entity-System entwickelt habe(Oder am entwickeln bin).
Diese "Matrix Kacke" brauch man gar nicht in der Schule gehabt haben. Schaut euch auch mal xperience an, der hat (laut eigener Aussage, wenn ich mich richtig erinnere) immer noch nicht wirklich Ahnung von Vektorrechnung und kriegt trotzdem was gebacken
Ich war/bin auch gerade auch beim Durchgehen eines Tutorials. Diese Matrix Sache zu verstehen ist sicherlich nicht einfach. In ein paar Stunden kann man sowas jedenfalls nicht einfach so raffen.

Würde aber liebend gerne wissen, was ich bei dem Code-Abschitt(Welchen andreas_s zitiert hat) falsch gemacht habe. Denn soweit ich das jetzt verstanden habe, müsste das eine korrekte Lösung sein. Wenn nicht, auch gut, lerne ich halt was dazu. ;)

>wenn du selber in einem anderen Thread mit Neulingen so umspringst

Das ist mit diesem Fall aber nicht zu vergleichen. Würde ich behaupten, es gebe keine guten 2D Libs und liefere dann mit meinem aktuellen Wissen über OpenGL dann ne Mist-Lib, könntest du mich auslachen, ja.

>Es ist schon verständlich dass bei Andreas_S' Aussage deine Arroganz anschlägt, jedoch ist der Grund für die Art und Weise seiner Aussage ebenso verständlich.

Genau, sie ist verständlich. Denn was er erreichen will, ist mich zu provozieren...

>Fragt sich bloß wer die sind.
Aha, jetzt zitierst du also auch noch Aussagen, die von einem komplett anderen thread stammen. Jetzt verstehe ich auch, warum du die ganze Zeit mit Scheisse wirfst. Jetzt hats Ding gemacht.
Dir gehts also aufn Sack wenn mir andere Leute Komplimente machen?
Ok, das deutet dann nur auf eines hin...(ich sags jetzt lieber nicht).
Mich dann aber arrogant nennen, das kannste gut.
Andreas_S
Beiträge: 787
Registriert: 14.04.2007 16:48
Wohnort: Wien Umgebung
Kontaktdaten:

Beitrag von Andreas_S »

Bevor du jetzt wegen den Matrizen lange herumseißt:
hier


->
Du hast am anfang nicht erwähnt, dass du erst mit OGL angefangen hast...
Ich schließe daraus zwei Dinge, aber ich hab keinen Bock die zu erläutern.


Ich will dich nur dazu anregen, nachzuprüfen ob dein Code richtig ist...
Es kann sein dass ich mich irre, aber sie dir mal den Link an und überprüf das.

Mit den Matrixmodifikationen werden (jetzt mal abstrakt gesprochen) einfach nur
die nachfolgenden Vertizes modifiziert... kan könnte das auch so interpretieren
dass man das koor-system ändert, aber das ist nicht richtig...

Desswegen... dass du 2x Translation verwendest, kommt mir ein bischen seltsam
vor... ich will das jetzt aber nicht überprüfen, da ich meine eingenen Probleme
zu lösen habe...


@Vermilion
Es kann nicht schaden solche Grundlagen zu verstehn...
Genauerbetrachtet kann man dann auch noch Performenz sparen (wie ich vor kurzem 'gehört' habe)
DarkDragon
Beiträge: 6291
Registriert: 29.08.2004 08:37
Computerausstattung: Hoffentlich bald keine mehr
Kontaktdaten:

Beitrag von DarkDragon »

X0r hat geschrieben:@DarkDragon:
Vielen Dank, das hat mir weitergeholfen.
Könntest du mir aber eventuell noch sagen, was ich bei dem Code-Abschnitt anscheinend falsch gemacht habe?
Bei welchem? Dem hier?
X0r hat geschrieben:Wird nicht viel bringen, da ich schon ein Entity-System programmiert habe.

So sehe das dann aus:

Code: Alles auswählen

 glClear_(#GL_COLOR_BUFFER_BIT | #GL_DEPTH_BUFFER_BIT) 
  glMatrixMode_(#GL_MODELVIEW) 
  glLoadIdentity_()

  glEnable_(#gl_blend)
  
  
  glColor4f_(1.0,1.0,1.0,1.0)
  glBlendFunc_(#GL_SRC_ALPHA,#GL_ONE); 
  glBindTexture_(#GL_TEXTURE_2D,texb)
  
  glTranslatef_(600.0, 500.0+t.f,0.0) ;Object positioning
  glRotatef_(t,0.0,0.0,1.0);
  glTranslatef_(-50.0,-50.0,0.0) ;Vector positioning
  
  glBegin_(#GL_QUADS)
  glTexCoord2f_(0.0, 0.0): glVertex3f_(0.0, 0.0, 0.0)
  glTexCoord2f_(0.0, 1.0):glVertex3f_(0.0, 100.0, 0.0)
  glTexCoord2f_(1.0, 1.0):glVertex3f_(100.0, 100.0, 0.0)
  glTexCoord2f_(1.0, 0.0):glVertex3f_(100.0,0.0, 0.0)
  glEnd_() 
  
  gldisable_(#gl_blend)
  ;...
  
(Verwende glortho)
Wenn du mir sagst was da nicht funktioniert wie es sollte, kann ich dir evtl. helfen. Außerdem bräuchte ich den Aufruf von glOrtho in der Projection Matrix.
Angenommen es gäbe einen Algorithmus mit imaginärer Laufzeit O(i * n), dann gilt O((i * n)^2) = O(-1 * n^2) d.h. wenn man diesen Algorithmus verschachtelt ist er fertig, bevor er angefangen hat.
Benutzeravatar
X0r
Beiträge: 2770
Registriert: 15.03.2007 21:47
Kontaktdaten:

Beitrag von X0r »

Ich, oder besser gesagt, Andreas_s meinte diesen Teil hier:

Code: Alles auswählen

glTranslatef_(600.0, 500.0,0.0)
glRotatef_(t,0.0,0.0,1.0);
glTranslatef_(-50.0,-50.0,0.0)

>Wenn du mir sagst was da nicht funktioniert wie es sollte, kann ich dir evtl. helfen.
Also bei mir funktionierts so wie es eigentlich funktionieren soll. Aber anscheinend ist das nach Andreas_s' Aussage falsch.

glOrtho(0,1024,0,768,0,128)
(Ich weiß, macht man so nicht, dient erstmal nur als so eine Art Ersatz).
Benutzeravatar
Vermilion
Beiträge: 1846
Registriert: 08.04.2006 16:00
Computerausstattung: Apple iMac (2010) & HP Notebook
Wohnort: Heidekreis

Beitrag von Vermilion »

1. Wenn es so irrelevant wäre, würdest du bestimmt nicht auch noch darauf eingehen.

2. Die Matrix zu verstehen ist keine Sache von Stunden. Man kann sogar ein Vollidiot sein um es zu verstehen, da man sich nur ein dreidimensionales Koordinatensystem vorstellen muss, in dem man sich relativ bewegt und entlang der gesamten Modelview Matrix rotiert.

3. Grundlos provozieren wird hier wohl niemand irgendwen. Deinen Posts zu Folge scheinst du dich bloß immer als erstes angegriffen zu fühlen.

4. Mit "Scheiße werfen" ist wohl etwas falsch ausgedrückt. Und warum sollte es mir nicht gefallen, dass dir andere Menschen Komplimente machen? Das was ich empfinde wenn die Leute neben mir Komplimente kriegen ist der Ehrgeiz besser zu sein. Wenn mich das Thema überhaupt interessiert (im Französisch Unterricht früher war das Interesse größer wann die Stunde vorbei ist).
Um ehrlich zu sein, ich sehe es genau so wie Andreas_S (folgende Bezeichnung ist nicht spontan, also im Momente des Niederschreibens diesen Posts, zusammengesetzt worden); du bist ein arroganter möchte-gern Programmierer dessen unangenehme Art uns missfällt.
Und dass ich nun einen anderen Thread zitiere... das was du sagtest ist Themenunabhängig. Du bist immernoch XOr, und wahrscheinlich immernoch derselben Überzeugung.

5. Da wir uns eigentlich nicht weiter kennen als durch Texte in Form von Forenbeiträgen ist es eigentlich Voreilig gleich über den Anderen zu urteilen. Ich jedoch bin schwerlich, auch wenn mein Schreibstil dem vielleicht widerspricht, arrogant zu nennen, sondern eher demütig (das Gegenteil von arrogant), mit was ich mich auch eher identifizieren kann und meinen Perspektiven entspricht.
Antworten