threepipe
Du kan inte välja fler än 25 ämnen Ämnen måste starta med en bokstav eller siffra, kan innehålla bindestreck ('-') och vara max 35 tecken långa.

script.ts 1.9KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. import {_testFinish, LoadingScreenPlugin, MathUtils, OrbitControls3, ThreeViewer} from 'threepipe'
  2. import {TilesRendererPlugin, UnloadTilesPlugin, TileCompressionPlugin} from '@threepipe/plugin-3d-tiles-renderer'
  3. import {CESIUM_ION_API_TOKEN} from '../globals.js'
  4. async function init() {
  5. const viewer = new ThreeViewer({
  6. canvas: document.getElementById('mcanvas') as HTMLCanvasElement,
  7. msaa: false,
  8. debug: true,
  9. renderScale: 'auto',
  10. })
  11. // viewer.scene.mainCamera.position.set(4800000, 2570000, 14720000 )
  12. viewer.scene.mainCamera.position.set(500, 500, 500)
  13. viewer.scene.mainCamera.autoNearFar = false
  14. viewer.scene.mainCamera.minNearPlane = 1
  15. viewer.scene.mainCamera.maxFarPlane = 1600000
  16. viewer.scene.mainCamera.fov = 60
  17. const controls = viewer.scene.mainCamera.controls as OrbitControls3
  18. controls.minDistance = 1
  19. controls.maxDistance = 1e4 * 2
  20. controls.minPolarAngle = 0
  21. controls.maxPolarAngle = 3 * Math.PI / 8
  22. controls.enableDamping = true
  23. controls.autoRotate = true
  24. controls.autoRotateSpeed = 0.5
  25. controls.enablePan = false
  26. const tiles = viewer.addPluginSync(TilesRendererPlugin)
  27. viewer.addPluginSync(LoadingScreenPlugin)
  28. const result = await tiles.loadCesiumIon({
  29. assetId: '2275207',
  30. apiToken: CESIUM_ION_API_TOKEN,
  31. autoRefreshToken: true,
  32. }, {
  33. autoCenter: false,
  34. tiles: {
  35. TilesFadePlugin: true,
  36. plugins: [
  37. ()=>new TileCompressionPlugin(),
  38. ()=>new UnloadTilesPlugin(),
  39. ],
  40. },
  41. })
  42. if (result) {
  43. result.rotateX(-Math.PI / 2)
  44. // @ts-expect-error deprecated?
  45. result.tilesRenderer.setLatLonToYUp(35.6586 * MathUtils.DEG2RAD, 139.7454 * MathUtils.DEG2RAD) // Tokyo Tower
  46. result.tilesRenderer.errorTarget = 1
  47. }
  48. console.log(result)
  49. }
  50. init().finally(_testFinish)