纹理环绕方式

环绕方式 描述 对应OpenGL选项
重复 重复纹理图像 GL_REPEAT
镜像重复 重复一样,但每次重复图片是镜像放置的 GL_MIRRORED_REPEAT
边缘钳制 纹理坐标会被约束在0到1之间,超出的部分会重复纹理坐标的边缘 GL_CLAMP_TO_EDGE
边界钳制 超出的坐标为用户指定的边缘颜色 GL_CLAMP_TO_BORDER

纹理环绕方式

纹理过滤

纹理坐标为0~1的任意浮点值,当将其映射到位图中并进行采样时:

邻近过滤 Nearest Neighbor Filtering

邻近过滤会直接采用最接近采样点的像素

邻近过滤

线性过滤 (Bi)linear Filtering

线性过滤会基于采样点附近的像素,计算出一个插值,近似出这些纹理像素之间的颜色。一个像素的中心距离采样点越近,那么这个像素的颜色对最终的样本颜色的贡献越大。

线性过滤

两种过滤方式效果对比

邻近过滤与线性过滤效果对比
邻近过滤产生了颗粒状的图案,能够清晰看到组成纹理的像素,而线性过滤能够产生更平滑的图案。

多级渐远纹理 Mipmap

前面说过,若图像分别率较大,则会出现多个采样点在图像上对应的位置跨度较大,而当渲染的物体距离摄像机较远 或 物体被缩放时,此时的纹理采样点便会较少,难以从高分辨的图像上采样到准确的颜色,因为需要跨过纹理的很大部分却只拾取一个像素颜色。 多级渐远纹理 Mipmap便是用来解决该问题,其核心原理是预先生成一系列逐渐缩小的纹理层级,每个层级是上一级的1/4分辨率(长宽各减半)。当物体在屏幕上较远或较小时,系统自动选择合适层级的纹理。

版权声明

作者: Chaim

链接: https://chaim.eu.org/posts/%E7%BA%B9%E7%90%86%E7%8E%AF%E7%BB%95-%E5%92%8C-%E7%BA%B9%E7%90%86%E8%BF%87%E6%BB%A4/

许可证: CC BY-NC-SA 4.0

This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License. Please attribute the source, use non-commercially, and maintain the same license.

开始搜索

输入关键词搜索文章内容

↑↓
ESC
⌘K 快捷键