fbpx
维基百科

材质贴图

材质贴图,又称纹理贴图,在计算机图形学中是把存储在内存里的位图包裹到3D渲染物体的表面。纹理贴图给物体提供了丰富的细节,用简单的方式模拟出了复杂的外观。一个图像(纹理)被贴(映射)到场景中的一个简单形体上,就像印花贴到一个平面上一样。这大大减少了在场景中制作形体和纹理的计算量。例如,可以建立一个球并把脸的纹理贴上去,这样就不用处理鼻子和眼睛的形状了。

1 = 未加纹理贴图的3D模型
2 = 加了纹理贴图的3D模型
多种图案的例子(点击图片放大);
1: 未加纹理贴图的球体, 2: 纹理贴图加凹凸贴图, 3: 仅凹凸贴图, 4: 透明图加纹理贴图

随着图形卡功能越来越强,理论上材质贴图变得越来越不必要,而三维绘制(渲染)成了常用的工具。但事实上,最近的趋势是使用更大和更多的纹理图像以及使用把多幅纹理组合到同个物体的不同角度的复杂技术。(这在实时图形学中更为重要,因为同时显示的纹理个数是由图形卡的可用图形内存容量决定的。)

最后显示在屏幕上的像素是从纹理的纹素中计算的,计算方法由纹理滤波决定。最简单的方法是每个像素使用一个最接近的纹素,多个纹素之间的线性插值也很常用,还有更复杂的办法,参看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 }; } 

参看 编辑

外部链接 编辑

  • Graphics for the Masses by Paul Rademacher (页面存档备份,存于互联网档案馆
  • High resolution textures resource (页面存档备份,存于互联网档案馆
  • High resolution images and textures resource (页面存档备份,存于互联网档案馆

材质贴图, 又称纹理贴图, 在计算机图形学中是把存储在内存里的位图包裹到3d渲染物体的表面, 纹理贴图给物体提供了丰富的细节, 用简单的方式模拟出了复杂的外观, 一个图像, 纹理, 被贴, 映射, 到场景中的一个简单形体上, 就像印花贴到一个平面上一样, 这大大减少了在场景中制作形体和纹理的计算量, 例如, 可以建立一个球并把脸的纹理贴上去, 这样就不用处理鼻子和眼睛的形状了, 未加纹理贴图的3d模型2, 加了纹理贴图的3d模型多种图案的例子, 点击图片放大, 未加纹理贴图的球体, 纹理贴图加凹凸贴图, 仅凹凸贴图. 材质贴图 又称纹理贴图 在计算机图形学中是把存储在内存里的位图包裹到3D渲染物体的表面 纹理贴图给物体提供了丰富的细节 用简单的方式模拟出了复杂的外观 一个图像 纹理 被贴 映射 到场景中的一个简单形体上 就像印花贴到一个平面上一样 这大大减少了在场景中制作形体和纹理的计算量 例如 可以建立一个球并把脸的纹理贴上去 这样就不用处理鼻子和眼睛的形状了 1 未加纹理贴图的3D模型2 加了纹理贴图的3D模型多种图案的例子 点击图片放大 1 未加纹理贴图的球体 2 纹理贴图加凹凸贴图 3 仅凹凸贴图 4 透明图加纹理贴图随着图形卡功能越来越强 理论上材质贴图变得越来越不必要 而三维绘制 渲染 成了常用的工具 但事实上 最近的趋势是使用更大和更多的纹理图像以及使用把多幅纹理组合到同个物体的不同角度的复杂技术 这在实时图形学中更为重要 因为同时显示的纹理个数是由图形卡的可用图形内存容量决定的 最后显示在屏幕上的像素是从纹理的纹素中计算的 计算方法由纹理滤波决定 最简单的方法是每个像素使用一个最接近的纹素 多个纹素之间的线性插值也很常用 还有更复杂的办法 参看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 gt 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 参看 编辑Edwin Catmull 纹理滤波外部链接 编辑Graphics for the Masses by Paul Rademacher 页面存档备份 存于互联网档案馆 High resolution textures resource 页面存档备份 存于互联网档案馆 High resolution images and textures resource 页面存档备份 存于互联网档案馆 Texture Hound Utlimate 3d Texture Links Directory 取自 https zh wikipedia org w index php title 材质贴图 amp oldid 69337521, 维基百科,wiki,书籍,书籍,图书馆,

文章

,阅读,下载,免费,免费下载,mp3,视频,mp4,3gp, jpg,jpeg,gif,png,图片,音乐,歌曲,电影,书籍,游戏,游戏。