为了账号安全,请及时绑定邮箱和手机立即绑定

WebGL中,什么情况下不设置Lights也能看到物体?

WebGL中,什么情况下不设置Lights也能看到物体?

qq_OkamiShiranu_0 2017-08-01 11:27:22
刚接触 WebGL 不久,昨天学习了 Lights 方面的知识。在练习中,不设置 Lights 的话整个场景都是黑的,不可见。但再次看入门的示例代码(一个围绕 x , y 轴 旋转的绿色正方体)时,发现其中并未设置 Lights ,但仍然可以看到渲染的结果,请问这是什么原因?<html> <head> <title>My first Three.js app</title> <style> body { margin: 0; } canvas { width: 100%; height: 100% } </style> </head> <body> <script src="//wow.techbrood.com/libs/three.r73.js"></script> <script> 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 ); var geometry = new THREE.BoxGeometry( 1, 1, 1 ); var material = new THREE.MeshBasicMaterial( { color: 0x00ff00 } ); var cube = new THREE.Mesh( geometry, material ); scene.add( cube ); camera.position.z = 5; var render = function () { requestAnimationFrame( render ); cube.rotation.x += 0.1; cube.rotation.y += 0.1; renderer.render(scene, camera); }; render(); </script> </body> </html>
查看完整描述

1 回答

?
qq_OkamiShiranu_0

TA贡献1条经验 获得超0个赞

好吧...已经查到了,是和 Material 有关系。MeshBasicMaterial 无需光照就能显示,其余类型的材质都需要借助光照来显色。

查看完整回答
反对 回复 2017-08-02
  • 1 回答
  • 0 关注
  • 1251 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信