Advertisement
szdani96

Untitled

Oct 21st, 2017
86
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.20 KB | None | 0 0
  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <script src="./js-r87/three.js"></script>
  5. <script src="./js-r87/stats.min.js"></script>
  6. <script src="./js-r87/dat.gui.min.js"></script>
  7. <title>Title</title>
  8. <style>
  9. body{ margin:40;
  10. overflow:hidden;}
  11. </style>
  12. </head>
  13. <body>
  14. <div id="Stats-output"></div>
  15.  
  16. <div id="WebGL-output">
  17.  
  18. </div>
  19. <script>
  20. function init(){
  21. var stats=initStats();
  22. var scene=new THREE.Scene();
  23. var camera=new THREE.PerspectiveCamera(45,window.innerWidth/window.innerHeight,0.1,1000);
  24. var renderer=new THREE.WebGLRenderer();
  25. renderer.setClearColor(0xEEEEEE,1);
  26. renderer.setSize(window.innerWidth,window.innerHeight);
  27. renderer.shadowMapEnabled=true;
  28.  
  29. var axes=new THREE.AxisHelper(20);
  30. scene.add(axes);
  31. var planeGeometry=new THREE.PlaneGeometry(60,20,1,1);
  32. var planeMaterial=new THREE.MeshLambertMaterial({color:0xffffff});
  33. var plane=new THREE.Mesh(planeGeometry,planeMaterial);
  34. plane.rotation.x=-1/2*Math.PI;
  35. plane.position.x=15;
  36. plane.position.y=0;
  37. plane.position.z=0;
  38. plane.receiveShadow=true;
  39. scene.add(plane);
  40. var cubeGeometry=new THREE.BoxGeometry(4,4,4);
  41. var cubeMaterial=new THREE.MeshLambertMaterial({color:0xff0000});
  42. var cube=new THREE.Mesh(cubeGeometry,cubeMaterial);
  43. cube.castShadow=true;
  44. cube.position.x=-4;
  45. cube.position.y=3;
  46. cube.position.z=0;
  47.  
  48. scene.add(cube);
  49.  
  50. var sphereGeometry=new THREE.SphereGeometry(4,20,20);
  51. var sphereMaterial=new THREE.MeshLambertMaterial({color:0x7777ff});
  52. var sphere=new THREE.Mesh(sphereGeometry,sphereMaterial);
  53. sphere.position.x=20;
  54. sphere.position.y=4;
  55. sphere.position.z=2;
  56. sphere.castShadow=true;
  57. scene.add(sphere);
  58.  
  59. camera.position.x=-30;
  60. camera.position.y=40;
  61. camera.position.z=30;
  62. camera.lookAt(scene.position);
  63.  
  64. var spotLight=new THREE.SpotLight( 0xffffff );
  65. spotLight.position.set(-40,60,-10);
  66. spotLight.castShadow=true;
  67. scene.add(spotLight);
  68.  
  69. document.getElementById("WebGL-output").appendChild(renderer.domElement);
  70. //renderer.render(scene,camera);
  71. var step=0;
  72. var controls=new function() {
  73. this.rotationSpeed=0.02;
  74. this.bouncingSpeed=0.03;
  75.  
  76. };
  77. var gui=new dat.GUI();
  78. gui.add(controls,'rotationSpeed',0,0.5);
  79. gui.add(controls,'bouncingSpeed',0,0.5);
  80. renderScene();
  81.  
  82. function renderScene(){
  83. stats.update();
  84. cube.rotation.x+=controls.rotationSpeed;
  85. cube.rotation.y+=controls.rotationSpeed;
  86. cube.rotation.z+=controls.rotationSpeed;
  87.  
  88. step+=controls.bouncingSpeed;
  89. sphere.position.x=20+(10*Math.cos(step));
  90. sphere.position.y=2+(10*Math.abs(Math.sin(step)));
  91. requestAnimationFrame(renderScene);
  92. renderer.render(scene,camera);
  93. }
  94. function initStats(){
  95. var stats=new Stats();
  96. stats.setMode(0);
  97. stats.domElement.style.position='absolute';
  98. stats.domElement.style.left='0px';
  99. stats.domElement.style.top='0px';
  100. document.getElementById("Stats-output").appendChild(stats.domElement);
  101. return stats;
  102.  
  103. }
  104. }
  105. window.onload=init;
  106.  
  107.  
  108. </script>
  109. </body>
  110. </html>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement