纹理一般是指我们常见的在一些第三方程序中创建的图像,如Photoshop或GIMP。需要做的就是创建一个TextureLoader。调用它的load方法,同时传入图像的URL,并将材质的 map 属性设置为该方法的返回值,而不是设置它的 color属性。注意,使用的是 MeshBasicMaterial, 所以没有必要增加。但需要注意的是,并不是所有的几何体类型都支持多种材质。BoxGeometry 和 BoxGeometry 可以使用6种材料,每个面一个。ConeGeometry 和 ConeGeometry 可以使用2种材料,一种用于底部,一种用于侧面。
纹理演示
import * as THREE from 'three';
import {GUI} from 'three/addons/libs/lil-gui.module.min.js';
function main() {
const canvas = document.querySelector('#c');
const renderer = new THREE.WebGLRenderer({canvas});
const fov = 75;
const aspect = 2; // the canvas default
const near = 0.1;
const far = 5;
const camera = new THREE.PerspectiveCamera(fov, aspect, near, far);
camera.position.z = 2;
const scene = new THREE.Scene();
const boxWidth = 1;
const boxHeight = 1;
const boxDepth = 1;
c