Text3D.vue 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. <script setup lang="ts">
  2. import { TextGeometry } from 'three/examples/jsm/geometries/TextGeometry'
  3. import { FontLoader } from 'three/examples/jsm/loaders/FontLoader'
  4. import { extend } from '../core/catalogue'
  5. import { useTexture } from '/@/composables'
  6. extend({ TextGeometry })
  7. const fontPath = 'https://raw.githubusercontent.com/Tresjs/assets/main/fonts/FiraCodeRegular.json'
  8. const fontOptions = {
  9. size: 0.5,
  10. height: 0.2,
  11. curveSegments: 5,
  12. bevelEnabled: true,
  13. bevelThickness: 0.05,
  14. bevelSize: 0.02,
  15. bevelOffset: 0,
  16. bevelSegments: 4,
  17. }
  18. const loader = new FontLoader()
  19. const font = await new Promise((resolve, reject) => {
  20. try {
  21. loader.load(fontPath, font => {
  22. resolve(font)
  23. })
  24. } catch (error) {
  25. reject(console.error('cientos', error))
  26. }
  27. })
  28. const matcapTexture = await useTexture(['https://raw.githubusercontent.com/Tresjs/assets/main/textures/matcaps/7.png'])
  29. </script>
  30. <template>
  31. <TresMesh>
  32. <TresTextGeometry :args="['TresJS', { font, ...fontOptions }]" center />
  33. <TresMeshNormalMaterial :matcap="matcapTexture" />
  34. </TresMesh>
  35. </template>