切线空间,为什么要有?

主要原因:

基于模型坐标系的法线贴图,在换到不同的模型下时候法线贴图不能复用。

引入切线空间让法线贴图可以在相同网格形状模型(或许是子模型)但不同模型坐标系的多个模型间可以共享法线贴图。

 

切线空间定义:Z轴(法线方向),X轴(横向),Y(纵向)

1. 由此,切线空间内,与Z轴夹角(0,90)度,取值为(0,1),而x,y为(-1,1),正数归一化后z(0.5,1),xy(0,1),所以法线贴图一般是蓝色的

2. 用切线空间的话,在shader中计算时,就需要做TBN变换,会有一定开销

 

切线空间的优点:

1. 自由,object-space normal记录的是绝对法线信息,只能用于特定模型;而切线空间是相对信息,适配性好

2. UI动画,原理同上,前者不能有正确的UV动画,后者可以

3.资源压缩,Tangent-Space的法线图,z方向总是正方向,可以仅存储XY方向,推导得到Z方向,这样的话可以进行压缩;Object-Space方向不确定,不可压缩。

posted on 2020-08-28 21:22  胖福  阅读(478)  评论(0编辑  收藏  举报

导航