Gibt es vorgefertigte render techniken in OpenGL, um (z.B.) eine transparente Sphere korrekt zu rendern? Das Problem ist ja, wenn die Sphere durch die ModelView Matrix rotiert wird, dann sind die Triangles, aus denen die Sphere besteht nicht mehr front-to-back sortiert und es treten render-Fehler auf. Und wenn die Sphere eine Textur hat order keine perfekte Sphere ist, dann ist die Rotation ja wichtig.
Ich könnte mir vorstellen, dass OpenGL dafür bereits eine Lösung anbietet. Kann mir da jemand helfen?
Wenn es nur eine Textur ist, könntest du die textur rotieren ohne die kugel mitzurotieren. Oder du könnest erst die kugel 1. mit frontfaceculling und dann nochmal mit backfaceculling rendern. Also dass beim 1. durchgang nur die rüchseite gerendert wird, beim 2. die vorderseite.
Wenn es nur eine Textur ist, könntest du die textur rotieren ohne die kugel mitzurotieren.
Naja, die Kugel ist ja nur ein sehr einfaches Beispiel. Das gleiche Problem tritt natürlich auch bei komplexeren Körpern auf. Daher hatte ich das mit der nicht perfekten Kugel erwähnt. Oder noch schlimmer ein beliebiges Polygon.
The-Winner hat geschrieben:
Oder du könnest erst die kugel 1. mit frontfaceculling und dann nochmal mit backfaceculling rendern. Also dass beim 1. durchgang nur die rüchseite gerendert wird, beim 2. die vorderseite.
Ich habe das eingebaut und es funktioniert toll. Vielen, vielen Danke für die Hilfe.
Ich habe eine andere, verwandte Frage: Nach welchen Kriterien würdet Ihr transparente Objekte front-to-back sortieren? Bisher verwende ich den Abstand des Zentrums der bounding Sphere als Kriterium. Das macht aber in folgendem Szenario Probleme:
Ich habe zwei Rechtecke (triangle strips), die beide mti einer transparenten Farbe gerendert werden. Das eine Rechteck steht fest und das andere bewegt sich. Die Kamera blickt schräg auf die beiden Rechtecke. Das sich bewegende Rechteck liegt "über" dem feststehenden. Wenn sich das "obere" von der Kamera weg bewegt, ist es zwar nachwievor "auf" dem "unteren", aber die bounding sphere ist weiter weg.
Ich müsste im Prinzip nachsehen, ob irgendein Pixel des einen Rechtecks näher an der Kamera ist als irgendeiner des anderen. Aber das wäre natürlich sehr teuer. Wie würdet Ihr das machen`
Mitglieder in diesem Forum: 0 Mitglieder und 8 Gäste
Du darfst keine neuen Themen in diesem Forum erstellen. Du darfst keine Antworten zu Themen in diesem Forum erstellen. Du darfst deine Beiträge in diesem Forum nicht ändern. Du darfst deine Beiträge in diesem Forum nicht löschen. Du darfst keine Dateianhänge in diesem Forum erstellen.