Nie rozumiem, dlaczego oświetlenie nie działa w moim kodzie. Pobrałem prosty OBJ. plik do przetestowania OBJLoader, ale nie ma wpływu na model. Zanim zacznę montować oświetlenie, przynajmniej działa oświetlenie Ambient Lighting. Może OBJ. model potrzebuje tekstury?Dlaczego oświetlenie nie działa w Three.js?
var container, stats;
var camera, scene, renderer, controls;
init();
animate();
function init() {
container = document.createElement('div');
document.body.appendChild(container);
scene = new THREE.Scene();
camera = new THREE.PerspectiveCamera(45, window.innerWidth/window.innerHeight, 1, 2000);
camera.position.z = 2.5;
scene.add(camera);
controls = new THREE.TrackballControls(camera);
controls.rotateSpeed = 2.0;
controls.zoomSpeed = 1.2;
controls.panSpeed = 0.0;
controls.noZoom = false;
controls.noPan = true;
controls.staticMoving = true;
controls.dynamicDampingFactor = 0.3;
controls.keys = [ 65, 83, 68 ];
controls.addEventListener('change', render);
var ambient = new THREE.AmbientLight(0x020202);
scene.add(ambient);
directionalLight = new THREE.DirectionalLight(0xffffff);
directionalLight.position.set(1, 1, 0.5).normalize();
scene.add(directionalLight);
pointLight = new THREE.PointLight(0xffaa00);
pointLight.position.set(0, 0, 0);
scene.add(pointLight);
sphere = new THREE.SphereGeometry(100, 16, 8);
lightMesh = new THREE.Mesh(sphere, new THREE.MeshBasicMaterial({ color: 0xffaa00 }));
lightMesh.scale.set(0.05, 0.05, 0.05);
lightMesh.position = pointLight.position;
scene.add(lightMesh);
var loader = new THREE.OBJLoader();
loader.load("originalMeanModel.obj", function (object) {
scene.add(object);
});
renderer = new THREE.WebGLRenderer();
renderer.setSize(window.innerWidth, window.innerHeight);
container.appendChild(renderer.domElement);
}
function animate() {
requestAnimationFrame(animate);
controls.update();
}
function render() {
camera.lookAt(scene.position);
renderer.render(scene, camera);
}
Czy możesz udostępnić plik obj, który chcesz załadować? – mrdoob
Czy to oświetlenie nie działa w ogóle? A może tylko cienie? Możesz mieć oświetlenie kierunkowe bez rzeczywistych cieni rzucanych przez obiekty. –