1
我在創建使用圖像作爲紋理貼圖上的粒子時遇到了麻煩。下面是我的代碼:使用圖像作爲地圖創建粒子
var camera, scene, renderer, material, img, texture;
init();
animate();
function init() {
scene = new THREE.Scene();
camera = new THREE.PerspectiveCamera(50, window.innerWidth/window.innerHeight, 1, 10000);
camera.position.z = 8000;
scene.add(camera);
img = new Image();
texture = new THREE.Texture(img);
img.onload = function() {
texture.needsUpdate = true;
makeParticle();
};
img.src = "http://www.aerotwist.com/tutorials/creating-particles-with-three-js/images/particle.png";
renderer = new THREE.CanvasRenderer();
renderer.setSize(window.innerWidth, window.innerHeight);
document.body.appendChild(renderer.domElement);
}
function makeParticle() {
material = new THREE.ParticleBasicMaterial({
color: 0xE60000,
size: 20,
map: texture,
blending: THREE.AdditiveBlending,
transparent: true
});
// make the particle
particle = new THREE.Particle(material);
particle.scale.x = particle.scale.y = 1;
scene.add(particle);
}
function animate() {
requestAnimationFrame(animate);
renderer.render(scene, camera);
}
與此代碼小提琴是在這裏:jsfiddle
我知道我可以用三個圖像助手如下:
map: THREE.ImageUtils.loadTexture(
"FILE PATH"
),
但我實現我的自己的資產加載器,所以不希望個別使用它。目前我上面的代碼顯示沒有錯誤,但沒有顯示粒子。