@zephyr3d/scene 0.8.0 → 0.8.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (389) hide show
  1. package/dist/animation/animationset.js +220 -1
  2. package/dist/animation/animationset.js.map +1 -1
  3. package/dist/animation/ik/ccd_solver.js +3 -4
  4. package/dist/animation/ik/ccd_solver.js.map +1 -1
  5. package/dist/animation/ik/fabrik_solver.js +3 -4
  6. package/dist/animation/ik/fabrik_solver.js.map +1 -1
  7. package/dist/animation/ik/ik_pole_constraint.js +7 -2
  8. package/dist/animation/ik/ik_pole_constraint.js.map +1 -1
  9. package/dist/animation/ik/ik_utils.js +0 -79
  10. package/dist/animation/ik/ik_utils.js.map +1 -1
  11. package/dist/animation/ik/two_bone_ik_solver.js +3 -4
  12. package/dist/animation/ik/two_bone_ik_solver.js.map +1 -1
  13. package/dist/animation/skeleton.js +157 -125
  14. package/dist/animation/skeleton.js.map +1 -1
  15. package/dist/animation/spring/spring_bone.js +240 -0
  16. package/dist/animation/spring/spring_bone.js.map +1 -0
  17. package/dist/animation/spring/spring_bone_collider.js +198 -0
  18. package/dist/animation/spring/spring_bone_collider.js.map +1 -0
  19. package/dist/animation/spring/spring_bone_constraint.js +170 -0
  20. package/dist/animation/spring/spring_bone_constraint.js.map +1 -0
  21. package/dist/animation/spring/spring_bone_system.js +328 -0
  22. package/dist/animation/spring/spring_bone_system.js.map +1 -0
  23. package/dist/asset/model.js +2 -2
  24. package/dist/index.d.ts +17 -0
  25. package/dist/material/mixins/pbr/common.js +20 -17
  26. package/dist/material/mixins/pbr/common.js.map +1 -1
  27. package/dist/render/gpu_picking.js +100 -0
  28. package/dist/render/gpu_picking.js.map +1 -0
  29. package/dist/render/rendergraph/device_pool_allocator.js +41 -0
  30. package/dist/render/rendergraph/device_pool_allocator.js.map +1 -0
  31. package/dist/render/rendergraph/executor.js +146 -0
  32. package/dist/render/rendergraph/executor.js.map +1 -0
  33. package/dist/render/rendergraph/forward_plus_builder.js +414 -0
  34. package/dist/render/rendergraph/forward_plus_builder.js.map +1 -0
  35. package/dist/render/rendergraph/rendergraph.js +306 -0
  36. package/dist/render/rendergraph/rendergraph.js.map +1 -0
  37. package/dist/render/rendergraph/types.js +57 -0
  38. package/dist/render/rendergraph/types.js.map +1 -0
  39. package/dist/render/sky_motion_vector.js +85 -0
  40. package/dist/render/sky_motion_vector.js.map +1 -0
  41. package/dist/utility/serialization/scene/animation.js +3 -3
  42. package/dist/utility/serialization/scene/node.js +1 -1
  43. package/package.json +2 -2
  44. package/dist/animation/ik/ik_chain_builder.js +0 -68
  45. package/dist/animation/ik/ik_chain_builder.js.map +0 -1
  46. package/dist/node_modules/@zephyr3d/runtime/dist/runtime/runtimemgr.js +0 -38
  47. package/dist/node_modules/@zephyr3d/runtime/dist/runtime/runtimemgr.js.map +0 -1
  48. package/dist/node_modules/@zephyr3d/runtime/dist/runtime/runtimescript.js +0 -10
  49. package/dist/node_modules/@zephyr3d/runtime/dist/runtime/runtimescript.js.map +0 -1
  50. package/dist/node_modules/@zephyr3d/runtime/dist/runtime/scriptingsystem.js +0 -127
  51. package/dist/node_modules/@zephyr3d/runtime/dist/runtime/scriptingsystem.js.map +0 -1
  52. package/dist/node_modules/@zephyr3d/runtime/dist/runtime/scriptregistry.js +0 -263
  53. package/dist/node_modules/@zephyr3d/runtime/dist/runtime/scriptregistry.js.map +0 -1
  54. package/dist/src/animation/animation.js +0 -127
  55. package/dist/src/animation/animation.js.map +0 -1
  56. package/dist/src/animation/animationset.js +0 -255
  57. package/dist/src/animation/animationset.js.map +0 -1
  58. package/dist/src/animation/animationtrack.js +0 -34
  59. package/dist/src/animation/animationtrack.js.map +0 -1
  60. package/dist/src/animation/eulerrotationtrack.js +0 -52
  61. package/dist/src/animation/eulerrotationtrack.js.map +0 -1
  62. package/dist/src/animation/morphtarget.js +0 -93
  63. package/dist/src/animation/morphtarget.js.map +0 -1
  64. package/dist/src/animation/morphtrack.js +0 -70
  65. package/dist/src/animation/morphtrack.js.map +0 -1
  66. package/dist/src/animation/proptrack.js +0 -161
  67. package/dist/src/animation/proptrack.js.map +0 -1
  68. package/dist/src/animation/rotationtrack.js +0 -51
  69. package/dist/src/animation/rotationtrack.js.map +0 -1
  70. package/dist/src/animation/scaletrack.js +0 -50
  71. package/dist/src/animation/scaletrack.js.map +0 -1
  72. package/dist/src/animation/skeleton.js +0 -204
  73. package/dist/src/animation/skeleton.js.map +0 -1
  74. package/dist/src/animation/translationtrack.js +0 -50
  75. package/dist/src/animation/translationtrack.js.map +0 -1
  76. package/dist/src/app/app.js +0 -129
  77. package/dist/src/app/app.js.map +0 -1
  78. package/dist/src/app/inputmgr.js +0 -267
  79. package/dist/src/app/inputmgr.js.map +0 -1
  80. package/dist/src/asset/assetmanager.js +0 -404
  81. package/dist/src/asset/assetmanager.js.map +0 -1
  82. package/dist/src/asset/builtin.js +0 -337
  83. package/dist/src/asset/builtin.js.map +0 -1
  84. package/dist/src/asset/loaders/dds/dds.js +0 -470
  85. package/dist/src/asset/loaders/dds/dds.js.map +0 -1
  86. package/dist/src/asset/loaders/dds/dds_loader.js +0 -28
  87. package/dist/src/asset/loaders/dds/dds_loader.js.map +0 -1
  88. package/dist/src/asset/loaders/gltf/gltf_loader.js +0 -1265
  89. package/dist/src/asset/loaders/gltf/gltf_loader.js.map +0 -1
  90. package/dist/src/asset/loaders/gltf/helpers.js +0 -327
  91. package/dist/src/asset/loaders/gltf/helpers.js.map +0 -1
  92. package/dist/src/asset/loaders/hdr/hdr.js +0 -180
  93. package/dist/src/asset/loaders/hdr/hdr.js.map +0 -1
  94. package/dist/src/asset/loaders/image/tga_Loader.js +0 -116
  95. package/dist/src/asset/loaders/image/tga_Loader.js.map +0 -1
  96. package/dist/src/asset/loaders/image/webimage_loader.js +0 -63
  97. package/dist/src/asset/loaders/image/webimage_loader.js.map +0 -1
  98. package/dist/src/asset/loaders/loader.js +0 -45
  99. package/dist/src/asset/loaders/loader.js.map +0 -1
  100. package/dist/src/asset/model.js +0 -414
  101. package/dist/src/asset/model.js.map +0 -1
  102. package/dist/src/blitter/bilateralblur.js +0 -221
  103. package/dist/src/blitter/bilateralblur.js.map +0 -1
  104. package/dist/src/blitter/blitter.js +0 -390
  105. package/dist/src/blitter/blitter.js.map +0 -1
  106. package/dist/src/blitter/box.js +0 -118
  107. package/dist/src/blitter/box.js.map +0 -1
  108. package/dist/src/blitter/copy.js +0 -22
  109. package/dist/src/blitter/copy.js.map +0 -1
  110. package/dist/src/blitter/gaussianblur.js +0 -228
  111. package/dist/src/blitter/gaussianblur.js.map +0 -1
  112. package/dist/src/camera/base.js +0 -92
  113. package/dist/src/camera/base.js.map +0 -1
  114. package/dist/src/camera/camera.js +0 -1005
  115. package/dist/src/camera/camera.js.map +0 -1
  116. package/dist/src/camera/fps.js +0 -238
  117. package/dist/src/camera/fps.js.map +0 -1
  118. package/dist/src/camera/orbit.js +0 -245
  119. package/dist/src/camera/orbit.js.map +0 -1
  120. package/dist/src/camera/orthocamera.js +0 -167
  121. package/dist/src/camera/orthocamera.js.map +0 -1
  122. package/dist/src/camera/perspectivecamera.js +0 -141
  123. package/dist/src/camera/perspectivecamera.js.map +0 -1
  124. package/dist/src/index.js +0 -120
  125. package/dist/src/index.js.map +0 -1
  126. package/dist/src/material/blinn.js +0 -81
  127. package/dist/src/material/blinn.js.map +0 -1
  128. package/dist/src/material/grassmaterial.js +0 -113
  129. package/dist/src/material/grassmaterial.js.map +0 -1
  130. package/dist/src/material/lambert.js +0 -92
  131. package/dist/src/material/lambert.js.map +0 -1
  132. package/dist/src/material/material.js +0 -301
  133. package/dist/src/material/material.js.map +0 -1
  134. package/dist/src/material/meshmaterial.js +0 -704
  135. package/dist/src/material/meshmaterial.js.map +0 -1
  136. package/dist/src/material/mixins/albedocolor.js +0 -76
  137. package/dist/src/material/mixins/albedocolor.js.map +0 -1
  138. package/dist/src/material/mixins/foliage.js +0 -47
  139. package/dist/src/material/mixins/foliage.js.map +0 -1
  140. package/dist/src/material/mixins/lightmodel/blinnphong.js +0 -112
  141. package/dist/src/material/mixins/lightmodel/blinnphong.js.map +0 -1
  142. package/dist/src/material/mixins/lightmodel/lambert.js +0 -58
  143. package/dist/src/material/mixins/lightmodel/lambert.js.map +0 -1
  144. package/dist/src/material/mixins/lightmodel/pbrmetallicroughness.js +0 -178
  145. package/dist/src/material/mixins/lightmodel/pbrmetallicroughness.js.map +0 -1
  146. package/dist/src/material/mixins/lightmodel/pbrspecularglossness.js +0 -139
  147. package/dist/src/material/mixins/lightmodel/pbrspecularglossness.js.map +0 -1
  148. package/dist/src/material/mixins/lit.js +0 -476
  149. package/dist/src/material/mixins/lit.js.map +0 -1
  150. package/dist/src/material/mixins/pbr/common.js +0 -918
  151. package/dist/src/material/mixins/pbr/common.js.map +0 -1
  152. package/dist/src/material/mixins/texture.js +0 -172
  153. package/dist/src/material/mixins/texture.js.map +0 -1
  154. package/dist/src/material/mixins/vertexcolor.js +0 -56
  155. package/dist/src/material/mixins/vertexcolor.js.map +0 -1
  156. package/dist/src/material/particle.js +0 -178
  157. package/dist/src/material/particle.js.map +0 -1
  158. package/dist/src/material/pbrmr.js +0 -97
  159. package/dist/src/material/pbrmr.js.map +0 -1
  160. package/dist/src/material/pbrsg.js +0 -97
  161. package/dist/src/material/pbrsg.js.map +0 -1
  162. package/dist/src/material/shader/helper.js +0 -1209
  163. package/dist/src/material/shader/helper.js.map +0 -1
  164. package/dist/src/material/terrain-cm.js +0 -606
  165. package/dist/src/material/terrain-cm.js.map +0 -1
  166. package/dist/src/material/terrainmaterial.js +0 -375
  167. package/dist/src/material/terrainmaterial.js.map +0 -1
  168. package/dist/src/material/unlit.js +0 -41
  169. package/dist/src/material/unlit.js.map +0 -1
  170. package/dist/src/material/water.js +0 -417
  171. package/dist/src/material/water.js.map +0 -1
  172. package/dist/src/posteffect/bloom.js +0 -361
  173. package/dist/src/posteffect/bloom.js.map +0 -1
  174. package/dist/src/posteffect/compositor.js +0 -226
  175. package/dist/src/posteffect/compositor.js.map +0 -1
  176. package/dist/src/posteffect/fxaa.js +0 -273
  177. package/dist/src/posteffect/fxaa.js.map +0 -1
  178. package/dist/src/posteffect/grayscale.js +0 -69
  179. package/dist/src/posteffect/grayscale.js.map +0 -1
  180. package/dist/src/posteffect/motionblur.js +0 -96
  181. package/dist/src/posteffect/motionblur.js.map +0 -1
  182. package/dist/src/posteffect/posteffect.js +0 -126
  183. package/dist/src/posteffect/posteffect.js.map +0 -1
  184. package/dist/src/posteffect/sao.js +0 -324
  185. package/dist/src/posteffect/sao.js.map +0 -1
  186. package/dist/src/posteffect/ssr.js +0 -489
  187. package/dist/src/posteffect/ssr.js.map +0 -1
  188. package/dist/src/posteffect/taa.js +0 -172
  189. package/dist/src/posteffect/taa.js.map +0 -1
  190. package/dist/src/posteffect/tonemap.js +0 -94
  191. package/dist/src/posteffect/tonemap.js.map +0 -1
  192. package/dist/src/render/abuffer_oit.js +0 -361
  193. package/dist/src/render/abuffer_oit.js.map +0 -1
  194. package/dist/src/render/clipmap.js +0 -851
  195. package/dist/src/render/clipmap.js.map +0 -1
  196. package/dist/src/render/cluster_light.js +0 -333
  197. package/dist/src/render/cluster_light.js.map +0 -1
  198. package/dist/src/render/cull_visitor.js +0 -187
  199. package/dist/src/render/cull_visitor.js.map +0 -1
  200. package/dist/src/render/depthpass.js +0 -68
  201. package/dist/src/render/depthpass.js.map +0 -1
  202. package/dist/src/render/drawable_mixin.js +0 -227
  203. package/dist/src/render/drawable_mixin.js.map +0 -1
  204. package/dist/src/render/envlight.js +0 -463
  205. package/dist/src/render/envlight.js.map +0 -1
  206. package/dist/src/render/fbm_wavegenerator.js +0 -251
  207. package/dist/src/render/fbm_wavegenerator.js.map +0 -1
  208. package/dist/src/render/fft_wavegenerator.js +0 -1006
  209. package/dist/src/render/fft_wavegenerator.js.map +0 -1
  210. package/dist/src/render/fullscreenquad.js +0 -38
  211. package/dist/src/render/fullscreenquad.js.map +0 -1
  212. package/dist/src/render/gerstner_wavegenerator.js +0 -314
  213. package/dist/src/render/gerstner_wavegenerator.js.map +0 -1
  214. package/dist/src/render/globalbindgroup_allocator.js +0 -60
  215. package/dist/src/render/globalbindgroup_allocator.js.map +0 -1
  216. package/dist/src/render/hzb.js +0 -273
  217. package/dist/src/render/hzb.js.map +0 -1
  218. package/dist/src/render/lightpass.js +0 -172
  219. package/dist/src/render/lightpass.js.map +0 -1
  220. package/dist/src/render/objectcolorpass.js +0 -51
  221. package/dist/src/render/objectcolorpass.js.map +0 -1
  222. package/dist/src/render/primitive.js +0 -364
  223. package/dist/src/render/primitive.js.map +0 -1
  224. package/dist/src/render/render_queue.js +0 -467
  225. package/dist/src/render/render_queue.js.map +0 -1
  226. package/dist/src/render/renderbundle_wrapper.js +0 -152
  227. package/dist/src/render/renderbundle_wrapper.js.map +0 -1
  228. package/dist/src/render/renderer.js +0 -455
  229. package/dist/src/render/renderer.js.map +0 -1
  230. package/dist/src/render/renderpass.js +0 -200
  231. package/dist/src/render/renderpass.js.map +0 -1
  232. package/dist/src/render/shadowmap_pass.js +0 -56
  233. package/dist/src/render/shadowmap_pass.js.map +0 -1
  234. package/dist/src/render/sky.js +0 -1103
  235. package/dist/src/render/sky.js.map +0 -1
  236. package/dist/src/render/weightedblended_oit.js +0 -168
  237. package/dist/src/render/weightedblended_oit.js.map +0 -1
  238. package/dist/src/scene/batchgroup.js +0 -162
  239. package/dist/src/scene/batchgroup.js.map +0 -1
  240. package/dist/src/scene/environment.js +0 -209
  241. package/dist/src/scene/environment.js.map +0 -1
  242. package/dist/src/scene/graph_node.js +0 -72
  243. package/dist/src/scene/graph_node.js.map +0 -1
  244. package/dist/src/scene/light.js +0 -416
  245. package/dist/src/scene/light.js.map +0 -1
  246. package/dist/src/scene/mesh.js +0 -341
  247. package/dist/src/scene/mesh.js.map +0 -1
  248. package/dist/src/scene/octree.js +0 -649
  249. package/dist/src/scene/octree.js.map +0 -1
  250. package/dist/src/scene/particlesys.js +0 -738
  251. package/dist/src/scene/particlesys.js.map +0 -1
  252. package/dist/src/scene/raycast_visitor.js +0 -103
  253. package/dist/src/scene/raycast_visitor.js.map +0 -1
  254. package/dist/src/scene/scene.js +0 -284
  255. package/dist/src/scene/scene.js.map +0 -1
  256. package/dist/src/scene/scene_node.js +0 -732
  257. package/dist/src/scene/scene_node.js.map +0 -1
  258. package/dist/src/scene/terrain/grass.js +0 -278
  259. package/dist/src/scene/terrain/grass.js.map +0 -1
  260. package/dist/src/scene/terrain/heightfield.js +0 -475
  261. package/dist/src/scene/terrain/heightfield.js.map +0 -1
  262. package/dist/src/scene/terrain/patch.js +0 -530
  263. package/dist/src/scene/terrain/patch.js.map +0 -1
  264. package/dist/src/scene/terrain/quadtree.js +0 -461
  265. package/dist/src/scene/terrain/quadtree.js.map +0 -1
  266. package/dist/src/scene/terrain/terrain.js +0 -246
  267. package/dist/src/scene/terrain/terrain.js.map +0 -1
  268. package/dist/src/scene/terrain-cm/grass.js +0 -594
  269. package/dist/src/scene/terrain-cm/grass.js.map +0 -1
  270. package/dist/src/scene/terrain-cm/grassmaterial.js +0 -159
  271. package/dist/src/scene/terrain-cm/grassmaterial.js.map +0 -1
  272. package/dist/src/scene/terrain-cm/terrain-cm.js +0 -538
  273. package/dist/src/scene/terrain-cm/terrain-cm.js.map +0 -1
  274. package/dist/src/scene/water.js +0 -374
  275. package/dist/src/scene/water.js.map +0 -1
  276. package/dist/src/shaders/atmosphere.js +0 -957
  277. package/dist/src/shaders/atmosphere.js.map +0 -1
  278. package/dist/src/shaders/fog.js +0 -112
  279. package/dist/src/shaders/fog.js.map +0 -1
  280. package/dist/src/shaders/misc.js +0 -266
  281. package/dist/src/shaders/misc.js.map +0 -1
  282. package/dist/src/shaders/noise.js +0 -222
  283. package/dist/src/shaders/noise.js.map +0 -1
  284. package/dist/src/shaders/pbr.js +0 -51
  285. package/dist/src/shaders/pbr.js.map +0 -1
  286. package/dist/src/shaders/shadow.js +0 -636
  287. package/dist/src/shaders/shadow.js.map +0 -1
  288. package/dist/src/shaders/ssr.js +0 -490
  289. package/dist/src/shaders/ssr.js.map +0 -1
  290. package/dist/src/shaders/temporal.js +0 -215
  291. package/dist/src/shaders/temporal.js.map +0 -1
  292. package/dist/src/shaders/water.js +0 -756
  293. package/dist/src/shaders/water.js.map +0 -1
  294. package/dist/src/shadow/esm.js +0 -237
  295. package/dist/src/shadow/esm.js.map +0 -1
  296. package/dist/src/shadow/pcf_opt.js +0 -181
  297. package/dist/src/shadow/pcf_opt.js.map +0 -1
  298. package/dist/src/shadow/pcf_pd.js +0 -189
  299. package/dist/src/shadow/pcf_pd.js.map +0 -1
  300. package/dist/src/shadow/shader.js +0 -37
  301. package/dist/src/shadow/shader.js.map +0 -1
  302. package/dist/src/shadow/shadow_impl.js +0 -15
  303. package/dist/src/shadow/shadow_impl.js.map +0 -1
  304. package/dist/src/shadow/shadowmapper.js +0 -790
  305. package/dist/src/shadow/shadowmapper.js.map +0 -1
  306. package/dist/src/shadow/ssm.js +0 -159
  307. package/dist/src/shadow/ssm.js.map +0 -1
  308. package/dist/src/shadow/vsm.js +0 -297
  309. package/dist/src/shadow/vsm.js.map +0 -1
  310. package/dist/src/shapes/box.js +0 -386
  311. package/dist/src/shapes/box.js.map +0 -1
  312. package/dist/src/shapes/cylinder.js +0 -125
  313. package/dist/src/shapes/cylinder.js.map +0 -1
  314. package/dist/src/shapes/plane.js +0 -88
  315. package/dist/src/shapes/plane.js.map +0 -1
  316. package/dist/src/shapes/shape.js +0 -87
  317. package/dist/src/shapes/shape.js.map +0 -1
  318. package/dist/src/shapes/sphere.js +0 -114
  319. package/dist/src/shapes/sphere.js.map +0 -1
  320. package/dist/src/shapes/tetrahedron.js +0 -188
  321. package/dist/src/shapes/tetrahedron.js.map +0 -1
  322. package/dist/src/shapes/torus.js +0 -111
  323. package/dist/src/shapes/torus.js.map +0 -1
  324. package/dist/src/utility/aabbtree.js +0 -400
  325. package/dist/src/utility/aabbtree.js.map +0 -1
  326. package/dist/src/utility/bounding_volume.js +0 -29
  327. package/dist/src/utility/bounding_volume.js.map +0 -1
  328. package/dist/src/utility/debug.js +0 -28
  329. package/dist/src/utility/debug.js.map +0 -1
  330. package/dist/src/utility/draco/decoder.js +0 -116
  331. package/dist/src/utility/draco/decoder.js.map +0 -1
  332. package/dist/src/utility/misc.js +0 -105
  333. package/dist/src/utility/misc.js.map +0 -1
  334. package/dist/src/utility/panorama.js +0 -163
  335. package/dist/src/utility/panorama.js.map +0 -1
  336. package/dist/src/utility/pmrem.js +0 -354
  337. package/dist/src/utility/pmrem.js.map +0 -1
  338. package/dist/src/utility/rendermipmap.js +0 -115
  339. package/dist/src/utility/rendermipmap.js.map +0 -1
  340. package/dist/src/utility/serialization/json.js +0 -402
  341. package/dist/src/utility/serialization/json.js.map +0 -1
  342. package/dist/src/utility/serialization/manager.js +0 -623
  343. package/dist/src/utility/serialization/manager.js.map +0 -1
  344. package/dist/src/utility/serialization/scene/animation.js +0 -248
  345. package/dist/src/utility/serialization/scene/animation.js.map +0 -1
  346. package/dist/src/utility/serialization/scene/batch.js +0 -59
  347. package/dist/src/utility/serialization/scene/batch.js.map +0 -1
  348. package/dist/src/utility/serialization/scene/camera.js +0 -790
  349. package/dist/src/utility/serialization/scene/camera.js.map +0 -1
  350. package/dist/src/utility/serialization/scene/common.js +0 -222
  351. package/dist/src/utility/serialization/scene/common.js.map +0 -1
  352. package/dist/src/utility/serialization/scene/light.js +0 -575
  353. package/dist/src/utility/serialization/scene/light.js.map +0 -1
  354. package/dist/src/utility/serialization/scene/material.js +0 -1111
  355. package/dist/src/utility/serialization/scene/material.js.map +0 -1
  356. package/dist/src/utility/serialization/scene/mesh.js +0 -148
  357. package/dist/src/utility/serialization/scene/mesh.js.map +0 -1
  358. package/dist/src/utility/serialization/scene/misc.js +0 -39
  359. package/dist/src/utility/serialization/scene/misc.js.map +0 -1
  360. package/dist/src/utility/serialization/scene/node.js +0 -451
  361. package/dist/src/utility/serialization/scene/node.js.map +0 -1
  362. package/dist/src/utility/serialization/scene/particle.js +0 -425
  363. package/dist/src/utility/serialization/scene/particle.js.map +0 -1
  364. package/dist/src/utility/serialization/scene/primitive.js +0 -692
  365. package/dist/src/utility/serialization/scene/primitive.js.map +0 -1
  366. package/dist/src/utility/serialization/scene/scene.js +0 -704
  367. package/dist/src/utility/serialization/scene/scene.js.map +0 -1
  368. package/dist/src/utility/serialization/scene/terrain.js +0 -488
  369. package/dist/src/utility/serialization/scene/terrain.js.map +0 -1
  370. package/dist/src/utility/serialization/scene/water.js +0 -465
  371. package/dist/src/utility/serialization/scene/water.js.map +0 -1
  372. package/dist/src/utility/shprojector.js +0 -297
  373. package/dist/src/utility/shprojector.js.map +0 -1
  374. package/dist/src/utility/textures/ggxlut.js +0 -213
  375. package/dist/src/utility/textures/ggxlut.js.map +0 -1
  376. package/dist/src/utility/textures/gradientnoise.js +0 -62
  377. package/dist/src/utility/textures/gradientnoise.js.map +0 -1
  378. package/dist/src/utility/textures/randomnoise.js +0 -41
  379. package/dist/src/utility/textures/randomnoise.js.map +0 -1
  380. package/dist/src/values.js +0 -162
  381. package/dist/src/values.js.map +0 -1
  382. package/dist/utility/blueprint/material/common.js +0 -7
  383. package/dist/utility/blueprint/material/common.js.map +0 -1
  384. package/dist/utility/serialization/blueprint/constants.js +0 -255
  385. package/dist/utility/serialization/blueprint/constants.js.map +0 -1
  386. package/dist/utility/serialization/blueprint/material/constants.js +0 -203
  387. package/dist/utility/serialization/blueprint/material/constants.js.map +0 -1
  388. package/dist/utility/serialization/blueprint/material/texture.js +0 -165
  389. package/dist/utility/serialization/blueprint/material/texture.js.map +0 -1
@@ -1,162 +0,0 @@
1
- import { GraphNode } from './graph_node.js';
2
- import { Matrix4x4 } from '@zephyr3d/base';
3
- import '../values.js';
4
- import { InstanceBindGroupAllocator, RenderQueue } from '../render/render_queue.js';
5
- import '../material/shader/helper.js';
6
- import '../render/renderer.js';
7
- import '@zephyr3d/device';
8
- import '../render/sky.js';
9
- import '../render/clipmap.js';
10
- import '../material/lambert.js';
11
- import '../material/blinn.js';
12
- import '../material/unlit.js';
13
- import '../material/particle.js';
14
- import '../material/meshmaterial.js';
15
- import '../material/grassmaterial.js';
16
- import '../material/terrainmaterial.js';
17
- import '../material/terrain-cm.js';
18
- import '../material/pbrmr.js';
19
- import '../material/pbrsg.js';
20
- import '../shaders/atmosphere.js';
21
- import { BoundingBox } from '../utility/bounding_volume.js';
22
-
23
- const tmpMatrix = new Matrix4x4();
24
- /**
25
- * Batch group node
26
- * @public
27
- */ class BatchGroup extends GraphNode {
28
- _renderQueueMap;
29
- _bindGroupAllocator;
30
- _changeTag;
31
- _staticBV;
32
- /**
33
- * Creates an instance of mesh node
34
- * @param scene - The scene to which the mesh node belongs
35
- */ constructor(scene){
36
- super(scene);
37
- this._renderQueueMap = new Map();
38
- this._changeTag = 0;
39
- this._bindGroupAllocator = new InstanceBindGroupAllocator();
40
- this._staticBV = false;
41
- const bvCallback = (function() {
42
- if (!this._staticBV) {
43
- this.invalidateBoundingVolume();
44
- }
45
- }).bind(this);
46
- this.on('visiblechanged', (node)=>{
47
- node.iterate((child)=>{
48
- if (child.isMesh()) {
49
- this._changeTag++;
50
- return true;
51
- }
52
- return false;
53
- });
54
- });
55
- this.on('nodeattached', (node)=>{
56
- node.iterate((child)=>{
57
- if (child.isMesh()) {
58
- child.placeToOctree = false;
59
- if (!this._staticBV) {
60
- this.invalidateBoundingVolume();
61
- }
62
- child.on('bvchanged', bvCallback);
63
- this._changeTag++;
64
- }
65
- });
66
- });
67
- this.on('noderemoved', (node)=>{
68
- node.iterate((child)=>{
69
- if (child.isMesh()) {
70
- child.placeToOctree = true;
71
- if (!this._staticBV) {
72
- this.invalidateBoundingVolume();
73
- }
74
- child.off('bvchanged', bvCallback);
75
- this._changeTag++;
76
- }
77
- });
78
- });
79
- }
80
- /**
81
- * {@inheritDoc Drawable.getName}
82
- */ getName() {
83
- return this._name;
84
- }
85
- /**
86
- * {@inheritDoc SceneNode.isBatchGroup}
87
- */ isBatchGroup() {
88
- return true;
89
- }
90
- clone(method, recursive) {
91
- const other = new BatchGroup(this.scene);
92
- other.copyFrom(this, method, recursive);
93
- other.parent = this.parent;
94
- return other;
95
- }
96
- /**
97
- * Force the batch state to be rebuilt
98
- */ invalidate() {
99
- this._changeTag++;
100
- }
101
- /** @internal */ _onDetached() {
102
- super._onDetached();
103
- // Usually the node will be garbage collected after it is detached,
104
- // We should reset the render queue to release the render bundles.
105
- this._renderQueueMap.forEach((val)=>{
106
- val.queue.reset();
107
- });
108
- this.invalidate();
109
- }
110
- /** @internal */ _onAttached() {
111
- // Reset the render queue when attached to a new scene.
112
- this.invalidate();
113
- }
114
- /** @internal */ computeBoundingVolume() {
115
- const bv = new BoundingBox();
116
- const invWorldMatrix = Matrix4x4.invertAffine(this.worldMatrix);
117
- bv.beginExtend();
118
- this.iterate((node)=>{
119
- if (node.isMesh()) {
120
- Matrix4x4.multiplyAffine(invWorldMatrix, node.worldMatrix, tmpMatrix);
121
- const wb = node.getBoundingVolume().transform(tmpMatrix).toAABB();
122
- bv.extend(wb.minPoint);
123
- bv.extend(wb.maxPoint);
124
- }
125
- });
126
- return bv.isValid() ? bv : null;
127
- }
128
- /** @internal */ setBoundingVolume(bv) {
129
- this._staticBV = !!bv;
130
- super.setBoundingVolume(bv);
131
- }
132
- /** @internal */ cull(cullVisitor) {
133
- let queueInfo = this._renderQueueMap.get(cullVisitor.renderPass);
134
- if (!queueInfo) {
135
- queueInfo = {
136
- queue: new RenderQueue(cullVisitor.renderPass, this._bindGroupAllocator),
137
- tag: -1
138
- };
139
- this._renderQueueMap.set(cullVisitor.renderPass, queueInfo);
140
- }
141
- if (queueInfo.tag !== this._changeTag) {
142
- queueInfo.tag = this._changeTag;
143
- queueInfo.queue.reset();
144
- const frustumCulling = cullVisitor.frustumCulling;
145
- const renderQueue = cullVisitor.renderQueue;
146
- cullVisitor.frustumCulling = false;
147
- cullVisitor.renderQueue = queueInfo.queue;
148
- this.iterate((node)=>{
149
- if (node.isMesh()) {
150
- cullVisitor.visit(node);
151
- }
152
- });
153
- queueInfo.queue.end(cullVisitor.camera, true);
154
- cullVisitor.frustumCulling = frustumCulling;
155
- cullVisitor.renderQueue = renderQueue;
156
- }
157
- cullVisitor.pushRenderQueue(queueInfo.queue);
158
- }
159
- }
160
-
161
- export { BatchGroup };
162
- //# sourceMappingURL=batchgroup.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"batchgroup.js","sources":["../../../src/scene/batchgroup.ts"],"sourcesContent":["import { GraphNode } from './graph_node';\r\nimport type { CullVisitor, RenderPass } from '../render';\r\nimport { RenderQueue, InstanceBindGroupAllocator } from '../render';\r\nimport type { Scene } from './scene';\r\nimport { BoundingBox, type BoundingVolume } from '../utility/bounding_volume';\r\nimport { Matrix4x4 } from '@zephyr3d/base';\r\nimport type { NodeClonable, NodeCloneMethod } from '.';\r\n\r\nconst tmpMatrix = new Matrix4x4();\r\n\r\n/**\r\n * Batch group node\r\n * @public\r\n */\r\nexport class BatchGroup extends GraphNode implements NodeClonable<BatchGroup> {\r\n private readonly _renderQueueMap: Map<\r\n RenderPass,\r\n {\r\n queue: RenderQueue;\r\n tag: number;\r\n }\r\n >;\r\n private readonly _bindGroupAllocator: InstanceBindGroupAllocator;\r\n private _changeTag: number;\r\n private _staticBV: boolean;\r\n /**\r\n * Creates an instance of mesh node\r\n * @param scene - The scene to which the mesh node belongs\r\n */\r\n constructor(scene: Scene) {\r\n super(scene);\r\n this._renderQueueMap = new Map();\r\n this._changeTag = 0;\r\n this._bindGroupAllocator = new InstanceBindGroupAllocator();\r\n this._staticBV = false;\r\n const bvCallback = function (this: BatchGroup) {\r\n if (!this._staticBV) {\r\n this.invalidateBoundingVolume();\r\n }\r\n }.bind(this);\r\n this.on('visiblechanged', (node) => {\r\n node.iterate((child) => {\r\n if (child.isMesh()) {\r\n this._changeTag++;\r\n return true;\r\n }\r\n return false;\r\n });\r\n });\r\n this.on('nodeattached', (node) => {\r\n node.iterate((child) => {\r\n if (child.isMesh()) {\r\n child.placeToOctree = false;\r\n if (!this._staticBV) {\r\n this.invalidateBoundingVolume();\r\n }\r\n child.on('bvchanged', bvCallback);\r\n this._changeTag++;\r\n }\r\n });\r\n });\r\n this.on('noderemoved', (node) => {\r\n node.iterate((child) => {\r\n if (child.isMesh()) {\r\n child.placeToOctree = true;\r\n if (!this._staticBV) {\r\n this.invalidateBoundingVolume();\r\n }\r\n child.off('bvchanged', bvCallback);\r\n this._changeTag++;\r\n }\r\n });\r\n });\r\n }\r\n /**\r\n * {@inheritDoc Drawable.getName}\r\n */\r\n getName(): string {\r\n return this._name;\r\n }\r\n /**\r\n * {@inheritDoc SceneNode.isBatchGroup}\r\n */\r\n isBatchGroup(): this is BatchGroup {\r\n return true;\r\n }\r\n clone(method: NodeCloneMethod, recursive: boolean): BatchGroup {\r\n const other = new BatchGroup(this.scene);\r\n other.copyFrom(this, method, recursive);\r\n other.parent = this.parent;\r\n return other;\r\n }\r\n /**\r\n * Force the batch state to be rebuilt\r\n */\r\n invalidate() {\r\n this._changeTag++;\r\n }\r\n /** @internal */\r\n protected _onDetached(): void {\r\n super._onDetached();\r\n // Usually the node will be garbage collected after it is detached,\r\n // We should reset the render queue to release the render bundles.\r\n this._renderQueueMap.forEach((val) => {\r\n val.queue.reset();\r\n });\r\n this.invalidate();\r\n }\r\n /** @internal */\r\n protected _onAttached(): void {\r\n // Reset the render queue when attached to a new scene.\r\n this.invalidate();\r\n }\r\n /** @internal */\r\n computeBoundingVolume(): BoundingVolume {\r\n const bv = new BoundingBox();\r\n const invWorldMatrix = Matrix4x4.invertAffine(this.worldMatrix);\r\n bv.beginExtend();\r\n this.iterate((node) => {\r\n if (node.isMesh()) {\r\n Matrix4x4.multiplyAffine(invWorldMatrix, node.worldMatrix, tmpMatrix);\r\n const wb = node.getBoundingVolume().transform(tmpMatrix).toAABB();\r\n bv.extend(wb.minPoint);\r\n bv.extend(wb.maxPoint);\r\n }\r\n });\r\n return bv.isValid() ? bv : null;\r\n }\r\n /** @internal */\r\n setBoundingVolume(bv: BoundingVolume): void {\r\n this._staticBV = !!bv;\r\n super.setBoundingVolume(bv);\r\n }\r\n /** @internal */\r\n cull(cullVisitor: CullVisitor) {\r\n let queueInfo = this._renderQueueMap.get(cullVisitor.renderPass);\r\n if (!queueInfo) {\r\n queueInfo = {\r\n queue: new RenderQueue(cullVisitor.renderPass, this._bindGroupAllocator),\r\n tag: -1\r\n };\r\n this._renderQueueMap.set(cullVisitor.renderPass, queueInfo);\r\n }\r\n if (queueInfo.tag !== this._changeTag) {\r\n queueInfo.tag = this._changeTag;\r\n queueInfo.queue.reset();\r\n const frustumCulling = cullVisitor.frustumCulling;\r\n const renderQueue = cullVisitor.renderQueue;\r\n cullVisitor.frustumCulling = false;\r\n cullVisitor.renderQueue = queueInfo.queue;\r\n this.iterate((node) => {\r\n if (node.isMesh()) {\r\n cullVisitor.visit(node);\r\n }\r\n });\r\n queueInfo.queue.end(cullVisitor.camera, true);\r\n cullVisitor.frustumCulling = frustumCulling;\r\n cullVisitor.renderQueue = renderQueue;\r\n }\r\n cullVisitor.pushRenderQueue(queueInfo.queue);\r\n }\r\n}\r\n"],"names":["tmpMatrix","Matrix4x4","BatchGroup","GraphNode","_renderQueueMap","_bindGroupAllocator","_changeTag","_staticBV","scene","Map","InstanceBindGroupAllocator","bvCallback","invalidateBoundingVolume","bind","on","node","iterate","child","isMesh","placeToOctree","off","getName","_name","isBatchGroup","clone","method","recursive","other","copyFrom","parent","invalidate","_onDetached","forEach","val","queue","reset","computeBoundingVolume","bv","BoundingBox","invWorldMatrix","invertAffine","worldMatrix","beginExtend","multiplyAffine","wb","getBoundingVolume","transform","toAABB","extend","minPoint","maxPoint","isValid","setBoundingVolume","cull","cullVisitor","queueInfo","get","renderPass","RenderQueue","tag","set","frustumCulling","renderQueue","visit","end","camera","pushRenderQueue"],"mappings":"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"}
@@ -1,209 +0,0 @@
1
- import { ObservableVector4, DRef, Vector3 } from '@zephyr3d/base';
2
- import '../values.js';
3
- import '@zephyr3d/device';
4
- import '../material/shader/helper.js';
5
- import '../material/lambert.js';
6
- import '../material/blinn.js';
7
- import '../material/unlit.js';
8
- import '../material/particle.js';
9
- import '../material/meshmaterial.js';
10
- import '../material/grassmaterial.js';
11
- import '../material/terrainmaterial.js';
12
- import '../material/terrain-cm.js';
13
- import '../material/pbrmr.js';
14
- import '../material/pbrsg.js';
15
- import '../render/renderer.js';
16
- import { SkyRenderer } from '../render/sky.js';
17
- import '../render/clipmap.js';
18
- import { EnvIBL, EnvHemisphericAmbient, EnvConstantAmbient, EnvShIBL } from '../render/envlight.js';
19
- import '../shaders/atmosphere.js';
20
-
21
- /**
22
- * Wrapper for environmant lighting
23
- * @public
24
- */ class EnvLightWrapper {
25
- _envLight;
26
- _ambientColor;
27
- _ambientDown;
28
- _ambientUp;
29
- _radianceMap;
30
- _irradianceMap;
31
- _irradianceSH;
32
- _irradianceSHFB;
33
- _irradianceWindow;
34
- _strength;
35
- /** @internal */ constructor(){
36
- this._envLight = new EnvIBL();
37
- this._ambientColor = new ObservableVector4(0.2, 0.2, 0.2, 1);
38
- this._ambientColor.callback = ()=>{
39
- if (this.type === 'constant') {
40
- this._envLight.ambientColor.set(this._ambientColor);
41
- }
42
- };
43
- this._ambientDown = new ObservableVector4(0.2, 0.2, 0.2, 1);
44
- this._ambientDown.callback = ()=>{
45
- if (this.type === 'hemisphere') {
46
- this._envLight.ambientDown.set(this._ambientDown);
47
- }
48
- };
49
- this._ambientUp = new ObservableVector4(0.3, 0.5, 0.8, 1);
50
- this._ambientUp.callback = ()=>{
51
- if (this.type === 'hemisphere') {
52
- this._envLight.ambientUp.set(this._ambientUp);
53
- }
54
- };
55
- this._radianceMap = new DRef();
56
- this._irradianceMap = new DRef();
57
- this._irradianceSH = new DRef();
58
- this._irradianceSHFB = new DRef();
59
- this._irradianceWindow = new Vector3();
60
- this._strength = 1;
61
- }
62
- /** @internal */ dispose() {
63
- this._envLight?.dispose();
64
- this._radianceMap.dispose();
65
- this._irradianceMap.dispose();
66
- this._irradianceSHFB.dispose();
67
- this._irradianceSH.dispose();
68
- }
69
- /** @internal */ getHash(ctx) {
70
- return !ctx || ctx.drawEnvLight ? `${this.type}:${this._envLight.hasRadiance() ? '1' : '0'}:${this._envLight.hasIrradiance() ? '1' : '0'}` : 'none';
71
- }
72
- /** @internal */ get envLight() {
73
- return this._envLight;
74
- }
75
- /** The strength of environment lighting */ get strength() {
76
- return this._strength;
77
- }
78
- set strength(val) {
79
- this._strength = val;
80
- }
81
- /** Ambient light color for environment light type constant */ get ambientColor() {
82
- return this._ambientColor;
83
- }
84
- set ambientColor(val) {
85
- this._ambientColor.set(val);
86
- }
87
- /** Up color for environment light type hemisphere */ get ambientUp() {
88
- return this._ambientUp;
89
- }
90
- set ambientUp(val) {
91
- this._ambientUp.set(val);
92
- }
93
- /** Down color for environment light type hemisphere */ get ambientDown() {
94
- return this._ambientDown;
95
- }
96
- set ambientDown(val) {
97
- this._ambientDown.set(val);
98
- }
99
- /** Radiance map for environment light type ibl */ get radianceMap() {
100
- return this._radianceMap.get();
101
- }
102
- set radianceMap(tex) {
103
- this._radianceMap.set(tex);
104
- if (this.type === 'ibl' || this.type === 'ibl-sh') {
105
- this._envLight.radianceMap = this.radianceMap;
106
- }
107
- }
108
- /** Irradiance map for environment light type ibl */ get irradianceMap() {
109
- return this._irradianceMap.get();
110
- }
111
- set irradianceMap(tex) {
112
- this._irradianceMap.set(tex);
113
- if (this.type === 'ibl') {
114
- this._envLight.irradianceMap = this.irradianceMap;
115
- }
116
- }
117
- /** Irradiance SH buffer for environment light type ibl-sh */ get irradianceSH() {
118
- return this._irradianceSH.get();
119
- }
120
- set irradianceSH(value) {
121
- this._irradianceSH.set(value);
122
- if (this.type === 'ibl-sh') {
123
- this._envLight.irradianceSH = this.irradianceSH;
124
- }
125
- }
126
- /** Irradiance SH texture for environment light type ibl-sh */ get irradianceSHFB() {
127
- return this._irradianceSHFB.get();
128
- }
129
- set irradianceSHFB(value) {
130
- this._irradianceSHFB.set(value);
131
- if (this.type === 'ibl-sh') {
132
- this._envLight.irradianceSHFB = this.irradianceSHFB;
133
- }
134
- }
135
- /** Irradiance SH window for environment light type ibl-sh */ get irradianceWindow() {
136
- return this._irradianceWindow;
137
- }
138
- set irradianceWindow(value) {
139
- this._irradianceWindow.set(value);
140
- if (this.type === 'ibl-sh') {
141
- this._envLight.irradianceWindow = this._irradianceWindow;
142
- }
143
- }
144
- /** The environment light type */ get type() {
145
- return this._envLight?.getType() ?? 'none';
146
- }
147
- set type(val) {
148
- switch(val){
149
- case 'none':
150
- this._envLight = null;
151
- break;
152
- case 'ibl':
153
- if (this._envLight?.getType() !== val) {
154
- this._envLight = new EnvIBL(this.radianceMap, this.irradianceMap);
155
- }
156
- this._envLight.radianceMap = this.radianceMap;
157
- this._envLight.irradianceMap = this.irradianceMap;
158
- break;
159
- case 'ibl-sh':
160
- if (this._envLight?.getType() !== val) {
161
- this._envLight = new EnvShIBL(this.radianceMap, this.irradianceSH);
162
- }
163
- this._envLight.radianceMap = this.radianceMap;
164
- this._envLight.irradianceSH = this.irradianceSH;
165
- this._envLight.irradianceWindow = this.irradianceWindow;
166
- break;
167
- case 'constant':
168
- if (this._envLight?.getType() !== val) {
169
- this._envLight = new EnvConstantAmbient(this._ambientColor);
170
- }
171
- break;
172
- case 'hemisphere':
173
- if (this._envLight?.getType() !== val) {
174
- this._envLight = new EnvHemisphericAmbient(this._ambientUp, this._ambientDown);
175
- }
176
- break;
177
- }
178
- }
179
- }
180
- /**
181
- * Environment of scene
182
- * @public
183
- */ class Environment {
184
- _sky;
185
- _light;
186
- /** @internal */ constructor(){
187
- this._sky = new SkyRenderer();
188
- this._light = new EnvLightWrapper();
189
- }
190
- /** The sky renderer */ get sky() {
191
- return this._sky;
192
- }
193
- /** The environment lighting renderer */ get light() {
194
- return this._light;
195
- }
196
- /** @internal */ getHash(ctx) {
197
- return `${this.light?.getHash(ctx)}:${this._sky?.getHash(ctx)}`;
198
- }
199
- /** @internal */ needSceneDepthTexture() {
200
- return this._sky.fogType !== 'none';
201
- }
202
- /** @internal */ dispose() {
203
- this._sky.dispose();
204
- this._light.dispose();
205
- }
206
- }
207
-
208
- export { EnvLightWrapper, Environment };
209
- //# sourceMappingURL=environment.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"environment.js","sources":["../../../src/scene/environment.ts"],"sourcesContent":["import type { Vector4 } from '@zephyr3d/base';\r\nimport { Vector3, DRef } from '@zephyr3d/base';\r\nimport { ObservableVector4 } from '@zephyr3d/base';\r\nimport type { DrawContext, EnvironmentLighting, EnvLightType } from '../render';\r\nimport { EnvShIBL } from '../render';\r\nimport { EnvConstantAmbient, EnvHemisphericAmbient, EnvIBL } from '../render';\r\nimport { SkyRenderer } from '../render/sky';\r\nimport type { FrameBuffer, GPUDataBuffer, TextureCube } from '@zephyr3d/device';\r\n\r\n/**\r\n * Wrapper for environmant lighting\r\n * @public\r\n */\r\nexport class EnvLightWrapper {\r\n private _envLight: EnvironmentLighting;\r\n private readonly _ambientColor: ObservableVector4;\r\n private readonly _ambientDown: ObservableVector4;\r\n private readonly _ambientUp: ObservableVector4;\r\n private readonly _radianceMap: DRef<TextureCube>;\r\n private readonly _irradianceMap: DRef<TextureCube>;\r\n private readonly _irradianceSH: DRef<GPUDataBuffer>;\r\n private readonly _irradianceSHFB: DRef<FrameBuffer>;\r\n private readonly _irradianceWindow: Vector3;\r\n private _strength: number;\r\n /** @internal */\r\n constructor() {\r\n this._envLight = new EnvIBL();\r\n this._ambientColor = new ObservableVector4(0.2, 0.2, 0.2, 1);\r\n this._ambientColor.callback = () => {\r\n if (this.type === 'constant') {\r\n (this._envLight as EnvConstantAmbient).ambientColor.set(this._ambientColor);\r\n }\r\n };\r\n this._ambientDown = new ObservableVector4(0.2, 0.2, 0.2, 1);\r\n this._ambientDown.callback = () => {\r\n if (this.type === 'hemisphere') {\r\n (this._envLight as EnvHemisphericAmbient).ambientDown.set(this._ambientDown);\r\n }\r\n };\r\n this._ambientUp = new ObservableVector4(0.3, 0.5, 0.8, 1);\r\n this._ambientUp.callback = () => {\r\n if (this.type === 'hemisphere') {\r\n (this._envLight as EnvHemisphericAmbient).ambientUp.set(this._ambientUp);\r\n }\r\n };\r\n this._radianceMap = new DRef();\r\n this._irradianceMap = new DRef();\r\n this._irradianceSH = new DRef();\r\n this._irradianceSHFB = new DRef();\r\n this._irradianceWindow = new Vector3();\r\n this._strength = 1;\r\n }\r\n /** @internal */\r\n dispose() {\r\n this._envLight?.dispose();\r\n this._radianceMap.dispose();\r\n this._irradianceMap.dispose();\r\n this._irradianceSHFB.dispose();\r\n this._irradianceSH.dispose();\r\n }\r\n /** @internal */\r\n getHash(ctx?: DrawContext): string {\r\n return !ctx || ctx.drawEnvLight\r\n ? `${this.type}:${this._envLight.hasRadiance() ? '1' : '0'}:${\r\n this._envLight.hasIrradiance() ? '1' : '0'\r\n }`\r\n : 'none';\r\n }\r\n /** @internal */\r\n get envLight(): EnvironmentLighting {\r\n return this._envLight;\r\n }\r\n /** The strength of environment lighting */\r\n get strength(): number {\r\n return this._strength;\r\n }\r\n set strength(val: number) {\r\n this._strength = val;\r\n }\r\n /** Ambient light color for environment light type constant */\r\n get ambientColor(): Vector4 {\r\n return this._ambientColor;\r\n }\r\n set ambientColor(val: Vector4) {\r\n this._ambientColor.set(val);\r\n }\r\n /** Up color for environment light type hemisphere */\r\n get ambientUp(): Vector4 {\r\n return this._ambientUp;\r\n }\r\n set ambientUp(val: Vector4) {\r\n this._ambientUp.set(val);\r\n }\r\n /** Down color for environment light type hemisphere */\r\n get ambientDown(): Vector4 {\r\n return this._ambientDown;\r\n }\r\n set ambientDown(val: Vector4) {\r\n this._ambientDown.set(val);\r\n }\r\n /** Radiance map for environment light type ibl */\r\n get radianceMap(): TextureCube {\r\n return this._radianceMap.get();\r\n }\r\n set radianceMap(tex: TextureCube) {\r\n this._radianceMap.set(tex);\r\n if (this.type === 'ibl' || this.type === 'ibl-sh') {\r\n (this._envLight as EnvIBL | EnvShIBL).radianceMap = this.radianceMap;\r\n }\r\n }\r\n /** Irradiance map for environment light type ibl */\r\n get irradianceMap(): TextureCube {\r\n return this._irradianceMap.get();\r\n }\r\n set irradianceMap(tex: TextureCube) {\r\n this._irradianceMap.set(tex);\r\n if (this.type === 'ibl') {\r\n (this._envLight as EnvIBL).irradianceMap = this.irradianceMap;\r\n }\r\n }\r\n /** Irradiance SH buffer for environment light type ibl-sh */\r\n get irradianceSH(): GPUDataBuffer {\r\n return this._irradianceSH.get();\r\n }\r\n set irradianceSH(value: GPUDataBuffer) {\r\n this._irradianceSH.set(value);\r\n if (this.type === 'ibl-sh') {\r\n (this._envLight as EnvShIBL).irradianceSH = this.irradianceSH;\r\n }\r\n }\r\n /** Irradiance SH texture for environment light type ibl-sh */\r\n get irradianceSHFB(): FrameBuffer {\r\n return this._irradianceSHFB.get();\r\n }\r\n set irradianceSHFB(value: FrameBuffer) {\r\n this._irradianceSHFB.set(value);\r\n if (this.type === 'ibl-sh') {\r\n (this._envLight as EnvShIBL).irradianceSHFB = this.irradianceSHFB;\r\n }\r\n }\r\n /** Irradiance SH window for environment light type ibl-sh */\r\n get irradianceWindow(): Vector3 {\r\n return this._irradianceWindow;\r\n }\r\n set irradianceWindow(value: Vector3) {\r\n this._irradianceWindow.set(value);\r\n if (this.type === 'ibl-sh') {\r\n (this._envLight as EnvShIBL).irradianceWindow = this._irradianceWindow;\r\n }\r\n }\r\n /** The environment light type */\r\n get type(): EnvLightType {\r\n return this._envLight?.getType() ?? 'none';\r\n }\r\n set type(val: EnvLightType) {\r\n switch (val) {\r\n case 'none':\r\n this._envLight = null;\r\n break;\r\n case 'ibl':\r\n if (this._envLight?.getType() !== val) {\r\n this._envLight = new EnvIBL(this.radianceMap, this.irradianceMap);\r\n }\r\n (this._envLight as EnvIBL).radianceMap = this.radianceMap;\r\n (this._envLight as EnvIBL).irradianceMap = this.irradianceMap;\r\n break;\r\n case 'ibl-sh':\r\n if (this._envLight?.getType() !== val) {\r\n this._envLight = new EnvShIBL(this.radianceMap, this.irradianceSH);\r\n }\r\n (this._envLight as EnvShIBL).radianceMap = this.radianceMap;\r\n (this._envLight as EnvShIBL).irradianceSH = this.irradianceSH;\r\n (this._envLight as EnvShIBL).irradianceWindow = this.irradianceWindow;\r\n break;\r\n case 'constant':\r\n if (this._envLight?.getType() !== val) {\r\n this._envLight = new EnvConstantAmbient(this._ambientColor);\r\n }\r\n break;\r\n case 'hemisphere':\r\n if (this._envLight?.getType() !== val) {\r\n this._envLight = new EnvHemisphericAmbient(this._ambientUp, this._ambientDown);\r\n }\r\n break;\r\n default:\r\n break;\r\n }\r\n }\r\n}\r\n\r\n/**\r\n * Environment of scene\r\n * @public\r\n */\r\nexport class Environment {\r\n private readonly _sky: SkyRenderer;\r\n private readonly _light: EnvLightWrapper;\r\n /** @internal */\r\n constructor() {\r\n this._sky = new SkyRenderer();\r\n this._light = new EnvLightWrapper();\r\n }\r\n /** The sky renderer */\r\n get sky(): SkyRenderer {\r\n return this._sky;\r\n }\r\n /** The environment lighting renderer */\r\n get light(): EnvLightWrapper {\r\n return this._light;\r\n }\r\n /** @internal */\r\n getHash(ctx: DrawContext) {\r\n return `${this.light?.getHash(ctx)}:${this._sky?.getHash(ctx)}`;\r\n }\r\n /** @internal */\r\n needSceneDepthTexture(): boolean {\r\n return this._sky.fogType !== 'none';\r\n }\r\n /** @internal */\r\n dispose() {\r\n this._sky.dispose();\r\n this._light.dispose();\r\n }\r\n}\r\n"],"names":["EnvLightWrapper","_envLight","_ambientColor","_ambientDown","_ambientUp","_radianceMap","_irradianceMap","_irradianceSH","_irradianceSHFB","_irradianceWindow","_strength","EnvIBL","ObservableVector4","callback","type","ambientColor","set","ambientDown","ambientUp","DRef","Vector3","dispose","getHash","ctx","drawEnvLight","hasRadiance","hasIrradiance","envLight","strength","val","radianceMap","get","tex","irradianceMap","irradianceSH","value","irradianceSHFB","irradianceWindow","getType","EnvShIBL","EnvConstantAmbient","EnvHemisphericAmbient","Environment","_sky","_light","SkyRenderer","sky","light","needSceneDepthTexture","fogType"],"mappings":"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"}
@@ -1,72 +0,0 @@
1
- import { SceneNode } from './scene_node.js';
2
-
3
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
4
- /**
5
- * Graph scene node
6
- *
7
- * @remarks
8
- * Graph node is the base class of any kind of scene node that will be placed into the octree
9
- *
10
- * @public
11
- */ class GraphNode extends SceneNode {
12
- _octreeNode;
13
- /**
14
- * Creates a graph node
15
- * @param scene - The scene to which the node belongs
16
- */ constructor(scene){
17
- super(scene);
18
- this._octreeNode = null;
19
- }
20
- clone(method, recursive) {
21
- const other = new GraphNode(this.scene);
22
- other.copyFrom(this, method, recursive);
23
- other.parent = this.parent;
24
- return other;
25
- }
26
- /** @internal */ get octreeNode() {
27
- return this._octreeNode;
28
- }
29
- set octreeNode(node) {
30
- this._octreeNode = node;
31
- }
32
- /** Gets the name */ getName() {
33
- return this._name;
34
- }
35
- /**
36
- * {@inheritDoc SceneNode.isGraphNode}
37
- * @override
38
- */ isGraphNode() {
39
- return true;
40
- }
41
- /**
42
- * {@inheritDoc Drawable.getNode}
43
- */ getNode() {
44
- return this;
45
- }
46
- /**
47
- * {@inheritDoc Drawable.getBoneMatrices}
48
- */ getBoneMatrices() {
49
- return null;
50
- }
51
- /**
52
- * {@inheritDoc Drawable.getSortDistance}
53
- */ getSortDistance(camera) {
54
- const cameraWorldMatrix = camera.worldMatrix;
55
- const objectWorldMatrix = this.worldMatrix;
56
- const dx = cameraWorldMatrix.m03 - objectWorldMatrix.m03;
57
- const dy = cameraWorldMatrix.m13 - objectWorldMatrix.m13;
58
- const dz = cameraWorldMatrix.m23 - objectWorldMatrix.m23;
59
- return dx * dx + dy * dy * dz * dz;
60
- }
61
- /**
62
- * {@inheritDoc Drawable.isBatchable}
63
- */ isBatchable() {
64
- return false;
65
- }
66
- /** @internal */ _visibleChanged() {
67
- this._scene?.invalidateNodePlacement(this);
68
- }
69
- }
70
-
71
- export { GraphNode };
72
- //# sourceMappingURL=graph_node.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"graph_node.js","sources":["../../../src/scene/graph_node.ts"],"sourcesContent":["import { SceneNode } from './scene_node';\r\nimport type { Texture2D } from '@zephyr3d/device';\r\nimport type { BatchDrawable } from '../render/drawable';\r\nimport type { Scene } from './scene';\r\nimport type { Camera } from '../camera/camera';\r\nimport type { NodeClonable, NodeCloneMethod, OctreeNode } from '.';\r\n\r\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n/**\r\n * Graph scene node\r\n *\r\n * @remarks\r\n * Graph node is the base class of any kind of scene node that will be placed into the octree\r\n *\r\n * @public\r\n */\r\nexport class GraphNode extends SceneNode implements NodeClonable<GraphNode> {\r\n private _octreeNode: OctreeNode;\r\n /**\r\n * Creates a graph node\r\n * @param scene - The scene to which the node belongs\r\n */\r\n constructor(scene: Scene) {\r\n super(scene);\r\n this._octreeNode = null;\r\n }\r\n clone(method: NodeCloneMethod, recursive: boolean): GraphNode {\r\n const other = new GraphNode(this.scene);\r\n other.copyFrom(this, method, recursive);\r\n other.parent = this.parent;\r\n return other;\r\n }\r\n /** @internal */\r\n get octreeNode(): OctreeNode {\r\n return this._octreeNode;\r\n }\r\n set octreeNode(node: OctreeNode) {\r\n this._octreeNode = node;\r\n }\r\n /** Gets the name */\r\n getName(): string {\r\n return this._name;\r\n }\r\n /**\r\n * {@inheritDoc SceneNode.isGraphNode}\r\n * @override\r\n */\r\n isGraphNode(): this is GraphNode {\r\n return true;\r\n }\r\n /**\r\n * {@inheritDoc Drawable.getNode}\r\n */\r\n getNode(): SceneNode {\r\n return this;\r\n }\r\n /**\r\n * {@inheritDoc Drawable.getBoneMatrices}\r\n */\r\n getBoneMatrices(): Texture2D {\r\n return null;\r\n }\r\n /**\r\n * {@inheritDoc Drawable.getSortDistance}\r\n */\r\n getSortDistance(camera: Camera): number {\r\n const cameraWorldMatrix = camera.worldMatrix;\r\n const objectWorldMatrix = this.worldMatrix;\r\n const dx = cameraWorldMatrix.m03 - objectWorldMatrix.m03;\r\n const dy = cameraWorldMatrix.m13 - objectWorldMatrix.m13;\r\n const dz = cameraWorldMatrix.m23 - objectWorldMatrix.m23;\r\n return dx * dx + dy * dy * dz * dz;\r\n }\r\n /**\r\n * {@inheritDoc Drawable.isBatchable}\r\n */\r\n isBatchable(): this is BatchDrawable {\r\n return false;\r\n }\r\n /** @internal */\r\n protected _visibleChanged(): void {\r\n this._scene?.invalidateNodePlacement(this);\r\n }\r\n}\r\n"],"names":["GraphNode","SceneNode","_octreeNode","scene","clone","method","recursive","other","copyFrom","parent","octreeNode","node","getName","_name","isGraphNode","getNode","getBoneMatrices","getSortDistance","camera","cameraWorldMatrix","worldMatrix","objectWorldMatrix","dx","m03","dy","m13","dz","m23","isBatchable","_scene","invalidateNodePlacement"],"mappings":";;AAOA;AACA;;;;;;;IAQO,MAAMA,SAAkBC,SAAAA,SAAAA,CAAAA;IACrBC,WAAwB;AAChC;;;MAIA,WAAA,CAAYC,KAAY,CAAE;AACxB,QAAA,KAAK,CAACA,KAAAA,CAAAA;QACN,IAAI,CAACD,WAAW,GAAG,IAAA;AACrB;IACAE,KAAMC,CAAAA,MAAuB,EAAEC,SAAkB,EAAa;AAC5D,QAAA,MAAMC,KAAQ,GAAA,IAAIP,SAAU,CAAA,IAAI,CAACG,KAAK,CAAA;AACtCI,QAAAA,KAAAA,CAAMC,QAAQ,CAAC,IAAI,EAAEH,MAAQC,EAAAA,SAAAA,CAAAA;AAC7BC,QAAAA,KAAAA,CAAME,MAAM,GAAG,IAAI,CAACA,MAAM;QAC1B,OAAOF,KAAAA;AACT;qBAEA,IAAIG,UAAyB,GAAA;QAC3B,OAAO,IAAI,CAACR,WAAW;AACzB;IACA,IAAIQ,UAAAA,CAAWC,IAAgB,EAAE;QAC/B,IAAI,CAACT,WAAW,GAAGS,IAAAA;AACrB;AACA,yBACAC,OAAkB,GAAA;QAChB,OAAO,IAAI,CAACC,KAAK;AACnB;AACA;;;AAGC,MACDC,WAAiC,GAAA;QAC/B,OAAO,IAAA;AACT;AACA;;AAEC,MACDC,OAAqB,GAAA;AACnB,QAAA,OAAO,IAAI;AACb;AACA;;AAEC,MACDC,eAA6B,GAAA;QAC3B,OAAO,IAAA;AACT;AACA;;MAGAC,eAAAA,CAAgBC,MAAc,EAAU;QACtC,MAAMC,iBAAAA,GAAoBD,OAAOE,WAAW;QAC5C,MAAMC,iBAAAA,GAAoB,IAAI,CAACD,WAAW;AAC1C,QAAA,MAAME,EAAKH,GAAAA,iBAAAA,CAAkBI,GAAG,GAAGF,kBAAkBE,GAAG;AACxD,QAAA,MAAMC,EAAKL,GAAAA,iBAAAA,CAAkBM,GAAG,GAAGJ,kBAAkBI,GAAG;AACxD,QAAA,MAAMC,EAAKP,GAAAA,iBAAAA,CAAkBQ,GAAG,GAAGN,kBAAkBM,GAAG;AACxD,QAAA,OAAOL,EAAKA,GAAAA,EAAAA,GAAKE,EAAKA,GAAAA,EAAAA,GAAKE,EAAKA,GAAAA,EAAAA;AAClC;AACA;;AAEC,MACDE,WAAqC,GAAA;QACnC,OAAO,KAAA;AACT;qBAEA,eAAkC,GAAA;AAChC,QAAA,IAAI,CAACC,MAAM,EAAEC,uBAAAA,CAAwB,IAAI,CAAA;AAC3C;AACF;;;;"}