法线贴图中法线值的坐标空间选择

法线贴图是目前游戏中被广泛使用的技术,通过从贴图采样法线可以表现物体的凹凸,在法线贴图的实现上,有一个重要的问题需要考虑,就是法线贴图上的法线值应该取在哪个空间.


一  模型空间:法线就直接取建模时的模型空间,这是最容易想到的方法。这种方法在runtime的时候,将光线从世界坐标转换到模型的局部坐标,然后在局部空间同每个pixel的采样到的法线做光照计算。这种方法有个最大的缺点就是法线贴图需要的是唯一化的UV(即模型的每个顶点的nv都不能重复,为什么?想象一下即可,模型需要完全展开到发帖上),这意味着法帖的尺寸较大,不能复用,占内存。


二切线空间:首先切线空间的定义,模型顶点处,以顶点的法向为z轴,模型的局部y轴方向为y轴,用他们叉乘出x轴,在用x和z叉乘出新的y。这样建立的坐标系是和这个点的法向相切的,这个空间叫做正切空间,这个坐标系的数值表示称为改点的正切值,通常和位置uv等其他一并放入顶点buff里。切线空间法线的做法是将某点的法线转换到该点的正切空间上,存储正切空间的法线值。因为正切空间的法线表征了相对这点的凸起情况,所以法帖是可以在模型的不同位置重用的,比如可以平铺何以对折,可以某些部位重用。在runtime计算的时候,要讲光线转换到正切空间计算。节省了贴图的内存,但是要附加顶点的正切属性。这是目前较为流行的法线计算方法。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值