最简理解TangentSpace与WorldSpace转换
本来是很简单的东西,竟然一下子搜不到公式,离谱。
找到SP官网shader文档:
https://substance3d.adobe.com/documentation/spdoc/lib-vectors-shader-api-188976085.html
记录一下。
其中mat3是glsl中的,column major。这个乘法是行向量的乘法:

额外:T,B,N怎么来
估计N的方法太多了,论文有,PCL库有...最简可以由局部点云算梯度来
T在houdini中有这些方法估算:

其中MikkT在UE4里有。最简可以又3个vertex组成两个线性无关worldSpace的向量,又根据vertex的uv属性,(大部分情况下)也是两组线性无关的a*u+b*v向量,所以可以凑出1*u+0*v和0*u+1*v的worldSpace向量,当tangent/bitangent。