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ß
[gelöst]Mathematik: Maximale sichtbare 3D-Koordinaten
[gelöst]Mathematik: Maximale sichtbare 3D-Koordinaten
Zuletzt geändert von joggel am 01.09.2021, 12:20, insgesamt 1-mal geändert.
- xq
- Establishment
- Beiträge: 1585
- Registriert: 07.10.2012, 14:56
- Alter Benutzername: MasterQ32
- Echter Name: Felix Queißner
- Wohnort: Stuttgart & Region
- Kontaktdaten:
Re: Mathematik: Maximale sichtbare 3D-Koordinaten
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
Danach schneidest du deine Linien mit den Planes und falls es Schnittpunkte gibt, nimmst du die kürzeste Ergebnissstrecke und gut
War mal MasterQ32, findet den Namen aber mittlerweile ziemlich albern…
Programmiert viel in Zig und nervt Leute damit.
Programmiert viel in Zig und nervt Leute damit.
Re: Mathematik: Maximale sichtbare 3D-Koordinaten
Okay, ich recherchiere mal nach Culling-Tutorial.
Danke erstmal..
Danke erstmal..
Re: Mathematik: Maximale sichtbare 3D-Koordinaten
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
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
Lieber dumm fragen, als dumm bleiben!
https://jonathank.de/games/
https://jonathank.de/games/
Re: Mathematik: Maximale sichtbare 3D-Koordinaten
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...
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...