Unity3d中法线在世界空间或切线空间计算的原理 整理链接

Posted k1dd

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Unity3d中法线在世界空间或切线空间计算的原理 整理链接相关的知识,希望对你有一定的参考价值。

https://blog.csdn.net/liu_if_else/article/details/73604356

https://blog.csdn.net/xzw734173384/article/details/90404896?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-3.compare&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-3.compare

https://blog.csdn.net/liran2019/article/details/106452266?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-9.compare&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-9.compare

https://blog.csdn.net/jxw167/article/details/77666599?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-1.compare&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-1.compare

 

法线变换的注意事项  v.normal=UnityObjectToWorldNormal(v.normal);

进行非统一缩放时,如果使用和变换顶点相同的变换矩阵来变换法线,就会得到错误的结果,即变换后的法线方向与平面不再垂直。

1、如果变换矩阵是正交矩阵,那么可以使用用于变换顶点的变换矩阵来直接变换法线。

2、如果变换只是包括旋转变换,那么这个变换矩阵就是正交矩阵

3、如果变换只包含旋转和统一缩放,而不包含非统一缩放,那就可以利用统一缩放系数(k)来得到变换矩阵的逆转置矩阵(避免了计算逆矩阵的过程):

 技术图片

4、如果变换中包含了非统一变换,那么就必须通过 求解逆矩阵 来得到 变换法线的矩阵

 

以上是关于Unity3d中法线在世界空间或切线空间计算的原理 整理链接的主要内容,如果未能解决你的问题,请参考以下文章

shader数学基础之法线贴图切线空间

shader数学基础之法线贴图切线空间

XDRender_LightMode_Anisotropic 各项异性着色

计算 3D 切线空间

[Unity Shader] 切线空间的法线贴图

带法线贴图的高光着色