Three.js - 光在纹理上不起作用

时间:2014-01-16 14:14:24

标签: javascript three.js

我正在尝试使用three.js创建一个简单的太阳系,我已经完成了所有操作,现在我想添加一些阴影,但显然它在处理纹理时不起作用。

loader.load("earth.jpg", function ( texture ) {
    var geometry = new THREE.SphereGeometry( 100, 20, 20 ),
        material = new THREE.MeshLambertMaterial({
            map: texture,
            overdraw: true,
        }),
        mesh     = new THREE.Mesh( geometry, material );

    group.add( mesh );
});

如果我将map: texture替换为color: 0xffffff,则效果非常好,但是当我添加纹理时,灯光阴影会消失。

为什么灯光不适用于纹理?

也许我应该为每个星球创造两个球体?一个有纹理,另一个有阴影吗?

1 个答案:

答案 0 :(得分:1)

这是CanvasRenderer的限制。它不支持MeshLambertMaterial和漫反射组合纹理。

您必须切换到WebGLRenderer.

three.js r.65