WebGL纹理不起作用

时间:2014-06-17 08:39:43

标签: three.js textures webgl

我想使用three.sj 3D librairie在立方体上应用纹理但是它没有用,我没有发现我的错误。 我成功地在后台申请了一个计划,但没有在立方体上申请,我不知道为什么

var material = new THREE.MeshLambertMaterial({
  map: THREE.ImageUtils.loadTexture('assets/images/texture/ciel.jpg')
});

var cube = new THREE.Mesh(new THREE.CubeGeometry(200, 200, 200), material);
cube.overdraw = true;
cube.rotation.x = Math.PI * 0.1; 
scene.add(cube);

1 个答案:

答案 0 :(得分:0)

你的场景是动画的吗?

有时候,如果场景没有动画,加载纹理可能会有问题,因为你现在没有任何代码在完成加载纹理后重新渲染场景,或者至少等待渲染场景前要加载的纹理。

在这两种方式中,在加载完成后重新绘制场景可能是最好的,所以你需要在加载后附加回调函数。

var material = new THREE.MeshLambertMaterial({
    map:
    THREE.ImageUtils.loadTexture('assets/images/texture/ciel.jpg', undefined, function() {
        renderer.render(scene, camera);
    });
});

请参阅ImageUtils docs了解loadTexture功能的参数是什么。