setup.js 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. import * as three from "three";
  2. import {OrbitControls} from "orbitControls";
  3. import {CSS2DRenderer} from "2dRenderer";
  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 = 100;
  8. camera.position.y = 1.8;
  9. const labelRenderer = new CSS2DRenderer();
  10. labelRenderer.setSize(window.innerWidth, window.innerHeight);
  11. labelRenderer.domElement.style.position = "absolute";
  12. labelRenderer.domElement.style.top = "0px";
  13. labelRenderer.domElement.style.pointerEvents = "none";
  14. document.body.appendChild(labelRenderer.domElement);
  15. const controls = new OrbitControls(camera, renderer.domElement);
  16. export const scene = new three.Scene();
  17. const light = new three.DirectionalLight(0xffffff, 3);
  18. scene.add(light);
  19. function resizeRendererToDisplaySize(renderer){
  20. const canvas = renderer.domElement;
  21. const width = canvas.clientWidth;
  22. const height = canvas.clientHeight;
  23. const needResize = canvas.width !== width || canvas.height !== height;
  24. if(needResize) renderer.setSize(width, height, false);
  25. return needResize;
  26. }
  27. function render(time){
  28. if(resizeRendererToDisplaySize(renderer)){
  29. const canvas = renderer.domElement;
  30. camera.aspect = canvas.clientWidth / canvas.clientHeight;
  31. camera.updateProjectionMatrix();
  32. }
  33. renderer.render(scene, camera);
  34. labelRenderer.render(scene, camera);
  35. requestAnimationFrame(render);
  36. }
  37. renderer.render(scene, camera);
  38. requestAnimationFrame(render);
  39. export function compute(data){
  40. console.log(data);
  41. }
  42. export const Group = three.Group;