Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   openGl Transparenz und Drehung (https://www.delphipraxis.net/167697-opengl-transparenz-und-drehung.html)

yogie 13. Apr 2012 16:14

openGl Transparenz und Drehung
 
Hallo zusammen,

im Moment arbeite ich mich gerade in openGl ein. Dabei habe ich eine Frage
zur Transparenz.

Wenn ich z.B. einen Würfel aus transparenten Flächen zusammensetzte, kommt es
darauf an in welcher Reihenfolge die Flächen im Programm erzeugt werden, damit
die Transparenz auch wirksam wird. Das hab ich verstanden und es klappt auch.

Wenn ich nun den Würfel per Programm drehe, ist die im Programm vorhandene
Reihenfolge der Flächenerstellung aber nicht mehr „richtig“, d.h. ich bekomme
Flächen die andere Flächen überdecken. Bietet openGl hiefür eine Automatik oder
muss ich bei Drehungen die Flächenlage (im Raum) ständig überwachen?

Ich glaube, das könnte bei beliebigen 3D Drehungen etwas unübersichtlich werden.

Jens01 13. Apr 2012 17:04

AW: openGl Transparenz und Drehung
 
Zitat:

Wenn ich nun den Würfel per Programm drehe, ist die im Programm vorhandene
Reihenfolge der Flächenerstellung aber nicht mehr „richtig“, d.h. ich bekomme
Flächen die andere Flächen überdecken. Bietet openGl hiefür eine Automatik oder
muss ich bei Drehungen die Flächenlage (im Raum) ständig überwachen?
Eine Tiefensortierung mußt vor jedem Renderdurchlauf durchführen, insoweit sich die Objekte bewegt haben. In OpenGl gibt es Verfahren, womit eine Darstellung auch ohne Sortierung möglich ist. Sie ist aber in einigen Bereichen ungenau.
Wenn Durchdringungen vorhanden sind bzw genau rendern willst, mußt Du auf Shader zurückgreifen "Dual Depth Peeling".

Guck Dich mal auf http://www.delphigl.com/ um.
Guck auch mal nach meinen Beiträgen, da habe ich so einen Shader für Delphi mal erstellt (also von NVidia übernommen). Einen Renderdurchlauf für die einfache Darstellung kannst Du bei mir auch finden.

Medium 13. Apr 2012 23:00

AW: openGl Transparenz und Drehung
 
Ansonsten gäbs auch noch den Weg, einen Z-Buffer (Depthbuffer, Tiefenpuffer) zu nutzen. Die werden auch gleich direkt von den GraKas harwaremäßig unterstützt, und müssen i.A. nur erstellt und parametriert werden.

yogie 14. Apr 2012 12:31

AW: openGl Transparenz und Drehung
 
... erstmal vielen Dank, ich hab schon mal ein wenig
nachgelesen. Allerdings steht am Wochenende erstmal
eine große Familienfeier an. Am Montag sehen wir weiter.


Alle Zeitangaben in WEZ +1. Es ist jetzt 04:51 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz