Checkliste Blending: Unterschied zwischen den Versionen
Aus DGL Wiki
Flash (Diskussion | Beiträge) (Basis für Checkliste erstellt) |
Flash (Diskussion | Beiträge) (→Problemspezifisches) |
||
Zeile 25: | Zeile 25: | ||
*'''Treten keine Überlappungen bei transparenten Objekten auf?''' | *'''Treten keine Überlappungen bei transparenten Objekten auf?''' | ||
:Falls Überlappungen oder Durchdringungen von Transparenten Objekten auftreten, und sie diese nicht vermeiden können, haben sie ein schwerwiegenderes Problem welches am besten in der Diskussion im Forum von DelphiGL.com besprochen werden sollte. | :Falls Überlappungen oder Durchdringungen von Transparenten Objekten auftreten, und sie diese nicht vermeiden können, haben sie ein schwerwiegenderes Problem welches am besten in der Diskussion im Forum von DelphiGL.com besprochen werden sollte. | ||
+ | |||
+ | *'''Ist der Alphatest deaktiviert?''' | ||
+ | :Falls der [[Alphatest]] aktiv ist, werden einzelne Fragmente vom Zeichnen ausgeschlossen. Das bedeutet allerdings auch, dass keine Interpolation über diese Fragmente hinweg stattfindet. Mit der Folge, dass an den ausgeschlossenen Pixeln "harte" Kanten bzw. "Treppen" entstehen. |
Aktuelle Version vom 21. Januar 2009, 20:03 Uhr
Verwendung der Checkliste
Die nachfolgende Checkliste sollte nach und nach abgearbeitet werden um einfache Fehler auszuschließen. Wenn ein Punkt mit ja beantwortet werden kann, kann man den nächsten Punkt angehen.
Da Blending in der Hauptsache für Transparenz benutzt wird, sind einige Frage auf Probleme bei der Darstellung von Trasparenzen ausgelegt.
Grundlagen
- Benutze ich eine funktionierende Programmgrundlage (Template)?
- Wurde ein Template von DelphiGL.com benutzt, oder wurde das Template bereits erfolgreich getestet dann kann von einer Funktionierenden Programmgrundlage ausgegangen werden.
- Funktioniert das Programm ohne Blending?
- Kommentiere allen Blendingrelevanten Code aus, und prüfe die Ausgabe.
- Läuft das Programm ohne OpenGL-Fehler zu produzieren?
- Benutzen sie einen Error-Handler wie er im "Tutorial_quickstart" beschrieben wird, um dies zu testen.
Problemspezifisches
- Haben Sie Blending für das entsprechende Objekt aktiviert?
- Falls alle Objekte mit Blending gezeichnet werden sollen, reicht es beim Setup von OpenGL per glEnable(GL_BLEND) Blending zu aktivieren.
- Falls nur einzelne Objekte geblendet werden sollen, muss vor dem zu blendenden Objekt Blending aktiviert, und vor den nicht zu blendenden Objekten Blending wieder deaktiviert (glDisable(GL_BLEND)) werden.
- Zeichnen Sie die Objekte in der richtigen Reihenfolge?
- Um Transparenz per Blending korrekt darzustellen muss die Reihenfolge beachtet werden. Zeichnen sie erst alle undurchsichtigen Objekte. Zeichnen Sie dann alle durchsichtigen Elemente, beginnent mit dem zur Kamera am weitesten entfernten. (Hilfreich ist dazu z.B. das BSP-Baum Verfahren.)
- Treten keine Überlappungen bei transparenten Objekten auf?
- Falls Überlappungen oder Durchdringungen von Transparenten Objekten auftreten, und sie diese nicht vermeiden können, haben sie ein schwerwiegenderes Problem welches am besten in der Diskussion im Forum von DelphiGL.com besprochen werden sollte.
- Ist der Alphatest deaktiviert?
- Falls der Alphatest aktiv ist, werden einzelne Fragmente vom Zeichnen ausgeschlossen. Das bedeutet allerdings auch, dass keine Interpolation über diese Fragmente hinweg stattfindet. Mit der Folge, dass an den ausgeschlossenen Pixeln "harte" Kanten bzw. "Treppen" entstehen.