1,TextureLoader 纹理加载器,用来加载 texture 的一个类。通过纹理贴图加载器TextureLoader的load()
方法加载一张图片可以返回一个纹理对象Texture,纹理对象Texture
可以作为模型材质颜色贴图.map
属性的值。
// 初始化纹理加载器
var loader = new THREE.TextureLoader();
// 加载一个资源
loader.load('./Earth.png',
// 资源加载完成后的回调函数
function(texture){
var material = new THREE.MeshBasicMaterial({map:texture});
var mesh = new THREE.Mesh(geometry, material); //网格模型对象Mesh
scene.add(mesh); //网格模型添加到场景中
}),
// 资源加载过程中的回调函数:// 目前暂不支持onProgress的回调
function(xhr){
console.log(xhr)
}),
// 资源加载出错的回调函数
function(err){
console.log(err)
}),
2, ImageLoader 图片加载器:
用来加载一个 Image 的加载器,内部使用FileLoader 加载文件;
// 创建图片加载器
var image_loader = new THREE.ImageLoader();
image_loader.load('./Earth.png',function(img){
// img作为参数,创建一个纹理对象texture,因为材料对象中的map属性需要一个纹理对象
var texture = new THREE.Texture(img);
texture.needsUpdate = true;// 下次使用纹理时触发更新
var material = new THREE.MeshLambertMaterial({map:texture});
var mesh = new THREE.Mesh(geometry,material);
scene.add(mesh);
})
3,立方体纹理加载器 CubeTextureLoader
加载一个CubeTexture 的一个类,内部使用ImageLoader 来加载文件
const scene = new THREE.Scene();
scene.background = new THREE.CubeTextureLoader.setPath('text/cube').load([
'a.png','b.png','c.png','d.png','e.png','f.png'
])