材质贴图

材质贴图，又称纹理贴图，在计算机图形学中是把存储在内存里的位图包裹到3D渲染物体的表面。纹理贴图给物体提供了丰富的细节，用简单的方式模拟出了复杂的外观。一个图像（纹理）被贴(映射)到场景中的一个简单形体上，就像印花贴到一个平面上一样。这大大减少了在场景中制作形体和纹理的计算量。例如，可以创建一个球并把脸的纹理贴上去，这样就不用处理鼻子和眼睛的形状了。
随着图形卡功能越来越强，理论上材质贴图变得越来越不必要，而三维绘制(渲染)成了常用的工具。但事实上，最近的趋势是使用更大和更多的纹理图像，再加上把多幅纹理组合到同个物体的不同角度的复杂技术。(这在实时图形学中更为重要，因为同时显示的纹理个数是可用图形内存容量的函数。)
最后显示在屏幕上的像素是从纹理的纹素中计算的，计算方法由纹理滤波决定。最简单的方法是每个像素使用一个最接近的纹素，多个纹素之间的线性插值也很常用，还有更复杂的办法，参看Mipmap。另外，纹理也可用来决定模型表面的颜色，甚至双向反射分布函数(BRDF)，从而和光照模型等方法结合起来。

例子代码

下面是简单的球面材质贴图的Java语言实现。
   public double[] sphereMap(double x, double y, double z, int radius)
   {
       /* x,y,z 是球面的法向量乘以它的半径*/
       /* 也就是vec3 (intersect_pointv3-sphere_centre_pointv3)                */
       double u, v;
       v = Math.acos(z/radius) / PI;
       if (y > 0.0) {
           u = Math.acos(x/(radius * Math.sin(PI * v))) / PI*2;
       }
       else {
           u = (PI + Math.acos(x/(radius * Math.sin(PI * v)))) / PI*2;
       }
       
       return new double[] { u, v };
   }