Warum haben geglättete Netze in 3D Studio die gleiche Anzahl von Scheitelpunkten / Dreiecken? Wie können sie dann mit derselben Geometrie geglättet werden?

11

Ich versuche zu verstehen, warum Netze, die in 3D Studio (Modifikatoren / Glättung) geglättet werden, vor oder nach diesem Prozess dieselbe Anzahl von Scheitelpunkten / Flächen sowie genau dieselbe Geometrie aufweisen.

Im folgenden Beispiel haben beide Netze 32 Eckpunkte und 60 Flächen.

Geben Sie hier die Bildbeschreibung ein

Geben Sie hier die Bildbeschreibung ein

Obwohl ich Erfahrung in der Programmierung (c ++ und c #) habe, bin ich ein ziemlicher Anfänger in der Computergrafik. Daher erwartete ich, dass das geglättete Aussehen eines geglätteten Netzes zusätzliche Eckpunkte erfordern würde, dh eine Unterteilung von Dreiecken, um ein detaillierteres endgültiges Netz zu erhalten. Dies scheint jedoch nicht der Fall zu sein.

Deshalb frage ich:

1) Wie ist die Glättung möglich, ohne die Detaillierung der Netzgeometrie zu erhöhen?

2) Erhöht die Glättung zumindest den zum Speichern des neuen Netzes zugewiesenen / verwendeten Speicher im Vergleich zum ursprünglichen?

Erklärungen sind sehr willkommen, aber auch Referenzen (akademisch oder nicht) sind willkommen.

Louis15
quelle
Auch hier nicht besonders erfahren, aber ich nehme an, Sie könnten einen anderen Shader in einem verwenden. Lamberts würde wie der rechts aussehen. Aber Feinschmecker würden sie mitteln und sie glatter erscheinen lassen. prosjekt.ffi.no/unik-4660/lectures04/chapters/jpgfiles/…
Andrew Wilson
1
Vielen Dank für Ihren Kommentar! Ehrlich gesagt war das einzige, was ich getan habe, den Modifikator "Glatter" anzuwenden. Es wurde vorher kein Shader hinzugefügt und ich habe danach keinen Shader hinzugefügt.
Louis15
Die historischen Begriffe lauten "das ist der Unterschied zwischen flacher und Gourauds Schattierung". In der Praxis bezieht sich dies auf Normalen, wie sie von joojaa
v.oddou am
Welche Software haben Sie im Screenshot verwendet? THX :)
xyz

Antworten:

13

Glatt in diesem Fall lassen die Oberflächennormalen an Scheitelpunkten auf die gleiche Weise zeigen, wenn sie interpoliert werden, sehen sie glatt aus. Meshsmooth würde Eckpunkte hinzufügen.

1) Wie ist die Glättung möglich, ohne die Detaillierung der Netzgeometrie zu erhöhen?

Menschliche Augen können die Krümmung nur an den Rändern von Objekten sehen. Sie können lediglich die Glätte approximieren und die Gradientensteigung verarbeiten. Ein kontinuierliches Feld verleiht also einen Hauch von Glätte. Das Auge ist jedoch äußerst empfindlich gegenüber plötzlichen Farbveränderungen und interpretiert dies als harte Falte.

Durch Interpolation der Scheitelpunktnormalen erhält Ihre Oberfläche das Aussehen eines reibungslosen Fließens. Da diese Normale zur Berechnung der endgültigen reflektierten Farbe verwendet wird, erhalten Sie ein glattes Farbfeld.

Flach schattiert gegen glatt schattiert

Bild 1 : Eine flach schattierte Normalen im Vergleich zu den Normalen einer glatten Interplation. Die schwarzen Normalen liegen auf einem Scheitelpunkt. Die farbigen werden interpoliert.

Es gibt nichts, was besagt, dass wir eine lineare Interpolation durchführen müssen. In der Tat können wir durch Störung der Normalen dazu führen, dass die flache Oberfläche ihr Aussehen ändert. So funktionieren Bump Mapping und normales Mapping. Der Effekt kann überzeugend sein, es sei denn, die Oberflächenkante spielt eine zu große Rolle an der Stelle, an der die Illusion bricht.

Geben Sie hier die Bildbeschreibung ein

Bild 2 : eine flache schattierte Oberfläche (Rückseite), eine glatte schattierte Oberfläche (Mitte) und eine abgebildete glatte Normalen. Die Illusion einer welligen Oberfläche bricht, weil die Kante im Bild eine so herausragende Rolle spielt, dass Sie stattdessen die Normalen erhöhen könnten

2) Erhöht die Glättung zumindest den zugewiesenen Speicher

Schwer zu sagende Dinge über die zugrunde liegende Grafik-Engine. Die Normalen müssen ohnehin auf die Grafikkarte übertragen werden. Diese Daten werden höchstwahrscheinlich zwischengespeichert, können jedoch (in beiden Fällen) im laufenden Betrieb berechnet werden.

Da Max Glättungsgruppen verwendet, scheint mir die Speichernutzung unabhängig davon konstant zu sein. Schwer zu sagen, selbst wenn es nicht zwischengespeichert ist, würde es keinen großen Unterschied machen. Es macht den Shader winzig ein bisschen komplizierter, aber nur höchstwahrscheinlich ist diese Komplexität vorhanden, ob Sie ihn verwenden oder nicht.

joojaa
quelle
Gute Antwort! Genau das habe ich gesucht: eine konzeptionelle Erklärung, die wichtige Details nicht ausließ, aber dennoch klar und direkt auf den Punkt kam. Vielen Dank
Louis15
2
"Das Auge ist jedoch äußerst empfindlich gegenüber plötzlichen Farbveränderungen und interpretiert dies als harte Falte." Tatsächlich ist das menschliche visuelle System sehr gut darin, Änderungen in der Ableitung der Schattierung zu erkennen. Die Schattierung kann kontinuierlich sein, aber wenn es wie in diesem Bild Diskontinuitäten in der Änderungsrate gibt, können diese überraschend auffällig sein. Suche nach Mach-Bandeffekt.
Simon F
1
@SimonF deshalb sehen sie eine Falte, weil sie die Kantenerkennung und all das ableiten. Aber das menschliche Gehirn entwickelt den Gradientenfluss nicht wirklich weiter. 2 Glättungen sind den meisten Menschen fast gleich (es gibt zum Beispiel keine zweite Derviate-Wahrnehmung). Eine glatte Kugel ist also glatt, auch wenn sich die Normalen nicht vollständig kugelförmig verhalten, solange sie glatt sind. Deshalb kommen wir mit dem Trick davon. Sehr wenige Oberflächen verhalten sich tatsächlich so.
Joojaa
"(es gibt zum Beispiel keine zweite Derviate-Erkennung)" Ich habe gerade Glassners "Prinzipien der digitalen Bildsynthese" (Band 1, Seite 29) überprüft ... und jetzt bin ich verwirrter als je zuvor.
Simon F
@SimonF Sie können verwirrt sein über die Reflexionen, die natürlich eine Ableitung niedriger sind als die Oberfläche. Somit kann ein Mensch unter bestimmten Bedingungen die zweite Ableitung erfassen. Der Punkt ist jedoch eher, dass Menschen Falten sehen können, aber sie machen keinen bedeutenden Unterschied zwischen allen verschiedenen Veränderungen. Die Tatsache, dass eine Reflexion leicht abweicht oder in die falsche Richtung geht, ist für einen Menschen nicht automatisch erkennbar. Ohne tiefere Analyse. Solange es keine abrupten Veränderungen gibt, ist dies unter vielen Umständen größtenteils gut genug. Wir sollten dies jedoch im Chatraum fortsetzen
joojaa