threepipe
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

123456789101112131415161718192021222324252627282930313233343536373839
  1. <template>
  2. <canvas id="three-canvas" style="width: 800px; height: 600px" ref="canvasRef"></canvas>
  3. </template>
  4. <script>
  5. import {LoadingScreenPlugin, ThreeViewer} from "threepipe";
  6. import {onBeforeUnmount, onMounted, ref} from "vue"
  7. export default {
  8. setup() {
  9. const canvasRef = ref(null);
  10. onMounted(() => {
  11. const viewer = new ThreeViewer({
  12. canvas: canvasRef.value,
  13. plugins: [LoadingScreenPlugin],
  14. });
  15. // Load an environment map
  16. const envPromise = viewer.setEnvironmentMap('https://threejs.org/examples/textures/equirectangular/venice_sunset_1k.hdr');
  17. const modelPromise = viewer.load('https://threejs.org/examples/models/gltf/DamagedHelmet/glTF/DamagedHelmet.gltf', {
  18. autoCenter: true,
  19. autoScale: true,
  20. });
  21. Promise.all([envPromise, modelPromise]).then(([env, model]) => {
  22. console.log('Loaded', model, env, viewer);
  23. });
  24. onBeforeUnmount(() => {
  25. viewer.dispose();
  26. });
  27. });
  28. return {canvasRef};
  29. },
  30. };
  31. </script>