Warum wird der Clip-Bereich immer als "homogener Clip-Bereich" bezeichnet?

12

Mir ist in fast allem, was ich bisher gelesen habe, aufgefallen, dass dem Begriff "clip space" das Wort "homogen" vorangestellt wird. Jetzt verstehe ich, dass es ungefähr "egal" bedeutet, aber ich verstehe nicht, warum es das ausdrückliche Bedürfnis gibt, "homogenen Clip-Raum" zu sagen. Wann ist der Clipraum nicht homogen und warum müssen wir differenzieren? Und was genau bedeutet es, dass wir es "homogenen Clip-Raum" nennen? Homogen in Bezug auf was? Inwiefern sind die Eckpunkte "alle gleich"?

Nathan Ridley
quelle

Antworten:

22

Der Clip-Raum wird als homogen bezeichnet, da die darin enthaltenen Werte homogene Koordinaten verwenden , dh sie haben die Form [xyzw] anstelle von [xyz] . Um letztere zu erhalten, muss noch eine perspektivische Aufteilung erfolgen:

 [x y z w]      [x/w y/w z/w]
homogeneous     normalized device
clip space      coordinates (NDC)

Der Grund für das Abschneiden vor der perspektivischen Aufteilung liegt darin, dass Aufteilungen kostspielige Vorgänge sind. Anstatt zB |x| > 1 im NDC-Raum zu testen, können wir nur |x| > |w|im homogenen Clip-Raum testen , was genau das gleiche Ergebnis liefert und das Ausschneiden vor der Division ermöglicht.

sam hocevar
quelle
2
Ausgezeichnet für die Erklärung, warum das Ausschneiden im homogenen 4D-Raum billiger ist als im 3D-NDC-Raum. Ich denke, dies wurde zuerst von Jim Blinn und ME Newell entdeckt. Selbst nach dem Abschneiden werden die überlebenden Punkte dieser (teuren) perspektivischen Aufteilung unterzogen, die Anzahl der Punkte wird jedoch nach dem Abschneiden nun erheblich geringer sein.
legends2k
Was meinen Sie hier mit "Clipping", genauer gesagt mit "Clipping wird durchgeführt"?
"Der Grund für das Abschneiden vor der perspektivischen Aufteilung ist, dass Aufteilungen kostspielige Operationen sind". Das liegt daran, dass Sie mit z <= 0 nichts projizieren können. es kann logischerweise nicht die Projektionsebene treffen. Das ist auch der Grund, warum das nahe Flugzeug nicht auf 0 stehen kann. Alles muss vor der Kamera sein. Daher muss das Beschneiden vor der Projektion erfolgen.
Pfütze