AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Multimedia OpenGL - rendern eines transparenten Bildes
Thema durchsuchen
Ansicht
Themen-Optionen

OpenGL - rendern eines transparenten Bildes

Ein Thema von torud · begonnen am 8. Jun 2016 · letzter Beitrag vom 16. Jul 2016
Antwort Antwort
torud

Registriert seit: 26. Jul 2002
Ort: Sachsen
1.198 Beiträge
 
Delphi XE5 Professional
 
#1

AW: OpenGL - rendern eines transparenten Bildes

  Alt 13. Jul 2016, 12:01
Geht das bei Dir um 2D oder 3D Objekte, die gerendert werden sollen?
In der Masse nutzen wir 2D-Objekte, wie Bilder und Text-Objekte, benötigen aber hin und wieder auch 3D-Objekte.
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.
Danke
Tom
  Mit Zitat antworten Zitat
Jens01

Registriert seit: 14. Apr 2009
673 Beiträge
 
#2

AW: OpenGL - rendern eines transparenten Bildes

  Alt 13. Jul 2016, 12:40
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.
Achtung: Bin kein Informatiker sondern komme vom Bau.
  Mit Zitat antworten Zitat
torud

Registriert seit: 26. Jul 2002
Ort: Sachsen
1.198 Beiträge
 
Delphi XE5 Professional
 
#3

AW: OpenGL - rendern eines transparenten Bildes

  Alt 14. Jul 2016, 07:59
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.
Danke
Tom
  Mit Zitat antworten Zitat
Jens01

Registriert seit: 14. Apr 2009
673 Beiträge
 
#4

AW: OpenGL - rendern eines transparenten Bildes

  Alt 14. Jul 2016, 09:24
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).
Achtung: Bin kein Informatiker sondern komme vom Bau.
  Mit Zitat antworten Zitat
Jens01

Registriert seit: 14. Apr 2009
673 Beiträge
 
#5

AW: OpenGL - rendern eines transparenten Bildes

  Alt 14. Jul 2016, 09:52
Dir geht es ums Erstellen des Bildes!?
Hier ein Link.
Ich selbst rendere in ein TBitmap32.
Achtung: Bin kein Informatiker sondern komme vom Bau.
  Mit Zitat antworten Zitat
torud

Registriert seit: 26. Jul 2002
Ort: Sachsen
1.198 Beiträge
 
Delphi XE5 Professional
 
#6

AW: OpenGL - rendern eines transparenten Bildes

  Alt 15. Jul 2016, 12:15
Also ich habe mal ein Beispiel erstellt, dass sehr Basic ist, aber vielleicht mein Problem etwas veranschaulicht.

Ich habe mir das Beispiel mal von DelphiGL genommen und die Routine Screenshot benutzt.

Wenn man im Programm den Button Render betätigt, wird erwartungsgemäß das Bild so gerendert, wie im Tutorial.
Will ich es speichern, erhalte ich zwar eine TGA-Datei, ABER
-> der Inhalt ist komplett schwarz
-> es ist kein Alpha-Kanal vorhanden

Einzig die Abmaße stimmen.

Ich habe dann bei GetReadPixels das Format von GL_BGR nach GL_BGRA umgestellt und vorher noch die Datengröße

von
DataSize := Width * Height * 3;

geändert
DataSize := Width * Height * 4;

um Platz für Alphakanal zu schaffen.

Ich finde leider den Fehler nicht...
Ich hänge mal das Projekt an.
Angehängte Dateien
Dateityp: zip OpenGL.zip (636,1 KB, 4x aufgerufen)
Danke
Tom
  Mit Zitat antworten Zitat
Jens01

Registriert seit: 14. Apr 2009
673 Beiträge
 
#7

AW: OpenGL - rendern eines transparenten Bildes

  Alt 15. Jul 2016, 14:10
Du solltest vllt die Frage auch noch mal bei DGL stellen. Dort gibt es eigentlich kompetente Antworten.
Achtung: Bin kein Informatiker sondern komme vom Bau.
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 15:44 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