<!DOCTYPE html> <html lang="en"> <head> <title>three.js и webgl 3D модель</title> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, user-scalable=no, minimum-scale=1.0, maximum-scale=1.0"> <style> body { font-family: Monospace; background-color: #000; color: #fff; margin: 0px; overflow: hidden; } #info { color: #fff; position: absolute; top: 10px; width: 100%; text-align: center; z-index: 100; display:block; } #info a, .button { color: #f00; font-weight: bold; text-decoration: underline; cursor: pointer } </style> </head> <body> <div id="info"> <a href="../">На главную</a> - 3D модель </div> <script src="loaders/three.min.js"></script> <script src="loaders/MTLLoader.js"></script> <script src="loaders/OBJMTLLoader.js"></script> <script src="loaders/Detector.js"></script> <script src="loaders/stats.min.js"></script> <script src="function.js"></script> <script> //создание переменных var container, stats; var camera, scene, renderer; var object; var mouseX = 0, mouseY = 0; var windowHalfX = window.innerWidth / 2; var windowHalfY = window.innerHeight / 2; //вызов функций init(); animate(); /* главная функция */ function init() { //создаем элемент контейнер container = document.createElement( 'div' ); //вставляем контейнер в тело документа document.body.appendChild( container ); //создаем камеру camera = new THREE.PerspectiveCamera( 10, window.innerWidth / window.innerHeight, 1, 2000 ); camera.position.y = -30; camera.position.x = -10; camera.position.z = 70; // сцену scene = new THREE.Scene(); //источник света var ambient = new THREE.AmbientLight( 0x00aaee ); //scene.add( ambient ); //еще один источник света var directionalLight = new THREE.DirectionalLight( 0xeecccc ); directionalLight.position.set( 1, 1, 1 ).normalize(); scene.add( directionalLight ); // загрузчик var loader = new THREE.OBJMTLLoader(); loader.addEventListener( 'load', function ( event ) { object = event.content; object.position.y = -35; object.position.x = 7; object.position.z = -70; object.rotation.x = -0.9;//-0.8 object.rotation.y = -0.05;//-0.1 object.rotation.z = 0;//0.1 //добавляем объект в сцену scene.add( object ); return object; }); loader.load( 'models/male.obj', 'models/sphere.mtl' ); //рендерер renderer = new THREE.WebGLRenderer(); renderer.setSize( window.innerWidth, window.innerHeight ); container.appendChild( renderer.domElement ); //слушатель на событие document.addEventListener( 'mousemove', onDocumentMouseMove, false ); window.addEventListener( 'resize', onWindowResize, false ); } function animate() { requestAnimationFrame( animate ); render(); } //функция рендерера function render() { //движение камеры // camera.position.x += ( mouseX - camera.position.x ) * .05; // camera.position.y += ( - mouseY - camera.position.y ) * .005; camera.lookAt( scene.position ); /*вращение объекта вокруг оси z */ object.rotation.z += 0.01; renderer.render( scene, camera ); } </script> </body> </html>