我们来想一想,3D世界的纹理,由什么组成呢?3D世界的纹理由图片组成。 是的,就这么简单,如果下次谁问你什么是纹理,那么你告诉它是图片,或者贴图就完了。将纹理以一定的规则映射到几何体上,一般是三角形上,那么这个几何体就有纹理皮肤了。

Three.js加载纹理的方式

  1. THREE.Texture(
  2. image,
  3. mapping,
  4. wrapS,
  5. wrapT,
  6. magFilter,
  7. minFilter,
  8. format,
  9. type,
  10. anisotropy
  11. )
纹理Texture的参数
image 这是一个图片类型,基本上它有ImageUtils来加载,如下代码:::info

// 不能从本地直接加载图片
var image =THREE.ImageUtils.loadTexture(url); ::: | | mapping | 一个THREE.UVMapping()类型,它表示的是纹理坐标。 | | wrapS | 表示x轴的纹理的回环方式,就是当纹理的宽度小于需要贴图的平面的宽度的时候,平面剩下的部分应该p以何种方式贴图的问题。 | | wrapT | 表示y轴的纹理回环方式。 magFilter和minFilter表示过滤的方式,这是OpenGL的基本概念,我将在下面讲一下,目前你不用担心它的使用。当您不设置的时候,它会取默认值,所以,我们这里暂时不理睬他。 | | magFilter | | | minFilter | | | format | 表示加载的图片的格式,这个参数可以取值THREE.RGBAFormat,RGBFormat等。THREE.RGBAFormat表示每个像素点要使用四个分量表示,分别是红、绿、蓝、透明来表示。RGBFormat则不使用透明,也就是说纹理不会有透明的效果。 | | type | 表示存储纹理的内存的每一个字节的格式,是有符号,还是没有符号,是整形,还是浮点型。不过这里默认是无符号型(THREE.UnsignedByteType)。 | | anisotropy | 各向异性过滤。使用各向异性过滤能够使纹理的效果更好,但是会消耗更多的内存、CPU、GPU时间 |