Форум программистов
 
О проблемах с регистрацией пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail, а тут можно восстановить пароль.

Вернуться   Форум программистов > Web программирование > JavaScript, Ajax
Регистрация

Восстановить пароль
Повторная активизация e-mail


Ответ
 
Опции темы
Старый 23.06.2012, 19:14   #1
dem66
Форумчанин
 
Регистрация: 31.05.2011
Сообщений: 316
Восклицание WebGl, использование Three.js оптимизировать и подправить код

Доброго времени суток форумчани.

Делаю на сайт 3D модели, решил юзать Three.js. Нашел примеры, подключил модельн. Работает но не так как хотелось бы.
Помогите оптимизировать код. Может чтото подправить надо.

Код:
<script>
		//	if ( ! Detector.webgl ) Detector.addGetWebGLMessage();

			var SCREEN_WIDTH = window.innerWidth;
			var SCREEN_HEIGHT = window.innerHeight;
			var FLOOR = 0;

			var container;

			var camera, scene;
			var webglRenderer;

			var zmesh, geometry;

			var mouseX = 0, mouseY = 0;

			var windowHalfX = window.innerWidth / 2;
			var windowHalfY = window.innerHeight / 2;

			document.addEventListener( 'mousemove', onDocumentMouseMove, false );

			

			init();
			animate();

			function init() {

				container = document.createElement('div');
				
				document.body.appendChild( container );
				
				
				
				
				// camera
				camera = new THREE.PerspectiveCamera(75, SCREEN_WIDTH / SCREEN_HEIGHT, 1, 10000 );
				camera.position.z = 75;

				
				//scene
				scene = new THREE.Scene();

				// lights
				var ambient = new THREE.AmbientLight( 0xffffff );
				scene.add( ambient );

				// more lights
				var directionalLight = new THREE.DirectionalLight( 0xffeedd );
				directionalLight.position.set( 0, -70, 100 ).normalize();
				scene.add( directionalLight );
				
				// renderer
				webglRenderer = new THREE.WebGLRenderer();
				webglRenderer.setSize( SCREEN_WIDTH, SCREEN_HEIGHT );
				webglRenderer.domElement.style.position = "relative";
				container.appendChild( webglRenderer.domElement );
				
				// loader
				
				var loader = new THREE.JSONLoader(),
					callbackModel   = function( geometry ) { createScene(geometry) };
				loader.load( { model: "mod/outfile.js", callback: callbackModel } );
				
				
			}
			


			function createScene(geometry) {

				zmesh = new THREE.Mesh( geometry, new THREE.MeshFaceMaterial() );
				zmesh.position.set( 0, 0, 0 );
				zmesh.scale.set( 1, 1, 1 );
				scene.add( zmesh );
			}
			function onDocumentMouseMove(event) {

				mouseX = ( event.clientX - windowHalfX );
				mouseY = ( event.clientY - windowHalfY );
			}

			function animate() {

				requestAnimationFrame( animate );
				render();
			}

			function render() {

				zmesh.rotation.set(-mouseY/500 + 1, -mouseX/200, 0);

				webglRenderer.render( scene, camera );
			}

		</script>
dem66 вне форума Ответить с цитированием
Ответ
Купить рекламу на форуме 20000 рублей в месяц

Опции темы


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Оптимизировать, подправить OCR dem66 PHP 6 14.04.2012 16:27
Подправить код werser Помощь студентам 4 14.03.2010 23:26
Подправить рабочий код. michaelk Общие вопросы C/C++ 0 06.12.2009 11:33
подправить код ELF astserg01 Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 0 09.04.2009 05:49


Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru
Пеллетный котёл Emtas
котлы EMTAS