@zephyr3d/scene 0.9.5 → 0.9.7

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 (621) hide show
  1. package/dist/animation/joint_dynamics/controller.js +92 -32
  2. package/dist/animation/joint_dynamics/controller.js.map +1 -1
  3. package/dist/animation/joint_dynamics/convex_collider.js +320 -0
  4. package/dist/animation/joint_dynamics/convex_collider.js.map +1 -0
  5. package/dist/animation/joint_dynamics/joint_dynamics_system.js +57 -19
  6. package/dist/animation/joint_dynamics/joint_dynamics_system.js.map +1 -1
  7. package/dist/animation/joint_dynamics/solver.js +71 -27
  8. package/dist/animation/joint_dynamics/solver.js.map +1 -1
  9. package/dist/animation/joint_dynamics_modifier.js +21 -20
  10. package/dist/animation/joint_dynamics_modifier.js.map +1 -1
  11. package/dist/animation/skeleton.js +7 -10
  12. package/dist/animation/skeleton.js.map +1 -1
  13. package/dist/app/engine.js +134 -140
  14. package/dist/app/engine.js.map +1 -1
  15. package/dist/app/scriptregistry.js +47 -16
  16. package/dist/app/scriptregistry.js.map +1 -1
  17. package/dist/asset/assetmanager.js +3 -1
  18. package/dist/asset/assetmanager.js.map +1 -1
  19. package/dist/asset/model.js +346 -7
  20. package/dist/asset/model.js.map +1 -1
  21. package/dist/avatar/wardrobe.js +20 -16
  22. package/dist/avatar/wardrobe.js.map +1 -1
  23. package/dist/camera/camera.js +416 -210
  24. package/dist/camera/camera.js.map +1 -1
  25. package/dist/index.d.ts +1350 -621
  26. package/dist/index.js +6 -11
  27. package/dist/index.js.map +1 -1
  28. package/dist/material/blinn.js +1 -1
  29. package/dist/material/blinn.js.map +1 -1
  30. package/dist/material/lambert.js +1 -1
  31. package/dist/material/lambert.js.map +1 -1
  32. package/dist/material/material.js +23 -1
  33. package/dist/material/material.js.map +1 -1
  34. package/dist/material/meshmaterial.js +178 -23
  35. package/dist/material/meshmaterial.js.map +1 -1
  36. package/dist/material/mixins/albedocolor.js +4 -4
  37. package/dist/material/mixins/albedocolor.js.map +1 -1
  38. package/dist/material/mixins/lightmodel/blinnphong.js +2 -1
  39. package/dist/material/mixins/lightmodel/blinnphong.js.map +1 -1
  40. package/dist/material/mixins/lightmodel/lambert.js +2 -1
  41. package/dist/material/mixins/lightmodel/lambert.js.map +1 -1
  42. package/dist/material/mixins/lightmodel/pbrblueprintmixin.js +63 -16
  43. package/dist/material/mixins/lightmodel/pbrblueprintmixin.js.map +1 -1
  44. package/dist/material/mixins/lightmodel/pbrmetallicroughness.js +105 -32
  45. package/dist/material/mixins/lightmodel/pbrmetallicroughness.js.map +1 -1
  46. package/dist/material/mixins/lightmodel/pbrspecularglossness.js +16 -6
  47. package/dist/material/mixins/lightmodel/pbrspecularglossness.js.map +1 -1
  48. package/dist/material/mixins/lit.js +1 -1
  49. package/dist/material/mixins/lit.js.map +1 -1
  50. package/dist/material/mixins/pbr/common.js +276 -65
  51. package/dist/material/mixins/pbr/common.js.map +1 -1
  52. package/dist/material/mixins/texture.js +3 -3
  53. package/dist/material/mixins/texture.js.map +1 -1
  54. package/dist/material/mixins/vertexcolor.js +2 -2
  55. package/dist/material/mixins/vertexcolor.js.map +1 -1
  56. package/dist/material/msdf_text.js +3 -3
  57. package/dist/material/msdf_text.js.map +1 -1
  58. package/dist/material/mtoon.js +574 -0
  59. package/dist/material/mtoon.js.map +1 -0
  60. package/dist/material/pbrblueprint.js +499 -336
  61. package/dist/material/pbrblueprint.js.map +1 -1
  62. package/dist/material/pbrmr.js +118 -100
  63. package/dist/material/pbrmr.js.map +1 -1
  64. package/dist/material/pbrsg.js +1 -1
  65. package/dist/material/pbrsg.js.map +1 -1
  66. package/dist/material/shader/helper.js +324 -294
  67. package/dist/material/shader/helper.js.map +1 -1
  68. package/dist/material/subsurfaceprofile.js +812 -0
  69. package/dist/material/subsurfaceprofile.js.map +1 -0
  70. package/dist/material/unlit.js +1 -1
  71. package/dist/material/unlit.js.map +1 -1
  72. package/dist/posteffect/compositor.js +46 -11
  73. package/dist/posteffect/compositor.js.map +1 -1
  74. package/dist/posteffect/ssr.js +422 -96
  75. package/dist/posteffect/ssr.js.map +1 -1
  76. package/dist/posteffect/sss.js +1053 -0
  77. package/dist/posteffect/sss.js.map +1 -0
  78. package/dist/posteffect/taa.js +61 -60
  79. package/dist/posteffect/taa.js.map +1 -1
  80. package/dist/render/abuffer_oit.js +63 -12
  81. package/dist/render/abuffer_oit.js.map +1 -1
  82. package/dist/render/cluster_light.js +6 -5
  83. package/dist/render/cluster_light.js.map +1 -1
  84. package/dist/render/drawable.js +1 -5
  85. package/dist/render/drawable.js.map +1 -1
  86. package/dist/render/drawable_mixin.js +2 -1
  87. package/dist/render/drawable_mixin.js.map +1 -1
  88. package/dist/render/fbm_wavegenerator.js +2 -1
  89. package/dist/render/fbm_wavegenerator.js.map +1 -1
  90. package/dist/render/gerstner_wavegenerator.js +2 -1
  91. package/dist/render/gerstner_wavegenerator.js.map +1 -1
  92. package/dist/render/globalbindgroup_allocator.js +2 -1
  93. package/dist/render/globalbindgroup_allocator.js.map +1 -1
  94. package/dist/render/lightpass.js +110 -23
  95. package/dist/render/lightpass.js.map +1 -1
  96. package/dist/render/render_queue.js +51 -8
  97. package/dist/render/render_queue.js.map +1 -1
  98. package/dist/render/renderer.js +80 -66
  99. package/dist/render/renderer.js.map +1 -1
  100. package/dist/render/rendergraph/device_pool_allocator.js +8 -0
  101. package/dist/render/rendergraph/device_pool_allocator.js.map +1 -1
  102. package/dist/render/rendergraph/forward_plus_builder.js +481 -95
  103. package/dist/render/rendergraph/forward_plus_builder.js.map +1 -1
  104. package/dist/render/rendergraph/history_resource_manager.js +55 -0
  105. package/dist/render/rendergraph/history_resource_manager.js.map +1 -1
  106. package/dist/render/rendergraph/history_resources.js +3 -1
  107. package/dist/render/rendergraph/history_resources.js.map +1 -1
  108. package/dist/render/rendergraph/types.js.map +1 -1
  109. package/dist/render/renderpass.js +10 -4
  110. package/dist/render/renderpass.js.map +1 -1
  111. package/dist/render/sky.js +31 -1
  112. package/dist/render/sky.js.map +1 -1
  113. package/dist/render/weightedblended_oit.js +23 -5
  114. package/dist/render/weightedblended_oit.js.map +1 -1
  115. package/dist/scene/basesprite.js +4 -2
  116. package/dist/scene/basesprite.js.map +1 -1
  117. package/dist/scene/batchgroup.js +3 -1
  118. package/dist/scene/batchgroup.js.map +1 -1
  119. package/dist/scene/environment.js +11 -1
  120. package/dist/scene/environment.js.map +1 -1
  121. package/dist/scene/light.js +21 -3
  122. package/dist/scene/light.js.map +1 -1
  123. package/dist/scene/mesh.js +29 -14
  124. package/dist/scene/mesh.js.map +1 -1
  125. package/dist/scene/meshdrawable.js +6 -0
  126. package/dist/scene/meshdrawable.js.map +1 -1
  127. package/dist/scene/msdftext.js +5 -2
  128. package/dist/scene/msdftext.js.map +1 -1
  129. package/dist/scene/msdftextsprite.js +5 -3
  130. package/dist/scene/msdftextsprite.js.map +1 -1
  131. package/dist/scene/particlesys.js +3 -1
  132. package/dist/scene/particlesys.js.map +1 -1
  133. package/dist/scene/scene.js +6 -5
  134. package/dist/scene/scene.js.map +1 -1
  135. package/dist/scene/terrain-cm/grass.js +4 -2
  136. package/dist/scene/terrain-cm/grass.js.map +1 -1
  137. package/dist/scene/terrain-cm/grassmaterial.js +2 -1
  138. package/dist/scene/terrain-cm/grassmaterial.js.map +1 -1
  139. package/dist/scene/terrain-cm/terrain-cm.js +4 -2
  140. package/dist/scene/terrain-cm/terrain-cm.js.map +1 -1
  141. package/dist/scene/water.js +4 -2
  142. package/dist/scene/water.js.map +1 -1
  143. package/dist/shaders/shadow.js +26 -393
  144. package/dist/shaders/shadow.js.map +1 -1
  145. package/dist/shadow/esm.js +112 -12
  146. package/dist/shadow/esm.js.map +1 -1
  147. package/dist/shadow/pcf_opt.js +2 -2
  148. package/dist/shadow/pcf_opt.js.map +1 -1
  149. package/dist/shadow/pcf_pd.js +19 -10
  150. package/dist/shadow/pcf_pd.js.map +1 -1
  151. package/dist/shadow/shader.js +58 -7
  152. package/dist/shadow/shader.js.map +1 -1
  153. package/dist/shadow/shadow_impl.js +6 -0
  154. package/dist/shadow/shadow_impl.js.map +1 -1
  155. package/dist/shadow/shadow_region.js +229 -0
  156. package/dist/shadow/shadow_region.js.map +1 -0
  157. package/dist/shadow/shadowmapper.js +67 -59
  158. package/dist/shadow/shadowmapper.js.map +1 -1
  159. package/dist/shadow/vsm.js +45 -19
  160. package/dist/shadow/vsm.js.map +1 -1
  161. package/dist/text/font/cff_font.js +890 -0
  162. package/dist/text/font/cff_font.js.map +1 -0
  163. package/dist/text/font/font_asset.js +17 -3
  164. package/dist/text/font/font_asset.js.map +1 -1
  165. package/dist/utility/blueprint/common/constants.js +8 -8
  166. package/dist/utility/blueprint/common/constants.js.map +1 -1
  167. package/dist/utility/blueprint/material/pbr.js +31 -4
  168. package/dist/utility/blueprint/material/pbr.js.map +1 -1
  169. package/dist/utility/blueprint/material/texture.js +1 -17
  170. package/dist/utility/blueprint/material/texture.js.map +1 -1
  171. package/dist/utility/serialization/manager.js +327 -359
  172. package/dist/utility/serialization/manager.js.map +1 -1
  173. package/dist/utility/serialization/scene/animation.js +5 -2
  174. package/dist/utility/serialization/scene/animation.js.map +1 -1
  175. package/dist/utility/serialization/scene/batch.js +4 -1
  176. package/dist/utility/serialization/scene/batch.js.map +1 -1
  177. package/dist/utility/serialization/scene/camera.js +249 -54
  178. package/dist/utility/serialization/scene/camera.js.map +1 -1
  179. package/dist/utility/serialization/scene/common.js +37 -1
  180. package/dist/utility/serialization/scene/common.js.map +1 -1
  181. package/dist/utility/serialization/scene/light.js +42 -3
  182. package/dist/utility/serialization/scene/light.js.map +1 -1
  183. package/dist/utility/serialization/scene/material.js +1112 -646
  184. package/dist/utility/serialization/scene/material.js.map +1 -1
  185. package/dist/utility/serialization/scene/mesh.js +7 -4
  186. package/dist/utility/serialization/scene/mesh.js.map +1 -1
  187. package/dist/utility/serialization/scene/node.js +31 -12
  188. package/dist/utility/serialization/scene/node.js.map +1 -1
  189. package/dist/utility/serialization/scene/particle.js +4 -1
  190. package/dist/utility/serialization/scene/particle.js.map +1 -1
  191. package/dist/utility/serialization/scene/primitive.js +3 -1
  192. package/dist/utility/serialization/scene/primitive.js.map +1 -1
  193. package/dist/utility/serialization/scene/scene.js +18 -0
  194. package/dist/utility/serialization/scene/scene.js.map +1 -1
  195. package/dist/utility/serialization/scene/sprite.js +6 -3
  196. package/dist/utility/serialization/scene/sprite.js.map +1 -1
  197. package/dist/utility/serialization/scene/terrain.js +5 -2
  198. package/dist/utility/serialization/scene/terrain.js.map +1 -1
  199. package/dist/utility/serialization/scene/text.js +3 -1
  200. package/dist/utility/serialization/scene/text.js.map +1 -1
  201. package/dist/utility/serialization/scene/water.js +4 -1
  202. package/dist/utility/serialization/scene/water.js.map +1 -1
  203. package/dist/utility/textures/ltcdata.js +6 -0
  204. package/dist/utility/textures/ltcdata.js.map +1 -0
  205. package/dist/utility/textures/ltclut.js +61 -0
  206. package/dist/utility/textures/ltclut.js.map +1 -0
  207. package/dist/values.js +9 -1
  208. package/dist/values.js.map +1 -1
  209. package/package.json +3 -3
  210. package/dist/animation/ik/ik_chain_builder.js +0 -68
  211. package/dist/animation/ik/ik_chain_builder.js.map +0 -1
  212. package/dist/animation/ik/ik_pole_constraint.js +0 -123
  213. package/dist/animation/ik/ik_pole_constraint.js.map +0 -1
  214. package/dist/animation/ik/ik_track.js +0 -96
  215. package/dist/animation/ik/ik_track.js.map +0 -1
  216. package/dist/animation/ik_postprocessor.js +0 -71
  217. package/dist/animation/ik_postprocessor.js.map +0 -1
  218. package/dist/animation/joint_dynamics/math.js +0 -16
  219. package/dist/animation/joint_dynamics/math.js.map +0 -1
  220. package/dist/animation/manual_transform_processor.js +0 -156
  221. package/dist/animation/manual_transform_processor.js.map +0 -1
  222. package/dist/animation/skeleton_postprocessor.js +0 -50
  223. package/dist/animation/skeleton_postprocessor.js.map +0 -1
  224. package/dist/animation/spring2/collision.js +0 -469
  225. package/dist/animation/spring2/collision.js.map +0 -1
  226. package/dist/animation/spring2/constraints.js +0 -329
  227. package/dist/animation/spring2/constraints.js.map +0 -1
  228. package/dist/animation/spring2/controller.js +0 -434
  229. package/dist/animation/spring2/controller.js.map +0 -1
  230. package/dist/animation/spring2/math.js +0 -16
  231. package/dist/animation/spring2/math.js.map +0 -1
  232. package/dist/animation/spring2/solver.js +0 -624
  233. package/dist/animation/spring2/solver.js.map +0 -1
  234. package/dist/animation/spring2/spring_system.js +0 -118
  235. package/dist/animation/spring2/spring_system.js.map +0 -1
  236. package/dist/animation/spring2/types.js +0 -19
  237. package/dist/animation/spring2/types.js.map +0 -1
  238. package/dist/animation/spring_postprocessor.js +0 -54
  239. package/dist/animation/spring_postprocessor.js.map +0 -1
  240. package/dist/asset/loaders/gltf/gltf_loader.js +0 -1276
  241. package/dist/asset/loaders/gltf/gltf_loader.js.map +0 -1
  242. package/dist/asset/loaders/gltf/helpers.js +0 -331
  243. package/dist/asset/loaders/gltf/helpers.js.map +0 -1
  244. package/dist/material/sprite3d.js +0 -301
  245. package/dist/material/sprite3d.js.map +0 -1
  246. package/dist/material/sprite3d_std.js +0 -116
  247. package/dist/material/sprite3d_std.js.map +0 -1
  248. package/dist/material/sprite3dblueprint.js +0 -235
  249. package/dist/material/sprite3dblueprint.js.map +0 -1
  250. package/dist/material/sprite_sdf.js +0 -106
  251. package/dist/material/sprite_sdf.js.map +0 -1
  252. package/dist/material/terrainmaterial.js +0 -368
  253. package/dist/material/terrainmaterial.js.map +0 -1
  254. package/dist/node_modules/@zephyr3d/runtime/dist/runtime/runtimemgr.js +0 -38
  255. package/dist/node_modules/@zephyr3d/runtime/dist/runtime/runtimemgr.js.map +0 -1
  256. package/dist/node_modules/@zephyr3d/runtime/dist/runtime/runtimescript.js +0 -10
  257. package/dist/node_modules/@zephyr3d/runtime/dist/runtime/runtimescript.js.map +0 -1
  258. package/dist/node_modules/@zephyr3d/runtime/dist/runtime/scriptingsystem.js +0 -127
  259. package/dist/node_modules/@zephyr3d/runtime/dist/runtime/scriptingsystem.js.map +0 -1
  260. package/dist/node_modules/@zephyr3d/runtime/dist/runtime/scriptregistry.js +0 -263
  261. package/dist/node_modules/@zephyr3d/runtime/dist/runtime/scriptregistry.js.map +0 -1
  262. package/dist/render/deferredlightpass.js +0 -510
  263. package/dist/render/deferredlightpass.js.map +0 -1
  264. package/dist/render/deferredshadowlightpass.js +0 -428
  265. package/dist/render/deferredshadowlightpass.js.map +0 -1
  266. package/dist/render/gbufferpass.js +0 -50
  267. package/dist/render/gbufferpass.js.map +0 -1
  268. package/dist/scene/sdftextsprite.js +0 -322
  269. package/dist/scene/sdftextsprite.js.map +0 -1
  270. package/dist/scene/sprite3d.js +0 -18
  271. package/dist/scene/sprite3d.js.map +0 -1
  272. package/dist/scene/terrain/grass.js +0 -280
  273. package/dist/scene/terrain/grass.js.map +0 -1
  274. package/dist/scene/terrain/heightfield.js +0 -475
  275. package/dist/scene/terrain/heightfield.js.map +0 -1
  276. package/dist/scene/terrain/patch.js +0 -532
  277. package/dist/scene/terrain/patch.js.map +0 -1
  278. package/dist/scene/terrain/quadtree.js +0 -461
  279. package/dist/scene/terrain/quadtree.js.map +0 -1
  280. package/dist/scene/terrain/terrain.js +0 -231
  281. package/dist/scene/terrain/terrain.js.map +0 -1
  282. package/dist/src/animation/animation.js +0 -127
  283. package/dist/src/animation/animation.js.map +0 -1
  284. package/dist/src/animation/animationset.js +0 -255
  285. package/dist/src/animation/animationset.js.map +0 -1
  286. package/dist/src/animation/animationtrack.js +0 -34
  287. package/dist/src/animation/animationtrack.js.map +0 -1
  288. package/dist/src/animation/eulerrotationtrack.js +0 -52
  289. package/dist/src/animation/eulerrotationtrack.js.map +0 -1
  290. package/dist/src/animation/morphtarget.js +0 -93
  291. package/dist/src/animation/morphtarget.js.map +0 -1
  292. package/dist/src/animation/morphtrack.js +0 -70
  293. package/dist/src/animation/morphtrack.js.map +0 -1
  294. package/dist/src/animation/proptrack.js +0 -161
  295. package/dist/src/animation/proptrack.js.map +0 -1
  296. package/dist/src/animation/rotationtrack.js +0 -51
  297. package/dist/src/animation/rotationtrack.js.map +0 -1
  298. package/dist/src/animation/scaletrack.js +0 -50
  299. package/dist/src/animation/scaletrack.js.map +0 -1
  300. package/dist/src/animation/skeleton.js +0 -204
  301. package/dist/src/animation/skeleton.js.map +0 -1
  302. package/dist/src/animation/translationtrack.js +0 -50
  303. package/dist/src/animation/translationtrack.js.map +0 -1
  304. package/dist/src/app/app.js +0 -129
  305. package/dist/src/app/app.js.map +0 -1
  306. package/dist/src/app/inputmgr.js +0 -267
  307. package/dist/src/app/inputmgr.js.map +0 -1
  308. package/dist/src/asset/assetmanager.js +0 -404
  309. package/dist/src/asset/assetmanager.js.map +0 -1
  310. package/dist/src/asset/builtin.js +0 -337
  311. package/dist/src/asset/builtin.js.map +0 -1
  312. package/dist/src/asset/loaders/dds/dds.js +0 -470
  313. package/dist/src/asset/loaders/dds/dds.js.map +0 -1
  314. package/dist/src/asset/loaders/dds/dds_loader.js +0 -28
  315. package/dist/src/asset/loaders/dds/dds_loader.js.map +0 -1
  316. package/dist/src/asset/loaders/gltf/gltf_loader.js +0 -1265
  317. package/dist/src/asset/loaders/gltf/gltf_loader.js.map +0 -1
  318. package/dist/src/asset/loaders/gltf/helpers.js +0 -327
  319. package/dist/src/asset/loaders/gltf/helpers.js.map +0 -1
  320. package/dist/src/asset/loaders/hdr/hdr.js +0 -180
  321. package/dist/src/asset/loaders/hdr/hdr.js.map +0 -1
  322. package/dist/src/asset/loaders/image/tga_Loader.js +0 -116
  323. package/dist/src/asset/loaders/image/tga_Loader.js.map +0 -1
  324. package/dist/src/asset/loaders/image/webimage_loader.js +0 -63
  325. package/dist/src/asset/loaders/image/webimage_loader.js.map +0 -1
  326. package/dist/src/asset/loaders/loader.js +0 -45
  327. package/dist/src/asset/loaders/loader.js.map +0 -1
  328. package/dist/src/asset/model.js +0 -414
  329. package/dist/src/asset/model.js.map +0 -1
  330. package/dist/src/blitter/bilateralblur.js +0 -221
  331. package/dist/src/blitter/bilateralblur.js.map +0 -1
  332. package/dist/src/blitter/blitter.js +0 -390
  333. package/dist/src/blitter/blitter.js.map +0 -1
  334. package/dist/src/blitter/box.js +0 -118
  335. package/dist/src/blitter/box.js.map +0 -1
  336. package/dist/src/blitter/copy.js +0 -22
  337. package/dist/src/blitter/copy.js.map +0 -1
  338. package/dist/src/blitter/gaussianblur.js +0 -228
  339. package/dist/src/blitter/gaussianblur.js.map +0 -1
  340. package/dist/src/camera/base.js +0 -92
  341. package/dist/src/camera/base.js.map +0 -1
  342. package/dist/src/camera/camera.js +0 -1005
  343. package/dist/src/camera/camera.js.map +0 -1
  344. package/dist/src/camera/fps.js +0 -238
  345. package/dist/src/camera/fps.js.map +0 -1
  346. package/dist/src/camera/orbit.js +0 -245
  347. package/dist/src/camera/orbit.js.map +0 -1
  348. package/dist/src/camera/orthocamera.js +0 -167
  349. package/dist/src/camera/orthocamera.js.map +0 -1
  350. package/dist/src/camera/perspectivecamera.js +0 -141
  351. package/dist/src/camera/perspectivecamera.js.map +0 -1
  352. package/dist/src/index.js +0 -120
  353. package/dist/src/index.js.map +0 -1
  354. package/dist/src/material/blinn.js +0 -81
  355. package/dist/src/material/blinn.js.map +0 -1
  356. package/dist/src/material/grassmaterial.js +0 -113
  357. package/dist/src/material/grassmaterial.js.map +0 -1
  358. package/dist/src/material/lambert.js +0 -92
  359. package/dist/src/material/lambert.js.map +0 -1
  360. package/dist/src/material/material.js +0 -301
  361. package/dist/src/material/material.js.map +0 -1
  362. package/dist/src/material/meshmaterial.js +0 -704
  363. package/dist/src/material/meshmaterial.js.map +0 -1
  364. package/dist/src/material/mixins/albedocolor.js +0 -76
  365. package/dist/src/material/mixins/albedocolor.js.map +0 -1
  366. package/dist/src/material/mixins/foliage.js +0 -47
  367. package/dist/src/material/mixins/foliage.js.map +0 -1
  368. package/dist/src/material/mixins/lightmodel/blinnphong.js +0 -112
  369. package/dist/src/material/mixins/lightmodel/blinnphong.js.map +0 -1
  370. package/dist/src/material/mixins/lightmodel/lambert.js +0 -58
  371. package/dist/src/material/mixins/lightmodel/lambert.js.map +0 -1
  372. package/dist/src/material/mixins/lightmodel/pbrmetallicroughness.js +0 -178
  373. package/dist/src/material/mixins/lightmodel/pbrmetallicroughness.js.map +0 -1
  374. package/dist/src/material/mixins/lightmodel/pbrspecularglossness.js +0 -139
  375. package/dist/src/material/mixins/lightmodel/pbrspecularglossness.js.map +0 -1
  376. package/dist/src/material/mixins/lit.js +0 -476
  377. package/dist/src/material/mixins/lit.js.map +0 -1
  378. package/dist/src/material/mixins/pbr/common.js +0 -918
  379. package/dist/src/material/mixins/pbr/common.js.map +0 -1
  380. package/dist/src/material/mixins/texture.js +0 -172
  381. package/dist/src/material/mixins/texture.js.map +0 -1
  382. package/dist/src/material/mixins/vertexcolor.js +0 -56
  383. package/dist/src/material/mixins/vertexcolor.js.map +0 -1
  384. package/dist/src/material/particle.js +0 -178
  385. package/dist/src/material/particle.js.map +0 -1
  386. package/dist/src/material/pbrmr.js +0 -97
  387. package/dist/src/material/pbrmr.js.map +0 -1
  388. package/dist/src/material/pbrsg.js +0 -97
  389. package/dist/src/material/pbrsg.js.map +0 -1
  390. package/dist/src/material/shader/helper.js +0 -1209
  391. package/dist/src/material/shader/helper.js.map +0 -1
  392. package/dist/src/material/terrain-cm.js +0 -606
  393. package/dist/src/material/terrain-cm.js.map +0 -1
  394. package/dist/src/material/terrainmaterial.js +0 -375
  395. package/dist/src/material/terrainmaterial.js.map +0 -1
  396. package/dist/src/material/unlit.js +0 -41
  397. package/dist/src/material/unlit.js.map +0 -1
  398. package/dist/src/material/water.js +0 -417
  399. package/dist/src/material/water.js.map +0 -1
  400. package/dist/src/posteffect/bloom.js +0 -361
  401. package/dist/src/posteffect/bloom.js.map +0 -1
  402. package/dist/src/posteffect/compositor.js +0 -226
  403. package/dist/src/posteffect/compositor.js.map +0 -1
  404. package/dist/src/posteffect/fxaa.js +0 -273
  405. package/dist/src/posteffect/fxaa.js.map +0 -1
  406. package/dist/src/posteffect/grayscale.js +0 -69
  407. package/dist/src/posteffect/grayscale.js.map +0 -1
  408. package/dist/src/posteffect/motionblur.js +0 -96
  409. package/dist/src/posteffect/motionblur.js.map +0 -1
  410. package/dist/src/posteffect/posteffect.js +0 -126
  411. package/dist/src/posteffect/posteffect.js.map +0 -1
  412. package/dist/src/posteffect/sao.js +0 -324
  413. package/dist/src/posteffect/sao.js.map +0 -1
  414. package/dist/src/posteffect/ssr.js +0 -489
  415. package/dist/src/posteffect/ssr.js.map +0 -1
  416. package/dist/src/posteffect/taa.js +0 -172
  417. package/dist/src/posteffect/taa.js.map +0 -1
  418. package/dist/src/posteffect/tonemap.js +0 -94
  419. package/dist/src/posteffect/tonemap.js.map +0 -1
  420. package/dist/src/render/abuffer_oit.js +0 -361
  421. package/dist/src/render/abuffer_oit.js.map +0 -1
  422. package/dist/src/render/clipmap.js +0 -851
  423. package/dist/src/render/clipmap.js.map +0 -1
  424. package/dist/src/render/cluster_light.js +0 -333
  425. package/dist/src/render/cluster_light.js.map +0 -1
  426. package/dist/src/render/cull_visitor.js +0 -187
  427. package/dist/src/render/cull_visitor.js.map +0 -1
  428. package/dist/src/render/depthpass.js +0 -68
  429. package/dist/src/render/depthpass.js.map +0 -1
  430. package/dist/src/render/drawable_mixin.js +0 -227
  431. package/dist/src/render/drawable_mixin.js.map +0 -1
  432. package/dist/src/render/envlight.js +0 -463
  433. package/dist/src/render/envlight.js.map +0 -1
  434. package/dist/src/render/fbm_wavegenerator.js +0 -251
  435. package/dist/src/render/fbm_wavegenerator.js.map +0 -1
  436. package/dist/src/render/fft_wavegenerator.js +0 -1006
  437. package/dist/src/render/fft_wavegenerator.js.map +0 -1
  438. package/dist/src/render/fullscreenquad.js +0 -38
  439. package/dist/src/render/fullscreenquad.js.map +0 -1
  440. package/dist/src/render/gerstner_wavegenerator.js +0 -314
  441. package/dist/src/render/gerstner_wavegenerator.js.map +0 -1
  442. package/dist/src/render/globalbindgroup_allocator.js +0 -60
  443. package/dist/src/render/globalbindgroup_allocator.js.map +0 -1
  444. package/dist/src/render/hzb.js +0 -273
  445. package/dist/src/render/hzb.js.map +0 -1
  446. package/dist/src/render/lightpass.js +0 -172
  447. package/dist/src/render/lightpass.js.map +0 -1
  448. package/dist/src/render/objectcolorpass.js +0 -51
  449. package/dist/src/render/objectcolorpass.js.map +0 -1
  450. package/dist/src/render/primitive.js +0 -364
  451. package/dist/src/render/primitive.js.map +0 -1
  452. package/dist/src/render/render_queue.js +0 -467
  453. package/dist/src/render/render_queue.js.map +0 -1
  454. package/dist/src/render/renderbundle_wrapper.js +0 -152
  455. package/dist/src/render/renderbundle_wrapper.js.map +0 -1
  456. package/dist/src/render/renderer.js +0 -455
  457. package/dist/src/render/renderer.js.map +0 -1
  458. package/dist/src/render/renderpass.js +0 -200
  459. package/dist/src/render/renderpass.js.map +0 -1
  460. package/dist/src/render/shadowmap_pass.js +0 -56
  461. package/dist/src/render/shadowmap_pass.js.map +0 -1
  462. package/dist/src/render/sky.js +0 -1103
  463. package/dist/src/render/sky.js.map +0 -1
  464. package/dist/src/render/weightedblended_oit.js +0 -168
  465. package/dist/src/render/weightedblended_oit.js.map +0 -1
  466. package/dist/src/scene/batchgroup.js +0 -162
  467. package/dist/src/scene/batchgroup.js.map +0 -1
  468. package/dist/src/scene/environment.js +0 -209
  469. package/dist/src/scene/environment.js.map +0 -1
  470. package/dist/src/scene/graph_node.js +0 -72
  471. package/dist/src/scene/graph_node.js.map +0 -1
  472. package/dist/src/scene/light.js +0 -416
  473. package/dist/src/scene/light.js.map +0 -1
  474. package/dist/src/scene/mesh.js +0 -341
  475. package/dist/src/scene/mesh.js.map +0 -1
  476. package/dist/src/scene/octree.js +0 -649
  477. package/dist/src/scene/octree.js.map +0 -1
  478. package/dist/src/scene/particlesys.js +0 -738
  479. package/dist/src/scene/particlesys.js.map +0 -1
  480. package/dist/src/scene/raycast_visitor.js +0 -103
  481. package/dist/src/scene/raycast_visitor.js.map +0 -1
  482. package/dist/src/scene/scene.js +0 -284
  483. package/dist/src/scene/scene.js.map +0 -1
  484. package/dist/src/scene/scene_node.js +0 -732
  485. package/dist/src/scene/scene_node.js.map +0 -1
  486. package/dist/src/scene/terrain/grass.js +0 -278
  487. package/dist/src/scene/terrain/grass.js.map +0 -1
  488. package/dist/src/scene/terrain/heightfield.js +0 -475
  489. package/dist/src/scene/terrain/heightfield.js.map +0 -1
  490. package/dist/src/scene/terrain/patch.js +0 -530
  491. package/dist/src/scene/terrain/patch.js.map +0 -1
  492. package/dist/src/scene/terrain/quadtree.js +0 -461
  493. package/dist/src/scene/terrain/quadtree.js.map +0 -1
  494. package/dist/src/scene/terrain/terrain.js +0 -246
  495. package/dist/src/scene/terrain/terrain.js.map +0 -1
  496. package/dist/src/scene/terrain-cm/grass.js +0 -594
  497. package/dist/src/scene/terrain-cm/grass.js.map +0 -1
  498. package/dist/src/scene/terrain-cm/grassmaterial.js +0 -159
  499. package/dist/src/scene/terrain-cm/grassmaterial.js.map +0 -1
  500. package/dist/src/scene/terrain-cm/terrain-cm.js +0 -538
  501. package/dist/src/scene/terrain-cm/terrain-cm.js.map +0 -1
  502. package/dist/src/scene/water.js +0 -374
  503. package/dist/src/scene/water.js.map +0 -1
  504. package/dist/src/shaders/atmosphere.js +0 -957
  505. package/dist/src/shaders/atmosphere.js.map +0 -1
  506. package/dist/src/shaders/fog.js +0 -112
  507. package/dist/src/shaders/fog.js.map +0 -1
  508. package/dist/src/shaders/misc.js +0 -266
  509. package/dist/src/shaders/misc.js.map +0 -1
  510. package/dist/src/shaders/noise.js +0 -222
  511. package/dist/src/shaders/noise.js.map +0 -1
  512. package/dist/src/shaders/pbr.js +0 -51
  513. package/dist/src/shaders/pbr.js.map +0 -1
  514. package/dist/src/shaders/shadow.js +0 -636
  515. package/dist/src/shaders/shadow.js.map +0 -1
  516. package/dist/src/shaders/ssr.js +0 -490
  517. package/dist/src/shaders/ssr.js.map +0 -1
  518. package/dist/src/shaders/temporal.js +0 -215
  519. package/dist/src/shaders/temporal.js.map +0 -1
  520. package/dist/src/shaders/water.js +0 -756
  521. package/dist/src/shaders/water.js.map +0 -1
  522. package/dist/src/shadow/esm.js +0 -237
  523. package/dist/src/shadow/esm.js.map +0 -1
  524. package/dist/src/shadow/pcf_opt.js +0 -181
  525. package/dist/src/shadow/pcf_opt.js.map +0 -1
  526. package/dist/src/shadow/pcf_pd.js +0 -189
  527. package/dist/src/shadow/pcf_pd.js.map +0 -1
  528. package/dist/src/shadow/shader.js +0 -37
  529. package/dist/src/shadow/shader.js.map +0 -1
  530. package/dist/src/shadow/shadow_impl.js +0 -15
  531. package/dist/src/shadow/shadow_impl.js.map +0 -1
  532. package/dist/src/shadow/shadowmapper.js +0 -790
  533. package/dist/src/shadow/shadowmapper.js.map +0 -1
  534. package/dist/src/shadow/ssm.js +0 -159
  535. package/dist/src/shadow/ssm.js.map +0 -1
  536. package/dist/src/shadow/vsm.js +0 -297
  537. package/dist/src/shadow/vsm.js.map +0 -1
  538. package/dist/src/shapes/box.js +0 -386
  539. package/dist/src/shapes/box.js.map +0 -1
  540. package/dist/src/shapes/cylinder.js +0 -125
  541. package/dist/src/shapes/cylinder.js.map +0 -1
  542. package/dist/src/shapes/plane.js +0 -88
  543. package/dist/src/shapes/plane.js.map +0 -1
  544. package/dist/src/shapes/shape.js +0 -87
  545. package/dist/src/shapes/shape.js.map +0 -1
  546. package/dist/src/shapes/sphere.js +0 -114
  547. package/dist/src/shapes/sphere.js.map +0 -1
  548. package/dist/src/shapes/tetrahedron.js +0 -188
  549. package/dist/src/shapes/tetrahedron.js.map +0 -1
  550. package/dist/src/shapes/torus.js +0 -111
  551. package/dist/src/shapes/torus.js.map +0 -1
  552. package/dist/src/utility/aabbtree.js +0 -400
  553. package/dist/src/utility/aabbtree.js.map +0 -1
  554. package/dist/src/utility/bounding_volume.js +0 -29
  555. package/dist/src/utility/bounding_volume.js.map +0 -1
  556. package/dist/src/utility/debug.js +0 -28
  557. package/dist/src/utility/debug.js.map +0 -1
  558. package/dist/src/utility/draco/decoder.js +0 -116
  559. package/dist/src/utility/draco/decoder.js.map +0 -1
  560. package/dist/src/utility/misc.js +0 -105
  561. package/dist/src/utility/misc.js.map +0 -1
  562. package/dist/src/utility/panorama.js +0 -163
  563. package/dist/src/utility/panorama.js.map +0 -1
  564. package/dist/src/utility/pmrem.js +0 -354
  565. package/dist/src/utility/pmrem.js.map +0 -1
  566. package/dist/src/utility/rendermipmap.js +0 -115
  567. package/dist/src/utility/rendermipmap.js.map +0 -1
  568. package/dist/src/utility/serialization/json.js +0 -402
  569. package/dist/src/utility/serialization/json.js.map +0 -1
  570. package/dist/src/utility/serialization/manager.js +0 -623
  571. package/dist/src/utility/serialization/manager.js.map +0 -1
  572. package/dist/src/utility/serialization/scene/animation.js +0 -248
  573. package/dist/src/utility/serialization/scene/animation.js.map +0 -1
  574. package/dist/src/utility/serialization/scene/batch.js +0 -59
  575. package/dist/src/utility/serialization/scene/batch.js.map +0 -1
  576. package/dist/src/utility/serialization/scene/camera.js +0 -790
  577. package/dist/src/utility/serialization/scene/camera.js.map +0 -1
  578. package/dist/src/utility/serialization/scene/common.js +0 -222
  579. package/dist/src/utility/serialization/scene/common.js.map +0 -1
  580. package/dist/src/utility/serialization/scene/light.js +0 -575
  581. package/dist/src/utility/serialization/scene/light.js.map +0 -1
  582. package/dist/src/utility/serialization/scene/material.js +0 -1111
  583. package/dist/src/utility/serialization/scene/material.js.map +0 -1
  584. package/dist/src/utility/serialization/scene/mesh.js +0 -148
  585. package/dist/src/utility/serialization/scene/mesh.js.map +0 -1
  586. package/dist/src/utility/serialization/scene/misc.js +0 -39
  587. package/dist/src/utility/serialization/scene/misc.js.map +0 -1
  588. package/dist/src/utility/serialization/scene/node.js +0 -451
  589. package/dist/src/utility/serialization/scene/node.js.map +0 -1
  590. package/dist/src/utility/serialization/scene/particle.js +0 -425
  591. package/dist/src/utility/serialization/scene/particle.js.map +0 -1
  592. package/dist/src/utility/serialization/scene/primitive.js +0 -692
  593. package/dist/src/utility/serialization/scene/primitive.js.map +0 -1
  594. package/dist/src/utility/serialization/scene/scene.js +0 -704
  595. package/dist/src/utility/serialization/scene/scene.js.map +0 -1
  596. package/dist/src/utility/serialization/scene/terrain.js +0 -488
  597. package/dist/src/utility/serialization/scene/terrain.js.map +0 -1
  598. package/dist/src/utility/serialization/scene/water.js +0 -465
  599. package/dist/src/utility/serialization/scene/water.js.map +0 -1
  600. package/dist/src/utility/shprojector.js +0 -297
  601. package/dist/src/utility/shprojector.js.map +0 -1
  602. package/dist/src/utility/textures/ggxlut.js +0 -213
  603. package/dist/src/utility/textures/ggxlut.js.map +0 -1
  604. package/dist/src/utility/textures/gradientnoise.js +0 -62
  605. package/dist/src/utility/textures/gradientnoise.js.map +0 -1
  606. package/dist/src/utility/textures/randomnoise.js +0 -41
  607. package/dist/src/utility/textures/randomnoise.js.map +0 -1
  608. package/dist/src/values.js +0 -162
  609. package/dist/src/values.js.map +0 -1
  610. package/dist/utility/blueprint/material/common.js +0 -7
  611. package/dist/utility/blueprint/material/common.js.map +0 -1
  612. package/dist/utility/serialization/blueprint/constants.js +0 -255
  613. package/dist/utility/serialization/blueprint/constants.js.map +0 -1
  614. package/dist/utility/serialization/blueprint/material/constants.js +0 -203
  615. package/dist/utility/serialization/blueprint/material/constants.js.map +0 -1
  616. package/dist/utility/serialization/blueprint/material/texture.js +0 -165
  617. package/dist/utility/serialization/blueprint/material/texture.js.map +0 -1
  618. package/dist/utility/serialization/scene/cloth_script.js +0 -834
  619. package/dist/utility/serialization/scene/cloth_script.js.map +0 -1
  620. package/dist/utility/serialization/scene/spring_script.js +0 -596
  621. package/dist/utility/serialization/scene/spring_script.js.map +0 -1
@@ -1,50 +0,0 @@
1
- import { Interpolator, Vector3 } from '@zephyr3d/base';
2
- import { AnimationTrack } from './animationtrack.js';
3
-
4
- /**
5
- * Scale animation track
6
- * @public
7
- */ class NodeScaleTrack extends AnimationTrack {
8
- _state;
9
- _interpolator;
10
- constructor(modeOrInterpolator, keyFramesOrEmbedded, embedded){
11
- if (modeOrInterpolator instanceof Interpolator) {
12
- if (modeOrInterpolator.target !== 'vec3') {
13
- throw new Error(`ScaleTrack(): interpolator target must be 'vec3'`);
14
- }
15
- super(keyFramesOrEmbedded ?? false);
16
- this._interpolator = modeOrInterpolator;
17
- } else {
18
- const keyFrames = keyFramesOrEmbedded;
19
- const inputs = new Float32Array(keyFrames.map((val)=>val.time));
20
- const outputs = new Float32Array(keyFrames.length * 3);
21
- for(let i = 0; i < keyFrames.length; i++){
22
- outputs[i * 3 + 0] = keyFrames[i].value.x;
23
- outputs[i * 3 + 1] = keyFrames[i].value.y;
24
- outputs[i * 3 + 2] = keyFrames[i].value.z;
25
- }
26
- super(embedded ?? false);
27
- this._interpolator = new Interpolator(modeOrInterpolator, 'vec3', inputs, outputs);
28
- }
29
- this._state = new Vector3();
30
- }
31
- calculateState(target, currentTime) {
32
- this._interpolator.interpolate(currentTime, this._state);
33
- return this._state;
34
- }
35
- applyState(node, state) {
36
- node.scale.set(state);
37
- }
38
- mixState(a, b, t) {
39
- return new Vector3(a.x + t * (b.x - a.x), a.y + t * (b.y - a.y), a.z + t * (b.z - a.z));
40
- }
41
- getBlendId() {
42
- return 'node-scale';
43
- }
44
- getDuration() {
45
- return this._interpolator.maxTime;
46
- }
47
- }
48
-
49
- export { NodeScaleTrack };
50
- //# sourceMappingURL=scaletrack.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"scaletrack.js","sources":["../../../src/animation/scaletrack.ts"],"sourcesContent":["import type { InterpolationMode } from '@zephyr3d/base';\r\nimport { Interpolator, Vector3 } from '@zephyr3d/base';\r\nimport { AnimationTrack } from './animationtrack';\r\nimport type { SceneNode } from '../scene';\r\n\r\n/**\r\n * Scale animation track\r\n * @public\r\n */\r\nexport class NodeScaleTrack extends AnimationTrack<Vector3> {\r\n private readonly _state: Vector3;\r\n private readonly _interpolator: Interpolator;\r\n /**\r\n * Create an instance of ScaleTrack from keyframe values\r\n * @param interpolator - Interpolator object that contains keyframe values\r\n * @param embedded - Whether this track be an embedded track\r\n */\r\n constructor(interpolator: Interpolator, embedded?: boolean);\r\n /**\r\n * Create an instance of ScaleTrack from keyframe values\r\n * @param mode - The interpolation mode of keyframes\r\n * @param keyFrames - Keyframe values\r\n * @param embedded - Whether this track be an embedded track\r\n */\r\n constructor(mode: InterpolationMode, keyFrames: { time: number; value: Vector3 }[], embedded?: boolean);\r\n constructor(\r\n modeOrInterpolator?: Interpolator | InterpolationMode,\r\n keyFramesOrEmbedded?: { time: number; value: Vector3 }[] | boolean,\r\n embedded?: boolean\r\n ) {\r\n if (modeOrInterpolator instanceof Interpolator) {\r\n if (modeOrInterpolator.target !== 'vec3') {\r\n throw new Error(`ScaleTrack(): interpolator target must be 'vec3'`);\r\n }\r\n super((keyFramesOrEmbedded as boolean) ?? false);\r\n this._interpolator = modeOrInterpolator;\r\n } else {\r\n const keyFrames = keyFramesOrEmbedded as { time: number; value: Vector3 }[];\r\n const inputs = new Float32Array(keyFrames.map((val) => val.time));\r\n const outputs = new Float32Array(keyFrames.length * 3);\r\n for (let i = 0; i < keyFrames.length; i++) {\r\n outputs[i * 3 + 0] = keyFrames[i].value.x;\r\n outputs[i * 3 + 1] = keyFrames[i].value.y;\r\n outputs[i * 3 + 2] = keyFrames[i].value.z;\r\n }\r\n super(embedded ?? false);\r\n this._interpolator = new Interpolator(modeOrInterpolator, 'vec3', inputs, outputs);\r\n }\r\n this._state = new Vector3();\r\n }\r\n calculateState(target: object, currentTime: number): Vector3 {\r\n this._interpolator.interpolate(currentTime, this._state);\r\n return this._state;\r\n }\r\n applyState(node: SceneNode, state: Vector3) {\r\n node.scale.set(state);\r\n }\r\n mixState(a: Vector3, b: Vector3, t: number): Vector3 {\r\n return new Vector3(a.x + t * (b.x - a.x), a.y + t * (b.y - a.y), a.z + t * (b.z - a.z));\r\n }\r\n getBlendId(): unknown {\r\n return 'node-scale';\r\n }\r\n getDuration(): number {\r\n return this._interpolator.maxTime;\r\n }\r\n}\r\n"],"names":["NodeScaleTrack","AnimationTrack","_state","_interpolator","modeOrInterpolator","keyFramesOrEmbedded","embedded","Interpolator","target","Error","keyFrames","inputs","Float32Array","map","val","time","outputs","length","i","value","x","y","z","Vector3","calculateState","currentTime","interpolate","applyState","node","state","scale","set","mixState","a","b","t","getBlendId","getDuration","maxTime"],"mappings":";;;AAKA;;;IAIO,MAAMA,cAAuBC,SAAAA,cAAAA,CAAAA;IACjBC,MAAgB;IAChBC,aAA4B;AAc7C,IAAA,WAAA,CACEC,kBAAqD,EACrDC,mBAAkE,EAClEC,QAAkB,CAClB;AACA,QAAA,IAAIF,8BAA8BG,YAAc,EAAA;YAC9C,IAAIH,kBAAAA,CAAmBI,MAAM,KAAK,MAAQ,EAAA;AACxC,gBAAA,MAAM,IAAIC,KAAAA,CAAM,CAAC,gDAAgD,CAAC,CAAA;AACpE;YACA,KAAK,CAAC,mBAAoC,IAAA,KAAA,CAAA;YAC1C,IAAI,CAACN,aAAa,GAAGC,kBAAAA;SAChB,MAAA;AACL,YAAA,MAAMM,SAAYL,GAAAA,mBAAAA;YAClB,MAAMM,MAAAA,GAAS,IAAIC,YAAaF,CAAAA,SAAAA,CAAUG,GAAG,CAAC,CAACC,GAAQA,GAAAA,GAAAA,CAAIC,IAAI,CAAA,CAAA;AAC/D,YAAA,MAAMC,OAAU,GAAA,IAAIJ,YAAaF,CAAAA,SAAAA,CAAUO,MAAM,GAAG,CAAA,CAAA;AACpD,YAAA,IAAK,IAAIC,CAAI,GAAA,CAAA,EAAGA,IAAIR,SAAUO,CAAAA,MAAM,EAAEC,CAAK,EAAA,CAAA;gBACzCF,OAAO,CAACE,CAAI,GAAA,CAAA,GAAI,CAAE,CAAA,GAAGR,SAAS,CAACQ,CAAE,CAAA,CAACC,KAAK,CAACC,CAAC;gBACzCJ,OAAO,CAACE,CAAI,GAAA,CAAA,GAAI,CAAE,CAAA,GAAGR,SAAS,CAACQ,CAAE,CAAA,CAACC,KAAK,CAACE,CAAC;gBACzCL,OAAO,CAACE,CAAI,GAAA,CAAA,GAAI,CAAE,CAAA,GAAGR,SAAS,CAACQ,CAAE,CAAA,CAACC,KAAK,CAACG,CAAC;AAC3C;AACA,YAAA,KAAK,CAAChB,QAAY,IAAA,KAAA,CAAA;AAClB,YAAA,IAAI,CAACH,aAAa,GAAG,IAAII,YAAaH,CAAAA,kBAAAA,EAAoB,QAAQO,MAAQK,EAAAA,OAAAA,CAAAA;AAC5E;QACA,IAAI,CAACd,MAAM,GAAG,IAAIqB,OAAAA,EAAAA;AACpB;IACAC,cAAehB,CAAAA,MAAc,EAAEiB,WAAmB,EAAW;QAC3D,IAAI,CAACtB,aAAa,CAACuB,WAAW,CAACD,WAAa,EAAA,IAAI,CAACvB,MAAM,CAAA;QACvD,OAAO,IAAI,CAACA,MAAM;AACpB;IACAyB,UAAWC,CAAAA,IAAe,EAAEC,KAAc,EAAE;QAC1CD,IAAKE,CAAAA,KAAK,CAACC,GAAG,CAACF,KAAAA,CAAAA;AACjB;AACAG,IAAAA,QAAAA,CAASC,CAAU,EAAEC,CAAU,EAAEC,CAAS,EAAW;AACnD,QAAA,OAAO,IAAIZ,OAAQU,CAAAA,CAAAA,CAAEb,CAAC,GAAGe,KAAKD,CAAAA,CAAEd,CAAC,GAAGa,EAAEb,CAAAA,CAAIa,EAAAA,CAAAA,CAAEZ,CAAC,GAAGc,CAAAA,IAAKD,CAAAA,CAAEb,CAAC,GAAGY,CAAAA,CAAEZ,CAAAA,GAAIY,CAAEX,CAAAA,CAAC,GAAGa,CAAAA,IAAKD,CAAEZ,CAAAA,CAAC,GAAGW,CAAAA,CAAEX,CAAC,CAADA,CAAAA;AACtF;IACAc,UAAsB,GAAA;QACpB,OAAO,YAAA;AACT;IACAC,WAAsB,GAAA;AACpB,QAAA,OAAO,IAAI,CAAClC,aAAa,CAACmC,OAAO;AACnC;AACF;;;;"}
@@ -1,204 +0,0 @@
1
- import { Vector3, Matrix4x4, nextPowerOf2 } from '@zephyr3d/base';
2
- import { BoundingBox } from '../utility/bounding_volume.js';
3
- import { Application } from '../app/app.js';
4
-
5
- const tmpV0 = new Vector3();
6
- const tmpV1 = new Vector3();
7
- const tmpV2 = new Vector3();
8
- const tmpV3 = new Vector3();
9
- /**
10
- * Skeleton for skinned animation
11
- * @public
12
- */ class Skeleton {
13
- /** @internal */ _meshes;
14
- /** @internal */ _joints;
15
- /** @internal */ _inverseBindMatrices;
16
- /** @internal */ _bindPoseMatrices;
17
- /** @internal */ _jointMatrices;
18
- /** @internal */ _jointOffsets;
19
- /** @internal */ _jointMatrixArray;
20
- /** @internal */ _jointTexture;
21
- /**
22
- * Creates an instance of skeleton
23
- * @param joints - The joint nodes
24
- * @param inverseBindMatrices - The inverse binding matrices of the joints
25
- * @param bindPoseMatrices - The binding pose matrices of the joints
26
- */ constructor(joints, inverseBindMatrices, bindPoseMatrices, meshes, bounding){
27
- this._joints = joints;
28
- this._inverseBindMatrices = inverseBindMatrices;
29
- this._bindPoseMatrices = bindPoseMatrices;
30
- this._jointMatrixArray = null;
31
- this._jointMatrices = null;
32
- this._jointOffsets = null;
33
- this._jointTexture = null;
34
- this.updateJointMatrices();
35
- this._meshes = meshes.map((mesh, index)=>{
36
- return {
37
- mesh,
38
- bounding: this.getBoundingInfo(bounding[index]),
39
- box: new BoundingBox()
40
- };
41
- });
42
- }
43
- /**
44
- * Disposes self
45
- */ dispose() {
46
- this._jointTexture?.dispose();
47
- this._jointTexture = null;
48
- this._joints = null;
49
- this._inverseBindMatrices = null;
50
- this._bindPoseMatrices = null;
51
- this._jointMatrices = null;
52
- this._jointMatrixArray = null;
53
- }
54
- /**
55
- * The texture that contains the transform matrices of all the joints
56
- */ get jointTexture() {
57
- return this._jointTexture;
58
- }
59
- /** @internal */ updateJointMatrices(jointTransforms, worldMatrix) {
60
- if (!this._jointTexture) {
61
- this._createJointTexture();
62
- }
63
- if (this._jointOffsets[0] === 0) {
64
- this._jointOffsets[0] = 1;
65
- this._jointOffsets[1] = 1;
66
- } else {
67
- this._jointOffsets[1] = this._jointOffsets[0];
68
- this._jointOffsets[0] = this._joints.length - this._jointOffsets[0] + 2;
69
- }
70
- for(let i = 0; i < this._joints.length; i++){
71
- const mat = this._jointMatrices[i + this._jointOffsets[0] - 1];
72
- const jointTransform = jointTransforms ? jointTransforms[i] : this._joints[i].worldMatrix;
73
- if (worldMatrix) {
74
- Matrix4x4.multiplyAffine(worldMatrix, jointTransform, jointTransform);
75
- }
76
- Matrix4x4.multiply(jointTransform, this._inverseBindMatrices[i], mat);
77
- }
78
- }
79
- /** @internal */ computeBindPose(model) {
80
- this.updateJointMatrices(this._bindPoseMatrices, model.worldMatrix);
81
- this._jointOffsets[1] = this._jointOffsets[0];
82
- this._jointTexture.update(this._jointMatrixArray, 0, 0, this._jointTexture.width, this._jointTexture.height);
83
- }
84
- /** @internal */ computeJoints() {
85
- this.updateJointMatrices();
86
- this._jointTexture.update(this._jointMatrixArray, 0, 0, this._jointTexture.width, this._jointTexture.height);
87
- }
88
- /** @internal */ apply() {
89
- this.computeJoints();
90
- for (const mesh of this._meshes){
91
- this.computeBoundingBox(mesh.bounding, mesh.mesh.invWorldMatrix);
92
- mesh.mesh.setBoneMatrices(this.jointTexture);
93
- mesh.mesh.setAnimatedBoundingBox(mesh.bounding.boundingBox);
94
- }
95
- }
96
- /** @internal */ reset() {
97
- for (const mesh of this._meshes){
98
- mesh.mesh.setBoneMatrices(null);
99
- mesh.mesh.setAnimatedBoundingBox(null);
100
- }
101
- }
102
- /** @internal */ computeBoundingBox(info, invWorldMatrix) {
103
- info.boundingBox.beginExtend();
104
- for(let i = 0; i < info.boundingVertices.length; i++){
105
- this._jointMatrices[info.boundingVertexBlendIndices[i * 4 + 0] + this._jointOffsets[0] - 1].transformPointAffine(info.boundingVertices[i], tmpV0).scaleBy(info.boundingVertexJointWeights[i * 4 + 0]);
106
- this._jointMatrices[info.boundingVertexBlendIndices[i * 4 + 1] + this._jointOffsets[0] - 1].transformPointAffine(info.boundingVertices[i], tmpV1).scaleBy(info.boundingVertexJointWeights[i * 4 + 1]);
107
- this._jointMatrices[info.boundingVertexBlendIndices[i * 4 + 2] + this._jointOffsets[0] - 1].transformPointAffine(info.boundingVertices[i], tmpV2).scaleBy(info.boundingVertexJointWeights[i * 4 + 2]);
108
- this._jointMatrices[info.boundingVertexBlendIndices[i * 4 + 3] + this._jointOffsets[0] - 1].transformPointAffine(info.boundingVertices[i], tmpV3).scaleBy(info.boundingVertexJointWeights[i * 4 + 3]);
109
- tmpV0.addBy(tmpV1).addBy(tmpV2).addBy(tmpV3);
110
- invWorldMatrix.transformPointAffine(tmpV0, tmpV0);
111
- info.boundingBox.extend(tmpV0);
112
- }
113
- }
114
- /** @internal */ _createJointTexture() {
115
- const textureWidth = nextPowerOf2(Math.max(4, Math.ceil(Math.sqrt((this._joints.length * 2 + 1) * 4))));
116
- const device = Application.instance.device;
117
- this._jointTexture = device.createTexture2D('rgba32f', textureWidth, textureWidth, {
118
- samplerOptions: {
119
- magFilter: 'nearest',
120
- minFilter: 'nearest',
121
- mipFilter: 'none'
122
- }
123
- });
124
- this._jointMatrixArray = new Float32Array(textureWidth * textureWidth * 4);
125
- const buffer = this._jointMatrixArray.buffer;
126
- this._jointOffsets = new Float32Array(buffer);
127
- this._jointOffsets[0] = 0;
128
- this._jointOffsets[1] = 0;
129
- this._jointMatrices = Array.from({
130
- length: this._joints.length * 2
131
- }).map((val, index)=>new Matrix4x4(buffer, (index + 1) * 16 * Float32Array.BYTES_PER_ELEMENT));
132
- }
133
- /** @internal */ getBoundingInfo(meshData) {
134
- const indices = [
135
- 0,
136
- 0,
137
- 0,
138
- 0,
139
- 0,
140
- 0
141
- ];
142
- let minx = Number.MAX_VALUE;
143
- let maxx = -Number.MAX_VALUE;
144
- let miny = Number.MAX_VALUE;
145
- let maxy = -Number.MAX_VALUE;
146
- let minz = Number.MAX_VALUE;
147
- let maxz = -Number.MAX_VALUE;
148
- const v = meshData.rawPositions;
149
- const vert = new Vector3();
150
- const tmpV0 = new Vector3();
151
- const tmpV1 = new Vector3();
152
- const tmpV2 = new Vector3();
153
- const tmpV3 = new Vector3();
154
- const numVertices = Math.floor(v.length / 3);
155
- for(let i = 0; i < numVertices; i++){
156
- vert.setXYZ(v[i * 3], v[i * 3 + 1], v[i * 3 + 2]);
157
- this._jointMatrices[meshData.rawBlendIndices[i * 4 + 0] + this._jointOffsets[0] - 1].transformPointAffine(vert, tmpV0).scaleBy(meshData.rawJointWeights[i * 4 + 0]);
158
- this._jointMatrices[meshData.rawBlendIndices[i * 4 + 1] + this._jointOffsets[0] - 1].transformPointAffine(vert, tmpV1).scaleBy(meshData.rawJointWeights[i * 4 + 1]);
159
- this._jointMatrices[meshData.rawBlendIndices[i * 4 + 2] + this._jointOffsets[0] - 1].transformPointAffine(vert, tmpV2).scaleBy(meshData.rawJointWeights[i * 4 + 2]);
160
- this._jointMatrices[meshData.rawBlendIndices[i * 4 + 3] + this._jointOffsets[0] - 1].transformPointAffine(vert, tmpV3).scaleBy(meshData.rawJointWeights[i * 4 + 3]);
161
- tmpV0.addBy(tmpV1).addBy(tmpV2).addBy(tmpV3);
162
- if (tmpV0.x < minx) {
163
- minx = tmpV0.x;
164
- indices[0] = i;
165
- }
166
- if (tmpV0.x > maxx) {
167
- maxx = tmpV0.x;
168
- indices[1] = i;
169
- }
170
- if (tmpV0.y < miny) {
171
- miny = tmpV0.y;
172
- indices[2] = i;
173
- }
174
- if (tmpV0.y > maxy) {
175
- maxy = tmpV0.y;
176
- indices[3] = i;
177
- }
178
- if (tmpV0.z < minz) {
179
- minz = tmpV0.z;
180
- indices[4] = i;
181
- }
182
- if (tmpV0.z > maxz) {
183
- maxz = tmpV0.z;
184
- indices[5] = i;
185
- }
186
- }
187
- const info = {
188
- boundingVertexBlendIndices: new Float32Array(Array.from({
189
- length: 6 * 4
190
- }).map((val, index)=>meshData.rawBlendIndices[indices[index >> 2] * 4 + index % 4])),
191
- boundingVertexJointWeights: new Float32Array(Array.from({
192
- length: 6 * 4
193
- }).map((val, index)=>meshData.rawJointWeights[indices[index >> 2] * 4 + index % 4])),
194
- boundingVertices: Array.from({
195
- length: 6
196
- }).map((val, index)=>new Vector3(meshData.rawPositions[indices[index] * 3], meshData.rawPositions[indices[index] * 3 + 1], meshData.rawPositions[indices[index] * 3 + 2])),
197
- boundingBox: new BoundingBox()
198
- };
199
- return info;
200
- }
201
- }
202
-
203
- export { Skeleton };
204
- //# sourceMappingURL=skeleton.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"skeleton.js","sources":["../../../src/animation/skeleton.ts"],"sourcesContent":["import { Matrix4x4, Vector3, nextPowerOf2 } from '@zephyr3d/base';\r\nimport type { Texture2D } from '@zephyr3d/device';\r\nimport type { SceneNode } from '../scene/scene_node';\r\nimport type { Mesh } from '../scene';\r\nimport { BoundingBox } from '../utility/bounding_volume';\r\nimport type { AssetSubMeshData } from '../asset';\r\nimport { Application } from '../app/app';\r\n\r\ninterface SkinnedBoundingBox {\r\n boundingVertices: Vector3[];\r\n boundingVertexBlendIndices: Float32Array;\r\n boundingVertexJointWeights: Float32Array;\r\n boundingBox: BoundingBox;\r\n}\r\n\r\nconst tmpV0 = new Vector3();\r\nconst tmpV1 = new Vector3();\r\nconst tmpV2 = new Vector3();\r\nconst tmpV3 = new Vector3();\r\n\r\n/**\r\n * Skeleton for skinned animation\r\n * @public\r\n */\r\nexport class Skeleton {\r\n /** @internal */\r\n protected _meshes: { mesh: Mesh; bounding: SkinnedBoundingBox; box: BoundingBox }[];\r\n /** @internal */\r\n protected _joints: SceneNode[];\r\n /** @internal */\r\n protected _inverseBindMatrices: Matrix4x4[];\r\n /** @internal */\r\n protected _bindPoseMatrices: Matrix4x4[];\r\n /** @internal */\r\n protected _jointMatrices: Matrix4x4[];\r\n /** @internal */\r\n protected _jointOffsets: Float32Array<ArrayBuffer>;\r\n /** @internal */\r\n protected _jointMatrixArray: Float32Array<ArrayBuffer>;\r\n /** @internal */\r\n protected _jointTexture: Texture2D;\r\n /**\r\n * Creates an instance of skeleton\r\n * @param joints - The joint nodes\r\n * @param inverseBindMatrices - The inverse binding matrices of the joints\r\n * @param bindPoseMatrices - The binding pose matrices of the joints\r\n */\r\n constructor(\r\n joints: SceneNode[],\r\n inverseBindMatrices: Matrix4x4[],\r\n bindPoseMatrices: Matrix4x4[],\r\n meshes: Mesh[],\r\n bounding: AssetSubMeshData[]\r\n ) {\r\n this._joints = joints;\r\n this._inverseBindMatrices = inverseBindMatrices;\r\n this._bindPoseMatrices = bindPoseMatrices;\r\n this._jointMatrixArray = null;\r\n this._jointMatrices = null;\r\n this._jointOffsets = null;\r\n this._jointTexture = null;\r\n this.updateJointMatrices();\r\n this._meshes = meshes.map((mesh, index) => {\r\n return {\r\n mesh,\r\n bounding: this.getBoundingInfo(bounding[index]),\r\n box: new BoundingBox()\r\n };\r\n });\r\n }\r\n /**\r\n * Disposes self\r\n */\r\n dispose() {\r\n this._jointTexture?.dispose();\r\n this._jointTexture = null;\r\n this._joints = null;\r\n this._inverseBindMatrices = null;\r\n this._bindPoseMatrices = null;\r\n this._jointMatrices = null;\r\n this._jointMatrixArray = null;\r\n }\r\n /**\r\n * The texture that contains the transform matrices of all the joints\r\n */\r\n get jointTexture(): Texture2D {\r\n return this._jointTexture;\r\n }\r\n /** @internal */\r\n updateJointMatrices(jointTransforms?: Matrix4x4[], worldMatrix?: Matrix4x4) {\r\n if (!this._jointTexture) {\r\n this._createJointTexture();\r\n }\r\n if (this._jointOffsets[0] === 0) {\r\n this._jointOffsets[0] = 1;\r\n this._jointOffsets[1] = 1;\r\n } else {\r\n this._jointOffsets[1] = this._jointOffsets[0];\r\n this._jointOffsets[0] = this._joints.length - this._jointOffsets[0] + 2;\r\n }\r\n for (let i = 0; i < this._joints.length; i++) {\r\n const mat = this._jointMatrices[i + this._jointOffsets[0] - 1];\r\n const jointTransform = jointTransforms ? jointTransforms[i] : this._joints[i].worldMatrix;\r\n if (worldMatrix) {\r\n Matrix4x4.multiplyAffine(worldMatrix, jointTransform, jointTransform);\r\n }\r\n Matrix4x4.multiply(jointTransform, this._inverseBindMatrices[i], mat);\r\n }\r\n }\r\n /** @internal */\r\n computeBindPose(model: SceneNode) {\r\n this.updateJointMatrices(this._bindPoseMatrices, model.worldMatrix);\r\n this._jointOffsets[1] = this._jointOffsets[0];\r\n this._jointTexture.update(\r\n this._jointMatrixArray,\r\n 0,\r\n 0,\r\n this._jointTexture.width,\r\n this._jointTexture.height\r\n );\r\n }\r\n /** @internal */\r\n computeJoints() {\r\n this.updateJointMatrices();\r\n this._jointTexture.update(\r\n this._jointMatrixArray,\r\n 0,\r\n 0,\r\n this._jointTexture.width,\r\n this._jointTexture.height\r\n );\r\n }\r\n /** @internal */\r\n apply() {\r\n this.computeJoints();\r\n for (const mesh of this._meshes) {\r\n this.computeBoundingBox(mesh.bounding, mesh.mesh.invWorldMatrix);\r\n mesh.mesh.setBoneMatrices(this.jointTexture);\r\n mesh.mesh.setAnimatedBoundingBox(mesh.bounding.boundingBox);\r\n }\r\n }\r\n /** @internal */\r\n reset() {\r\n for (const mesh of this._meshes) {\r\n mesh.mesh.setBoneMatrices(null);\r\n mesh.mesh.setAnimatedBoundingBox(null);\r\n }\r\n }\r\n /** @internal */\r\n computeBoundingBox(info: SkinnedBoundingBox, invWorldMatrix: Matrix4x4) {\r\n info.boundingBox.beginExtend();\r\n for (let i = 0; i < info.boundingVertices.length; i++) {\r\n this._jointMatrices[info.boundingVertexBlendIndices[i * 4 + 0] + this._jointOffsets[0] - 1]\r\n .transformPointAffine(info.boundingVertices[i], tmpV0)\r\n .scaleBy(info.boundingVertexJointWeights[i * 4 + 0]);\r\n this._jointMatrices[info.boundingVertexBlendIndices[i * 4 + 1] + this._jointOffsets[0] - 1]\r\n .transformPointAffine(info.boundingVertices[i], tmpV1)\r\n .scaleBy(info.boundingVertexJointWeights[i * 4 + 1]);\r\n this._jointMatrices[info.boundingVertexBlendIndices[i * 4 + 2] + this._jointOffsets[0] - 1]\r\n .transformPointAffine(info.boundingVertices[i], tmpV2)\r\n .scaleBy(info.boundingVertexJointWeights[i * 4 + 2]);\r\n this._jointMatrices[info.boundingVertexBlendIndices[i * 4 + 3] + this._jointOffsets[0] - 1]\r\n .transformPointAffine(info.boundingVertices[i], tmpV3)\r\n .scaleBy(info.boundingVertexJointWeights[i * 4 + 3]);\r\n tmpV0.addBy(tmpV1).addBy(tmpV2).addBy(tmpV3);\r\n invWorldMatrix.transformPointAffine(tmpV0, tmpV0);\r\n info.boundingBox.extend(tmpV0);\r\n }\r\n }\r\n /** @internal */\r\n private _createJointTexture() {\r\n const textureWidth = nextPowerOf2(Math.max(4, Math.ceil(Math.sqrt((this._joints.length * 2 + 1) * 4))));\r\n const device = Application.instance.device;\r\n this._jointTexture = device.createTexture2D('rgba32f', textureWidth, textureWidth, {\r\n samplerOptions: {\r\n magFilter: 'nearest',\r\n minFilter: 'nearest',\r\n mipFilter: 'none'\r\n }\r\n });\r\n this._jointMatrixArray = new Float32Array(textureWidth * textureWidth * 4);\r\n const buffer = this._jointMatrixArray.buffer;\r\n this._jointOffsets = new Float32Array(buffer);\r\n this._jointOffsets[0] = 0;\r\n this._jointOffsets[1] = 0;\r\n this._jointMatrices = Array.from({ length: this._joints.length * 2 }).map(\r\n (val, index) => new Matrix4x4(buffer, (index + 1) * 16 * Float32Array.BYTES_PER_ELEMENT)\r\n );\r\n }\r\n /** @internal */\r\n private getBoundingInfo(meshData: AssetSubMeshData): SkinnedBoundingBox {\r\n const indices = [0, 0, 0, 0, 0, 0];\r\n let minx = Number.MAX_VALUE;\r\n let maxx = -Number.MAX_VALUE;\r\n let miny = Number.MAX_VALUE;\r\n let maxy = -Number.MAX_VALUE;\r\n let minz = Number.MAX_VALUE;\r\n let maxz = -Number.MAX_VALUE;\r\n const v = meshData.rawPositions;\r\n const vert = new Vector3();\r\n const tmpV0 = new Vector3();\r\n const tmpV1 = new Vector3();\r\n const tmpV2 = new Vector3();\r\n const tmpV3 = new Vector3();\r\n const numVertices = Math.floor(v.length / 3);\r\n for (let i = 0; i < numVertices; i++) {\r\n vert.setXYZ(v[i * 3], v[i * 3 + 1], v[i * 3 + 2]);\r\n this._jointMatrices[meshData.rawBlendIndices[i * 4 + 0] + this._jointOffsets[0] - 1]\r\n .transformPointAffine(vert, tmpV0)\r\n .scaleBy(meshData.rawJointWeights[i * 4 + 0]);\r\n this._jointMatrices[meshData.rawBlendIndices[i * 4 + 1] + this._jointOffsets[0] - 1]\r\n .transformPointAffine(vert, tmpV1)\r\n .scaleBy(meshData.rawJointWeights[i * 4 + 1]);\r\n this._jointMatrices[meshData.rawBlendIndices[i * 4 + 2] + this._jointOffsets[0] - 1]\r\n .transformPointAffine(vert, tmpV2)\r\n .scaleBy(meshData.rawJointWeights[i * 4 + 2]);\r\n this._jointMatrices[meshData.rawBlendIndices[i * 4 + 3] + this._jointOffsets[0] - 1]\r\n .transformPointAffine(vert, tmpV3)\r\n .scaleBy(meshData.rawJointWeights[i * 4 + 3]);\r\n tmpV0.addBy(tmpV1).addBy(tmpV2).addBy(tmpV3);\r\n if (tmpV0.x < minx) {\r\n minx = tmpV0.x;\r\n indices[0] = i;\r\n }\r\n if (tmpV0.x > maxx) {\r\n maxx = tmpV0.x;\r\n indices[1] = i;\r\n }\r\n if (tmpV0.y < miny) {\r\n miny = tmpV0.y;\r\n indices[2] = i;\r\n }\r\n if (tmpV0.y > maxy) {\r\n maxy = tmpV0.y;\r\n indices[3] = i;\r\n }\r\n if (tmpV0.z < minz) {\r\n minz = tmpV0.z;\r\n indices[4] = i;\r\n }\r\n if (tmpV0.z > maxz) {\r\n maxz = tmpV0.z;\r\n indices[5] = i;\r\n }\r\n }\r\n const info: SkinnedBoundingBox = {\r\n boundingVertexBlendIndices: new Float32Array(\r\n Array.from({ length: 6 * 4 }).map(\r\n (val, index) => meshData.rawBlendIndices[indices[index >> 2] * 4 + (index % 4)]\r\n )\r\n ),\r\n boundingVertexJointWeights: new Float32Array(\r\n Array.from({ length: 6 * 4 }).map(\r\n (val, index) => meshData.rawJointWeights[indices[index >> 2] * 4 + (index % 4)]\r\n )\r\n ),\r\n boundingVertices: Array.from({ length: 6 }).map(\r\n (val, index) =>\r\n new Vector3(\r\n meshData.rawPositions[indices[index] * 3],\r\n meshData.rawPositions[indices[index] * 3 + 1],\r\n meshData.rawPositions[indices[index] * 3 + 2]\r\n )\r\n ),\r\n boundingBox: new BoundingBox()\r\n };\r\n return info;\r\n }\r\n}\r\n"],"names":["tmpV0","Vector3","tmpV1","tmpV2","tmpV3","Skeleton","joints","inverseBindMatrices","bindPoseMatrices","meshes","bounding","_joints","_inverseBindMatrices","_bindPoseMatrices","_jointMatrixArray","_jointMatrices","_jointOffsets","_jointTexture","updateJointMatrices","_meshes","map","mesh","index","getBoundingInfo","box","BoundingBox","dispose","jointTexture","jointTransforms","worldMatrix","_createJointTexture","length","i","mat","jointTransform","Matrix4x4","multiplyAffine","multiply","computeBindPose","model","update","width","height","computeJoints","apply","computeBoundingBox","invWorldMatrix","setBoneMatrices","setAnimatedBoundingBox","boundingBox","reset","info","beginExtend","boundingVertices","boundingVertexBlendIndices","transformPointAffine","scaleBy","boundingVertexJointWeights","addBy","extend","textureWidth","nextPowerOf2","Math","max","ceil","sqrt","device","Application","instance","createTexture2D","samplerOptions","magFilter","minFilter","mipFilter","Float32Array","buffer","Array","from","val","BYTES_PER_ELEMENT","meshData","indices","minx","Number","MAX_VALUE","maxx","miny","maxy","minz","maxz","v","rawPositions","vert","numVertices","floor","setXYZ","rawBlendIndices","rawJointWeights","x","y","z"],"mappings":"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"}
@@ -1,50 +0,0 @@
1
- import { Interpolator, Vector3 } from '@zephyr3d/base';
2
- import { AnimationTrack } from './animationtrack.js';
3
-
4
- /**
5
- * Translate animation track
6
- * @public
7
- */ class NodeTranslationTrack extends AnimationTrack {
8
- _state;
9
- _interpolator;
10
- constructor(modeOrInterpolator, keyFramesOrEmbedded, embedded){
11
- if (modeOrInterpolator instanceof Interpolator) {
12
- if (modeOrInterpolator.target !== 'vec3') {
13
- throw new Error(`TranslationTrack(): interpolator target must be 'vec3'`);
14
- }
15
- super(keyFramesOrEmbedded ?? false);
16
- this._interpolator = modeOrInterpolator;
17
- } else {
18
- const keyFrames = keyFramesOrEmbedded;
19
- const inputs = new Float32Array(keyFrames.map((val)=>val.time));
20
- const outputs = new Float32Array(keyFrames.length * 3);
21
- for(let i = 0; i < keyFrames.length; i++){
22
- outputs[i * 3 + 0] = keyFrames[i].value.x;
23
- outputs[i * 3 + 1] = keyFrames[i].value.y;
24
- outputs[i * 3 + 2] = keyFrames[i].value.z;
25
- }
26
- super(embedded ?? false);
27
- this._interpolator = new Interpolator(modeOrInterpolator, 'vec3', inputs, outputs);
28
- }
29
- this._state = new Vector3();
30
- }
31
- calculateState(target, currentTime) {
32
- this._interpolator.interpolate(currentTime, this._state);
33
- return this._state;
34
- }
35
- applyState(node, state) {
36
- node.position.set(state);
37
- }
38
- mixState(a, b, t) {
39
- return new Vector3(a.x + t * (b.x - a.x), a.y + t * (b.y - a.y), a.z + t * (b.z - a.z));
40
- }
41
- getBlendId() {
42
- return 'node-translation';
43
- }
44
- getDuration() {
45
- return this._interpolator.maxTime;
46
- }
47
- }
48
-
49
- export { NodeTranslationTrack };
50
- //# sourceMappingURL=translationtrack.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"translationtrack.js","sources":["../../../src/animation/translationtrack.ts"],"sourcesContent":["import type { InterpolationMode } from '@zephyr3d/base';\r\nimport { Interpolator, Vector3 } from '@zephyr3d/base';\r\nimport { AnimationTrack } from './animationtrack';\r\nimport type { SceneNode } from '../scene';\r\n\r\n/**\r\n * Translate animation track\r\n * @public\r\n */\r\nexport class NodeTranslationTrack extends AnimationTrack<Vector3> {\r\n private readonly _state: Vector3;\r\n private readonly _interpolator: Interpolator;\r\n /**\r\n * Create an instance of TranslationTrack from keyframe values\r\n * @param interpolator - Interpolator object that contains the keyframe values\r\n * @param embedded - Whether this track be an embedded track\r\n */\r\n constructor(interpolator: Interpolator, embedded?: boolean);\r\n /**\r\n * Create an instance of TranslationTrack from keyframe values\r\n * @param mode - The interpolation mode of keyframes\r\n * @param keyFrames - Keyframe values\r\n * @param embedded - Whether this track be an embedded track\r\n */\r\n constructor(mode: InterpolationMode, keyFrames: { time: number; value: Vector3 }[], embedded?: boolean);\r\n constructor(\r\n modeOrInterpolator?: Interpolator | InterpolationMode,\r\n keyFramesOrEmbedded?: { time: number; value: Vector3 }[] | boolean,\r\n embedded?: boolean\r\n ) {\r\n if (modeOrInterpolator instanceof Interpolator) {\r\n if (modeOrInterpolator.target !== 'vec3') {\r\n throw new Error(`TranslationTrack(): interpolator target must be 'vec3'`);\r\n }\r\n super((keyFramesOrEmbedded as boolean) ?? false);\r\n this._interpolator = modeOrInterpolator;\r\n } else {\r\n const keyFrames = keyFramesOrEmbedded as { time: number; value: Vector3 }[];\r\n const inputs = new Float32Array(keyFrames.map((val) => val.time));\r\n const outputs = new Float32Array(keyFrames.length * 3);\r\n for (let i = 0; i < keyFrames.length; i++) {\r\n outputs[i * 3 + 0] = keyFrames[i].value.x;\r\n outputs[i * 3 + 1] = keyFrames[i].value.y;\r\n outputs[i * 3 + 2] = keyFrames[i].value.z;\r\n }\r\n super(embedded ?? false);\r\n this._interpolator = new Interpolator(modeOrInterpolator, 'vec3', inputs, outputs);\r\n }\r\n this._state = new Vector3();\r\n }\r\n calculateState(target: object, currentTime: number): Vector3 {\r\n this._interpolator.interpolate(currentTime, this._state);\r\n return this._state;\r\n }\r\n applyState(node: SceneNode, state: Vector3) {\r\n node.position.set(state);\r\n }\r\n mixState(a: Vector3, b: Vector3, t: number): Vector3 {\r\n return new Vector3(a.x + t * (b.x - a.x), a.y + t * (b.y - a.y), a.z + t * (b.z - a.z));\r\n }\r\n getBlendId(): unknown {\r\n return 'node-translation';\r\n }\r\n getDuration(): number {\r\n return this._interpolator.maxTime;\r\n }\r\n}\r\n"],"names":["NodeTranslationTrack","AnimationTrack","_state","_interpolator","modeOrInterpolator","keyFramesOrEmbedded","embedded","Interpolator","target","Error","keyFrames","inputs","Float32Array","map","val","time","outputs","length","i","value","x","y","z","Vector3","calculateState","currentTime","interpolate","applyState","node","state","position","set","mixState","a","b","t","getBlendId","getDuration","maxTime"],"mappings":";;;AAKA;;;IAIO,MAAMA,oBAA6BC,SAAAA,cAAAA,CAAAA;IACvBC,MAAgB;IAChBC,aAA4B;AAc7C,IAAA,WAAA,CACEC,kBAAqD,EACrDC,mBAAkE,EAClEC,QAAkB,CAClB;AACA,QAAA,IAAIF,8BAA8BG,YAAc,EAAA;YAC9C,IAAIH,kBAAAA,CAAmBI,MAAM,KAAK,MAAQ,EAAA;AACxC,gBAAA,MAAM,IAAIC,KAAAA,CAAM,CAAC,sDAAsD,CAAC,CAAA;AAC1E;YACA,KAAK,CAAC,mBAAoC,IAAA,KAAA,CAAA;YAC1C,IAAI,CAACN,aAAa,GAAGC,kBAAAA;SAChB,MAAA;AACL,YAAA,MAAMM,SAAYL,GAAAA,mBAAAA;YAClB,MAAMM,MAAAA,GAAS,IAAIC,YAAaF,CAAAA,SAAAA,CAAUG,GAAG,CAAC,CAACC,GAAQA,GAAAA,GAAAA,CAAIC,IAAI,CAAA,CAAA;AAC/D,YAAA,MAAMC,OAAU,GAAA,IAAIJ,YAAaF,CAAAA,SAAAA,CAAUO,MAAM,GAAG,CAAA,CAAA;AACpD,YAAA,IAAK,IAAIC,CAAI,GAAA,CAAA,EAAGA,IAAIR,SAAUO,CAAAA,MAAM,EAAEC,CAAK,EAAA,CAAA;gBACzCF,OAAO,CAACE,CAAI,GAAA,CAAA,GAAI,CAAE,CAAA,GAAGR,SAAS,CAACQ,CAAE,CAAA,CAACC,KAAK,CAACC,CAAC;gBACzCJ,OAAO,CAACE,CAAI,GAAA,CAAA,GAAI,CAAE,CAAA,GAAGR,SAAS,CAACQ,CAAE,CAAA,CAACC,KAAK,CAACE,CAAC;gBACzCL,OAAO,CAACE,CAAI,GAAA,CAAA,GAAI,CAAE,CAAA,GAAGR,SAAS,CAACQ,CAAE,CAAA,CAACC,KAAK,CAACG,CAAC;AAC3C;AACA,YAAA,KAAK,CAAChB,QAAY,IAAA,KAAA,CAAA;AAClB,YAAA,IAAI,CAACH,aAAa,GAAG,IAAII,YAAaH,CAAAA,kBAAAA,EAAoB,QAAQO,MAAQK,EAAAA,OAAAA,CAAAA;AAC5E;QACA,IAAI,CAACd,MAAM,GAAG,IAAIqB,OAAAA,EAAAA;AACpB;IACAC,cAAehB,CAAAA,MAAc,EAAEiB,WAAmB,EAAW;QAC3D,IAAI,CAACtB,aAAa,CAACuB,WAAW,CAACD,WAAa,EAAA,IAAI,CAACvB,MAAM,CAAA;QACvD,OAAO,IAAI,CAACA,MAAM;AACpB;IACAyB,UAAWC,CAAAA,IAAe,EAAEC,KAAc,EAAE;QAC1CD,IAAKE,CAAAA,QAAQ,CAACC,GAAG,CAACF,KAAAA,CAAAA;AACpB;AACAG,IAAAA,QAAAA,CAASC,CAAU,EAAEC,CAAU,EAAEC,CAAS,EAAW;AACnD,QAAA,OAAO,IAAIZ,OAAQU,CAAAA,CAAAA,CAAEb,CAAC,GAAGe,KAAKD,CAAAA,CAAEd,CAAC,GAAGa,EAAEb,CAAAA,CAAIa,EAAAA,CAAAA,CAAEZ,CAAC,GAAGc,CAAAA,IAAKD,CAAAA,CAAEb,CAAC,GAAGY,CAAAA,CAAEZ,CAAAA,GAAIY,CAAEX,CAAAA,CAAC,GAAGa,CAAAA,IAAKD,CAAEZ,CAAAA,CAAC,GAAGW,CAAAA,CAAEX,CAAC,CAADA,CAAAA;AACtF;IACAc,UAAsB,GAAA;QACpB,OAAO,kBAAA;AACT;IACAC,WAAsB,GAAA;AACpB,QAAA,OAAO,IAAI,CAAClC,aAAa,CAACmC,OAAO;AACnC;AACF;;;;"}
@@ -1,129 +0,0 @@
1
- import { Observable, flushPendingDisposals } from '@zephyr3d/base';
2
- import { InputManager } from './inputmgr.js';
3
- import { RuntimeManager } from '../../node_modules/@zephyr3d/runtime/dist/runtime/runtimemgr.js';
4
-
5
- /**
6
- * Application class
7
- *
8
- * @remarks
9
- * This is the entry point of your application.
10
- * The Application is responsible for initializing the rendering device
11
- * and doing the rendering loop.
12
- * The Application can not be created more than once. You can get the
13
- * instance by calling the 'Application.instance' static method.
14
- *
15
- * @public
16
- */ class Application extends Observable {
17
- _options;
18
- _device;
19
- _inputManager;
20
- _runtimeManager;
21
- _ready;
22
- _logger;
23
- static _instance;
24
- /**
25
- * Creates an instance of Application
26
- * @param opt - The creation options
27
- */ constructor(opt){
28
- super();
29
- if (Application._instance) {
30
- throw new Error('It is not allowed to have multiple Application instances');
31
- }
32
- Application._instance = this;
33
- this._options = {
34
- backend: opt.backend,
35
- enableMSAA: opt.enableMSAA ?? false,
36
- pixelRatio: opt.pixelRatio ?? window.devicePixelRatio ?? 1,
37
- canvas: opt.canvas
38
- };
39
- this._inputManager = new InputManager(this);
40
- this._runtimeManager = new RuntimeManager(opt.runtimeOptions.VFS, opt.runtimeOptions.scriptsRoot, opt.runtimeOptions.editorMode, opt.runtimeOptions.enabled);
41
- this._ready = false;
42
- this._logger = {
43
- log (text, mode) {
44
- if (mode === 'warn') {
45
- console.warn(text);
46
- } else if (mode === 'error') {
47
- console.error(text);
48
- } else if (mode === 'debug') {
49
- console.debug(text);
50
- } else if (mode === 'info') {
51
- console.info(text);
52
- } else {
53
- console.log(text);
54
- }
55
- }
56
- };
57
- }
58
- /** The input manager instance */ get inputManager() {
59
- return this._inputManager;
60
- }
61
- /** The runtime manager instance */ get runtimeManager() {
62
- return this._runtimeManager;
63
- }
64
- /** The options that was used to create the application */ get options() {
65
- return this._options;
66
- }
67
- /** Gets the singleton instance of the application */ static get instance() {
68
- return this._instance;
69
- }
70
- /** The rendering device that was initialized by the application */ get device() {
71
- return this._device;
72
- }
73
- /** Gets the device type */ get deviceType() {
74
- return this._options.backend.typeName();
75
- }
76
- /** The logger object */ get logger() {
77
- return this._logger;
78
- }
79
- set logger(val) {
80
- this._logger = val;
81
- }
82
- /** Set focus */ focus() {
83
- this._device.canvas.focus();
84
- }
85
- /** Wait until the application is ready. */ async ready() {
86
- if (!this._ready) {
87
- this._device = await this._options.backend.createDevice(this._options.canvas, {
88
- dpr: this._options.pixelRatio,
89
- msaa: !!this._options.enableMSAA
90
- });
91
- if (!this._device) {
92
- throw new Error('App.init(): create device failed');
93
- }
94
- this._device.canvas.focus();
95
- this._inputManager.start();
96
- this._device.on('resize', (width, height)=>{
97
- this.dispatchEvent('resize', width, height);
98
- });
99
- this._ready = true;
100
- }
101
- }
102
- /** Render one frame */ frame() {
103
- // Processes all pending disposals from the previous frame.
104
- flushPendingDisposals();
105
- if (this._ready) {
106
- this.device.setFramebuffer(null);
107
- this.device.setViewport(null);
108
- this.device.setScissor(null);
109
- const dt = this.device.frameInfo.elapsedFrame;
110
- const elapsed = this.device.frameInfo.elapsedOverall;
111
- this._runtimeManager.update(dt, elapsed);
112
- this.dispatchEvent('tick', dt, elapsed);
113
- }
114
- }
115
- /** Start running the rendering loop */ run() {
116
- this.device.runLoop(()=>{
117
- this.frame();
118
- });
119
- }
120
- /** Stop running the rendering loop */ stop() {
121
- this.device.exitLoop();
122
- }
123
- /** Message log */ log(text, mode) {
124
- this._logger?.log(text, mode);
125
- }
126
- }
127
-
128
- export { Application };
129
- //# sourceMappingURL=app.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"app.js","sources":["../../../src/app/app.ts"],"sourcesContent":["import { Observable, VFS, flushPendingDisposals } from '@zephyr3d/base';\r\nimport type { AbstractDevice, DeviceBackend } from '@zephyr3d/device';\r\nimport { InputManager } from './inputmgr';\r\nimport { RuntimeManager } from '@zephyr3d/runtime';\r\n\r\ntype appEventMap = {\r\n resize: [width: number, height: number];\r\n tick: [deltaTimeMs: number, elapsedTimeMs: number];\r\n click: [evt: PointerEvent];\r\n dblclick: [evt: PointerEvent];\r\n pointerdown: [evt: PointerEvent];\r\n pointerup: [evt: PointerEvent];\r\n pointermove: [evt: PointerEvent];\r\n pointercancel: [evt: PointerEvent];\r\n pointerenter: [evt: PointerEvent];\r\n pointerleave: [evt: PointerEvent];\r\n pointerover: [evt: PointerEvent];\r\n pointerout: [evt: PointerEvent];\r\n wheel: [evt: WheelEvent];\r\n keydown: [evt: KeyboardEvent];\r\n keyup: [evt: KeyboardEvent];\r\n keypress: [evt: KeyboardEvent];\r\n drag: [evt: DragEvent];\r\n dragenter: [evt: DragEvent];\r\n dragleave: [evt: DragEvent];\r\n dragover: [evt: DragEvent];\r\n dragstart: [evt: DragEvent];\r\n dragend: [evt: DragEvent];\r\n drop: [evt: DragEvent];\r\n};\r\n\r\n/**\r\n * The creation options for Application\r\n * @public\r\n */\r\nexport type AppOptions = {\r\n /** The canvas element */\r\n canvas: HTMLCanvasElement;\r\n /** The backend that will be used to create the rendering device */\r\n backend: DeviceBackend;\r\n /** Whether to enable MSAA */\r\n enableMSAA?: boolean;\r\n /** The device pixel ratio */\r\n pixelRatio?: number;\r\n /** Options for runtime scripting system */\r\n runtimeOptions?: {\r\n /** VFS for reading script files, default is HttpFS at '.' */\r\n VFS?: VFS;\r\n /** Root directory for script files, default is '/' */\r\n scriptsRoot?: string;\r\n /** Whether application is running in editor mode, should always be true for user application */\r\n editorMode?: boolean;\r\n /** Wether enable runtime scripting system, should always be true for user application */\r\n enabled?: boolean;\r\n };\r\n};\r\n\r\n/**\r\n * Log mode\r\n * @public\r\n */\r\nexport type LogMode = 'info' | 'warn' | 'error' | 'debug';\r\n\r\n/**\r\n * Logger interface\r\n * @public\r\n */\r\nexport interface Logger {\r\n log(text: string, mode?: LogMode): void;\r\n}\r\n\r\n/**\r\n * Application class\r\n *\r\n * @remarks\r\n * This is the entry point of your application.\r\n * The Application is responsible for initializing the rendering device\r\n * and doing the rendering loop.\r\n * The Application can not be created more than once. You can get the\r\n * instance by calling the 'Application.instance' static method.\r\n *\r\n * @public\r\n */\r\nexport class Application extends Observable<appEventMap> {\r\n private readonly _options: AppOptions;\r\n private _device: AbstractDevice;\r\n private readonly _inputManager: InputManager;\r\n private readonly _runtimeManager: RuntimeManager;\r\n private _ready: boolean;\r\n private _logger: Logger;\r\n private static _instance: Application;\r\n /**\r\n * Creates an instance of Application\r\n * @param opt - The creation options\r\n */\r\n constructor(opt: Partial<AppOptions>) {\r\n super();\r\n if (Application._instance) {\r\n throw new Error('It is not allowed to have multiple Application instances');\r\n }\r\n Application._instance = this;\r\n this._options = {\r\n backend: opt.backend,\r\n enableMSAA: opt.enableMSAA ?? false,\r\n pixelRatio: opt.pixelRatio ?? window.devicePixelRatio ?? 1,\r\n canvas: opt.canvas\r\n };\r\n this._inputManager = new InputManager(this);\r\n this._runtimeManager = new RuntimeManager(\r\n opt.runtimeOptions.VFS,\r\n opt.runtimeOptions.scriptsRoot,\r\n opt.runtimeOptions.editorMode,\r\n opt.runtimeOptions.enabled\r\n );\r\n this._ready = false;\r\n this._logger = {\r\n log(text: string, mode?: LogMode) {\r\n if (mode === 'warn') {\r\n console.warn(text);\r\n } else if (mode === 'error') {\r\n console.error(text);\r\n } else if (mode === 'debug') {\r\n console.debug(text);\r\n } else if (mode === 'info') {\r\n console.info(text);\r\n } else {\r\n console.log(text);\r\n }\r\n }\r\n };\r\n }\r\n /** The input manager instance */\r\n get inputManager(): InputManager {\r\n return this._inputManager;\r\n }\r\n /** The runtime manager instance */\r\n get runtimeManager(): RuntimeManager {\r\n return this._runtimeManager;\r\n }\r\n /** The options that was used to create the application */\r\n get options(): AppOptions {\r\n return this._options;\r\n }\r\n /** Gets the singleton instance of the application */\r\n static get instance(): Application {\r\n return this._instance;\r\n }\r\n /** The rendering device that was initialized by the application */\r\n get device(): AbstractDevice {\r\n return this._device;\r\n }\r\n /** Gets the device type */\r\n get deviceType(): string {\r\n return this._options.backend.typeName();\r\n }\r\n /** The logger object */\r\n get logger(): Logger {\r\n return this._logger;\r\n }\r\n set logger(val: Logger) {\r\n this._logger = val;\r\n }\r\n /** Set focus */\r\n focus() {\r\n this._device.canvas.focus();\r\n }\r\n /** Wait until the application is ready. */\r\n async ready() {\r\n if (!this._ready) {\r\n this._device = await this._options.backend.createDevice(this._options.canvas, {\r\n dpr: this._options.pixelRatio,\r\n msaa: !!this._options.enableMSAA\r\n });\r\n if (!this._device) {\r\n throw new Error('App.init(): create device failed');\r\n }\r\n this._device.canvas.focus();\r\n this._inputManager.start();\r\n this._device.on('resize', (width, height) => {\r\n this.dispatchEvent('resize', width, height);\r\n });\r\n this._ready = true;\r\n }\r\n }\r\n /** Render one frame */\r\n frame() {\r\n // Processes all pending disposals from the previous frame.\r\n flushPendingDisposals();\r\n if (this._ready) {\r\n this.device.setFramebuffer(null);\r\n this.device.setViewport(null);\r\n this.device.setScissor(null);\r\n const dt = this.device.frameInfo.elapsedFrame;\r\n const elapsed = this.device.frameInfo.elapsedOverall;\r\n this._runtimeManager.update(dt, elapsed);\r\n this.dispatchEvent('tick', dt, elapsed);\r\n }\r\n }\r\n /** Start running the rendering loop */\r\n run() {\r\n this.device.runLoop(() => {\r\n this.frame();\r\n });\r\n }\r\n /** Stop running the rendering loop */\r\n stop() {\r\n this.device.exitLoop();\r\n }\r\n /** Message log */\r\n log(text: string, mode?: LogMode) {\r\n this._logger?.log(text, mode);\r\n }\r\n}\r\n"],"names":["Application","Observable","_options","_device","_inputManager","_runtimeManager","_ready","_logger","_instance","opt","Error","backend","enableMSAA","pixelRatio","window","devicePixelRatio","canvas","InputManager","RuntimeManager","runtimeOptions","VFS","scriptsRoot","editorMode","enabled","log","text","mode","console","warn","error","debug","info","inputManager","runtimeManager","options","instance","device","deviceType","typeName","logger","val","focus","ready","createDevice","dpr","msaa","start","on","width","height","dispatchEvent","frame","flushPendingDisposals","setFramebuffer","setViewport","setScissor","dt","frameInfo","elapsedFrame","elapsed","elapsedOverall","update","run","runLoop","stop","exitLoop"],"mappings":"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"}