繁体   English   中英

Three.js-光线不适用于纹理

[英]Three.js - Light doesn't work on texture

我正在尝试使用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 ,效果很好,但是当我添加纹理时,阴影消失了。

为什么灯光对纹理不起作用?

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

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

您将必须切换到WebGLRenderer.

three.js r.65

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM