Advertisement
Guest User

Untitled

a guest
Nov 19th, 2018
105
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
HTML 6.89 KB | None | 0 0
  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4.     <meta charset=utf-8>
  5.     <title>Three.js Object Tester</title>
  6.     <style>
  7.         body { margin: 0; overflow: hidden; }
  8.         canvas { width: 100%; height: 100% }
  9.  
  10.  
  11.         #info {
  12.             position: absolute;
  13.             top: 10px;
  14.             left: 10px;
  15.             color: white;
  16.             font-size: 36px;
  17.             width: 100%;
  18.  
  19.             z-index: 100;
  20.             display:block;
  21.         }
  22.     </style>
  23. </head>
  24. <div id="info">Brnic Miroslav</div>
  25. <body onload="init()">
  26. <script src="js-r96/three.js"></script>
  27. <script src="js-r96/TrackballControls.js"></script>
  28. <script src="js-r96/tween.min.js"></script>
  29. <script>
  30.     // Globális változók
  31.  
  32.  
  33.     var WIDTH, HEIGHT, aspectRatio;
  34.     var renderer;
  35.     var scene, camera;
  36.     var controls;
  37.     var axesHelper = new THREE.AxesHelper( 500 );
  38.     var textureLoader = new THREE.TextureLoader();
  39.     var isTweening = false;
  40.     var moving_group;
  41.     var irany = 1;
  42.     function init() {
  43.  
  44.  
  45.  
  46.         // Böngésző ablakméret lekérése és méretarány számítása
  47.         HEIGHT = window.innerHeight;
  48.         WIDTH = window.innerWidth;
  49.         aspectRatio = WIDTH / HEIGHT;
  50.  
  51.  
  52.  
  53.         // Renderer létrehozása és DOM-hoz adása
  54.         renderer = new THREE.WebGLRenderer( { antialias: true } );
  55.         renderer.setSize( WIDTH, HEIGHT );
  56.         renderer.setClearColor( 0x000000 );
  57.  
  58.  
  59.         renderer.setSize( WIDTH, HEIGHT );
  60.         renderer.shadowMap.enabled = true;
  61.         document.body.appendChild( renderer.domElement );
  62.  
  63.         // Színtér létrehozása
  64.         scene = new THREE.Scene();
  65.         scene.add( axesHelper );
  66.  
  67.  
  68.         // Kamera létrehozása és vetítési paramétereinek beállítása
  69.         camera = new THREE.PerspectiveCamera( 75, aspectRatio, 0.1, 1000 );
  70.         camera.position.set( 0, 100, 100 );
  71.         camera.lookAt( scene.position );
  72.  
  73.         // Objektumok létrehozása
  74.  
  75.         var groundGeometry = new THREE.PlaneGeometry( 200, 200 );
  76.         var groundMaterial = new THREE.MeshPhongMaterial( {
  77.             wireframe: false,
  78.             wireframe: false,
  79.             side: THREE.DoubleSide
  80.         } );
  81.  
  82.         var texture = textureLoader.load( '../../assets/marstex2.jpg' );
  83.  
  84.         groundMaterial.map = texture;
  85.         var groundMesh = new THREE.Mesh( groundGeometry, groundMaterial );
  86.         groundMesh.rotation.x = -1.0 * THREE.Math.degToRad( 90 );
  87.         groundMesh.castShadow = false;
  88.         groundMesh.receiveShadow = true;
  89.         scene.add( groundMesh );
  90.  
  91.  
  92.  
  93.  
  94.  
  95.         /////////////////////////Ejtőernyő//////////////////
  96.         var coneGeometry = new THREE.ConeGeometry( 5, 4, 16 );
  97.         var coneMaterial = new THREE.MeshPhongMaterial( { color: 'red', wireframe: false } );
  98.         var coneMesh = new THREE.Mesh( coneGeometry, coneMaterial );
  99.         coneMesh.castShadow = true;
  100.         coneMesh.receiveShadow = false;
  101.  
  102.  
  103.         coneMesh.position.set( 0,0, 0 );
  104.  
  105.  
  106.  
  107.  
  108.  
  109.         ////////////
  110.  
  111.         //////////////Kötél////////////////
  112.  
  113.         var coneGeometry1 = new THREE.ConeGeometry( 5, 6, 10 );
  114.         var coneMaterial1 = new THREE.MeshPhongMaterial( { color: 'blue', wireframe: true } );
  115.         var coneMesh1 = new THREE.Mesh( coneGeometry1, coneMaterial1 );
  116.         coneMesh1.castShadow = true;
  117.         coneMesh1.receiveShadow = false;
  118.  
  119.  
  120.         coneMesh1.position.set( 0,-5, 0 );
  121.         coneMesh1.rotation.x = -1.0 * THREE.Math.degToRad( 180 );
  122.  
  123.  
  124.  
  125.  
  126.  
  127.  
  128.         /////////////////////////////////////
  129.  
  130.  
  131.  
  132.         ////////////Kocka////////////
  133.  
  134.  
  135.         var boxGeometry = new THREE.BoxGeometry( 3, 3, 3 );
  136.         var boxMaterial = new THREE.MeshPhongMaterial( { color: "orange" , wireframe: false} );
  137.         var boxMesh = new THREE.Mesh( boxGeometry, boxMaterial );
  138.         boxMesh.castShadow = true;
  139.         boxMesh.receiveShadow = false;
  140.  
  141.  
  142.         boxMesh.position.set(0,-6.5,0)
  143.         ////////////////////
  144.  
  145.  
  146.         ////////////Group////////
  147.         this.moving_group = new THREE.Group();
  148.  
  149.  
  150.         moving_group.add( coneMesh );
  151.         moving_group.add( coneMesh1 );
  152.         moving_group.add( boxMesh );
  153.  
  154.  
  155.  
  156.         moving_group.position.set(0,50,0);
  157.  
  158.  
  159.  
  160.  
  161.  
  162.         scene.add( moving_group );
  163.  
  164.  
  165.  
  166.         /////////////////////////
  167.  
  168.  
  169.         ////////////AMbiens fény///////////
  170.  
  171.  
  172.         var ambientLight = new THREE.AmbientLight( "gray", 0.5 );
  173.         scene.add( ambientLight );
  174.         /////////////
  175.         //
  176.         // ...
  177.         //
  178.  
  179.  
  180.  
  181.  
  182.  
  183.  
  184.  
  185.  
  186.  
  187.  
  188.         //////Reflektor fény///////
  189.         var sLight = new THREE.SpotLight( "white", 1 );
  190.         sLight.position.set( -30, 50, 5 );
  191.         sLight.angle = Math.PI / 3;
  192.         sLight.target = moving_group;
  193.         sLight.penumbra = 0.9;
  194.         sLight.distance = 0;
  195.         sLight.castShadow = true;
  196.  
  197.         var spotLightHelper = new THREE.SpotLightHelper( sLight );
  198.         scene.add( spotLightHelper );
  199.         scene.add( sLight );
  200.  
  201.  
  202.  
  203.         ///////////
  204.         // Az ablak későbbi átméretezése esetén visszahívható függvény megadása
  205.         window.addEventListener( 'resize', handleWindowResize, false );
  206.  
  207.         // Kamera vezérlés
  208.         controls = new THREE.TrackballControls( camera, renderer.domElement );
  209.         controls.rotateSpeed = 5.0;
  210.         controls.panSpeed = 1.0;
  211.  
  212.         // Első képkocka rajzolása
  213.  
  214.  
  215.         render();
  216.  
  217.  
  218.     }
  219.  
  220.     function handleWindowResize() {
  221.         // Az ablak átméretezése esetén a kamera vetítési paraméterek újraszámolása
  222.         HEIGHT = window.innerHeight;
  223.         WIDTH = window.innerWidth;
  224.         console.log( 'WIDTH=' + WIDTH + '; HEIGHT=' + HEIGHT );
  225.  
  226.         aspectRatio = WIDTH / HEIGHT;
  227.         camera.aspect = aspectRatio;
  228.         camera.updateProjectionMatrix();
  229.     }
  230.  
  231.     var render = function () {
  232.         // Újabb képkocka rajzolásának kérése.
  233.         // Maximálisan 60 FPS-t biztosít a rendszer.
  234.         requestAnimationFrame( render );
  235.         // Kamera vezérlés
  236.  
  237.         if (moving_group.rotation.z >= THREE.Math.degToRad(40)){
  238.             irany = 1;
  239.         }else if (moving_group.rotation.z <= THREE.Math.degToRad(-40)){
  240.            irany = 0;
  241.        }
  242.  
  243.  
  244.        if (irany == 0 && moving_group.rotation.z < THREE.Math.degToRad(40)){
  245.            moving_group.rotation.z += THREE.Math.degToRad(1);
  246.        }else if (irany == 1 && moving_group.rotation.z > THREE.Math.degToRad(-40)){
  247.             moving_group.rotation.z -= THREE.Math.degToRad(1);
  248.         }
  249.  
  250.  
  251.  
  252.  
  253.         if(this.moving_group.position.y > 7){
  254.             this.moving_group.position.y -= 0.07;
  255.  
  256.         }else{
  257.             this.moving_group.position.y = 50;
  258.  
  259.         }
  260.  
  261.  
  262.         controls.update();
  263.  
  264.         // 3D -> 2D vetített kép kiszámítása.
  265.         // scene 3D színtér képe a camera kamera szemszögéből.
  266.         renderer.render( scene, camera );
  267.     };
  268.  
  269.  
  270.  
  271. </script>
  272. </body>
  273. </html>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement