将世界空间法线转换为屏幕空间法线

use*_*931 6 3d space transformation projection normals

将世界空间中定义的曲面法线转换为屏幕空间法线的正确方法是什么?我不认为它们可以简单地乘以投影矩阵,因为透视划分将事物转换为剪辑空间,据我所知,在这个与图像平面共面的空间平面保持共面.

但是我正在寻找的变换应该导致变换法线,使得图形A中描绘的蓝色世界法线应该导致不同的屏幕空间法线(因为,即使它们的平面与图像平面共面,它们也不会面向相机) - 另一方面,图形B中描绘的法线应该在变换之后(或多或少)相等,因为它们的表面面向相机.

在此输入图像描述

我在寻找什么样的转变?怎么计算呢?

我需要这个用于一些屏幕空间效果.

Sor*_*ror 1

您正在寻找有关基础的变换矩阵。有一个关于如何计算这个矩阵的步骤的非常好的视频。查看可汗学院视频

编辑

您没有提供有关您正在使用的技术的任何信息(OGL、DX、着色器、自己的投影等),但您绝对应该阅读一些有关切线空间的文章,例如Mesing with Tangent Space ..