Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Three.js: нет тени (https://javascript.ru/forum/dom-window/46708-three-js-net-teni.html)

SVARAI 20.04.2014 11:57

Three.js: нет тени
 
Здравствуйте! Вот, учился управлять источниками света. Все очень просто, надо сделать так, что тень с куба падала на поверхность, но вот не выходит.... cube.receiveShadow = true; cube.castShadow = true; этими методами я по идее заставляю куб отражать свет и отбрасывать тень, вот код:
var scene = new THREE.Scene();
			var camera = new THREE.PerspectiveCamera(45, window.innerWidth/window.innerHeight, 0.1, 10000);
			camera.position.z = 400;
			camera.position.y = 10;


			var light = new THREE.SpotLight();
			light.position.set(-1000,300,0);
			light.castShadow = true;
			scene.add(light);

			/*var plane = new THREE.Mesh(new THREE.PlaneGeometry(400,200,100,100), new THREE.MeshLambertMaterial({color: 0x008cf0}));
			plane.position.y = -85;
			plane.receiveShadow = true;
			scene.add(plane);*/

			var geometry = new THREE.PlaneGeometry(400,200,100,100);
			var material = new THREE.MeshLambertMaterial({color: 0x008cf0});
			var plane = new THREE.Mesh(geometry, material);
			plane.position.y = -85;
			plane.rotation.x = -Math.PI/2;
			plane.receiveShadow = true;
			scene.add(plane);


			var geometry1 = new THREE.CubeGeometry(45,45,45);
			var material1 = new THREE.MeshLambertMaterial({color: 0x00ff00});
			var cube = new THREE.Mesh(geometry1, material1);
			cube.position.y = -60;
			cube.receiveShadow = true;
			cube.castShadow = true;
			scene.add(cube);

			var renderer = new THREE.WebGLRenderer();
			renderer.setSize(window.innerWidth, window.innerHeight);
			document.body.appendChild(renderer.domElement);
			renderer.ShadowMapEnabled = true;

			var render = function () {
				requestAnimationFrame(render);
				cube.rotation.y+=0.01;
				renderer.render(scene, camera);
			};

			render();

Никак не могу понять, почему же нет тени???

jsnb 20.04.2014 15:38

Цитата:

Сообщение от SVARAI (Сообщение 308489)
renderer.ShadowMapEnabled = true;

С маленькой буквы надо. ;)

SVARAI 20.04.2014 15:52

Спасибо! Вот как же я не заметил, и ошибок не было в консоли... Огромное спасибо!)


Часовой пояс GMT +3, время: 18:51.