threepipe
Vous ne pouvez pas sélectionner plus de 25 sujets Les noms de sujets doivent commencer par une lettre ou un nombre, peuvent contenir des tirets ('-') et peuvent comporter jusqu'à 35 caractères.

script.ts 1.3KB

1234567891011121314151617181920212223242526272829303132333435
  1. import {_testFinish, BoxGeometry, FrameFadePlugin, Mesh, PhysicalMaterial, ThreeViewer} from 'threepipe'
  2. import {createSimpleButtons} from '../examples-utils/simple-bottom-buttons.js'
  3. async function init() {
  4. const viewer = new ThreeViewer({
  5. canvas: document.getElementById('mcanvas') as HTMLCanvasElement,
  6. })
  7. viewer.addPluginSync(FrameFadePlugin)
  8. await viewer.setEnvironmentMap('https://threejs.org/examples/textures/equirectangular/venice_sunset_1k.hdr')
  9. const cube = viewer.scene.addObject(new Mesh(
  10. new BoxGeometry(1, 1, 1),
  11. new PhysicalMaterial({color: 0xff0000})
  12. ))
  13. createSimpleButtons({
  14. ['Change Color']: ()=>{
  15. cube.material.color.setHSL(Math.random(), 1, 0.5)
  16. cube.material.setDirty() // this will trigger frame fade
  17. },
  18. ['Change Size']: ()=>{
  19. cube.scale.setScalar(Math.random() * 1.5 + 0.5)
  20. cube.setDirty({fadeDuration: 1000}) // duration can be controlled by an option like this.
  21. },
  22. ['Change Color (no fade)']: ()=>{
  23. cube.material.color.setHSL(Math.random(), 1, 0.5)
  24. cube.material.setDirty({frameFade: false}) // disable frame fade for this update but re-render the scene.
  25. },
  26. })
  27. }
  28. init().finally(_testFinish)