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.

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  1. import {_testFinish, _testStart, FrameFadePlugin, LoadingScreenPlugin, SSAAPlugin, ThreeViewer} from 'threepipe'
  2. import {EnvironmentControlsPlugin, TilesRendererPlugin} from '@threepipe/plugin-3d-tiles-renderer'
  3. import {TweakpaneUiPlugin} from '@threepipe/plugin-tweakpane'
  4. async function init() {
  5. const viewer = new ThreeViewer({
  6. canvas: document.getElementById('mcanvas') as HTMLCanvasElement,
  7. msaa: false,
  8. debug: false,
  9. renderScale: 'auto',
  10. dropzone: {
  11. allowedExtensions: ['gltf', 'glb', 'hdr', 'bin', 'png', 'jpeg', 'webp', 'jpg', 'exr', 'json'],
  12. addOptions: {
  13. disposeSceneObjects: true,
  14. autoSetEnvironment: true, // when hdr is dropped
  15. autoSetBackground: false,
  16. },
  17. },
  18. plugins: [LoadingScreenPlugin, FrameFadePlugin, SSAAPlugin, EnvironmentControlsPlugin],
  19. })
  20. viewer.scene.mainCamera.controlsMode = 'environment'
  21. viewer.scene.mainCamera.controls!.minDistance = 0.25
  22. viewer.scene.mainCamera.position.set(30, 30, 40)
  23. viewer.scene.mainCamera.lookAt(0, 0, 0)
  24. // viewer.scene.mainCamera.position.set(300, 300, 300)
  25. // viewer.scene.mainCamera.autoNearFar = false
  26. // viewer.scene.mainCamera.minNearPlane = 1
  27. // viewer.scene.mainCamera.maxFarPlane = 1000
  28. const tiles = viewer.addPluginSync(TilesRendererPlugin)
  29. tiles.load('https://raw.githubusercontent.com/NASA-AMMOS/3DTilesSampleData/master/msl-dingo-gap/0528_0260184_to_s64o256_colorize/0528_0260184_to_s64o256_colorize/0528_0260184_to_s64o256_colorize_tileset.json', {
  30. autoCenter: false,
  31. autoScale: true,
  32. autoScaleRadius: 30,
  33. tiles: {
  34. TilesFadePlugin: {
  35. fadeDuration: 2,
  36. fadeRootTiles: true,
  37. },
  38. },
  39. }).then(group => {
  40. if (group) {
  41. group.rotateX(Math.PI / 2)
  42. group.tilesRenderer.errorTarget = 12
  43. group.tilesRenderer.lruCache.minSize = 900
  44. group.tilesRenderer.lruCache.maxSize = 1300
  45. }
  46. })
  47. tiles.load('https://raw.githubusercontent.com/NASA-AMMOS/3DTilesSampleData/master/msl-dingo-gap/0528_0260184_to_s64o256_colorize/0528_0260184_to_s64o256_sky/0528_0260184_to_s64o256_sky_tileset.json', {
  48. autoCenter: false,
  49. autoScale: true,
  50. autoScaleRadius: 30,
  51. }).then(group => {
  52. if (group) {
  53. group.rotateX(Math.PI / 2)
  54. // result.tilesRenderer.errorTarget = 12
  55. }
  56. })
  57. const ui = viewer.addPluginSync(TweakpaneUiPlugin)
  58. ui.setupPluginUi(TilesRendererPlugin)
  59. // ui.setupPluginUi(PickingPlugin)
  60. }
  61. _testStart()
  62. init().finally(_testFinish)