(转)计算切线空间

切线空间:

因为显卡一般是以三角形作为最小渲染单位的,我们假设三角形的三点为p1, p2, p3,设该三角形所对应的一个空间为(T,B,N), 其中T和B构成的平面就是三角形所在平面, 而T和B分别对应U和V方向,此空间
的作用是让任何向量从tangent space变换到world space(实际上我们最终要求的是反过来的,先这样好作说明,最后求逆即可)

那么P2-P1的向量p必定在T及B所构成的平面上,由此推出:

P2-P1 = (U2-U1)*T+(V2-V1)*B
P3-P1 = (U3-U1)*T+(V3-V1)*B

设v1=P2-P1; v2=P3-P1; s1=U2-U1; s2=U3-U1; t1=V2-V1; t2=V3-V1
整理得出如下矩阵:

|v1|     |s1  t1 |     |T|
|   | =  |          | *  |  |
|v2|     |s2  t2 |     |B|

v1 v2 s1 s2 t1 t2都是已知的,这样即可求得T和B,而N我们就用T和B的叉乘即可得到。

最后要T和B和N反过来作用向量从world space变换到tangent space, 我们只要对其求逆即可。


好了,有了这个,我们在作Normal map等处理时就可让光线变到切线空间中再乘上Noraml图中的法线即可。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值