将世界空间中定义的表面法线转换为屏幕空间中的法线的正确方法是什么?我不认为它们可以简单地乘以投影矩阵,因为透视划分将事物转换为剪辑空间,据我所知,在这个空间中与图像平面共面的平面保持共面。
但是我正在寻找的转换应该导致转换的法线,这样图形 A 中描绘的蓝色世界法线应该导致不同的屏幕空间法线(因为,即使它们的平面与图像平面共面,它们也不面向相机) - 另一方面,图形 B 中描绘的法线在转换后应该(或多或少)相等,因为它们的表面面向相机。
我在寻找什么转变?如何计算?
我需要这个来实现一些屏幕空间效果。
最佳答案
您正在寻找关于基的变换矩阵。关于如何计算这个矩阵的步骤有非常好的视频。查询 KhanAcademy video .
编辑
您没有提供有关您使用的技术(OGL、DX、着色器、自己的投影等)的任何信息,但您绝对应该阅读一些有关切线空间的文章,例如Messing with Tangent Space ..
关于3d - 将世界空间法线转换为屏幕空间法线,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14317350/