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.

преди 1 година
123456789101112131415161718192021222324252627282930313233343536373839404142
  1. import {_testFinish, _testStart, DirectionalLight2, LoadingScreenPlugin, ThreeViewer} from 'threepipe'
  2. import {TweakpaneUiPlugin} from '@threepipe/plugin-tweakpane'
  3. import {BasicSVGRendererPlugin} from '@threepipe/plugin-svg-renderer'
  4. async function init() {
  5. const viewer = new ThreeViewer({
  6. canvas: document.getElementById('mcanvas') as HTMLCanvasElement,
  7. msaa: false,
  8. tonemap: false,
  9. plugins: [LoadingScreenPlugin],
  10. })
  11. viewer.scene.mainCamera.controls!.enableDamping = false
  12. viewer.addPluginSync(new BasicSVGRendererPlugin(true))
  13. viewer.scene.addObject(new DirectionalLight2(0x0000ff, 1))
  14. const l = new DirectionalLight2(0xff0000, 1)
  15. l.target.position.set(-1, -1, -1)
  16. viewer.scene.addObject(l)
  17. await viewer.load('https://threejs.org/examples/models/gltf/ShadowmappableMesh.glb', {
  18. autoCenter: true,
  19. autoScale: true,
  20. })
  21. await viewer.doOnce('postFrame') // wait for one frame
  22. // disable rendering so canvas is transparent
  23. viewer.renderManager.autoBuildPipeline = false
  24. viewer.renderManager.pipeline = [] // this will disable main viewer rendering
  25. // // make it invisible.
  26. viewer.canvas.style.opacity = '0'
  27. const ui = viewer.addPluginSync(new TweakpaneUiPlugin(true))
  28. ui.setupPlugins(BasicSVGRendererPlugin)
  29. ui.appendChild(l.uiConfig)
  30. }
  31. _testStart()
  32. init().finally(_testFinish)