Для чего в вершинном шейдере AGAL используется компонент «w» в выходном шейдере?

Я понимаю компоненты «xyz» положения вершины, но что делает «w»? Можно ли оставить одно и то же постоянное значение все время?

Пример:

mov op.xyz, va0.xyz
mov op.w vc0.w

person bigp    schedule 29.12.2011    source источник
comment
Из того, что я прочитал, значение w часто используется на практике для рендеринга световых эффектов. Из документации по классу Vector3D: Четвертый элемент объекта Vector3D (в дополнение к свойствам x, y и z) может содержать такие данные, как угол поворота. Я знаю, что это ужасный ответ.   -  person jpwrunyan    schedule 11.04.2012
comment
Ха-ха, это была хорошая попытка @jpwrunyan. Однако кажется, что это больше, чем просто поле для хранения данных. Я почти уверен, что играл с ним в прошлом, и он меняет масштаб модели. Хотя, возможно, я модифицировал другие значения и получил неправильное впечатление: S. Спасибо, что поделились тем, что вы нашли в документах :)   -  person bigp    schedule 11.04.2012
comment
Да, я на самом деле начал писать ответ, говоря об этом, но понял, что все еще не понимаю математику. Затем я изменил свой ответ на просто Вам нужно «w», чтобы вы могли выполнять матричные вычисления, необходимые для поворота и положения (т.е. матрица 1x4 для действительного умножения на 4x4), но затем решил, что если кто-то отправит мне такой ответ, я набил бы им рот... но да, это для ротации. Я не могу объяснить лучше, чем это, не делая многочисленных задниц.   -  person jpwrunyan    schedule 13.04.2012


Ответы (1)


Я не знаком с flash, но кажется, что вы имеете дело с однородными координатами. Если вы имеете дело только с вершинами, можно оставить значение 1.

person Jens Björnhager    schedule 29.12.2011