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

简介:

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


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


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

目录
相关文章
|
10月前
|
算法 前端开发
圆和矩形是否有重叠
圆和矩形是否有重叠
67 0
|
12月前
|
存储 编解码 算法
凹凸贴图和法线贴图的区别
凹凸贴图适用于一些简单的凹凸效果,而法线贴图则更适合提供更高精度和真实感的凹凸纹理效果
250 1
|
11月前
|
存储 vr&ar 图形学
如何设置3D模型法线贴图?
如何设置3D模型法线贴图?
108 0
二维坐标系空间变换(详细解读,附MATLAB代码)
二维坐标系空间变换(详细解读,附MATLAB代码)
768 0
二维坐标系空间变换(详细解读,附MATLAB代码)
|
1月前
|
图形学
球体投影到像素空间的大小
球体投影到像素空间的大小
23 0
|
4月前
|
算法
[Halcon&几何] 矩形顶点和对角连线角度计算
[Halcon&几何] 矩形顶点和对角连线角度计算
110 0
|
9月前
|
人工智能 算法 BI
|
11月前
|
存储 数据可视化 开发者
位移贴图和法线贴图的区别
位移贴图和法线贴图在原理、使用范围、精度和复杂度、生成方式以及存储方式等方面存在差异,开发者可以根据具体需求选择适合的贴图技术。
157 0
|
数据可视化 C++
高斯正反算—投影坐标转大地坐标、大地坐标转投影坐标(附有完整代码及测试结果)
高斯正反算—投影坐标转大地坐标、大地坐标转投影坐标(附有完整代码及测试结果)
|
计算机视觉
五、OpenCV绘制线、矩形、圆等基本几何形状
通过javaOpenCV中的Imgproc函数进行简单几何图形的绘制
119 0
五、OpenCV绘制线、矩形、圆等基本几何形状