PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : 2D Geometrie in 3D


Asmodeus
2007-10-09, 07:37:35
Ich möchte triangulierte 2D Polygone auf einer frei rotierbaren Ebene im 3D Raum darstellen. Die 2D Polygone überdecken sich teilweise. Kommt es dabei dann nicht zu Z-Fighting während der Darstellung dieser Überdeckungsbereiche und wenn ja, wie kann ich das umgehen?

Gruß, Carsten.

ScottManDeath
2007-10-09, 08:25:29
Stencil buffer 0 clearen, ZPass und StencilPass StencilOp auf increment, setzen und den Stencil test auf == 0 setzen?

Im Prinzip so wie wenn man Geometrie planar als Schatten mit Blending auf eine Ebene projeziert und keinen Overdraw haben will.

Asmodeus
2007-10-09, 08:43:02
Kann es sein, dass ich um eine Sortierung der Polygone nicht herumkomme, bevor ich sie zeichne (um das Z-Fighting Problem zu umgehen)?

Gruß, Carsten.

ScottManDeath
2007-10-09, 08:51:50
Wenn die Polygone einfarbig sind, sollte es keine Rolle spielen. Könntest Du nicht alternativ die Polygone gegeneinander clippen? Bzw wo bekommst Du die her?

Asmodeus
2007-10-09, 10:08:39
Wenn die Polygone einfarbig sind, sollte es keine Rolle spielen. Könntest Du nicht alternativ die Polygone gegeneinander clippen? Bzw wo bekommst Du die her?

Die Polygone können beliebig komplex sein (also auch konkav und mit Löchern) und sollen in einer Datenbank vorliegen, aus der ich dann mittels Anfrage bestimmte Polygone herausnehme (also die Dreiecke des triangulierten Polygons) und darstellen möchte.

Gruß, Carsten.

Xmas
2007-10-09, 15:15:14
Kann es sein, dass ich um eine Sortierung der Polygone nicht herumkomme, bevor ich sie zeichne (um das Z-Fighting Problem zu umgehen)?
Wenn die Polygone auf einer Ebene liegen und du ein definiertes Ergebnis willst, dann muss doch eine feste Reihenfolge vorliegen? Depth Buffering ergibt hier gar keinen Sinn, schließlich sollen die Z-Werte ja idealerweise gleich sein.

micki
2007-10-09, 15:22:12
Ich möchte triangulierte 2D Polygone auf einer frei rotierbaren Ebene im 3D Raum darstellen. Die 2D Polygone überdecken sich teilweise. Kommt es dabei dann nicht zu Z-Fighting während der Darstellung dieser Überdeckungsbereiche und wenn ja, wie kann ich das umgehen?

Gruß, Carsten.
naja, auf einer eben musst du keinen z-buffer nutzen, mehr als z-fighting verursacht der wohl nicht ;). wenn die objekte in einer festen reichenfolge aus der datenbank kommen, wirst du eigentlich keine probleme haben wenn du sie einfach nur zeichnest (ohne z-buffer ;) )

ScottManDeath
2007-10-09, 16:56:22
Die Polygone können beliebig komplex sein (also auch konkav und mit Löchern) und sollen in einer Datenbank vorliegen, aus der ich dann mittels Anfrage bestimmte Polygone herausnehme (also die Dreiecke des triangulierten Polygons) und darstellen möchte.

Gruß, Carsten.

Das riecht nach Karte rendern ;) Sollten dann die Daten dort nicht in Ebenen organisiert sein?

Chris Lux
2007-10-09, 20:00:45
polygon offset eine option?

Asmodeus
2007-10-10, 07:47:32
Das riecht nach Karte rendern ;) Sollten dann die Daten dort nicht in Ebenen organisiert sein?

Ja, das stimmt, die Ebenenorganisation verwende ich auch schon, nur habe ich die Befürchtung, dass auch Polygone auftreten können, die innerhalb der gleichen Ebene liegen und sich aber überschneiden. Es wird wohl auf jeden Fall darauf hinauslaufen, dass ich sicherstellen muss, dass die Polygone aus der Datenbank immer korrekt sortiert (auch innerhalb der Ebenen) vorliegen auch übergeben werden.

Gruß, Carsten.

ScottManDeath
2007-10-10, 08:33:36
alternativ kannst Du das Ganze auch mit einer Ortho Projektion ohne Z Buffer in eine Textur render und dann als Quad in die 3D Szene rendern. Im Ortho Modus kannst Du auch jedem Polygo einen eigenen Z Wert geben....

rotalever
2007-10-10, 14:55:44
alternativ kannst Du das Ganze auch mit einer Ortho Projektion ohne Z Buffer in eine Textur render und dann als Quad in die 3D Szene rendern. Im Ortho Modus kannst Du auch jedem Polygo einen eigenen Z Wert geben....
Hat vor allem den Vorteil, dass sich ja bei einer Karte nicht ständig was ändert und so der ganze Quatsch nicht jedes mal neu gezeichnet werden muss. Denn das sind sicherlich einige Quads die man da für die Karte rendern muss und wenn das auch noch mit Blending ist, dann geht das schön auf die Fillrate und Bandbreite.

Chris Lux
2007-10-10, 20:30:01
Ich glaube genau fuer so einen fall ist glPolygonOffset die perfekte Loesung.