切线空间(Tangent space)详解

切线空间在3D图形处理中扮演重要角色,尤其在法线贴图计算中。当处理规则曲面如球体、圆环时,切线、副法线和法线容易计算,但对三角形网格则复杂些。切线空间由法线N、切线T和副法线B定义,每个顶点的切空间不同。本文探讨如何在已知三角形顶点和纹理坐标的情况下计算N、T和B,通过向量关系和叉乘确定TBN矩阵。了解切线空间有助于理解3D对象纹理坐标与世界坐标之间的变换关系。
摘要由CSDN通过智能技术生成

题记:法向量的变换矩阵为“顶点变换矩阵的逆矩阵的转置”,具体原因见http://blog.csdn.net/aquathinker/article/details/6610731

切线空间在法线贴图中有着重要作用,通常需要把灯光转换到切线空间进行计算(考虑到现有的图形硬件,完全没有这个必要)。对由参数方程计算出的规则曲面(比如,球体,圆环)来说,很容易通过方程计算出切线空间,但对任意的三角形网格来说,则没有那么简单。

切线空间是一个三维空间。对3D空间中的一个顶点来说,切空间的三条坐标轴分别对应该点的法线N,切线T,和副法线(binormal)B,显然,对不同的顶点来说,切空间是不同的,切线空间的三条坐标轴是依赖于几何体顶点坐标及对应的纹理坐标的。那么,如下图所示,已知三角形三个顶点及其纹理坐标的时候,如何计算出N,T,B呢?(其中RGB三个彩色坐标轴表示世界坐标系,黑色坐标轴表示切线空间坐标系)

值得注意的是:

(1)顶点坐标v0, v1,v2存在于世界坐标系,纹理坐标c0, c1,c2存在于纹理坐标系下。

(2)向量v01 = v1 – v0与向量c01 = c1 – c0 = (U1-U0, V1-V0) = ( U01 ,V01)方向一致;向量v02 = v2 – v0与向量c02 = c2 – c0 = (U2-U0, V2-V0) = ( U02 ,V02

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值