如何设置延迟纹理

时间:2012-08-16 08:01:50

标签: webgl three.js

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

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

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

1 个答案:

答案 0 :(得分: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/