法线贴图部分细节

  1. 原始贴图每个像素有R\G\B\A, 4个通道共32位,因此每个通道仅32/4=8位。也就能表示0~255个整数值
    1. 对应在shader中,从贴图采样后/255得到0~1的值
  2. 法线贴图的可复用性-将法线在曲面顶点处所在的切线空间下的方向做记录,所记录的为归一化的方向(x,y,z)即 x^2+y^2+z^2 = 1
    1. 因此x\y\z的范围均为(-1,1),而为了将该范围写入到贴图中,则将其(+1)/2映射到(0,1)这一范围在乘255得到具体的像素值写入到贴图。。
  3. 为什么法线贴图都是偏蓝色居多?
    1. 切线空间下,法线的朝向z都是垂直于曲面朝外,那么对应的坐标是(0,0,z)且z>0. 将其(+1)/2后*255后即B通道大于127.
  4. 怎么用RG两个通道记录法线?
    1. R\G通道对应法线在切线空间的x和y,而x、y范围为(-1,1),因此采样出来的x,y(0~1)做*2-1的操作转化到(-1,1),由于方向是归一化后的,因此对应的z=1-sqrt(x^2+y^2),法线都是朝外z总是>0,因此不用考虑-z
  5. RG两个通道来记录法线存在的问题
    1. 与RGB三通道存储存在不同的结果

               体现在纹理像素密度不够比较明显,这种情况造成采样时存在着滤波操作

                        比如遇到法线贴图相邻两纹素记录的是(x0,y0,z0)和(x1,y1,z1).,但由于纹素不够的状况采样的是中间值,由双线性滤具体区分了三通道和二通道的不同状况,因此得到的z值其实在两种情况下是不同的

                 纹理压缩方式,如etc是利用RGB三通道的数据当成一个整体去压缩,这种情况下由于只存储了RG,B通道存储的是其他信息,因此计算出的法线会受B的影响得到的错误的信息

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值