@zephyr3d/scene 0.7.0 → 0.8.0

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 (368) hide show
  1. package/dist/animation/animation.js +4 -33
  2. package/dist/animation/animation.js.map +1 -1
  3. package/dist/animation/animationset.js +24 -11
  4. package/dist/animation/animationset.js.map +1 -1
  5. package/dist/animation/animationtrack.js +1 -0
  6. package/dist/animation/animationtrack.js.map +1 -1
  7. package/dist/animation/eulerrotationtrack.js +0 -1
  8. package/dist/animation/eulerrotationtrack.js.map +1 -1
  9. package/dist/animation/ik/ccd_solver.js +372 -0
  10. package/dist/animation/ik/ccd_solver.js.map +1 -0
  11. package/dist/animation/ik/fabrik_solver.js +399 -0
  12. package/dist/animation/ik/fabrik_solver.js.map +1 -0
  13. package/dist/animation/ik/ik_angle_constraint.js +181 -0
  14. package/dist/animation/ik/ik_angle_constraint.js.map +1 -0
  15. package/dist/animation/ik/ik_chain.js +163 -0
  16. package/dist/animation/ik/ik_chain.js.map +1 -0
  17. package/dist/animation/ik/ik_chain_builder.js +68 -0
  18. package/dist/animation/ik/ik_chain_builder.js.map +1 -0
  19. package/dist/animation/ik/ik_constraint.js +25 -0
  20. package/dist/animation/ik/ik_constraint.js.map +1 -0
  21. package/dist/animation/ik/ik_pole_constraint.js +123 -0
  22. package/dist/animation/ik/ik_pole_constraint.js.map +1 -0
  23. package/dist/animation/ik/ik_solver.js +48 -0
  24. package/dist/animation/ik/ik_solver.js.map +1 -0
  25. package/dist/animation/ik/ik_track.js +96 -0
  26. package/dist/animation/ik/ik_track.js.map +1 -0
  27. package/dist/animation/ik/ik_utils.js +270 -0
  28. package/dist/animation/ik/ik_utils.js.map +1 -0
  29. package/dist/animation/ik/two_bone_ik_solver.js +332 -0
  30. package/dist/animation/ik/two_bone_ik_solver.js.map +1 -0
  31. package/dist/animation/ik_modifier.js +61 -0
  32. package/dist/animation/ik_modifier.js.map +1 -0
  33. package/dist/animation/ik_postprocessor.js +71 -0
  34. package/dist/animation/ik_postprocessor.js.map +1 -0
  35. package/dist/animation/manual_transform_processor.js +156 -0
  36. package/dist/animation/manual_transform_processor.js.map +1 -0
  37. package/dist/animation/morphtarget.js +7 -1
  38. package/dist/animation/morphtarget.js.map +1 -1
  39. package/dist/animation/morphtrack.js +3 -3
  40. package/dist/animation/morphtrack.js.map +1 -1
  41. package/dist/animation/proptrack.js +37 -41
  42. package/dist/animation/proptrack.js.map +1 -1
  43. package/dist/animation/rotationtrack.js +0 -1
  44. package/dist/animation/rotationtrack.js.map +1 -1
  45. package/dist/animation/scaletrack.js +0 -1
  46. package/dist/animation/scaletrack.js.map +1 -1
  47. package/dist/animation/skeleton.js +57 -60
  48. package/dist/animation/skeleton.js.map +1 -1
  49. package/dist/animation/skeleton_modifier.js +38 -0
  50. package/dist/animation/skeleton_modifier.js.map +1 -0
  51. package/dist/animation/skeleton_postprocessor.js +50 -0
  52. package/dist/animation/skeleton_postprocessor.js.map +1 -0
  53. package/dist/animation/spring/multi_chain_spring_system.js +503 -0
  54. package/dist/animation/spring/multi_chain_spring_system.js.map +1 -0
  55. package/dist/animation/spring/spring_chain.js +103 -0
  56. package/dist/animation/spring/spring_chain.js.map +1 -0
  57. package/dist/animation/spring/spring_collider.js +247 -0
  58. package/dist/animation/spring/spring_collider.js.map +1 -0
  59. package/dist/animation/spring/spring_constraint.js +21 -0
  60. package/dist/animation/spring/spring_constraint.js.map +1 -0
  61. package/dist/animation/spring/spring_particle.js +20 -0
  62. package/dist/animation/spring/spring_particle.js.map +1 -0
  63. package/dist/animation/spring/spring_system.js +526 -0
  64. package/dist/animation/spring/spring_system.js.map +1 -0
  65. package/dist/animation/spring_modifier.js +45 -0
  66. package/dist/animation/spring_modifier.js.map +1 -0
  67. package/dist/animation/spring_postprocessor.js +54 -0
  68. package/dist/animation/spring_postprocessor.js.map +1 -0
  69. package/dist/animation/translationtrack.js +0 -1
  70. package/dist/animation/translationtrack.js.map +1 -1
  71. package/dist/app/api.js +13 -4
  72. package/dist/app/api.js.map +1 -1
  73. package/dist/app/app.js +13 -1
  74. package/dist/app/app.js.map +1 -1
  75. package/dist/app/engine.js +33 -45
  76. package/dist/app/engine.js.map +1 -1
  77. package/dist/app/inputmgr.js.map +1 -1
  78. package/dist/app/runtimescript.js.map +1 -1
  79. package/dist/app/screen.js +318 -0
  80. package/dist/app/screen.js.map +1 -0
  81. package/dist/app/scriptingsystem.js +10 -6
  82. package/dist/app/scriptingsystem.js.map +1 -1
  83. package/dist/app/scriptregistry.js +11 -22
  84. package/dist/app/scriptregistry.js.map +1 -1
  85. package/dist/asset/assetmanager.js +79 -58
  86. package/dist/asset/assetmanager.js.map +1 -1
  87. package/dist/asset/builtin.js +5 -5
  88. package/dist/asset/builtin.js.map +1 -1
  89. package/dist/asset/loaders/dds/dds.js +6 -2
  90. package/dist/asset/loaders/dds/dds.js.map +1 -1
  91. package/dist/asset/loaders/dds/dds_loader.js +1 -1
  92. package/dist/asset/loaders/dds/dds_loader.js.map +1 -1
  93. package/dist/asset/loaders/gltf/gltf_loader.js +14 -6
  94. package/dist/asset/loaders/gltf/gltf_loader.js.map +1 -1
  95. package/dist/asset/loaders/gltf/helpers.js +6 -2
  96. package/dist/asset/loaders/gltf/helpers.js.map +1 -1
  97. package/dist/asset/loaders/hdr/hdr.js +22 -15
  98. package/dist/asset/loaders/hdr/hdr.js.map +1 -1
  99. package/dist/asset/loaders/image/tga_Loader.js +2 -1
  100. package/dist/asset/loaders/image/tga_Loader.js.map +1 -1
  101. package/dist/asset/loaders/image/webimage_loader.js.map +1 -1
  102. package/dist/asset/loaders/loader.js +2 -2
  103. package/dist/asset/loaders/loader.js.map +1 -1
  104. package/dist/asset/model.js +9 -5
  105. package/dist/asset/model.js.map +1 -1
  106. package/dist/blitter/bilateralblur.js.map +1 -1
  107. package/dist/blitter/blitter.js +9 -11
  108. package/dist/blitter/blitter.js.map +1 -1
  109. package/dist/blitter/box.js +0 -1
  110. package/dist/blitter/box.js.map +1 -1
  111. package/dist/blitter/copy.js.map +1 -1
  112. package/dist/blitter/gaussianblur.js.map +1 -1
  113. package/dist/camera/base.js +1 -3
  114. package/dist/camera/base.js.map +1 -1
  115. package/dist/camera/camera.js +121 -37
  116. package/dist/camera/camera.js.map +1 -1
  117. package/dist/camera/fps.js +19 -17
  118. package/dist/camera/fps.js.map +1 -1
  119. package/dist/camera/orbit.js +45 -43
  120. package/dist/camera/orbit.js.map +1 -1
  121. package/dist/camera/orthocamera.js +27 -21
  122. package/dist/camera/orthocamera.js.map +1 -1
  123. package/dist/camera/perspectivecamera.js +28 -19
  124. package/dist/camera/perspectivecamera.js.map +1 -1
  125. package/dist/index.d.ts +15802 -15577
  126. package/dist/index.js +33 -11
  127. package/dist/index.js.map +1 -1
  128. package/dist/material/blinn.js.map +1 -1
  129. package/dist/material/grassmaterial.js.map +1 -1
  130. package/dist/material/lambert.js.map +1 -1
  131. package/dist/material/material.js +11 -5
  132. package/dist/material/material.js.map +1 -1
  133. package/dist/material/meshmaterial.js +10 -9
  134. package/dist/material/meshmaterial.js.map +1 -1
  135. package/dist/material/mixins/albedocolor.js.map +1 -1
  136. package/dist/material/mixins/foliage.js.map +1 -1
  137. package/dist/material/mixins/lightmodel/blinnphong.js +66 -4
  138. package/dist/material/mixins/lightmodel/blinnphong.js.map +1 -1
  139. package/dist/material/mixins/lightmodel/lambert.js.map +1 -1
  140. package/dist/material/mixins/lightmodel/pbrblueprintmixin.js +7 -0
  141. package/dist/material/mixins/lightmodel/pbrblueprintmixin.js.map +1 -1
  142. package/dist/material/mixins/lightmodel/pbrmetallicroughness.js.map +1 -1
  143. package/dist/material/mixins/lightmodel/pbrspecularglossness.js.map +1 -1
  144. package/dist/material/mixins/lit.js +3 -3
  145. package/dist/material/mixins/lit.js.map +1 -1
  146. package/dist/material/mixins/pbr/brdf.js.map +1 -1
  147. package/dist/material/mixins/pbr/common.js.map +1 -1
  148. package/dist/material/mixins/texture.js +3 -0
  149. package/dist/material/mixins/texture.js.map +1 -1
  150. package/dist/material/mixins/vertexcolor.js.map +1 -1
  151. package/dist/material/particle.js.map +1 -1
  152. package/dist/material/pbrblueprint.js +180 -22
  153. package/dist/material/pbrblueprint.js.map +1 -1
  154. package/dist/material/pbrmr.js.map +1 -1
  155. package/dist/material/pbrsg.js.map +1 -1
  156. package/dist/material/shader/helper.js +41 -56
  157. package/dist/material/shader/helper.js.map +1 -1
  158. package/dist/material/sprite.js +301 -0
  159. package/dist/material/sprite.js.map +1 -0
  160. package/dist/material/sprite3d.js +301 -0
  161. package/dist/material/sprite3d.js.map +1 -0
  162. package/dist/material/sprite3d_std.js +116 -0
  163. package/dist/material/sprite3d_std.js.map +1 -0
  164. package/dist/material/sprite3dblueprint.js +235 -0
  165. package/dist/material/sprite3dblueprint.js.map +1 -0
  166. package/dist/material/sprite_std.js +116 -0
  167. package/dist/material/sprite_std.js.map +1 -0
  168. package/dist/material/spriteblueprint.js +235 -0
  169. package/dist/material/spriteblueprint.js.map +1 -0
  170. package/dist/material/terrain-cm.js +0 -1
  171. package/dist/material/terrain-cm.js.map +1 -1
  172. package/dist/material/unlit.js.map +1 -1
  173. package/dist/material/water.js.map +1 -1
  174. package/dist/posteffect/bloom.js.map +1 -1
  175. package/dist/posteffect/compositor.js.map +1 -1
  176. package/dist/posteffect/fxaa.js.map +1 -1
  177. package/dist/posteffect/grayscale.js.map +1 -1
  178. package/dist/posteffect/motionblur.js.map +1 -1
  179. package/dist/posteffect/posteffect.js.map +1 -1
  180. package/dist/posteffect/sao.js.map +1 -1
  181. package/dist/posteffect/ssr.js +7 -5
  182. package/dist/posteffect/ssr.js.map +1 -1
  183. package/dist/posteffect/taa.js.map +1 -1
  184. package/dist/posteffect/tonemap.js.map +1 -1
  185. package/dist/render/abuffer_oit.js +8 -6
  186. package/dist/render/abuffer_oit.js.map +1 -1
  187. package/dist/render/clipmap.js +0 -10
  188. package/dist/render/clipmap.js.map +1 -1
  189. package/dist/render/cluster_light.js +4 -4
  190. package/dist/render/cluster_light.js.map +1 -1
  191. package/dist/render/cull_visitor.js +15 -17
  192. package/dist/render/cull_visitor.js.map +1 -1
  193. package/dist/render/depthpass.js +3 -4
  194. package/dist/render/depthpass.js.map +1 -1
  195. package/dist/render/drawable.js +15 -0
  196. package/dist/render/drawable.js.map +1 -0
  197. package/dist/render/drawable_mixin.js +8 -4
  198. package/dist/render/drawable_mixin.js.map +1 -1
  199. package/dist/render/envlight.js.map +1 -1
  200. package/dist/render/fbm_wavegenerator.js +3 -1
  201. package/dist/render/fbm_wavegenerator.js.map +1 -1
  202. package/dist/render/fft_wavegenerator.js +67 -64
  203. package/dist/render/fft_wavegenerator.js.map +1 -1
  204. package/dist/render/fullscreenquad.js.map +1 -1
  205. package/dist/render/gerstner_wavegenerator.js +3 -1
  206. package/dist/render/gerstner_wavegenerator.js.map +1 -1
  207. package/dist/render/globalbindgroup_allocator.js +3 -1
  208. package/dist/render/globalbindgroup_allocator.js.map +1 -1
  209. package/dist/render/hzb.js +1 -2
  210. package/dist/render/hzb.js.map +1 -1
  211. package/dist/render/lightpass.js +13 -13
  212. package/dist/render/lightpass.js.map +1 -1
  213. package/dist/render/objectcolorpass.js +4 -7
  214. package/dist/render/objectcolorpass.js.map +1 -1
  215. package/dist/render/primitive.js +4 -5
  216. package/dist/render/primitive.js.map +1 -1
  217. package/dist/render/render_queue.js +10 -5
  218. package/dist/render/render_queue.js.map +1 -1
  219. package/dist/render/renderer.js +16 -22
  220. package/dist/render/renderer.js.map +1 -1
  221. package/dist/render/renderpass.js +27 -52
  222. package/dist/render/renderpass.js.map +1 -1
  223. package/dist/render/rendertarget.js +5 -0
  224. package/dist/render/rendertarget.js.map +1 -0
  225. package/dist/render/screenrendertarget.js +56 -0
  226. package/dist/render/screenrendertarget.js.map +1 -0
  227. package/dist/render/shadowmap_pass.js +4 -5
  228. package/dist/render/shadowmap_pass.js.map +1 -1
  229. package/dist/render/sky.js +16 -14
  230. package/dist/render/sky.js.map +1 -1
  231. package/dist/render/weightedblended_oit.js.map +1 -1
  232. package/dist/scene/basesprite.js +296 -0
  233. package/dist/scene/basesprite.js.map +1 -0
  234. package/dist/scene/batchgroup.js +4 -2
  235. package/dist/scene/batchgroup.js.map +1 -1
  236. package/dist/scene/environment.js +9 -10
  237. package/dist/scene/environment.js.map +1 -1
  238. package/dist/scene/graph_node.js.map +1 -1
  239. package/dist/scene/light.js +22 -4
  240. package/dist/scene/light.js.map +1 -1
  241. package/dist/scene/mesh.js +96 -26
  242. package/dist/scene/mesh.js.map +1 -1
  243. package/dist/scene/octree.js.map +1 -1
  244. package/dist/scene/particlesys.js +25 -22
  245. package/dist/scene/particlesys.js.map +1 -1
  246. package/dist/scene/raycast_visitor.js +0 -16
  247. package/dist/scene/raycast_visitor.js.map +1 -1
  248. package/dist/scene/scene.js +7 -4
  249. package/dist/scene/scene.js.map +1 -1
  250. package/dist/scene/scene_node.js +20 -35
  251. package/dist/scene/scene_node.js.map +1 -1
  252. package/dist/scene/sprite.js +18 -0
  253. package/dist/scene/sprite.js.map +1 -0
  254. package/dist/scene/sprite3d.js +18 -0
  255. package/dist/scene/sprite3d.js.map +1 -0
  256. package/dist/scene/terrain-cm/grass.js +5 -4
  257. package/dist/scene/terrain-cm/grass.js.map +1 -1
  258. package/dist/scene/terrain-cm/grassmaterial.js +3 -1
  259. package/dist/scene/terrain-cm/grassmaterial.js.map +1 -1
  260. package/dist/scene/terrain-cm/terrain-cm.js +65 -48
  261. package/dist/scene/terrain-cm/terrain-cm.js.map +1 -1
  262. package/dist/scene/water.js +35 -30
  263. package/dist/scene/water.js.map +1 -1
  264. package/dist/shaders/atmosphere.js +17 -29
  265. package/dist/shaders/atmosphere.js.map +1 -1
  266. package/dist/shaders/fog.js.map +1 -1
  267. package/dist/shaders/misc.js.map +1 -1
  268. package/dist/shaders/noise.js.map +1 -1
  269. package/dist/shaders/pbr.js.map +1 -1
  270. package/dist/shaders/shadow.js.map +1 -1
  271. package/dist/shaders/ssr.js.map +1 -1
  272. package/dist/shaders/temporal.js.map +1 -1
  273. package/dist/shaders/water.js.map +1 -1
  274. package/dist/shadow/esm.js +1 -1
  275. package/dist/shadow/esm.js.map +1 -1
  276. package/dist/shadow/pcf_opt.js.map +1 -1
  277. package/dist/shadow/pcf_pd.js.map +1 -1
  278. package/dist/shadow/shader.js +3 -1
  279. package/dist/shadow/shader.js.map +1 -1
  280. package/dist/shadow/shadow_impl.js.map +1 -1
  281. package/dist/shadow/shadowmapper.js +6 -18
  282. package/dist/shadow/shadowmapper.js.map +1 -1
  283. package/dist/shadow/ssm.js.map +1 -1
  284. package/dist/shadow/vsm.js.map +1 -1
  285. package/dist/shapes/box.js +9 -3
  286. package/dist/shapes/box.js.map +1 -1
  287. package/dist/shapes/cylinder.js +2 -2
  288. package/dist/shapes/cylinder.js.map +1 -1
  289. package/dist/shapes/plane.js +2 -2
  290. package/dist/shapes/plane.js.map +1 -1
  291. package/dist/shapes/shape.js +2 -1
  292. package/dist/shapes/shape.js.map +1 -1
  293. package/dist/shapes/sphere.js +2 -2
  294. package/dist/shapes/sphere.js.map +1 -1
  295. package/dist/shapes/tetrahedron.js +5 -6
  296. package/dist/shapes/tetrahedron.js.map +1 -1
  297. package/dist/shapes/torus.js +2 -2
  298. package/dist/shapes/torus.js.map +1 -1
  299. package/dist/utility/aabbtree.js +1 -1
  300. package/dist/utility/aabbtree.js.map +1 -1
  301. package/dist/utility/blueprint/common/constants.js +578 -104
  302. package/dist/utility/blueprint/common/constants.js.map +1 -1
  303. package/dist/utility/blueprint/common/math.js +471 -9
  304. package/dist/utility/blueprint/common/math.js.map +1 -1
  305. package/dist/utility/blueprint/common.js +1 -1
  306. package/dist/utility/blueprint/common.js.map +1 -1
  307. package/dist/utility/blueprint/material/func.js +9 -5
  308. package/dist/utility/blueprint/material/func.js.map +1 -1
  309. package/dist/utility/blueprint/material/inputs.js.map +1 -1
  310. package/dist/utility/blueprint/material/ir.js +288 -80
  311. package/dist/utility/blueprint/material/ir.js.map +1 -1
  312. package/dist/utility/blueprint/material/pbr.js +92 -4
  313. package/dist/utility/blueprint/material/pbr.js.map +1 -1
  314. package/dist/utility/blueprint/material/texture.js +62 -45
  315. package/dist/utility/blueprint/material/texture.js.map +1 -1
  316. package/dist/utility/blueprint/node.js +28 -1
  317. package/dist/utility/blueprint/node.js.map +1 -1
  318. package/dist/utility/bounding_volume.js.map +1 -1
  319. package/dist/utility/debug.js.map +1 -1
  320. package/dist/utility/draco/decoder.js.map +1 -1
  321. package/dist/utility/misc.js +1 -1
  322. package/dist/utility/misc.js.map +1 -1
  323. package/dist/utility/panorama.js.map +1 -1
  324. package/dist/utility/pmrem.js.map +1 -1
  325. package/dist/utility/rendermipmap.js.map +1 -1
  326. package/dist/utility/serialization/json.js +19 -15
  327. package/dist/utility/serialization/json.js.map +1 -1
  328. package/dist/utility/serialization/manager.js +89 -22
  329. package/dist/utility/serialization/manager.js.map +1 -1
  330. package/dist/utility/serialization/scene/animation.js +44 -41
  331. package/dist/utility/serialization/scene/animation.js.map +1 -1
  332. package/dist/utility/serialization/scene/batch.js +4 -3
  333. package/dist/utility/serialization/scene/batch.js.map +1 -1
  334. package/dist/utility/serialization/scene/camera.js +97 -9
  335. package/dist/utility/serialization/scene/camera.js.map +1 -1
  336. package/dist/utility/serialization/scene/common.js +102 -28
  337. package/dist/utility/serialization/scene/common.js.map +1 -1
  338. package/dist/utility/serialization/scene/light.js +14 -12
  339. package/dist/utility/serialization/scene/light.js.map +1 -1
  340. package/dist/utility/serialization/scene/material.js +216 -26
  341. package/dist/utility/serialization/scene/material.js.map +1 -1
  342. package/dist/utility/serialization/scene/mesh.js +71 -100
  343. package/dist/utility/serialization/scene/mesh.js.map +1 -1
  344. package/dist/utility/serialization/scene/misc.js +3 -2
  345. package/dist/utility/serialization/scene/misc.js.map +1 -1
  346. package/dist/utility/serialization/scene/node.js +42 -9
  347. package/dist/utility/serialization/scene/node.js.map +1 -1
  348. package/dist/utility/serialization/scene/particle.js +7 -5
  349. package/dist/utility/serialization/scene/particle.js.map +1 -1
  350. package/dist/utility/serialization/scene/primitive.js +18 -15
  351. package/dist/utility/serialization/scene/primitive.js.map +1 -1
  352. package/dist/utility/serialization/scene/scene.js +3 -2
  353. package/dist/utility/serialization/scene/scene.js.map +1 -1
  354. package/dist/utility/serialization/scene/sprite.js +164 -0
  355. package/dist/utility/serialization/scene/sprite.js.map +1 -0
  356. package/dist/utility/serialization/scene/terrain.js +8 -6
  357. package/dist/utility/serialization/scene/terrain.js.map +1 -1
  358. package/dist/utility/serialization/scene/water.js +11 -9
  359. package/dist/utility/serialization/scene/water.js.map +1 -1
  360. package/dist/utility/serialization/types.js +6 -0
  361. package/dist/utility/serialization/types.js.map +1 -0
  362. package/dist/utility/shprojector.js.map +1 -1
  363. package/dist/utility/textures/ggxlut.js.map +1 -1
  364. package/dist/utility/textures/gradientnoise.js.map +1 -1
  365. package/dist/utility/textures/randomnoise.js.map +1 -1
  366. package/dist/values.js +14 -14
  367. package/dist/values.js.map +1 -1
  368. package/package.json +80 -80
@@ -8,16 +8,18 @@ import '../../../values.js';
8
8
  import { Vector4, Vector3 } from '@zephyr3d/base';
9
9
  import { MeshMaterial } from '../../../material/meshmaterial.js';
10
10
  import '../../../material/grassmaterial.js';
11
- import '../../../material/terrainmaterial.js';
12
11
  import '../../../material/terrain-cm.js';
13
12
  import { PBRMetallicRoughnessMaterial } from '../../../material/pbrmr.js';
14
13
  import { PBRSpecularGlossinessMaterial } from '../../../material/pbrsg.js';
15
14
  import { PBRBluePrintMaterial } from '../../../material/pbrblueprint.js';
16
- import { getTextureProps } from './common.js';
17
- import { getMeshMaterialInstanceUniformsClass } from './mesh.js';
15
+ import { SpriteMaterial } from '../../../material/sprite.js';
16
+ import { StandardSpriteMaterial } from '../../../material/sprite_std.js';
17
+ import { SpriteBlueprintMaterial } from '../../../material/spriteblueprint.js';
18
+ import { defineProps } from '../types.js';
19
+ import { getMeshMaterialInstanceUniformsClass, getTextureProps } from './common.js';
18
20
 
19
21
  function getPBRCommonProps(manager) {
20
- return [
22
+ return defineProps([
21
23
  {
22
24
  name: 'IOR',
23
25
  type: 'float',
@@ -432,11 +434,25 @@ function getPBRCommonProps(manager) {
432
434
  return this.sheen;
433
435
  }),
434
436
  ...getLitMaterialProps(manager)
435
- ];
437
+ ]);
436
438
  }
437
439
  function getLitMaterialProps(manager) {
438
- return [
440
+ return defineProps([
439
441
  ...getUnlitMaterialProps(manager),
442
+ {
443
+ name: 'doubleSidedLighting',
444
+ type: 'bool',
445
+ default: false,
446
+ isValid () {
447
+ return !this.$isInstance && this.cullMode !== 'back';
448
+ },
449
+ get (value) {
450
+ value.bool[0] = this.doubleSidedLighting;
451
+ },
452
+ set (value) {
453
+ this.doubleSidedLighting = value.bool[0];
454
+ }
455
+ },
440
456
  {
441
457
  name: 'vertexNormal',
442
458
  type: 'bool',
@@ -466,10 +482,10 @@ function getLitMaterialProps(manager) {
466
482
  }
467
483
  },
468
484
  ...getTextureProps(manager, 'normalTexture', '2D', false, 0)
469
- ];
485
+ ]);
470
486
  }
471
487
  function getUnlitMaterialProps(manager) {
472
- return [
488
+ return defineProps([
473
489
  {
474
490
  name: 'vertexColor',
475
491
  type: 'bool',
@@ -510,7 +526,7 @@ function getUnlitMaterialProps(manager) {
510
526
  }
511
527
  },
512
528
  ...getTextureProps(manager, 'albedoTexture', '2D', true, 0)
513
- ];
529
+ ]);
514
530
  }
515
531
  /** @internal */ function getMeshMaterialClass() {
516
532
  return [
@@ -518,7 +534,7 @@ function getUnlitMaterialProps(manager) {
518
534
  ctor: MeshMaterial,
519
535
  name: 'MeshMaterial',
520
536
  getProps () {
521
- return [
537
+ return defineProps([
522
538
  {
523
539
  name: 'AlphaCutoff',
524
540
  type: 'float',
@@ -645,12 +661,84 @@ function getUnlitMaterialProps(manager) {
645
661
  return !this.$isInstance;
646
662
  }
647
663
  }
648
- ];
664
+ ]);
649
665
  }
650
666
  },
651
667
  getMeshMaterialInstanceUniformsClass(MeshMaterial)
652
668
  ];
653
669
  }
670
+ /** @internal */ function getSpriteMaterialClass(_manager) {
671
+ return [
672
+ {
673
+ ctor: SpriteMaterial,
674
+ name: 'SpriteMaterial',
675
+ parent: MeshMaterial,
676
+ getProps () {
677
+ return [];
678
+ }
679
+ },
680
+ getMeshMaterialInstanceUniformsClass(SpriteMaterial)
681
+ ];
682
+ }
683
+ /** @internal */ function getStandardSpriteMaterialClass(manager) {
684
+ return [
685
+ {
686
+ ctor: StandardSpriteMaterial,
687
+ name: 'StandardSpriteMaterial',
688
+ parent: SpriteMaterial,
689
+ getProps () {
690
+ return defineProps([
691
+ {
692
+ name: 'SpriteTexture',
693
+ type: 'object',
694
+ default: '',
695
+ options: {
696
+ mimeTypes: [
697
+ 'image/jpeg',
698
+ 'image/png',
699
+ 'image/tga',
700
+ 'image/vnd.radiance',
701
+ 'image/x-dds',
702
+ 'image/webp'
703
+ ]
704
+ },
705
+ isNullable () {
706
+ return true;
707
+ },
708
+ get (value) {
709
+ value.str[0] = manager.getAssetId(this.spriteTexture) ?? '';
710
+ },
711
+ async set (value) {
712
+ if (!value || !value.str[0]) {
713
+ this.spriteTexture = null;
714
+ } else {
715
+ const assetId = value.str[0];
716
+ let tex;
717
+ try {
718
+ tex = await manager.fetchTexture(assetId, {
719
+ linearColorSpace: false
720
+ });
721
+ } catch (err) {
722
+ console.error(`Load asset failed: ${value.str[0]}: ${err}`);
723
+ tex = null;
724
+ }
725
+ if (tex?.isTexture2D()) {
726
+ this.spriteTexture = tex;
727
+ } else {
728
+ console.error('Invalid texture type');
729
+ }
730
+ }
731
+ },
732
+ isValid () {
733
+ return !this.$isInstance;
734
+ }
735
+ }
736
+ ]);
737
+ }
738
+ },
739
+ getMeshMaterialInstanceUniformsClass(StandardSpriteMaterial)
740
+ ];
741
+ }
654
742
  /** @internal */ function getParticleMaterialClass(manager) {
655
743
  return [
656
744
  {
@@ -658,11 +746,11 @@ function getUnlitMaterialProps(manager) {
658
746
  name: 'ParticleMaterial',
659
747
  parent: MeshMaterial,
660
748
  getProps () {
661
- return [
749
+ return defineProps([
662
750
  {
663
751
  name: 'AlphaMap',
664
752
  type: 'object',
665
- default: null,
753
+ default: '',
666
754
  options: {
667
755
  mimeTypes: [
668
756
  'image/jpeg',
@@ -680,9 +768,11 @@ function getUnlitMaterialProps(manager) {
680
768
  value.str[0] = manager.getAssetId(this.alphaMap) ?? '';
681
769
  },
682
770
  async set (value) {
683
- if (value.str[0]) {
771
+ if (!value || !value.str[0]) {
772
+ this.alphaMap = null;
773
+ } else {
684
774
  const assetId = value.str[0];
685
- let tex;
775
+ let tex = null;
686
776
  try {
687
777
  tex = await manager.fetchTexture(assetId, {
688
778
  linearColorSpace: true
@@ -701,7 +791,7 @@ function getUnlitMaterialProps(manager) {
701
791
  {
702
792
  name: 'RampMap',
703
793
  type: 'object',
704
- default: null,
794
+ default: '',
705
795
  options: {
706
796
  mimeTypes: [
707
797
  'image/jpeg',
@@ -719,9 +809,11 @@ function getUnlitMaterialProps(manager) {
719
809
  value.str[0] = manager.getAssetId(this.rampMap) ?? '';
720
810
  },
721
811
  async set (value) {
722
- if (value.str[0]) {
812
+ if (!value || !value.str[0]) {
813
+ this.rampMap = null;
814
+ } else {
723
815
  const assetId = value.str[0];
724
- let tex;
816
+ let tex = null;
725
817
  try {
726
818
  tex = await manager.fetchTexture(assetId);
727
819
  } catch (err) {
@@ -735,7 +827,7 @@ function getUnlitMaterialProps(manager) {
735
827
  }
736
828
  }
737
829
  }
738
- ];
830
+ ]);
739
831
  }
740
832
  },
741
833
  getMeshMaterialInstanceUniformsClass(ParticleMaterial)
@@ -743,9 +835,45 @@ function getUnlitMaterialProps(manager) {
743
835
  }
744
836
  /** @internal */ function getPBRBluePrintMaterialClass() {
745
837
  return [
838
+ {
839
+ ctor: PBRBluePrintMaterial,
840
+ parent: MeshMaterial,
841
+ name: 'PBRBluePrintMaterial',
842
+ getProps () {
843
+ return defineProps([
844
+ {
845
+ name: 'doubleSidedLighting',
846
+ type: 'bool',
847
+ default: false,
848
+ isValid () {
849
+ return !this.$isInstance && this.cullMode !== 'back';
850
+ },
851
+ get (value) {
852
+ value.bool[0] = this.doubleSidedLighting;
853
+ },
854
+ set (value) {
855
+ this.doubleSidedLighting = value.bool[0];
856
+ }
857
+ }
858
+ ]);
859
+ }
860
+ },
746
861
  getMeshMaterialInstanceUniformsClass(PBRBluePrintMaterial)
747
862
  ];
748
863
  }
864
+ /** @internal */ function getSpriteBlueprintMaterialClass() {
865
+ return [
866
+ {
867
+ ctor: SpriteBlueprintMaterial,
868
+ parent: MeshMaterial,
869
+ name: 'SpriteBlueprintMaterial',
870
+ getProps () {
871
+ return [];
872
+ }
873
+ },
874
+ getMeshMaterialInstanceUniformsClass(SpriteBlueprintMaterial)
875
+ ];
876
+ }
749
877
  /** @internal */ function getUnlitMaterialClass(manager) {
750
878
  return [
751
879
  {
@@ -779,7 +907,7 @@ function getUnlitMaterialProps(manager) {
779
907
  parent: MeshMaterial,
780
908
  name: 'BlinnMaterial',
781
909
  getProps () {
782
- return [
910
+ return defineProps([
783
911
  {
784
912
  name: 'Shininess',
785
913
  type: 'float',
@@ -798,8 +926,70 @@ function getUnlitMaterialProps(manager) {
798
926
  return this.$isInstance ? this.coreMaterial.shininess : 32;
799
927
  }
800
928
  },
929
+ {
930
+ name: 'ScatterWrap',
931
+ type: 'float',
932
+ options: {
933
+ animatable: true,
934
+ minValue: 0,
935
+ maxValue: 1
936
+ },
937
+ get (value) {
938
+ value.num[0] = this.scatterWrap;
939
+ },
940
+ set (value) {
941
+ this.scatterWrap = value.num[0];
942
+ },
943
+ getDefaultValue () {
944
+ return this.$isInstance ? this.coreMaterial.scatterWrap : 0;
945
+ }
946
+ },
947
+ {
948
+ name: 'ScatterWidth',
949
+ type: 'float',
950
+ options: {
951
+ animatable: true,
952
+ minValue: 0,
953
+ maxValue: 1
954
+ },
955
+ get (value) {
956
+ value.num[0] = this.scatterWidth;
957
+ },
958
+ set (value) {
959
+ this.scatterWidth = value.num[0];
960
+ },
961
+ getDefaultValue () {
962
+ return this.$isInstance ? this.coreMaterial.scatterWidth : 0;
963
+ }
964
+ },
965
+ {
966
+ name: 'ScatterColor',
967
+ type: 'rgb',
968
+ options: {
969
+ animatable: true
970
+ },
971
+ get (value) {
972
+ value.num[0] = this.scatterColor.x;
973
+ value.num[1] = this.scatterColor.y;
974
+ value.num[2] = this.scatterColor.z;
975
+ },
976
+ set (value) {
977
+ this.scatterColor = new Vector4(value.num[0], value.num[1], value.num[2], 1);
978
+ },
979
+ getDefaultValue () {
980
+ return this.$isInstance ? [
981
+ this.coreMaterial.scatterColor.x,
982
+ this.coreMaterial.scatterColor.y,
983
+ this.coreMaterial.scatterColor.z
984
+ ] : [
985
+ 0,
986
+ 0,
987
+ 0
988
+ ];
989
+ }
990
+ },
801
991
  ...getLitMaterialProps(manager)
802
- ];
992
+ ]);
803
993
  }
804
994
  },
805
995
  getMeshMaterialInstanceUniformsClass(BlinnMaterial)
@@ -812,7 +1002,7 @@ function getUnlitMaterialProps(manager) {
812
1002
  parent: MeshMaterial,
813
1003
  name: 'PBRMetallicRoughnessMaterial',
814
1004
  getProps () {
815
- return [
1005
+ return defineProps([
816
1006
  {
817
1007
  name: 'Metallic',
818
1008
  type: 'float',
@@ -876,7 +1066,7 @@ function getUnlitMaterialProps(manager) {
876
1066
  ...getTextureProps(manager, 'metallicRoughnessTexture', '2D', false, 0),
877
1067
  ...getTextureProps(manager, 'specularColorTexture', '2D', true, 0),
878
1068
  ...getPBRCommonProps(manager)
879
- ];
1069
+ ]);
880
1070
  }
881
1071
  },
882
1072
  getMeshMaterialInstanceUniformsClass(PBRMetallicRoughnessMaterial)
@@ -889,7 +1079,7 @@ function getUnlitMaterialProps(manager) {
889
1079
  name: 'PBRSpecularGlossinessMaterial',
890
1080
  parent: MeshMaterial,
891
1081
  getProps () {
892
- return [
1082
+ return defineProps([
893
1083
  {
894
1084
  name: 'SpecularFactor',
895
1085
  type: 'rgb',
@@ -931,12 +1121,12 @@ function getUnlitMaterialProps(manager) {
931
1121
  }
932
1122
  },
933
1123
  ...getPBRCommonProps(manager)
934
- ];
1124
+ ]);
935
1125
  }
936
1126
  },
937
1127
  getMeshMaterialInstanceUniformsClass(PBRSpecularGlossinessMaterial)
938
1128
  ];
939
1129
  }
940
1130
 
941
- export { getBlinnMaterialClass, getLambertMaterialClass, getMeshMaterialClass, getPBRBluePrintMaterialClass, getPBRMetallicRoughnessMaterialClass, getPBRSpecularGlossinessMaterialClass, getParticleMaterialClass, getUnlitMaterialClass };
1131
+ export { getBlinnMaterialClass, getLambertMaterialClass, getMeshMaterialClass, getPBRBluePrintMaterialClass, getPBRMetallicRoughnessMaterialClass, getPBRSpecularGlossinessMaterialClass, getParticleMaterialClass, getSpriteBlueprintMaterialClass, getSpriteMaterialClass, getStandardSpriteMaterialClass, getUnlitMaterialClass };
942
1132
  //# sourceMappingURL=material.js.map