纹理Texture
什么是 Texture?
**Texture(纹理)**是计算机图形学中用于增强图像细节和真实感的一种图像或数据贴图。它的本质是一种二维或多维数据(通常是图片),用于为图形表面提供颜色、法线、反射、透明度等信息。
✅ 简单理解:纹理就是“皮肤”,贴在 3D 模型或 2D 表面上,用来增加细节,不用再建更多几何结构。
纹理映射(Texture Mapping)
纹理映射是一种将二维纹理图像(通常为位图)“贴”到三维模型表面的方法,目的是在不增加几何体复杂度的前提下,为三维物体提供更细致的视觉效果。通过纹理映射,物体表面可以拥有丰富的颜色、图案、细节等信息,而不需要额外的多边形面片。
如上图所示:3D物体的表面其实都是2D的,比如地球仪,将地球仪上的图撕下来,可以平铺成一张2D的图物体的表面,通过这种方式可以和一张图有一一对应的关系,这张图就叫纹理, 将这张图平铺/裁剪/拉伸到任何物体表面,就叫纹理映射,纹理上的坐标系通常以UV来表示。
UV坐标系
UV 坐标系统:这是一种标准的坐标系统,用来描述如何将纹理与物体表面的几何形状进行对应。纹理坐标的值通常在 [0, 1] 范围内:
U
是纹理图像的水平方向坐标,类似于 x 轴;V
是纹理图像的垂直方向坐标,类似于 y 轴。
每个顶点都被赋予一个 (U, V)
坐标,当渲染时,图形管线会根据这些坐标从纹理图像中提取颜色信息。
纹理映射的基本过程
纹理映射的过程可以分为以下几个步骤:
- 顶点着色器阶段:
- 在顶点着色器阶段,顶点数据(如位置、法线、颜色)与纹理坐标(UV 坐标)一起传递到后续的渲染管线。
- 纹理坐标用于确定每个顶点在纹理图像上的位置。
- 片段着色器阶段:
- 在片段着色器阶段,根据顶点着色器传递的纹理坐标,程序会对三角形内的每个像素进行插值,得到相应的纹理坐标。
- 使用这些纹理坐标从纹理图像中提取对应像素的颜色值,进行颜色混合,最终决定像素的最终颜色。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 古月月仔的博客!
评论