如何在three.js中旋转精灵对象?

时间:2014-05-07 03:48:38

标签: rotation three.js sprite material

我需要旋转一个精灵对象,但似乎这是不可行的,如果没有,有没有办法实现旋转效果,可能是通过spriteMaterial的UV坐标,还是自定义着色器?什么是最好的方式?

2 个答案:

答案 0 :(得分:18)

Sprite的轮播由其素材的 rotation参数设定。例如,像这样:

var material = new THREE.SpriteMaterial( {
    color: 0xffffff, 
    map: texture,
    rotation: Math.PI / 4
} );

var sprite = new THREE.Sprite( material );

three.js r.67

答案 1 :(得分:1)

我花了很长时间,但事实证明,您需要旋转精灵材质,而不是精灵本身。像这样:

var scale = 1;

function animate() {
    requestAnimationFrame(animate);

    // Rotate the sprite:
    sprite.material.rotation += 0.01;

    // Resize the sprite:
    scale += 0.01
    sprite.scale.set(scale, scale, 0);

    // Move the sprite:
    sprite.position.x += 0.01;

    renderer.render(scene, camera);
}