如果读者有读过前一篇博文,那么想改用外部图片来格式化粒子,就会显得轻而易举,非常简单,核心代码就只有这一点点:
/** 从一个外部“.png”图片文件加载一幅类似雨滴的纹理图案 */
function loadTexture() {
var loader = new THREE.TextureLoader();
return loader.load('./assets/textures/particles/raindrop-2.png', function(loadedTexture) {
loadTexture.needsUpdate = true;
});
}
也就说把上一篇博文示例中的 SpriteMaterial 对象的 map 属性改成指向此处的 loadTexture() 函数即可搞定。这个函数非常简单,就是通过 THREE.TextureLoader 对象来加载一张外部图片就行了,没什么其他的东西。唯一要注意的就是他的 load() 函数,它的第一个参数接收一个指向外部图片的 url 地址;第二个参数是一个回调函数,主要作用就是进行图片加载完的后期处理工作,最常见的一种用法就是设置一下 loadedTexture.needsUpdate=true。也就是说,通过某种编程方法,你可以动态修改它让它根据某些条件动态的切换不同的图片。
由于比较简单,我就不再贴出完整代码了,留给读者自己去实践吧···