♥,.*,.♥,.*,.♥,.*,.♥,.*♥,.*,.♥,.*,.♥,.*,.♥,.*,.♥,.*,.♥,.*,.♥,.*,.♥♥,.*,.♥,.*,.♥,.*,.♥,.*♥,.*,.♥,.*,.♥,.*,.♥,.*,.♥,.*,.♥,.*,.♥,.*,.♥
目录
4.纹理映射
4.1 纹理分类
4.2 纹理的两种映射方法
4.3 纹理映射的一些问题
4.4 纹理反走样
4.5 二维纹理映射技术的曲线
4.6 三维纹理映射技术
4.7 纹理优化处理技术
♥,.*,.♥,.*,.♥,.*,.♥,.*♥,.*,.♥,.*,.♥,.*,.♥,.*,.♥,.*,.♥,.*,.♥,.*,.♥♥,.*,.♥,.*,.♥,.*,.♥,.*♥,.*,.♥,.*,.♥,.*,.♥,.*,.♥,.*,.♥,.*,.♥,.*,.♥
4.纹理映射
如果在光照明模型中,仅仅考虑表面法向的变化,并且假设表面的反射率是一个常数,则生成的景物表面就是颜色单一的光滑景物表面。
纹理:指物体的表面细节。
4.1 纹理分类
根据纹理定义域的不同,纹理可以分为二维纹理和三维纹理。
根据纹理的表现形式,纹理可以分为颜色纹理、几何纹理和过程纹理。
4.2 纹理的两种映射方法
(1)颜色纹理
确定表面上的颜色纹理有两种方法:
a.预先建立表面的纹理模型
b.纹理映射:建立表面上每一点与一已知图像上的点的对应关系,取图像上的相应点和颜色值作为表面上各点的颜色值。采用景物表面的参数化表示来确立表面的纹理映射坐标。即实现纹理图像在景物表面的映射。
纹理映射
景物表面的纹理属性有以下几种:
- 表面颜色,即表面的漫反射率
- 镜面发射分量,即表面的镜面反射率
- 透明度
- 表面法向
- 环境的漫反射和镜面反射效果
- 光源强度和色彩分布
如何纹理映射?
景物表面参数化表示为f(u,v)
纹理图像表示为T(s,t)
建立景物表面参数空间(u,v)和纹理图像空间(s,t)之间的一一对应关系。
有两种映射方法:
a.将纹理模式映射到物体的表面,然后再进行投影变换映射至投影平面,称为纹理扫描。
通常用线性函数进行纹理映射变换,实现纹理空间到物体空间的映射:
b.将投影平面的像素区域映射到物体的表面,在映射至纹理空间,称为像素次序扫描。
(2)三维/几何纹理
常用的三维纹理映射方法有:
a.凹凸映射:在不改变物体宏观几何的前提下,模拟物体表面粗糙的、褶皱的、凹凸不平的光照效果。
b.法向映射:利用法向纹理保证高质量的表面细节复现。
c.位移映射:利用纹理改变物体表面上点的几何位置,获得很强的深度感和细节。
4.3 纹理映射的一些问题
(1)纹理映射缩放
如果纹理图像的大小与纹理图像尺寸差别很大,则需要进行纹理的缩放。
a.若投影得到的像素数目比原始纹理大,则需要把纹理图像放大。
左图是采用最近领域滤波算法后的纹理放大效果,可以发现块状效果明显,图像质量差。
右图是采用最近四个纹素的双线性插值结果,可以发现锯齿状小时,图像质量好。
b.若投影得到的像素数目比原始纹理小,则需要把纹理图像缩小。
当纹理缩小的时候,多个纹素可能覆盖一个像素单元。
可以使用Mipmap方式,对纹理进行预处理,建立多个纹素覆盖单个像素的快速逼近计算的数据结构。这样,一个采样点可以检索出一个或者多个纹素的效果。
(2)纹理重复方式
- wrap or tile:纹理图像在表面重复。
- mirror:纹理图像在表面重复,但是每隔一幅进行翻转,在纹理的边界处,纹理可以保持连续。
- clamp:把[0,1)范围之外的进行截断,截断到[0,1)内的半个纹素。
- border:参数范围在[0,1) 之外的用单独定义的边界颜色或把纹理的边作为边界。用于在表面上印花样,地形绘制中相邻纹理的缝合。截断到[0,1)外的半个纹素。参数范围在[0,1) 之外的用单独定义的边界颜色或把纹理的边作为边界。用于在表面上印花样,地形绘制中相邻纹理的缝合。截断到[0,1)外的半个纹素。
(3)纹理与背景的叠加融合
- Replace(替换):把原来表面的颜色替换为纹理的颜色
- Decal(印花):与替换类似,但是如果纹理中含有Alpha值,则用它与表面的颜色进行混合。
- Modulate(调节):把表面的颜色与纹理颜色相乘。
4.4 纹理反走样
由于欠采样的原因,纹理会发生“走样”。
简单的点采样将产生严重的纹理采样现象。
(1)常用的纹理反走样方法
a.前置滤波方法
确定屏幕像素P上可见的景物表面区域A。
将区域A直接映射到纹理空间区域T。
取区域T内的所有纹理像素颜色值的平均作为景物表面区域A的平均纹理颜色。
代入光照明模型,计算出像素P应显示的光亮度值。
前置滤波效果:
b.超采样方法
将屏幕像素P的四个角点分别映射到纹理空间,得到四个纹理像素值。
将上述四个纹理颜色值取平均作为像素P所对应的可见表面区域的纹理颜色。
超采样方法效果:
c.Mipmap方法
此方法是目前应用最广的纹理反走样算法之一。
其通过预先计算并存储原始纹理图像的一组多分辨率版本,显示的节省纹理反走样的计算量。
其算法步骤为:
a.预处理
生成一个由不同分辨率图像构成的纹理图像序列。
从原始纹理图像出发,生成一个其分辨率为原始图像1/4的新的纹理图像版本。
(新版本中的每一个像素值取为原始图像中相对应的四个像素颜色值的平均)
b.映射
屏幕上的每一像素内的可见表面区域被映射到原始纹理图像上的一块区域。
估计该区域所覆盖的原始纹理图像中像素的个数并以此作为选取适当分辨率的纹理图像版本的一种测度。
从预先构造的纹理图像序列中找出压缩率最接近当前纹理像素与屏幕像素比率的两个纹理头像。
然后在相邻分辨率的两个纹理图像上计算当前屏幕像素映射点的纹理颜色值,计算方法为取加权平均。
Mipmap效果为:
4.5 二维纹理映射技术的缺陷
(1)在一般情况下,由纹理平面至景物表面的映射是一种非线性的映射。在曲面上曲率变化较大的区域可能发生纹理的非均匀变形,导致不真实的视觉效果。
(2)对具有非平凡拓扑(多个曲面拼接)的景物表面进行二维映射的时候,很那保证相邻曲面片纹理的连续性。
解决方法:
三维纹理映射
优化纹理映射技术
4.6 三维纹理映射技术
将纹理直接定义在三维空间中。
常用的三维纹理映射方法有:
(1)凹凸映射
在不改变物体宏观几何的前提下,模拟物体表面粗糙的、褶皱的、凹凸不平的光照效果。
其基本思想是:用纹理去修改物体的法向而不是颜色。在应用光照明模型计算景物表面光亮度的时候,对景物表面法向进行微小的扰动。
物体表面的几何法向保持不变,仅仅改变光照明模型计算中的法向。
方法:
a.物体表面S由参数方程S=S(u,v)表示
b.S上的任意一点(u,v)的法向n=Su X Sv
c.沿着表面S的法向方向叠加一个微小的扰动量P(u,v)定义了一张新的表面:
d.新表面的法向计算:
e.在计算表面s的光亮度的时候,取新表面的法向量取代原光滑表面法向量,从而生成物体表面的凹凸效果。
凹凸映射效果:
(2)法向映射
利用法向纹理保证高质量的表面细节复现。
借用低精度模型和一个法向纹理,获得高精度模型的绘制效果。
即先计算高精度模型的法向,将其保存在法向纹理中,再将法向纹理映射到低精度模型上进行光照计算。
法向映射效果:
(3)位移映射
利用纹理改变物体表面上的几何位置,获得很强的深度感和细节。
依据与表面上点对应的纹理值,沿表面法向偏移该点的几何位置。
位移映射效果:
4.7 纹理优化处理技术
(1)纹理缓存
当在复杂的应用中需要相当多的纹理时,不一定要把所有的纹理都一次性送到显存。
(2)纹理压缩
通过硬件即时对压缩的纹理进行解压,所需的纹理内存可以减小。减少了宽带的需要。
♥,.*,.♥,.*,.♥,.*,.♥,.*♥,.*,.♥,.*,.♥,.*,.♥,.*,.♥,.*,.♥,.*,.♥,.*,.♥♥,.*,.♥,.*,.♥,.*,.♥,.*♥,.*,.♥,.*,.♥,.*,.♥,.*,.♥,.*,.♥,.*,.♥,.*,.♥
广告时间:
本宝宝开通了一个公众号,记录日常的深度学习和强化学习笔记。
希望大家可以共同进步,嘻嘻嘻!
求关注,爱你呦!