![]() |
OpenGL - rendern eines transparenten Bildes
Hallo Wissende,
ich bin noch nicht so sehr mit OpenGL vertraut, habe aber schon herausgefunden, dass man, um Transparenzen benutzen zu können, mit
Delphi-Quellcode:
arbeiten muss.
glEnable(GL_BLEND);
Könnte mir jemand von Euch zeigen, wie ich einfach nur mit OpenGL ein transparentes Bild rendere? Eigentlich möchte ich als Basis ein solches Objekt in OpenGL erstellen und darauf dann andere OpenGL-Objekte platzieren und alles zusammen rendern. Also Ergebnis würde in der Regel immer ein Bild herauskommen, dass auch transparente Anteile hat. Bei den bisher verwendeten Tutorials ist es leider immer so, dass das gerenderte Bild zwar einen Alpha-Kanal hat, dieser aber keine transparenten Bereiche aufweist. Ich wäre sehr dankbar, wenn mir hier jemand eine kleine Starthilfe geben könnte. RenderToTga oder RenderToPng wäre toll - wenn möglich. Vielleicht hilft es ja auch anderen, die auch dieses Problem haben. |
AW: OpenGL - rendern eines transparenten Bildes
Delphi-Quellcode:
gruss
//Texture wird vorher gebunden
glDisable(GL_DEPTH_TEST); glEnable(GL_BLEND); glBlendFunc(GL_SRC_ALPHA,GL_ONE); //Render... glDisable(GL_BLEND); glEnable(GL_DEPTH_TEST); |
AW: OpenGL - rendern eines transparenten Bildes
Hallo,
vielen Dank - ich versuchs mal damit. Kannst Du mir noch einen Tipp geben, wie ich dann Speichern kann? Hab gerade kein Delphi zur Hand, check den Kram aber in 1 Stunde. |
AW: OpenGL - rendern eines transparenten Bildes
Geht das bei Dir um 2D oder 3D Objekte, die gerendert werden sollen?
|
AW: OpenGL - rendern eines transparenten Bildes
Insgesamt sind die DelphiGL-Tutorials zu solchen Themen (
![]() |
AW: OpenGL - rendern eines transparenten Bildes
Zitat:
Ich hätte auch ein Beispielprojekt am Start, allerdings würde das Kompilat bei den meisten von Euch einen Fehler aufwerfen, weil eine spezielle VIdeokarte nicht gefunden würde. |
AW: OpenGL - rendern eines transparenten Bildes
Ich glaube, ich meinte, wenn Du nur 2D-Objekte hast, das bei Transparenz nicht mit OpenGL zu machen, sondern vllt mit Graphics32 o.ä..
Transparenz geht bei OpenGL mit diesem Blending, wie hier schon angesprochen. Es kann aber auch schnell sehr kompliziert werden, wenn eine Tiefensortierung notwendig wird. Dann benötigt man Shaderverfahren. |
AW: OpenGL - rendern eines transparenten Bildes
Ja, wenn es einfach nur um das Erstellen von statischen Bildern gegangen wäre, würde GDI vielleicht sogar reichen. Da aber die ein oder andere Animation zu realisieren wäre und das im Full-HD-Bereich, kommt das nicht in Frage.
|
AW: OpenGL - rendern eines transparenten Bildes
Naja, dann OpenGL.
Bei Transparenz geht vieles mit dem Blending. Da gibt es auch Tricks mit Mehrfachrenderung (siehe Tutorials bei DGL). Probleme kommen aber dann, wenn es darum geht, ob das eine transparente Objekt vor oder hinter einem anderen steht. Oder sogar in einem anderen Objekt. Man kann die Objekte dann nach der Tiefe sortieren oder man nutzt ein Verfahren mit Shadern (OIT Order-Independent Transparency). |
AW: OpenGL - rendern eines transparenten Bildes
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:11 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz