首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在three.js中配置点灯

如何在three.js中配置点灯
EN

Stack Overflow用户
提问于 2017-09-15 04:23:27
回答 1查看 1.4K关注 0票数 0

我遵循了three.js入门教程,但很快就被困住了,试图在场景中添加点光。无论我如何完成我的代码,点灯永远不会照亮立方体。

代码语言:javascript
复制
var scene = new THREE.Scene();
var camera = new THREE.PerspectiveCamera(75, 
            window.innerWidth/window.innerHeight, 0.1, 1000);
var renderer = new THREE.WebGLRenderer();
renderer.setSize(window.innerWidth, window.innerHeight);

document.body.appendChild(renderer.domElement);

camera.position.z = 55;

var light = new THREE.PointLight( 0xff0000, 1, 100, 2);
light.position.set(20,0,20);
light.castShadow = true;

scene.add(light);

var spheresize = 1;
var pointLightHelper = new THREE.PointLightHelper( light, spheresize );
scene.add( pointLightHelper );

var ambient = new THREE.AmbientLight( 0x303030);
scene.add(ambient);

var cube_geometry = new THREE.BoxGeometry(10,10,10);
var cube_material = new THREE.MeshLambertMaterial({color:0x00ff00});
var cube = new THREE.Mesh(cube_geometry, cube_material);
scene.add(cube);

animate();


function animate(){
    requestAnimationFrame( animate);

    cube.rotation.y += 0.01;

    renderer.render(scene, camera);
}

在上面的代码中,我可以看到显示的辅助光,绿色立方体被周围的光线照亮,但是没有光来自点光(见附图)。我错过了什么?我如何获得点光,以照亮立方体以及?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-09-15 09:11:20

灯工作正常,但你需要改变光线或材料的颜色。

目前,你在一种纯粹的绿色材料上闪耀着纯粹的红灯。材料的颜色决定材料所反映的颜色成分(和数量)。由于纯红灯没有绿色成分,所以光线似乎完全失去了物体。

这是违反直觉的,因为在我们的物质世界中,很少有纯粹的红灯和纯绿色的物质。

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

https://stackoverflow.com/questions/46231675

复制
相关文章

相似问题

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