dir.by  
Программирование, разработка, тестирование
Three.js - JavaScript библиотека для рисования графики 3D на страницах HTML
Пример "Летающие кубики" библиотека Three.js
  Посмотрели 7190 раз(а)    
 Пример "Летающие кубики" библиотека Three.js 
последнее обновление: 22 ноября 2018
Пример смотрим, тестируем
Исходный код
  JavaScript  
<!DOCTYPE html>
<html lang="en">

     <head>
          <title>three.js webgl - layers</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: #f0f0f0;
                    margin: 0px;
                    overflow: hidden;
               }

               #info
               {
                    position: absolute;
                    top: 10px;
                    width: 100%;
                    text-align: center;
                    z-index: 0; // to not conflict with dat.gui
                    display:block;
               }
          </style>
     </head>

     <body>

          <!-- подключаем библиотеку three.js -->
          <script src="https://dir.by/example_lib/tree_js/three.js"></script>

          <div id="info">
               <a href="http://threejs.org" target="_blank" rel="noopener">three.js</a> - webgl layers
          </div>

          <script>
               var container, stats;
               var camera, scene, renderer;

               var radius = 100, theta = 0;

               init();
               animate();

               function init()
               {
                    container = document.createElement( 'div' );
                    document.body.appendChild( container );

                    camera = new THREE.PerspectiveCamera( 70, window.innerWidth / window.innerHeight, 1, 10000 );
                    camera.layers.enable( 0 ); // enabled by default
                    camera.layers.enable( 1 );
                    camera.layers.enable( 2 );

                    scene = new THREE.Scene();
                    scene.background = new THREE.Color( 0xf0f0f0 );

                    var light = new THREE.PointLight( 0xffffff, 1 );
                    light.layers.enable( 0 );
                    light.layers.enable( 1 );
                    light.layers.enable( 2 );

                    scene.add( camera );
                    camera.add( light );

                    var colors = [ 0xff0000, 0x00ff00, 0x0000ff ];
                    var geometry = new THREE.BoxBufferGeometry( 20, 20, 20 );
                    var layer;

                    for ( var i = 0; i < 300; i ++ )
                    {
                         layer = ( i % 3 );

                         var object = new THREE.Mesh( geometry, new THREE.MeshLambertMaterial( { color: colors[ layer ] } ) );

                         object.position.x = Math.random() * 800 - 400;
                         object.position.y = Math.random() * 800 - 400;
                         object.position.z = Math.random() * 800 - 400;

                         object.rotation.x = Math.random() * 2 * Math.PI;
                         object.rotation.y = Math.random() * 2 * Math.PI;
                         object.rotation.z = Math.random() * 2 * Math.PI;

                         object.scale.x = Math.random() + 0.5;
                         object.scale.y = Math.random() + 0.5;
                         object.scale.z = Math.random() + 0.5;

                         object.layers.set( layer );

                         scene.add( object );
                    }

                    raycaster = new THREE.Raycaster();

                    renderer = new THREE.WebGLRenderer();
                    renderer.setPixelRatio( window.devicePixelRatio );
                    renderer.setSize( window.innerWidth, window.innerHeight );
                    container.appendChild(renderer.domElement);

                    window.addEventListener( 'resize', onWindowResize, false );
               }

               function onWindowResize()
               {
                    camera.aspect = window.innerWidth / window.innerHeight;
                    camera.updateProjectionMatrix();

                    renderer.setSize( window.innerWidth, window.innerHeight );
               }

               function animate()
               {
                    requestAnimationFrame( animate );

                    render();
               }

               function render()
               {
                    theta += 0.1;

                    camera.position.x = radius * Math.sin( THREE.Math.degToRad( theta ) );
                    camera.position.y = radius * Math.sin( THREE.Math.degToRad( theta ) );
                    camera.position.z = radius * Math.cos( THREE.Math.degToRad( theta ) );
                    camera.lookAt( scene.position );

                    renderer.render( scene, camera );
               }
          </script>

     </body>
</html>
На заметку!
Пример локально работает!

Запускаем пример на вашем компьютере:
1) Создайте новый файл my.html
2) Скопируйте исходный код В my.html файл
3) Запустите в браузере my.html
 
← Предыдущая тема
Что такое Three.js и как скачать?
 
Следующая тема →
Пример "Американская горка (roller coaster)" библиотека Three.js
 
Ваши Отзывы ... комментарии ...
   
Вашe имя
Ваш комментарий (www ссылки может добавлять только залогиненный пользователь)

Экскурсии по Москве Экскурсии по Москве: пешеходные, автобусные и речные прогулки на любой вкус
  Объявления  
  Объявления  
 
Что такое Three.js и как скачать?
Пример "Летающие кубики" библиотека Three.js
Пример "Американская горка (roller coaster)" библиотека Three.js
Пример "Вращающийся куб с текстурой (rotate cube)" библиотека Three.js
Пример "Мы сами крутим картинку svg (svg image)" библиотека Three.js
Пример "Луна вращается вокруг земли (moon rotate around earth)" библиотека Three.js
Пример "Рисуем картину 3D кубиками (interactive voxel painter)" библиотека Three.js
Пример "Шарики с эффектом отражения (effects anaglyph)" библиотека Three.js
Создаем свой файл .js Файл содержит объект с экспортными переменными и функциями

  Ваши вопросы присылайте по почте: info@dir.by  
Яндекс.Метрика