纹理

纹理

  • 纹理是用于增添物体细节的 2D 图片(也有 1D 和 3D 形式),将其想象为绘有特定图案的纸张,贴合到 3D 物体表面,使物体呈现相应外观
    • 优点:与为每个顶点添加颜色相比,使用纹理能大幅减少顶点数量,降低开销,且可在一张图片中融入大量细节,让物体更精细。例如,一座复杂的 3D 建筑模型,若用顶点颜色实现逼真效果,需大量顶点,而使用纹理,只需一张包含建筑外观细节的图片映射到模型表面即可。

纹理坐标

  • 纹理坐标是任意浮点值,OpenGL需通过纹理过滤将纹理像素映射到纹理坐标。给模型顶点设置的那个数组

filename already exists, renamed

1
2
3
4
5
float texCoords[] = {
0.0f, 0.0f, // 左下角
1.0f, 0.0f, // 右下角
0.5f, 1.0f // 上中
};

纹理环绕方式

filename already exists, renamed

采样

  • 用纹理坐标获取纹理颜色叫做采样(Sampling)

片段插值

  • 片段插值是 OpenGL 自动完成的一个关键步骤,作用是填充顶点之间的纹理坐标(以及颜色、法向量等数据),让纹理能够平滑地覆盖整个图形表面。
    • 例如: OpenGL 把三角形光栅化(拆解成无数个像素大小的片元)后,每个片元都需要一个纹理坐标来采样纹理颜色。此时 OpenGL 会根据三个顶点的纹理坐标,自动计算出每个片元对应的纹理坐标 —— 这个计算过程就是片段插值。

纹理像素

  • 是纹理图像的最小独立数据单元。每个纹素存储具体属性值,最常见的是 RGBA 颜色,也可存储法线、粗糙度等材质信息。是 OpenGL 纹理采样的直接操作对象,纹理过滤(GL_NEAREST/GL_LINEAR)就是对纹素颜色进行选取或加权混合。

分辨率

描述纹理尺寸和纹素排列密度的量化指标。

  • 决定纹理的细节承载能力:分辨率越高,单位面积内纹素越多,纹理细节越丰富;分辨率越低,纹素越稀疏,放大后易出现像素块。

纹理过滤

  • OpenGL也有对于纹理过滤(Texture Filtering)的选项。纹理过滤有很多个选项,但是现在我们只讨论最重要的两种:GL_NEAREST和GL_LINEAR。

upload successful


纹理
https://weihehe.top/2025/12/24/纹理/
作者
weihehe
发布于
2025年12月24日
许可协议