AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Delphi GLScene: Problem mit Alpha bei einem TGLPolygon
Thema durchsuchen
Ansicht
Themen-Optionen

GLScene: Problem mit Alpha bei einem TGLPolygon

Ein Thema von Maiky · begonnen am 25. Okt 2012 · letzter Beitrag vom 10. Dez 2012
 
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.757 Beiträge
 
Delphi 12 Athens
 
#2

AW: GLScene: Problem mit Alpha bei einem TGLPolygon

  Alt 25. Okt 2012, 09:31
Mit der Transparenz bei OpenGL ist das so eine Sache. Bei einem Objekt mit Transparenz wird nämlich der eigene Farbwert mit dem vorhandenen Farbwert gemischt. Damit bekommt aber die Reihenfolge der Objekte beim Zeichnen eine besondere Bedeutung.

Beim Zeichnen bekommt jedes Pixel ja auch noch einen Z-Wert mit. Wird dann ein Pixel darübe gezeichnet, geschieht dies nur, wenn der Z-Wert kleiner (also näher zur Kamera) ist, als der aktuelle Z-Wert. Bei einem Transparenten Pixel wird wie gesagt die Farbe gemischt, der Z-Wert kommt aber dann von dem transparenten Pixel.

Unter der Annahme, daß das transparente Objekt vor dem opaqen liegt, gibt es jetzt zwei Möglichkeiten:

1. Das opaque Pixel wird vor dem transparenten gezeichnet. Das Ergebnis ist wie gewünscht.
2. Das transparente Pixel wird zuerst gezeichnet. Dann wird das opaque gar nicht gezeichnet, weil sein Z-Wert hinter dem transparenten Pixel liegt.

Es gibt in TGLScene ein Property ObjectsSorting, das man auf osRenderBlendedLast stellen kann. Hiermit werden die transparenten Objekte tiefensortiert nach den opaquen gezeichnet. Leider funktioniert das nur objektweise. In deinem Fall "umschließt" das Polygon offensichtlich andere Objekte (es liegt sowohl davor als auch dahinter) und damit kann keine sinnvolle Sortierung erfolgen.

Leider ist auch ein Splitten solcher Objekte in mehrere kleinere nicht immer erfolgreich, da die Tiefensortierung halt sehr stark von der Blickrichtung abhängt.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
 


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 13:22 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