Seite 1 von 1

[gelöst]Mathematik: Maximale sichtbare 3D-Koordinaten

Verfasst: 01.09.2021, 09:05
von joggel
Guten Morgen,

ich habe eine eher mathematische Frage:

Ich will ein Koordinatenkreuz in meinem 3D-View rendern, wie man das auch von anderen 3D-Editoren kennt.
So etwas wie das hier: https://docs.godotengine.org/de/latest/ ... to_3d3.png

Die Koordinatenachsen sind bei mir simple Linien, und ich gebe ihre Vertices in Weltkoordinaten an; also keine Transformation durch ViewMatrix oder so.
Nun frage ich mich, wie ich die Längen der Linien berechnen muss, damit sie eben bis zum Rand des Viewports bzw. des View-Frustum gehen.

Hat da jemand einen Lösungsvorschlag?

Gruß

Re: Mathematik: Maximale sichtbare 3D-Koordinaten

Verfasst: 01.09.2021, 09:11
von xq
Du kannst aus deinem Viewport 6 Planes extrahieren (near, far, und die vier Bildschirmkanten) Wie das geht, findest du in jedem Culling-Tutorial ;)

Danach schneidest du deine Linien mit den Planes und falls es Schnittpunkte gibt, nimmst du die kürzeste Ergebnissstrecke und gut

Re: Mathematik: Maximale sichtbare 3D-Koordinaten

Verfasst: 01.09.2021, 09:13
von joggel
Okay, ich recherchiere mal nach Culling-Tutorial.
Danke erstmal..

Re: Mathematik: Maximale sichtbare 3D-Koordinaten

Verfasst: 01.09.2021, 10:38
von Jonathan
Das hier schaut zum Ebenen extrahieren gut aus:
https://www.gamedevs.org/uploads/fast-e ... matrix.pdf

Alternativ: Ich würde die Linien einfach sehr lang rendern. So 1e6 Einheiten oder so. Clipping passiert eh, und mir fällt kein Grund ein, weshalb das mit großen Zahlen langsamer sein könnte. Man will vielleicht bloß nicht bis float-max gehen, damit man sich die Genauigkeit nicht komplett ruiniert. Es dauert 30 Sekunden um das einzubauen, man kann nichts falsch machen, es ist garantiert schneller als die exakte Länge vorher per Hand zu berechnen und du wirst vermutlich niemals in eine Situation kommen, wo du mit dieser Lösung Probleme bekommst. Aber es ist halt irgendwie nicht sonderlich elegant, bzw. unsauber :D

Re: Mathematik: Maximale sichtbare 3D-Koordinaten

Verfasst: 01.09.2021, 12:20
von joggel
Danke für den Link bzw PDF.
Speichere ich mir wieder ab.

Und ja, da hast du eigentlich recht. Clipping passiert eh und Probleme sollte das auch nicht bereiten.
Ich werde das wohl so machen, dass ich das nicht von Hand berechne, sondern die Vertices eben auf einen sehr großen Wert setze...