Wie generiere ich Oberflächennormalen?


9

Ich habe einige Debug-Zeichenmethoden in meiner Engine, die Geometrie erzeugen können, die zum Debuggen nützlich ist, wie Kugeln und Würfel.

Im Moment generiere ich keine Normalen für diese Formen. Gibt es eine Allzweckmethode zum Erzeugen von Gesichtsnormalen und Normalen pro Scheitelpunkt für ein beliebiges Netz? (Ich würde mir vorstellen, dass Sie Gesichtsnormalen benötigen würden, um Normalen pro Scheitelpunkt zu erzeugen?)

Antworten:


12

Verwenden Sie zum Generieren von Gesichtsnormalen das Vektorkreuzprodukt aus zwei Kanten jedes Dreiecks und normalisieren Sie dann das Ergebnis. Stellen Sie sicher, dass Sie die richtigen Anweisungen haben, da sonst einige Normalen ein- und andere herausweisen.

Scheitelpunktnormalen wären dann eine Interpolation aller Gesichtsnormalen, an die der Scheitelpunkt angehängt ist.


Sie meinen vermutlich eine normalisierte Interpolation (oder einfach eine normalisierte Summation);)
Andrew Russell

3
Nach dem Summieren immer renormieren! Selbst wenn Sie aus normalisierten Vektoren interpoliert haben, wird das Ergebnis NICHT normalisiert!
Bob Somers

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.