Почему пространство клипа всегда называют «однородным пространством клипа»?

12

Почти во всем, что я прочитал, я заметил, что перед термином «пространство клипа» добавлено слово «однородный». Теперь я понимаю, что это примерно означает «все то же самое», но я не понимаю, почему существует необходимость сказать «однородное пространство клипа». Когда пространство клипа не однородно и почему мы должны дифференцироваться? И в этом отношении, что именно это означает, что мы называем это "однородное пространство клипа"? Гомогенный по отношению к чему? Каким образом вершины "все одинаковые"?

Натан Ридли
источник

Ответы:

22

Клип пространство называется однородным, потому что значения в нем используют однородные координаты , то есть они имеют форму [xyzw] вместо [xyz] . Чтобы получить последнее, перспективное деление все еще должно произойти:

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

Причина отсечения выполняется перед перспективным делением, потому что деления являются дорогостоящими операциями. Вместо тестирования, например, |x| > 1 в пространстве NDC, мы можем просто протестировать |x| > |w|в однородном пространстве клипа, что дает точно такой же результат и позволяет выполнять отсечение перед делением.

Сэм Хоцевар
источник
2
Голосовали за объяснение, почему отсечение в четырехмерном однородном пространстве дешевле, чем в трехмерном пространстве НЦД. Я думаю, что это было впервые замечено Джимом Блинном и ME Newell. Даже после отсечения выживающие точки подвергаются такому (дорогостоящему) разделению перспективы, однако количество точек теперь будет значительно меньше после отсечения.
legends2k
Что вы подразумеваете здесь под «отсечением», или, точнее, под «отсечением выполняется»?
«Причина, по которой обрезание выполняется перед перспективным делением, состоит в том, что деления являются дорогостоящими операциями», - неправильно это потому, что вы ничего не можете спроецировать с z <= 0. по логике он не может попасть в плоскость проекции. это также, почему ближняя плоскость не может быть в 0. все должно быть перед камерой. поэтому отсечение должно произойти перед проекцией.
Лужа