Am besten besten ist dafür wohl Masking: <a href='http://nehe.gamedev.net/data/lessons/lesson.asp?lesson=20' target='_blank'>http://nehe.gamedev.net/data/lessons/lesso...n.asp?lesson=20</a>
_________________ "OpenGL verbindet"<br>- für die Völkerverständigung zwischen Delphi und C++ ^^
Registriert: Mo Sep 23, 2002 19:27 Beiträge: 5812
Programmiersprache: C++
Transparente Bereiche in einer Textur llassen sich ganz einfach mittels Alphamasking realisieren.Bei dieser Technik erstellst du entweder eine seperate Textur mit Transparenzinformationen oder bindest diese (besser) mittels deines Bildbearbeitungsprogrammes direkt in den Alphakanal deiner Textur ein.Bei den meisten Bildbearbeitungsprogrammen lässt sich der Alphakanal (der die Transparenzinformationen enthält) über Masken bearbeiten.Dort markierst du dann ganz einfach den transparenten Bereich deiner Fenstertextur und speicherst diese dann in einem Format ab, welches einen Alphakanal unterstützt.Das sind z.B. TGA und PNG, wobei ich ersteres empfehle. Um die Transparenzinformationen in deiner Textur dann von OpenGL auswerten zu lassen, musst du in deinem Programm mittels glEnable(GL_ALPHA_TEST) und glAlphaFunc(GL_GREATER, 0.1) das Alphamasking aktivieren.Beim Alphamasking müssen deine transparenten Objekte übrigens nicht wie beim Blending tiefensortiert werden.
Dazu gibts auf meiner Page auch ein leicht verständliches Tutorial.
nur weil ich dir nichts vorkau heißt das noch lange nicht, dass der Post bzw. der Link für deine Problemstellung nichts taugt... oder kannst du kein Englisch? hier in Deutsch, aber nur C++ Code <a href='http://www.codeworx.org/opengl_tut20.php' target='_blank'>http://www.codeworx.org/opengl_tut20.php</a>
_________________ "OpenGL verbindet"<br>- für die Völkerverständigung zwischen Delphi und C++ ^^
dann schau mal hier ganz unten: <a href='http://www.phobeus.de/hosting/dgl/forum/index.php?act=ST&f=2&t=1187' target='_blank'>http://www.phobeus.de/hosting/dgl/forum/in...t=ST&f=2&t=1187</a> oder einfach nen thread unter dir B)
_________________ "OpenGL verbindet"<br>- für die Völkerverständigung zwischen Delphi und C++ ^^
also wenn du nicht liest, was da steht, kann dir keiner helfen... das wird mir dann auch zu blöd! Lies dir mal den verlinkten Thread im verlinkten Thread durch. Da steht genau, man soll glDisable(GL_DEPTH_TEST); eben nicht verwenden... und du machst es trotzdem :blink: siehe! glDepthMask(False); und verknüpfe das sinnvoll mit dem Masking Tut oder einer Blend technick deiner Wahl
Wenn du das nicht hinbekommst, dann mach lieber erst mal etwas anderes... wobei es hier bestimmt jemanden gibt, der dir den Code trotzdem vorkaut <_<
_________________ "OpenGL verbindet"<br>- für die Völkerverständigung zwischen Delphi und C++ ^^
Ich würde Dir aber Raten, die Wand dennoch in mehrere Quads zu zerlegen, da es später mit Kollisions-Erkennung sonst schwierig wird. Den theoretisch kann man ja auch durch ein Fenster "aussteigen".
_________________ Und was würdest Du tun, wenn Du wüsstest, dass morgen Dein letzter Tag auf dieser Erde ist?
Mitglieder in diesem Forum: 0 Mitglieder und 15 Gäste
Du darfst keine neuen Themen in diesem Forum erstellen. Du darfst keine Antworten zu Themen in diesem Forum erstellen. Du darfst deine Beiträge in diesem Forum nicht ändern. Du darfst deine Beiträge in diesem Forum nicht löschen. Du darfst keine Dateianhänge in diesem Forum erstellen.