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 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
 
#2

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
 
#3

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
 
#4

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
 
#5

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
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, 16:52
Hallo Jens,

vielen Dank für den Hinweis. Ich habs dort auch mal gepostet...Mal schauen. Wenn ich eine helfende Antwort erhalte, poste ich´s hier.
Danke
Tom
  Mit Zitat antworten Zitat
torud

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

AW: OpenGL - rendern eines transparenten Bildes

  Alt 16. Jul 2016, 07:40
Manchmal reicht es auch, einfach nochmal mit einer Nacht Abstand alles von Neuem zu betrachten.

2 Zeichen musste ich ändern und alles geht.

Der Code hier ist verantwortlich für das Erstellen des Alphakanals:

  tgaHeader.tfBpp := 32; Vorher hatte ich dort nur eine 24!
Jetzt ist der Alphakanal vorhanden und er wird sogar korrekt befüllt!
Danke
Tom
  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 19:51 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