Ich erstelle eine Mathematik-App, die OpenGL verwendet, um mehrere geometrische 3D-Formen anzuzeigen. In einigen Fällen schneiden sich diese Formen und wenn dies geschieht, möchte ich den Schnittpunkt jeder Form innerhalb des anderen zeigen. Da die beiden Formen durchscheinend sind, was ich brauche, ist mehr oder weniger so etwas wie dieses:Zeige den gemeinsamen Teil von 2 halbtransparenten Objekten?
jedoch mit 2 durchscheinend Sphären bekomme ich dieses Ergebnis statt:
Ich weiß, Um einen korrekten Transparenzeffekt zu erzielen, sollte die Tiefenprüfung deaktiviert werden, bevor die transparenten Formen gezeichnet werden. Aber dies einen weiteren Nebeneffekt bewirken, wenn eine transparente Form über eine andere nicht transparent Form ist:
So ist es eine Möglichkeit, korrekt den schneidenden Teil von 2 Volumen Formen zu zeigen, die jeweils in der anderen, ohne zu brechen der Tiefentest?
ok, so gibt es keine „magische Weise“ zu tun, , dh durch Aktivieren oder Deaktivieren einer Option in OpenGL. Gute Idee, das im Shader zu machen, aber in meinem Fall habe ich mehrere Formen jenseits der einfachen Sphären, so dass mein Shader auf diese Weise sehr viel komplizierter wird. Vielleicht ist es der bessere Weg für mich, endlich Schablonenpuffer zu verwenden. Wie auch immer, danke für die Antwort (und Entschuldigung für den Fehler über die OpenGL-Volumes :-)) –