我在攪拌機中開發了3D燈模型,並使用three.js
將它加載到網上。three.js中的燈模型中出來的光
該模型是非常基本的,但對我而言最重要的是,我希望有人給我一個關於如何在three.js
中產生一個燈光的想法,它應該給燈泡內部帶來幻想,因爲您可以找到很多如何從遠處照亮物體的示例,但是如何從這種燈場景的物體(特別是模型)的一側發射光線呢?
請注意,我並非懶惰,只是three.js
文檔非常有限,我一直無法找到特定於我的需求的示例或解釋。
這是我迄今爲止它加載模型的代碼:
<!DOCTYPE html>
<html>
<head>
<title>example 1: load model</title>
<script type="text/javascript" src="js/three.js"></script>
<script src="js/TrackballControls.js"></script>
<script type="text/javascript">
var controls;
var init = function() {
var canv = document.getElementsByTagName("canvas")[0];
var w = canv.clientWidth;
var h = canv.clientHeight;
var renderer = new THREE.WebGLRenderer({canvas:canv, antialias: true});
renderer.setSize(w, h);
var scene = new THREE.Scene();
var camera = new THREE.PerspectiveCamera(
40, // Field of view
w/h, // Aspect ratio
5, // Near
10000 // Far
);
camera.position.set(-10, 7, 10);
camera.lookAt(scene.position);
// CONTROLS
controls = new THREE.TrackballControls(camera);
light = new THREE.PointLight(0xFFFFDD);
light.position.set(-15, 10, 15);
scene.add(light);
var loader = new THREE.JSONLoader();
var onGeometry = function(geom, mats) {
var mesh = new THREE.Mesh(geom, new THREE.MeshFaceMaterial(mats));
scene.add(mesh);
};
loader.load("models/lamp.js", onGeometry);
var render = function() {
renderer.render(scene, camera);
controls.update();
};
setInterval(render,10);
};
window.onload = init;
window.onresize = init;
</script>
</head>
<body><canvas style="width:100%;height:95%;border:1px gray solid;"></body>
</html>
嘿謝謝你的回答。實際上,我一直在研究你的例子,並且榮幸地親自幫助你。我甚至用英文和西班牙文將您的示例鏈接添加到three.js wikipedia頁面。 – Pamplones
我已經看到你提到的這個例子,但是,上面的代碼有可能讓spotLight從立方體的一個面(從它的內部)出來而不是從上面出現嗎? – Pamplones