index.js 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. import * as three from "three";
  2. import {OrbitControls} from "orbitControls";
  3. import {CheapBoard, TwoByFour} from "boards";
  4. const canvas = document.getElementById("canvas");
  5. const renderer = new three.WebGLRenderer({antialias: true, canvas});
  6. const camera = new three.PerspectiveCamera(75, window.innerWidth / window.innerHeight, 1, 1000);
  7. camera.position.z = 200;
  8. camera.position.y = 1.8;
  9. const controls = new OrbitControls(camera, renderer.domElement);
  10. const scene = new three.Scene();
  11. const light = new three.DirectionalLight(0xffffff, 3);
  12. scene.add(light);
  13. const board = new TwoByFour(scene, 96);
  14. function resizeRendererToDisplaySize(renderer){
  15. const canvas = renderer.domElement;
  16. const width = canvas.clientWidth;
  17. const height = canvas.clientHeight;
  18. const needResize = canvas.width !== width || canvas.height !== height;
  19. if(needResize) renderer.setSize(width, height, false);
  20. return needResize;
  21. }
  22. function render(time){
  23. if(resizeRendererToDisplaySize(renderer)){
  24. const canvas = renderer.domElement;
  25. camera.aspect = canvas.clientWidth / canvas.clientHeight;
  26. camera.updateProjectionMatrix();
  27. }
  28. renderer.render(scene, camera);
  29. requestAnimationFrame(render);
  30. }
  31. renderer.render(scene, camera);
  32. requestAnimationFrame(render);