Как правильно преобразовать нормали поверхности, определенные в мировом пространстве, в нормали в экранном пространстве? Я не думаю, что их можно просто умножить на матрицу проекции, потому что деление перспективы преобразует вещи в пространство клипа, и, насколько я понимаю, в этом пространстве плоскости, которые копланарны плоскости изображения, остаются копланарными.
Но преобразование, которое я ищу, должно привести к преобразованию нормалей, так что нормали синего мира, изображенные на рисунке A, должны приводить к разным нормам экранного пространства (потому что, хотя их плоскости копланарны плоскости изображения, они не обращены к камере) - с другой стороны, изображенные нормали на графике B после преобразования должны быть (более или менее) равными, поскольку их поверхности обращены к камере.
Какое преобразование я ищу? как это рассчитать?
Мне это нужно для некоторых эффектов экранного пространства.