首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在场景中添加适当的灯光?

如何在场景中添加适当的灯光?
EN

Stack Overflow用户
提问于 2012-07-31 16:34:03
回答 1查看 233关注 0票数 1

在我的项目中,我添加了几个模型和其他几何对象,我可以移动相机在场景中扫描,但当我添加灯光时,如下图所示,模型没有显示出来。我应该如何添加适当的灯光来很好地适应场景中的模型。

代码语言:javascript
运行
复制
var ambientLight = new THREE.AmbientLight(0x222222);
scene.add(ambientLight);

// add directional light source
var directionalLight = new THREE.DirectionalLight(0xffffff,2);
directionalLight.position.set(1, 1, 1).normalize();
scene.add(directionalLight);

 var directionalLight1 = new THREE.DirectionalLight(0xffffff);
directionalLight1.position.set(-1, -1, -1).normalize();
scene.add(directionalLight1);
EN

回答 1

Stack Overflow用户

发布于 2012-08-06 03:41:53

这将是一些相当暗的环境光。我会推荐一个更高的值,接近0x555555或更大。此外,您将平行光添加到场景中,但将平行光的位置设置得非常接近场景的原点。

您可以看到,directionalLight.position是一个THREE.Vector3对象,您正在调用向量对象的.set()方法,然后简单地标准化结果。你的物体比一个单位大吗?它是在原点吗?如果是这样的话,我打赌你的平行光在你的物体里面。如果只使用环境光,3D模型看起来不会很好。相反,我建议您这样做:

代码语言:javascript
运行
复制
        var originVector = new THREE.Vector3(0,0,0);
        var ambLight = new THREE.AmbientLight(0x555555);
        scene.add(ambLight);

        var dirLight = new THREE.DirectionalLight(0xFFFFFF);
        dirLight.position.x = -200;
        dirLight.position.y = 200;
        dirLight.position.z = 150;
        dirLight.lookAt(originVector);
        scene.add(dirLight);

如果你需要阴影,我建议你参考这个问题,我之前已经回答过关于Enabling Shadows in Three.JS的问题。这是我不久前制作的一个演示,它应该会向您显示上述照明代码的结果:Lighting Cube Acceleration Demo

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11736121

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档