Opengl 从高度图计算的法向量位于哪个坐标系?
我读了很多关于高度图和法线图的资料,有很多问题: 我们可以从heightmap生成法线贴图: 如果我们在S和T方向有:Opengl 从高度图计算的法向量位于哪个坐标系?,opengl,textures,shader,heightmap,Opengl,Textures,Shader,Heightmap,我读了很多关于高度图和法线图的资料,有很多问题: 我们可以从heightmap生成法线贴图: 如果我们在S和T方向有: S(i,j)= <1,0,aH(i+1,j)−aH(i−1,j)> T(i,j)= <0,1,aH(i,j+1)−aH(i,j−1)> 然后我们将(Nx,Ny,Nz)映射到(r,g,b),这是我们从高度映射生成法线映射的方法 我尝试了几种高度贴图和漫反射贴图(将漫反射转换为灰度作为高度贴图)。简单的可以提供相对较好的法线贴图。一旦图像变得更复杂,结果就
S(i,j)= <1,0,aH(i+1,j)−aH(i−1,j)>
T(i,j)= <0,1,aH(i,j+1)−aH(i,j−1)>
然后我们将(Nx,Ny,Nz)映射到(r,g,b),这是我们从高度映射生成法线映射的方法
我尝试了几种高度贴图和漫反射贴图(将漫反射转换为灰度作为高度贴图)。简单的可以提供相对较好的法线贴图。一旦图像变得更复杂,结果就会非常糟糕
我的问题是:
- 这个法向量在哪个坐标系 我感觉它就在物体的表面,指向法线。这就是所谓的“TBN”空间吗 但这里没有T和B的信息
- 如果t是切线空间,那么对于不同的三角形,我们会有不同的t,那么不同的三角形会有不同的t/B/N向量
- 如何从法线贴图计算TBN?我读这本书时有点困惑,看看这个矩阵:
s1,t1 = < s1 − s0,t1 − t0 > s2,t2 = < s2 − s0,t2 − t0 > | Tx Ty Tz | | s1 t1 | | Q1x Q1y Q1z | | Bx By Bz | = inverse of | s2 t2 | | Q2x Q2y Q2z |
s2和s1代表什么,我知道(Q1x Q1y Q1z),它们是法线贴图中的(x,y,z)值还是(r,g,b)值,s2和s1代表(x,y)位置,法线贴图上的像素位置吗s1,t1=
s2,t2= |Tx Ty Tz | | s1 t1 | | Q1x Q1y Q1z| |Bx乘以Bz |=| s2 t2 | Q2x Q2y Q2z的逆|
s1,t1 = < s1 − s0,t1 − t0 >
s2,t2 = < s2 − s0,t2 − t0 >
| Tx Ty Tz | | s1 t1 | | Q1x Q1y Q1z |
| Bx By Bz | = inverse of | s2 t2 | | Q2x Q2y Q2z |