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.

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. import {
  2. _testFinish, _testStart,
  3. DepthBufferPlugin,
  4. HalfFloatType,
  5. LoadingScreenPlugin,
  6. NormalBufferPlugin,
  7. RenderTargetPreviewPlugin,
  8. ThreeViewer,
  9. } from 'threepipe'
  10. const viewer = new ThreeViewer({
  11. canvas: document.getElementById('mcanvas') as HTMLCanvasElement,
  12. msaa: true,
  13. rgbm: true,
  14. zPrepass: false,
  15. plugins: [LoadingScreenPlugin],
  16. })
  17. async function init() {
  18. const depth = viewer.addPluginSync(new DepthBufferPlugin(HalfFloatType, true))
  19. const normal = viewer.addPluginSync(new NormalBufferPlugin(HalfFloatType))
  20. const targetPreview = viewer.addPluginSync(RenderTargetPreviewPlugin)
  21. await viewer.setEnvironmentMap('https://threejs.org/examples/textures/equirectangular/venice_sunset_1k.hdr')
  22. await viewer.load('https://threejs.org/examples/models/gltf/kira.glb', {
  23. autoCenter: true,
  24. autoScale: true,
  25. })
  26. viewer.renderManager.autoBuildPipeline = false
  27. viewer.renderManager.pipeline = ['depth', 'normal', 'render', 'screen']
  28. targetPreview.addTarget(()=>depth.target, 'depth', false, true)
  29. targetPreview.addTarget(()=>normal.target, 'normal', false, false)
  30. targetPreview.addTarget(()=>viewer.renderManager.composerTarget, 'composer-1', false, false)
  31. targetPreview.addTarget(()=>viewer.renderManager.composerTarget2, 'composer-2', false, false)
  32. }
  33. _testStart()
  34. init().finally(_testFinish)