2012-08-16 76 views

回答

3

因为缓冲区必须预先分配,则需要先使你更复杂的材料。

要做到这一点,你可以做这样的事情:

window.mesh = new THREE.Mesh(
    new THREE.SphereGeometry( 10, 20, 30 ), 
    new THREE.MeshLambertMaterial({ 
    map: THREE.ImageUtils.loadTexture('/img/logo.png')}) 
); 
scene.add( mesh ); 
  
// render once 
renderer.render( scene, camera ); 

// remove map 
window.mesh.material.map = null; 
window.mesh.material.needsUpdate = true; 

如果你觉得这是太黑客攻击,另一个解决方案是只是有一个虚设透明或素色的地图纹理开始用。

您可以在three.js wiki上阅读更多关于此问题的文章:https://github.com/mrdoob/three.js/wiki/Updates

这是更新的小提琴:http://jsfiddle.net/9VgTt/14/

+0

感谢您的建议和黑客代码。 现在我的新演示正在为你工作。 – yomotsu 2012-08-17 19:16:24