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?)

Cubed2D
quelle

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.

Skizz
quelle
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