0

我试图设置纹理。但它不起作用。在这种情况下我应该如何设置纹理?

这是代码 http://jsfiddle.net/9VgTt/

任何提示将不胜感激谢谢大家

4

1 回答 1

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/

于 2012-08-16T19:18:10.663 回答