我一直在玩Three.js一段时间,我似乎无法使用任何灯光。场景通常使用0xFFFFFF环境光照渲染,但添加灯光没有任何效果。我直接从示例中复制了代码,灯光列在场景的子画面中,只是没有显示...
var camera;
var scene;
var renderer;
$(document).ready(function() {
camera = new THREE.PerspectiveCamera(75, window.innerWidth / window.innerHeight, 1, 10000);
camera.position.z = 600;
scene = new THREE.Scene();
scene.add(new THREE.PointLight(0xFF0000, 3.0, 1000));
renderer = new THREE.WebGLRenderer();
//renderer = new THREE.CanvasRenderer();
renderer.domElement.id = "canvas";
renderer.setSize(window.innerWidth, window.innerHeight);
$(window).resize(function() {
renderer.setSize(window.innerWidth, window.innerHeight);
});
$("#container").get(0).appendChild(renderer.domElement);
function Animate() {
requestAnimationFrame(Animate);
renderer.render(scene, camera);
}
Animate();
});
答案 0 :(得分:2)
您的代码并没有太大的用处,但要检查的一件事是您的材料支持灯光。这意味着您应该使用MeshLambertMaterial
或MeshPhongMaterial
。另请注意,如果您使用自定义ShaderMaterial
,则不会神奇地获得场景照明。