@babylonjs/viewer 7.40.4 → 7.41.0-alpha
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.
- package/assets/photoStudio.env +0 -0
- package/dist/babylon-viewer.esm.js +2 -0
- package/dist/babylon-viewer.esm.js.map +1 -0
- package/dist/babylon-viewer.esm.min.js +2 -0
- package/dist/babylon-viewer.esm.min.js.map +1 -0
- package/dist/chunks/EXT_lights_ies-CFzvmxxg.esm.min.js +2 -0
- package/dist/chunks/EXT_lights_ies-CFzvmxxg.esm.min.js.map +1 -0
- package/dist/chunks/EXT_lights_ies-cyFdY7yl.esm.js +84 -0
- package/dist/chunks/EXT_lights_ies-cyFdY7yl.esm.js.map +1 -0
- package/dist/chunks/EXT_lights_image_based-BNmSqx40.esm.min.js +2 -0
- package/dist/chunks/EXT_lights_image_based-BNmSqx40.esm.min.js.map +1 -0
- package/dist/chunks/EXT_lights_image_based-CC48JVU0.esm.js +171 -0
- package/dist/chunks/EXT_lights_image_based-CC48JVU0.esm.js.map +1 -0
- package/dist/chunks/EXT_mesh_gpu_instancing-B2qj3kQu.esm.js +86 -0
- package/dist/chunks/EXT_mesh_gpu_instancing-B2qj3kQu.esm.js.map +1 -0
- package/dist/chunks/EXT_mesh_gpu_instancing-lanrAAoi.esm.min.js +2 -0
- package/dist/chunks/EXT_mesh_gpu_instancing-lanrAAoi.esm.min.js.map +1 -0
- package/dist/chunks/EXT_meshopt_compression-DjvHx7gJ.esm.js +134 -0
- package/dist/chunks/EXT_meshopt_compression-DjvHx7gJ.esm.js.map +1 -0
- package/dist/chunks/EXT_meshopt_compression-oH6HzGir.esm.min.js +2 -0
- package/dist/chunks/EXT_meshopt_compression-oH6HzGir.esm.min.js.map +1 -0
- package/dist/chunks/EXT_texture_avif-BYWETW7-.esm.min.js +2 -0
- package/dist/chunks/EXT_texture_avif-BYWETW7-.esm.min.js.map +1 -0
- package/dist/chunks/EXT_texture_avif-CKXEq29h.esm.js +44 -0
- package/dist/chunks/EXT_texture_avif-CKXEq29h.esm.js.map +1 -0
- package/dist/chunks/EXT_texture_webp-Dl4GPoEU.esm.min.js +2 -0
- package/dist/chunks/EXT_texture_webp-Dl4GPoEU.esm.min.js.map +1 -0
- package/dist/chunks/EXT_texture_webp-fAiSgaNl.esm.js +43 -0
- package/dist/chunks/EXT_texture_webp-fAiSgaNl.esm.js.map +1 -0
- package/dist/chunks/ExtrasAsMetadata-BUQ3X3M6.esm.js +64 -0
- package/dist/chunks/ExtrasAsMetadata-BUQ3X3M6.esm.js.map +1 -0
- package/dist/chunks/ExtrasAsMetadata-C_M9nxb4.esm.min.js +2 -0
- package/dist/chunks/ExtrasAsMetadata-C_M9nxb4.esm.min.js.map +1 -0
- package/dist/chunks/KHR_animation_pointer-BdFZyLUq.esm.js +352 -0
- package/dist/chunks/KHR_animation_pointer-BdFZyLUq.esm.js.map +1 -0
- package/dist/chunks/KHR_animation_pointer-CBqZcURZ.esm.min.js +2 -0
- package/dist/chunks/KHR_animation_pointer-CBqZcURZ.esm.min.js.map +1 -0
- package/dist/chunks/KHR_draco_mesh_compression-DU2Rk2nj.esm.min.js +2 -0
- package/dist/chunks/KHR_draco_mesh_compression-DU2Rk2nj.esm.min.js.map +1 -0
- package/dist/chunks/KHR_draco_mesh_compression-hVF9XuFz.esm.js +610 -0
- package/dist/chunks/KHR_draco_mesh_compression-hVF9XuFz.esm.js.map +1 -0
- package/dist/chunks/KHR_interactivity-COE1p684.esm.min.js +2 -0
- package/dist/chunks/KHR_interactivity-COE1p684.esm.min.js.map +1 -0
- package/dist/chunks/KHR_interactivity-Cv1s_pea.esm.js +4033 -0
- package/dist/chunks/KHR_interactivity-Cv1s_pea.esm.js.map +1 -0
- package/dist/chunks/KHR_lights_punctual-CHf5kbKi.esm.js +581 -0
- package/dist/chunks/KHR_lights_punctual-CHf5kbKi.esm.js.map +1 -0
- package/dist/chunks/KHR_lights_punctual-DIEAP5SG.esm.min.js +2 -0
- package/dist/chunks/KHR_lights_punctual-DIEAP5SG.esm.min.js.map +1 -0
- package/dist/chunks/KHR_materials_anisotropy-CU-xxV6y.esm.js +65 -0
- package/dist/chunks/KHR_materials_anisotropy-CU-xxV6y.esm.js.map +1 -0
- package/dist/chunks/KHR_materials_anisotropy-Cq6CU4qW.esm.min.js +2 -0
- package/dist/chunks/KHR_materials_anisotropy-Cq6CU4qW.esm.min.js.map +1 -0
- package/dist/chunks/KHR_materials_clearcoat-BSjcmIju.esm.js +96 -0
- package/dist/chunks/KHR_materials_clearcoat-BSjcmIju.esm.js.map +1 -0
- package/dist/chunks/KHR_materials_clearcoat-CVNNhJRE.esm.min.js +2 -0
- package/dist/chunks/KHR_materials_clearcoat-CVNNhJRE.esm.min.js.map +1 -0
- package/dist/chunks/KHR_materials_diffuse_transmission-BDuGIkOh.esm.min.js +2 -0
- package/dist/chunks/KHR_materials_diffuse_transmission-BDuGIkOh.esm.min.js.map +1 -0
- package/dist/chunks/KHR_materials_diffuse_transmission-BZ-9rJUf.esm.js +97 -0
- package/dist/chunks/KHR_materials_diffuse_transmission-BZ-9rJUf.esm.js.map +1 -0
- package/dist/chunks/KHR_materials_dispersion-BxiGElVU.esm.min.js +2 -0
- package/dist/chunks/KHR_materials_dispersion-BxiGElVU.esm.min.js.map +1 -0
- package/dist/chunks/KHR_materials_dispersion-UI4zH1V_.esm.js +62 -0
- package/dist/chunks/KHR_materials_dispersion-UI4zH1V_.esm.js.map +1 -0
- package/dist/chunks/KHR_materials_emissive_strength-BT-Nu60T.esm.js +55 -0
- package/dist/chunks/KHR_materials_emissive_strength-BT-Nu60T.esm.js.map +1 -0
- package/dist/chunks/KHR_materials_emissive_strength-CwkVNmN7.esm.min.js +2 -0
- package/dist/chunks/KHR_materials_emissive_strength-CwkVNmN7.esm.min.js.map +1 -0
- package/dist/chunks/KHR_materials_ior-BGUUe5AW.esm.min.js +2 -0
- package/dist/chunks/KHR_materials_ior-BGUUe5AW.esm.min.js.map +1 -0
- package/dist/chunks/KHR_materials_ior-BbBQF-yw.esm.js +64 -0
- package/dist/chunks/KHR_materials_ior-BbBQF-yw.esm.js.map +1 -0
- package/dist/chunks/KHR_materials_iridescence-IFN2ewvr.esm.min.js +2 -0
- package/dist/chunks/KHR_materials_iridescence-IFN2ewvr.esm.min.js.map +1 -0
- package/dist/chunks/KHR_materials_iridescence-nLZDN7sc.esm.js +72 -0
- package/dist/chunks/KHR_materials_iridescence-nLZDN7sc.esm.js.map +1 -0
- package/dist/chunks/KHR_materials_pbrSpecularGlossiness-CyNVQC-W.esm.js +81 -0
- package/dist/chunks/KHR_materials_pbrSpecularGlossiness-CyNVQC-W.esm.js.map +1 -0
- package/dist/chunks/KHR_materials_pbrSpecularGlossiness-zxcydJdp.esm.min.js +2 -0
- package/dist/chunks/KHR_materials_pbrSpecularGlossiness-zxcydJdp.esm.min.js.map +1 -0
- package/dist/chunks/KHR_materials_sheen-BWL9yo8Z.esm.min.js +2 -0
- package/dist/chunks/KHR_materials_sheen-BWL9yo8Z.esm.min.js.map +1 -0
- package/dist/chunks/KHR_materials_sheen-DSThWwq2.esm.js +85 -0
- package/dist/chunks/KHR_materials_sheen-DSThWwq2.esm.js.map +1 -0
- package/dist/chunks/KHR_materials_specular-B96NRFEV.esm.js +75 -0
- package/dist/chunks/KHR_materials_specular-B96NRFEV.esm.js.map +1 -0
- package/dist/chunks/KHR_materials_specular-D2JwOdxw.esm.min.js +2 -0
- package/dist/chunks/KHR_materials_specular-D2JwOdxw.esm.min.js.map +1 -0
- package/dist/chunks/KHR_materials_transmission-BvqtJXfD.esm.js +307 -0
- package/dist/chunks/KHR_materials_transmission-BvqtJXfD.esm.js.map +1 -0
- package/dist/chunks/KHR_materials_transmission-ljXN4y_0.esm.min.js +2 -0
- package/dist/chunks/KHR_materials_transmission-ljXN4y_0.esm.min.js.map +1 -0
- package/dist/chunks/KHR_materials_unlit-CjGTXU3z.esm.min.js +2 -0
- package/dist/chunks/KHR_materials_unlit-CjGTXU3z.esm.min.js.map +1 -0
- package/dist/chunks/KHR_materials_unlit-ww00IloC.esm.js +74 -0
- package/dist/chunks/KHR_materials_unlit-ww00IloC.esm.js.map +1 -0
- package/dist/chunks/KHR_materials_variants-D0pVU1lm.esm.min.js +2 -0
- package/dist/chunks/KHR_materials_variants-D0pVU1lm.esm.min.js.map +1 -0
- package/dist/chunks/KHR_materials_variants-D3IDOJfB.esm.js +262 -0
- package/dist/chunks/KHR_materials_variants-D3IDOJfB.esm.js.map +1 -0
- package/dist/chunks/KHR_materials_volume-BfZR8rbr.esm.min.js +2 -0
- package/dist/chunks/KHR_materials_volume-BfZR8rbr.esm.min.js.map +1 -0
- package/dist/chunks/KHR_materials_volume-CLkC_Bvi.esm.js +87 -0
- package/dist/chunks/KHR_materials_volume-CLkC_Bvi.esm.js.map +1 -0
- package/dist/chunks/KHR_mesh_quantization-BJv1P2Wt.esm.js +26 -0
- package/dist/chunks/KHR_mesh_quantization-BJv1P2Wt.esm.js.map +1 -0
- package/dist/chunks/KHR_mesh_quantization-D69X_5bR.esm.min.js +2 -0
- package/dist/chunks/KHR_mesh_quantization-D69X_5bR.esm.min.js.map +1 -0
- package/dist/chunks/KHR_node_hoverability-CG6s7hhs.esm.min.js +2 -0
- package/dist/chunks/KHR_node_hoverability-CG6s7hhs.esm.min.js.map +1 -0
- package/dist/chunks/KHR_node_hoverability-xgvyZ_r-.esm.js +39 -0
- package/dist/chunks/KHR_node_hoverability-xgvyZ_r-.esm.js.map +1 -0
- package/dist/chunks/KHR_node_visibility-DUozjXRR.esm.min.js +2 -0
- package/dist/chunks/KHR_node_visibility-DUozjXRR.esm.min.js.map +1 -0
- package/dist/chunks/KHR_node_visibility-aAs5Kkey.esm.js +46 -0
- package/dist/chunks/KHR_node_visibility-aAs5Kkey.esm.js.map +1 -0
- package/dist/chunks/KHR_texture_basisu-Bjw0jG1d.esm.js +43 -0
- package/dist/chunks/KHR_texture_basisu-Bjw0jG1d.esm.js.map +1 -0
- package/dist/chunks/KHR_texture_basisu-FWm46QOj.esm.min.js +2 -0
- package/dist/chunks/KHR_texture_basisu-FWm46QOj.esm.min.js.map +1 -0
- package/dist/chunks/KHR_texture_transform-BZYr2brj.esm.min.js +2 -0
- package/dist/chunks/KHR_texture_transform-BZYr2brj.esm.min.js.map +1 -0
- package/dist/chunks/KHR_texture_transform-DdsN6SA_.esm.js +63 -0
- package/dist/chunks/KHR_texture_transform-DdsN6SA_.esm.js.map +1 -0
- package/dist/chunks/KHR_xmp_json_ld-DhFD64vh.esm.min.js +2 -0
- package/dist/chunks/KHR_xmp_json_ld-DhFD64vh.esm.min.js.map +1 -0
- package/dist/chunks/KHR_xmp_json_ld-sTn6N13E.esm.js +51 -0
- package/dist/chunks/KHR_xmp_json_ld-sTn6N13E.esm.js.map +1 -0
- package/dist/chunks/MSFT_audio_emitter-5lrNj8-c.esm.min.js +2 -0
- package/dist/chunks/MSFT_audio_emitter-5lrNj8-c.esm.min.js.map +1 -0
- package/dist/chunks/MSFT_audio_emitter-B7RJSCaF.esm.js +2201 -0
- package/dist/chunks/MSFT_audio_emitter-B7RJSCaF.esm.js.map +1 -0
- package/dist/chunks/MSFT_lod-BJBjM7Gp.esm.js +337 -0
- package/dist/chunks/MSFT_lod-BJBjM7Gp.esm.js.map +1 -0
- package/dist/chunks/MSFT_lod-DpEZMnoU.esm.min.js +2 -0
- package/dist/chunks/MSFT_lod-DpEZMnoU.esm.min.js.map +1 -0
- package/dist/chunks/MSFT_minecraftMesh-CXHPdyar.esm.min.js +2 -0
- package/dist/chunks/MSFT_minecraftMesh-CXHPdyar.esm.min.js.map +1 -0
- package/dist/chunks/MSFT_minecraftMesh-DRC2tMvY.esm.js +46 -0
- package/dist/chunks/MSFT_minecraftMesh-DRC2tMvY.esm.js.map +1 -0
- package/dist/chunks/MSFT_sRGBFactors-Db1asZRk.esm.js +47 -0
- package/dist/chunks/MSFT_sRGBFactors-Db1asZRk.esm.js.map +1 -0
- package/dist/chunks/MSFT_sRGBFactors-RhAtY3q7.esm.min.js +2 -0
- package/dist/chunks/MSFT_sRGBFactors-RhAtY3q7.esm.min.js.map +1 -0
- package/dist/chunks/animationGroup-CjaFhT87.esm.min.js +2 -0
- package/dist/chunks/animationGroup-CjaFhT87.esm.min.js.map +1 -0
- package/dist/chunks/animationGroup-Ctc6BUYh.esm.js +2482 -0
- package/dist/chunks/animationGroup-Ctc6BUYh.esm.js.map +1 -0
- package/dist/chunks/assetContainer-DDEska5G.esm.min.js +2 -0
- package/dist/chunks/assetContainer-DDEska5G.esm.min.js.map +1 -0
- package/dist/chunks/assetContainer-QD3gUzyx.esm.js +1720 -0
- package/dist/chunks/assetContainer-QD3gUzyx.esm.js.map +1 -0
- package/dist/chunks/audioEngine-C6R2Ow6e.esm.js +305 -0
- package/dist/chunks/audioEngine-C6R2Ow6e.esm.js.map +1 -0
- package/dist/chunks/audioEngine-FKYFzzDb.esm.min.js +2 -0
- package/dist/chunks/audioEngine-FKYFzzDb.esm.min.js.map +1 -0
- package/dist/chunks/bakedVertexAnimation-DKR6lpIg.esm.min.js +2 -0
- package/dist/chunks/bakedVertexAnimation-DKR6lpIg.esm.min.js.map +1 -0
- package/dist/chunks/bakedVertexAnimation-Hxn22qoJ.esm.js +114 -0
- package/dist/chunks/bakedVertexAnimation-Hxn22qoJ.esm.js.map +1 -0
- package/dist/chunks/basisTextureLoader-BcNAHqjw.esm.min.js +2 -0
- package/dist/chunks/basisTextureLoader-BcNAHqjw.esm.min.js.map +1 -0
- package/dist/chunks/basisTextureLoader-Dr2d0ez5.esm.js +600 -0
- package/dist/chunks/basisTextureLoader-Dr2d0ez5.esm.js.map +1 -0
- package/dist/chunks/dds-CFrq_XFM.esm.js +540 -0
- package/dist/chunks/dds-CFrq_XFM.esm.js.map +1 -0
- package/dist/chunks/dds-D1NTXLIL.esm.min.js +2 -0
- package/dist/chunks/dds-D1NTXLIL.esm.min.js.map +1 -0
- package/dist/chunks/ddsTextureLoader-DbvffCUa.esm.min.js +2 -0
- package/dist/chunks/ddsTextureLoader-DbvffCUa.esm.min.js.map +1 -0
- package/dist/chunks/ddsTextureLoader-wyjUdBoO.esm.js +88 -0
- package/dist/chunks/ddsTextureLoader-wyjUdBoO.esm.js.map +1 -0
- package/dist/chunks/decalFragment-CGto5zyq.esm.js +18 -0
- package/dist/chunks/decalFragment-CGto5zyq.esm.js.map +1 -0
- package/dist/chunks/decalFragment-CU64C8uG.esm.min.js +2 -0
- package/dist/chunks/decalFragment-CU64C8uG.esm.min.js.map +1 -0
- package/dist/chunks/default.fragment-B2bhCC4E.esm.js +446 -0
- package/dist/chunks/default.fragment-B2bhCC4E.esm.js.map +1 -0
- package/dist/chunks/default.fragment-Boq79lom.esm.min.js +2 -0
- package/dist/chunks/default.fragment-Boq79lom.esm.min.js.map +1 -0
- package/dist/chunks/default.fragment-CluFtXFp.esm.min.js +2 -0
- package/dist/chunks/default.fragment-CluFtXFp.esm.min.js.map +1 -0
- package/dist/chunks/default.fragment-Dshl5Uqc.esm.js +515 -0
- package/dist/chunks/default.fragment-Dshl5Uqc.esm.js.map +1 -0
- package/dist/chunks/default.vertex-BAAgCiYo.esm.min.js +2 -0
- package/dist/chunks/default.vertex-BAAgCiYo.esm.min.js.map +1 -0
- package/dist/chunks/default.vertex-BhOIicZW.esm.min.js +2 -0
- package/dist/chunks/default.vertex-BhOIicZW.esm.min.js.map +1 -0
- package/dist/chunks/default.vertex-DL7IogGB.esm.js +211 -0
- package/dist/chunks/default.vertex-DL7IogGB.esm.js.map +1 -0
- package/dist/chunks/default.vertex-DOXcZEQ0.esm.js +190 -0
- package/dist/chunks/default.vertex-DOXcZEQ0.esm.js.map +1 -0
- package/dist/chunks/defaultUboDeclaration-1qBz6EuF.esm.js +15 -0
- package/dist/chunks/defaultUboDeclaration-1qBz6EuF.esm.js.map +1 -0
- package/dist/chunks/defaultUboDeclaration-B9LzMzlw.esm.min.js +2 -0
- package/dist/chunks/defaultUboDeclaration-B9LzMzlw.esm.min.js.map +1 -0
- package/dist/chunks/defaultUboDeclaration-CXdodf7i.esm.js +13 -0
- package/dist/chunks/defaultUboDeclaration-CXdodf7i.esm.js.map +1 -0
- package/dist/chunks/defaultUboDeclaration-CZlCaxgu.esm.min.js +2 -0
- package/dist/chunks/defaultUboDeclaration-CZlCaxgu.esm.min.js.map +1 -0
- package/dist/chunks/drawWrapper.functions-CKg3_9x4.esm.js +11 -0
- package/dist/chunks/drawWrapper.functions-CKg3_9x4.esm.js.map +1 -0
- package/dist/chunks/drawWrapper.functions-ng7lvueZ.esm.min.js +2 -0
- package/dist/chunks/drawWrapper.functions-ng7lvueZ.esm.min.js.map +1 -0
- package/dist/chunks/dumpTools-C3vcqEdz.esm.js +200 -0
- package/dist/chunks/dumpTools-C3vcqEdz.esm.js.map +1 -0
- package/dist/chunks/dumpTools-C8ZzlWEh.esm.min.js +2 -0
- package/dist/chunks/dumpTools-C8ZzlWEh.esm.min.js.map +1 -0
- package/dist/chunks/engine-_wVL12I1.esm.js +2213 -0
- package/dist/chunks/engine-_wVL12I1.esm.js.map +1 -0
- package/dist/chunks/engine-nCWszV_w.esm.min.js +2 -0
- package/dist/chunks/engine-nCWszV_w.esm.min.js.map +1 -0
- package/dist/chunks/engine.common-BuPfo1Wj.esm.min.js +2 -0
- package/dist/chunks/engine.common-BuPfo1Wj.esm.min.js.map +1 -0
- package/dist/chunks/engine.common-CT5iq3ZT.esm.js +1162 -0
- package/dist/chunks/engine.common-CT5iq3ZT.esm.js.map +1 -0
- package/dist/chunks/envTextureLoader-D7L0fVXR.esm.min.js +2 -0
- package/dist/chunks/envTextureLoader-D7L0fVXR.esm.min.js.map +1 -0
- package/dist/chunks/envTextureLoader-PtuRNDrr.esm.js +64 -0
- package/dist/chunks/envTextureLoader-PtuRNDrr.esm.js.map +1 -0
- package/dist/chunks/environmentTextureTools-BjmCbfSf.esm.min.js +2 -0
- package/dist/chunks/environmentTextureTools-BjmCbfSf.esm.min.js.map +1 -0
- package/dist/chunks/environmentTextureTools-DYbFmR95.esm.js +382 -0
- package/dist/chunks/environmentTextureTools-DYbFmR95.esm.js.map +1 -0
- package/dist/chunks/exrTextureLoader-BIPK0bPG.esm.min.js +2 -0
- package/dist/chunks/exrTextureLoader-BIPK0bPG.esm.min.js.map +1 -0
- package/dist/chunks/exrTextureLoader-CEhv_7O9.esm.js +1683 -0
- package/dist/chunks/exrTextureLoader-CEhv_7O9.esm.js.map +1 -0
- package/dist/chunks/fogFragment-B7_evZbY.esm.js +102 -0
- package/dist/chunks/fogFragment-B7_evZbY.esm.js.map +1 -0
- package/dist/chunks/fogFragment-CoZPb7oI.esm.min.js +2 -0
- package/dist/chunks/fogFragment-CoZPb7oI.esm.min.js.map +1 -0
- package/dist/chunks/fogFragment-DSO97-dc.esm.min.js +2 -0
- package/dist/chunks/fogFragment-DSO97-dc.esm.min.js.map +1 -0
- package/dist/chunks/fogFragment-wY2jQ7fb.esm.js +101 -0
- package/dist/chunks/fogFragment-wY2jQ7fb.esm.js.map +1 -0
- package/dist/chunks/fresnelFunction-BSEp5SCT.esm.js +12 -0
- package/dist/chunks/fresnelFunction-BSEp5SCT.esm.js.map +1 -0
- package/dist/chunks/fresnelFunction-Cg-NNSrz.esm.min.js +2 -0
- package/dist/chunks/fresnelFunction-Cg-NNSrz.esm.min.js.map +1 -0
- package/dist/chunks/glTFLoader-3ZUBWawQ.esm.min.js +2 -0
- package/dist/chunks/glTFLoader-3ZUBWawQ.esm.min.js.map +1 -0
- package/dist/chunks/glTFLoader-DVoAJl_A.esm.js +7658 -0
- package/dist/chunks/glTFLoader-DVoAJl_A.esm.js.map +1 -0
- package/dist/chunks/glTFLoaderAnimation-By7yP8sQ.esm.js +77 -0
- package/dist/chunks/glTFLoaderAnimation-By7yP8sQ.esm.js.map +1 -0
- package/dist/chunks/glTFLoaderAnimation-C9g-SHaJ.esm.min.js +2 -0
- package/dist/chunks/glTFLoaderAnimation-C9g-SHaJ.esm.min.js.map +1 -0
- package/dist/chunks/gltfPathToObjectConverter-Dyt_Y9jE.esm.min.js +2 -0
- package/dist/chunks/gltfPathToObjectConverter-Dyt_Y9jE.esm.min.js.map +1 -0
- package/dist/chunks/gltfPathToObjectConverter-GcUmfOyo.esm.js +67 -0
- package/dist/chunks/gltfPathToObjectConverter-GcUmfOyo.esm.js.map +1 -0
- package/dist/chunks/harmonicsFunctions-B8pgRSdd.esm.min.js +2 -0
- package/dist/chunks/harmonicsFunctions-B8pgRSdd.esm.min.js.map +1 -0
- package/dist/chunks/harmonicsFunctions-BcfkM4gb.esm.js +35 -0
- package/dist/chunks/harmonicsFunctions-BcfkM4gb.esm.js.map +1 -0
- package/dist/chunks/harmonicsFunctions-DF1x585z.esm.min.js +2 -0
- package/dist/chunks/harmonicsFunctions-DF1x585z.esm.min.js.map +1 -0
- package/dist/chunks/harmonicsFunctions-a48Ki58F.esm.js +34 -0
- package/dist/chunks/harmonicsFunctions-a48Ki58F.esm.js.map +1 -0
- package/dist/chunks/hdrTextureLoader-BWnO8u1r.esm.js +253 -0
- package/dist/chunks/hdrTextureLoader-BWnO8u1r.esm.js.map +1 -0
- package/dist/chunks/hdrTextureLoader-Bii9QpYI.esm.min.js +2 -0
- package/dist/chunks/hdrTextureLoader-Bii9QpYI.esm.min.js.map +1 -0
- package/dist/chunks/helperFunctions-BinFB44e.esm.js +110 -0
- package/dist/chunks/helperFunctions-BinFB44e.esm.js.map +1 -0
- package/dist/chunks/helperFunctions-CZAyJNTJ.esm.min.js +2 -0
- package/dist/chunks/helperFunctions-CZAyJNTJ.esm.min.js.map +1 -0
- package/dist/chunks/helperFunctions-DjoUVhI2.esm.min.js +2 -0
- package/dist/chunks/helperFunctions-DjoUVhI2.esm.min.js.map +1 -0
- package/dist/chunks/helperFunctions-Ds3-3-tu.esm.js +83 -0
- package/dist/chunks/helperFunctions-Ds3-3-tu.esm.js.map +1 -0
- package/dist/chunks/iesTextureLoader-CsnjIN7M.esm.js +189 -0
- package/dist/chunks/iesTextureLoader-CsnjIN7M.esm.js.map +1 -0
- package/dist/chunks/iesTextureLoader-DkmTomCD.esm.min.js +2 -0
- package/dist/chunks/iesTextureLoader-DkmTomCD.esm.min.js.map +1 -0
- package/dist/chunks/index-Cw2FZpYY.esm.js +74870 -0
- package/dist/chunks/index-Cw2FZpYY.esm.js.map +1 -0
- package/dist/chunks/index-DRbhrB0j.esm.min.js +57 -0
- package/dist/chunks/index-DRbhrB0j.esm.min.js.map +1 -0
- package/dist/chunks/ktxTextureLoader-B4pmAFQl.esm.js +814 -0
- package/dist/chunks/ktxTextureLoader-B4pmAFQl.esm.js.map +1 -0
- package/dist/chunks/ktxTextureLoader-B8Rlj2T0.esm.min.js +2 -0
- package/dist/chunks/ktxTextureLoader-B8Rlj2T0.esm.min.js.map +1 -0
- package/dist/chunks/logDepthDeclaration-CGz2sG_K.esm.js +11 -0
- package/dist/chunks/logDepthDeclaration-CGz2sG_K.esm.js.map +1 -0
- package/dist/chunks/logDepthDeclaration-CfVFs2QC.esm.min.js +2 -0
- package/dist/chunks/logDepthDeclaration-CfVFs2QC.esm.min.js.map +1 -0
- package/dist/chunks/logDepthDeclaration-CzVshpad.esm.min.js +2 -0
- package/dist/chunks/logDepthDeclaration-CzVshpad.esm.min.js.map +1 -0
- package/dist/chunks/logDepthDeclaration-xOwnAKtd.esm.js +35 -0
- package/dist/chunks/logDepthDeclaration-xOwnAKtd.esm.js.map +1 -0
- package/dist/chunks/logDepthVertex-BRgUZAsw.esm.js +81 -0
- package/dist/chunks/logDepthVertex-BRgUZAsw.esm.js.map +1 -0
- package/dist/chunks/logDepthVertex-CWfPfN9-.esm.min.js +2 -0
- package/dist/chunks/logDepthVertex-CWfPfN9-.esm.min.js.map +1 -0
- package/dist/chunks/logDepthVertex-HDlt7vTP.esm.min.js +2 -0
- package/dist/chunks/logDepthVertex-HDlt7vTP.esm.min.js.map +1 -0
- package/dist/chunks/logDepthVertex-l0uEG89p.esm.js +77 -0
- package/dist/chunks/logDepthVertex-l0uEG89p.esm.js.map +1 -0
- package/dist/chunks/mainUVVaryingDeclaration-B72zV2P9.esm.min.js +2 -0
- package/dist/chunks/mainUVVaryingDeclaration-B72zV2P9.esm.min.js.map +1 -0
- package/dist/chunks/mainUVVaryingDeclaration-BDogjZrz.esm.js +11 -0
- package/dist/chunks/mainUVVaryingDeclaration-BDogjZrz.esm.js.map +1 -0
- package/dist/chunks/mainUVVaryingDeclaration-DO5HJKyl.esm.min.js +2 -0
- package/dist/chunks/mainUVVaryingDeclaration-DO5HJKyl.esm.min.js.map +1 -0
- package/dist/chunks/mainUVVaryingDeclaration-DqzNajlu.esm.js +11 -0
- package/dist/chunks/mainUVVaryingDeclaration-DqzNajlu.esm.js.map +1 -0
- package/dist/chunks/mesh.vertexData.functions-B_pMCAzZ.esm.js +119 -0
- package/dist/chunks/mesh.vertexData.functions-B_pMCAzZ.esm.js.map +1 -0
- package/dist/chunks/mesh.vertexData.functions-Bo7e6Of9.esm.min.js +2 -0
- package/dist/chunks/mesh.vertexData.functions-Bo7e6Of9.esm.min.js.map +1 -0
- package/dist/chunks/meshUboDeclaration-BCO87lfZ.esm.js +26 -0
- package/dist/chunks/meshUboDeclaration-BCO87lfZ.esm.js.map +1 -0
- package/dist/chunks/meshUboDeclaration-o4Xf2fwW.esm.min.js +2 -0
- package/dist/chunks/meshUboDeclaration-o4Xf2fwW.esm.min.js.map +1 -0
- package/dist/chunks/objFileLoader-BfPYM2Sh.esm.min.js +2 -0
- package/dist/chunks/objFileLoader-BfPYM2Sh.esm.min.js.map +1 -0
- package/dist/chunks/objFileLoader-D1emf4Qh.esm.js +1338 -0
- package/dist/chunks/objFileLoader-D1emf4Qh.esm.js.map +1 -0
- package/dist/chunks/oitFragment-B92YpEfj.esm.min.js +2 -0
- package/dist/chunks/oitFragment-B92YpEfj.esm.min.js.map +1 -0
- package/dist/chunks/oitFragment-BoFKkDNv.esm.js +1078 -0
- package/dist/chunks/oitFragment-BoFKkDNv.esm.js.map +1 -0
- package/dist/chunks/oitFragment-Cfx3g0iX.esm.js +1240 -0
- package/dist/chunks/oitFragment-Cfx3g0iX.esm.js.map +1 -0
- package/dist/chunks/oitFragment-CiA7gld-.esm.min.js +2 -0
- package/dist/chunks/oitFragment-CiA7gld-.esm.min.js.map +1 -0
- package/dist/chunks/pass.fragment-BLbIViJ7.esm.js +15 -0
- package/dist/chunks/pass.fragment-BLbIViJ7.esm.js.map +1 -0
- package/dist/chunks/pass.fragment-BqMk9ouF.esm.min.js +2 -0
- package/dist/chunks/pass.fragment-BqMk9ouF.esm.min.js.map +1 -0
- package/dist/chunks/pass.fragment-BuVDFNSR.esm.js +15 -0
- package/dist/chunks/pass.fragment-BuVDFNSR.esm.js.map +1 -0
- package/dist/chunks/pass.fragment-cM5FBHLm.esm.min.js +2 -0
- package/dist/chunks/pass.fragment-cM5FBHLm.esm.min.js.map +1 -0
- package/dist/chunks/pbr.fragment-5L_F7nGn.esm.js +3222 -0
- package/dist/chunks/pbr.fragment-5L_F7nGn.esm.js.map +1 -0
- package/dist/chunks/pbr.fragment-BJNPHSa-.esm.min.js +2 -0
- package/dist/chunks/pbr.fragment-BJNPHSa-.esm.min.js.map +1 -0
- package/dist/chunks/pbr.fragment-CTLrOzV2.esm.js +3269 -0
- package/dist/chunks/pbr.fragment-CTLrOzV2.esm.js.map +1 -0
- package/dist/chunks/pbr.fragment-D9MJFOr2.esm.min.js +2 -0
- package/dist/chunks/pbr.fragment-D9MJFOr2.esm.min.js.map +1 -0
- package/dist/chunks/pbr.vertex-BJyjq_fb.esm.js +223 -0
- package/dist/chunks/pbr.vertex-BJyjq_fb.esm.js.map +1 -0
- package/dist/chunks/pbr.vertex-Bm8Ng4Sx.esm.min.js +2 -0
- package/dist/chunks/pbr.vertex-Bm8Ng4Sx.esm.min.js.map +1 -0
- package/dist/chunks/pbr.vertex-CAKPUhfb.esm.min.js +2 -0
- package/dist/chunks/pbr.vertex-CAKPUhfb.esm.min.js.map +1 -0
- package/dist/chunks/pbr.vertex-DJd_-MvE.esm.js +348 -0
- package/dist/chunks/pbr.vertex-DJd_-MvE.esm.js.map +1 -0
- package/dist/chunks/postprocess.vertex-BjRX5eGi.esm.min.js +2 -0
- package/dist/chunks/postprocess.vertex-BjRX5eGi.esm.min.js.map +1 -0
- package/dist/chunks/postprocess.vertex-CFaKNIU-.esm.js +20 -0
- package/dist/chunks/postprocess.vertex-CFaKNIU-.esm.js.map +1 -0
- package/dist/chunks/rawTexture-ByD8l28R.esm.min.js +2 -0
- package/dist/chunks/rawTexture-ByD8l28R.esm.min.js.map +1 -0
- package/dist/chunks/rawTexture-DGz22uaX.esm.js +191 -0
- package/dist/chunks/rawTexture-DGz22uaX.esm.js.map +1 -0
- package/dist/chunks/ray-ByafiITx.esm.js +946 -0
- package/dist/chunks/ray-ByafiITx.esm.js.map +1 -0
- package/dist/chunks/ray-ChSTYrPm.esm.min.js +2 -0
- package/dist/chunks/ray-ChSTYrPm.esm.min.js.map +1 -0
- package/dist/chunks/rgbdDecode.fragment-CJ7PpH1N.esm.js +13 -0
- package/dist/chunks/rgbdDecode.fragment-CJ7PpH1N.esm.js.map +1 -0
- package/dist/chunks/rgbdDecode.fragment-DJ9crbPP.esm.js +13 -0
- package/dist/chunks/rgbdDecode.fragment-DJ9crbPP.esm.js.map +1 -0
- package/dist/chunks/rgbdDecode.fragment-DLpb3z18.esm.min.js +2 -0
- package/dist/chunks/rgbdDecode.fragment-DLpb3z18.esm.min.js.map +1 -0
- package/dist/chunks/rgbdDecode.fragment-ygeOUzIi.esm.min.js +2 -0
- package/dist/chunks/rgbdDecode.fragment-ygeOUzIi.esm.min.js.map +1 -0
- package/dist/chunks/rgbdEncode.fragment-BTG_wbck.esm.min.js +2 -0
- package/dist/chunks/rgbdEncode.fragment-BTG_wbck.esm.min.js.map +1 -0
- package/dist/chunks/rgbdEncode.fragment-C2s4AQaM.esm.js +13 -0
- package/dist/chunks/rgbdEncode.fragment-C2s4AQaM.esm.js.map +1 -0
- package/dist/chunks/rgbdEncode.fragment-C6LKySQH.esm.js +13 -0
- package/dist/chunks/rgbdEncode.fragment-C6LKySQH.esm.js.map +1 -0
- package/dist/chunks/rgbdEncode.fragment-CKB2lpgL.esm.min.js +2 -0
- package/dist/chunks/rgbdEncode.fragment-CKB2lpgL.esm.min.js.map +1 -0
- package/dist/chunks/splatFileLoader-BtSUlfZs.esm.min.js +2 -0
- package/dist/chunks/splatFileLoader-BtSUlfZs.esm.min.js.map +1 -0
- package/dist/chunks/splatFileLoader-Wn5sDtLq.esm.js +3379 -0
- package/dist/chunks/splatFileLoader-Wn5sDtLq.esm.js.map +1 -0
- package/dist/chunks/spotLight-CmDQEB8V.esm.js +701 -0
- package/dist/chunks/spotLight-CmDQEB8V.esm.js.map +1 -0
- package/dist/chunks/spotLight-hg94aMJD.esm.min.js +2 -0
- package/dist/chunks/spotLight-hg94aMJD.esm.min.js.map +1 -0
- package/dist/chunks/standardMaterial-BhIiLn1_.esm.js +1806 -0
- package/dist/chunks/standardMaterial-BhIiLn1_.esm.js.map +1 -0
- package/dist/chunks/standardMaterial-DQii8fRL.esm.min.js +2 -0
- package/dist/chunks/standardMaterial-DQii8fRL.esm.min.js.map +1 -0
- package/dist/chunks/stlFileLoader-D83u9BOr.esm.js +238 -0
- package/dist/chunks/stlFileLoader-D83u9BOr.esm.js.map +1 -0
- package/dist/chunks/stlFileLoader-DkXWqjZo.esm.min.js +2 -0
- package/dist/chunks/stlFileLoader-DkXWqjZo.esm.min.js.map +1 -0
- package/dist/chunks/tgaTextureLoader-C9xl6cvE.esm.js +349 -0
- package/dist/chunks/tgaTextureLoader-C9xl6cvE.esm.js.map +1 -0
- package/dist/chunks/tgaTextureLoader-DfzjGulW.esm.min.js +2 -0
- package/dist/chunks/tgaTextureLoader-DfzjGulW.esm.min.js.map +1 -0
- package/dist/chunks/thinEngine-Cu21aOSC.esm.min.js +2 -0
- package/dist/chunks/thinEngine-Cu21aOSC.esm.min.js.map +1 -0
- package/dist/chunks/thinEngine-IzS60pqU.esm.js +3853 -0
- package/dist/chunks/thinEngine-IzS60pqU.esm.js.map +1 -0
- package/dist/chunks/thinInstanceMesh-BN8Ev-h8.esm.js +314 -0
- package/dist/chunks/thinInstanceMesh-BN8Ev-h8.esm.js.map +1 -0
- package/dist/chunks/thinInstanceMesh-Bm9vmKU4.esm.min.js +2 -0
- package/dist/chunks/thinInstanceMesh-Bm9vmKU4.esm.min.js.map +1 -0
- package/dist/chunks/vertexColorMixing-Cazf4vEl.esm.min.js +2 -0
- package/dist/chunks/vertexColorMixing-Cazf4vEl.esm.min.js.map +1 -0
- package/dist/chunks/vertexColorMixing-DGvq3Fju.esm.js +421 -0
- package/dist/chunks/vertexColorMixing-DGvq3Fju.esm.js.map +1 -0
- package/dist/chunks/vertexColorMixing-D_6ZvivZ.esm.min.js +2 -0
- package/dist/chunks/vertexColorMixing-D_6ZvivZ.esm.min.js.map +1 -0
- package/dist/chunks/vertexColorMixing-DuYHnuUm.esm.js +531 -0
- package/dist/chunks/vertexColorMixing-DuYHnuUm.esm.js.map +1 -0
- package/dist/chunks/webgpuEngine-DHaXinU4.esm.min.js +2 -0
- package/dist/chunks/webgpuEngine-DHaXinU4.esm.min.js.map +1 -0
- package/dist/chunks/webgpuEngine-Dxev7pbz.esm.js +11538 -0
- package/dist/chunks/webgpuEngine-Dxev7pbz.esm.js.map +1 -0
- package/dist/chunks/workerPool-BUOov2K1.esm.js +122 -0
- package/dist/chunks/workerPool-BUOov2K1.esm.js.map +1 -0
- package/dist/chunks/workerPool-BWHiDmEZ.esm.min.js +2 -0
- package/dist/chunks/workerPool-BWHiDmEZ.esm.min.js.map +1 -0
- package/lib/index.d.ts +591 -0
- package/lib/index.js +2165 -0
- package/lib/index.js.map +1 -0
- package/package.json +19 -28
- package/readme.md +28 -28
- package/configuration/configuration.d.ts +0 -107
- package/configuration/configuration.js +0 -16
- package/configuration/configuration.js.map +0 -1
- package/configuration/configurationCompatibility.d.ts +0 -8
- package/configuration/configurationCompatibility.js +0 -66
- package/configuration/configurationCompatibility.js.map +0 -1
- package/configuration/configurationContainer.d.ts +0 -10
- package/configuration/configurationContainer.js +0 -10
- package/configuration/configurationContainer.js.map +0 -1
- package/configuration/globals.d.ts +0 -6
- package/configuration/globals.js +0 -18
- package/configuration/globals.js.map +0 -1
- package/configuration/index.d.ts +0 -2
- package/configuration/index.js +0 -4
- package/configuration/index.js.map +0 -1
- package/configuration/interfaces/cameraConfiguration.d.ts +0 -31
- package/configuration/interfaces/cameraConfiguration.js +0 -2
- package/configuration/interfaces/cameraConfiguration.js.map +0 -1
- package/configuration/interfaces/colorGradingConfiguration.d.ts +0 -81
- package/configuration/interfaces/colorGradingConfiguration.js +0 -2
- package/configuration/interfaces/colorGradingConfiguration.js.map +0 -1
- package/configuration/interfaces/defaultRenderingPipelineConfiguration.d.ts +0 -20
- package/configuration/interfaces/defaultRenderingPipelineConfiguration.js +0 -2
- package/configuration/interfaces/defaultRenderingPipelineConfiguration.js.map +0 -1
- package/configuration/interfaces/environmentMapConfiguration.d.ts +0 -22
- package/configuration/interfaces/environmentMapConfiguration.js +0 -2
- package/configuration/interfaces/environmentMapConfiguration.js.map +0 -1
- package/configuration/interfaces/groundConfiguration.d.ts +0 -24
- package/configuration/interfaces/groundConfiguration.js +0 -2
- package/configuration/interfaces/groundConfiguration.js.map +0 -1
- package/configuration/interfaces/imageProcessingConfiguration.d.ts +0 -45
- package/configuration/interfaces/imageProcessingConfiguration.js +0 -2
- package/configuration/interfaces/imageProcessingConfiguration.js.map +0 -1
- package/configuration/interfaces/index.d.ts +0 -15
- package/configuration/interfaces/index.js +0 -16
- package/configuration/interfaces/index.js.map +0 -1
- package/configuration/interfaces/lightConfiguration.d.ts +0 -60
- package/configuration/interfaces/lightConfiguration.js +0 -2
- package/configuration/interfaces/lightConfiguration.js.map +0 -1
- package/configuration/interfaces/modelAnimationConfiguration.d.ts +0 -26
- package/configuration/interfaces/modelAnimationConfiguration.js +0 -2
- package/configuration/interfaces/modelAnimationConfiguration.js.map +0 -1
- package/configuration/interfaces/modelConfiguration.d.ts +0 -65
- package/configuration/interfaces/modelConfiguration.js +0 -2
- package/configuration/interfaces/modelConfiguration.js.map +0 -1
- package/configuration/interfaces/observersConfiguration.d.ts +0 -5
- package/configuration/interfaces/observersConfiguration.js +0 -2
- package/configuration/interfaces/observersConfiguration.js.map +0 -1
- package/configuration/interfaces/sceneConfiguration.d.ts +0 -48
- package/configuration/interfaces/sceneConfiguration.js +0 -2
- package/configuration/interfaces/sceneConfiguration.js.map +0 -1
- package/configuration/interfaces/sceneOptimizerConfiguration.d.ts +0 -23
- package/configuration/interfaces/sceneOptimizerConfiguration.js +0 -2
- package/configuration/interfaces/sceneOptimizerConfiguration.js.map +0 -1
- package/configuration/interfaces/skyboxConfiguration.d.ts +0 -21
- package/configuration/interfaces/skyboxConfiguration.js +0 -2
- package/configuration/interfaces/skyboxConfiguration.js.map +0 -1
- package/configuration/interfaces/templateConfiguration.d.ts +0 -67
- package/configuration/interfaces/templateConfiguration.js +0 -2
- package/configuration/interfaces/templateConfiguration.js.map +0 -1
- package/configuration/interfaces/vrConfiguration.d.ts +0 -16
- package/configuration/interfaces/vrConfiguration.js +0 -2
- package/configuration/interfaces/vrConfiguration.js.map +0 -1
- package/configuration/loader.d.ts +0 -4
- package/configuration/loader.js +0 -17
- package/configuration/loader.js.map +0 -1
- package/configuration/mappers.d.ts +0 -43
- package/configuration/mappers.js +0 -193
- package/configuration/mappers.js.map +0 -1
- package/configuration/renderOnlyLoader.d.ts +0 -33
- package/configuration/renderOnlyLoader.js +0 -162
- package/configuration/renderOnlyLoader.js.map +0 -1
- package/configuration/types/default.d.ts +0 -6
- package/configuration/types/default.js +0 -121
- package/configuration/types/default.js.map +0 -1
- package/configuration/types/environmentMap.d.ts +0 -5
- package/configuration/types/environmentMap.js +0 -14
- package/configuration/types/environmentMap.js.map +0 -1
- package/configuration/types/extended.d.ts +0 -6
- package/configuration/types/extended.js +0 -317
- package/configuration/types/extended.js.map +0 -1
- package/configuration/types/index.d.ts +0 -14
- package/configuration/types/index.js +0 -51
- package/configuration/types/index.js.map +0 -1
- package/configuration/types/minimal.d.ts +0 -6
- package/configuration/types/minimal.js +0 -43
- package/configuration/types/minimal.js.map +0 -1
- package/configuration/types/renderOnlyDefault.d.ts +0 -30
- package/configuration/types/renderOnlyDefault.js +0 -31
- package/configuration/types/renderOnlyDefault.js.map +0 -1
- package/configuration/types/shadowLight.d.ts +0 -9
- package/configuration/types/shadowLight.js +0 -64
- package/configuration/types/shadowLight.js.map +0 -1
- package/helper/index.d.ts +0 -29
- package/helper/index.js +0 -66
- package/helper/index.js.map +0 -1
- package/index.d.ts +0 -30
- package/index.js +0 -46
- package/index.js.map +0 -1
- package/initializer.d.ts +0 -11
- package/initializer.js +0 -35
- package/initializer.js.map +0 -1
- package/interfaces.d.ts +0 -5
- package/interfaces.js +0 -7
- package/interfaces.js.map +0 -1
- package/labs/environmentSerializer.d.ts +0 -126
- package/labs/environmentSerializer.js +0 -191
- package/labs/environmentSerializer.js.map +0 -1
- package/labs/texture.d.ts +0 -183
- package/labs/texture.js +0 -351
- package/labs/texture.js.map +0 -1
- package/labs/viewerLabs.d.ts +0 -51
- package/labs/viewerLabs.js +0 -134
- package/labs/viewerLabs.js.map +0 -1
- package/loader/modelLoader.d.ts +0 -56
- package/loader/modelLoader.js +0 -202
- package/loader/modelLoader.js.map +0 -1
- package/loader/plugins/applyMaterialConfig.d.ts +0 -12
- package/loader/plugins/applyMaterialConfig.js +0 -16
- package/loader/plugins/applyMaterialConfig.js.map +0 -1
- package/loader/plugins/extendedMaterialLoaderPlugin.d.ts +0 -9
- package/loader/plugins/extendedMaterialLoaderPlugin.js +0 -16
- package/loader/plugins/extendedMaterialLoaderPlugin.js.map +0 -1
- package/loader/plugins/index.d.ts +0 -19
- package/loader/plugins/index.js +0 -44
- package/loader/plugins/index.js.map +0 -1
- package/loader/plugins/loaderPlugin.d.ts +0 -24
- package/loader/plugins/loaderPlugin.js +0 -2
- package/loader/plugins/loaderPlugin.js.map +0 -1
- package/loader/plugins/msftLodLoaderPlugin.d.ts +0 -12
- package/loader/plugins/msftLodLoaderPlugin.js +0 -21
- package/loader/plugins/msftLodLoaderPlugin.js.map +0 -1
- package/loader/plugins/telemetryLoaderPlugin.d.ts +0 -12
- package/loader/plugins/telemetryLoaderPlugin.js +0 -36
- package/loader/plugins/telemetryLoaderPlugin.js.map +0 -1
- package/managers/observablesManager.d.ts +0 -66
- package/managers/observablesManager.js +0 -35
- package/managers/observablesManager.js.map +0 -1
- package/managers/sceneManager.d.ts +0 -245
- package/managers/sceneManager.js +0 -1375
- package/managers/sceneManager.js.map +0 -1
- package/managers/telemetryManager.d.ts +0 -78
- package/managers/telemetryManager.js +0 -117
- package/managers/telemetryManager.js.map +0 -1
- package/model/modelAnimation.d.ts +0 -215
- package/model/modelAnimation.js +0 -237
- package/model/modelAnimation.js.map +0 -1
- package/model/viewerModel.d.ts +0 -233
- package/model/viewerModel.js +0 -673
- package/model/viewerModel.js.map +0 -1
- package/optimizer/custom/extended.d.ts +0 -13
- package/optimizer/custom/extended.js +0 -101
- package/optimizer/custom/extended.js.map +0 -1
- package/optimizer/custom/index.d.ts +0 -9
- package/optimizer/custom/index.js +0 -26
- package/optimizer/custom/index.js.map +0 -1
- package/renderOnlyIndex.d.ts +0 -11
- package/renderOnlyIndex.js +0 -18
- package/renderOnlyIndex.js.map +0 -1
- package/templating/eventManager.d.ts +0 -35
- package/templating/eventManager.js +0 -66
- package/templating/eventManager.js.map +0 -1
- package/templating/plugins/hdButtonPlugin.d.ts +0 -9
- package/templating/plugins/hdButtonPlugin.js +0 -22
- package/templating/plugins/hdButtonPlugin.js.map +0 -1
- package/templating/plugins/printButton.d.ts +0 -9
- package/templating/plugins/printButton.js +0 -41
- package/templating/plugins/printButton.js.map +0 -1
- package/templating/templateManager.d.ts +0 -197
- package/templating/templateManager.js +0 -561
- package/templating/templateManager.js.map +0 -1
- package/templating/viewerTemplatePlugin.d.ts +0 -21
- package/templating/viewerTemplatePlugin.js +0 -69
- package/templating/viewerTemplatePlugin.js.map +0 -1
- package/viewer/defaultViewer.d.ts +0 -130
- package/viewer/defaultViewer.js +0 -672
- package/viewer/defaultViewer.js.map +0 -1
- package/viewer/renderOnlyViewer.d.ts +0 -9
- package/viewer/renderOnlyViewer.js +0 -46
- package/viewer/renderOnlyViewer.js.map +0 -1
- package/viewer/viewer.d.ts +0 -258
- package/viewer/viewer.js +0 -783
- package/viewer/viewer.js.map +0 -1
- package/viewer/viewerManager.d.ts +0 -58
- package/viewer/viewerManager.js +0 -91
- package/viewer/viewerManager.js.map +0 -1
- package/viewer/viewerWithTemplate.d.ts +0 -9
- package/viewer/viewerWithTemplate.js +0 -20
- package/viewer/viewerWithTemplate.js.map +0 -1
|
Binary file
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"babylon-viewer.esm.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"babylon-viewer.esm.min.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{v as e,aY as i,s,t,aQ as a,aR as o}from"./index-DRbhrB0j.esm.min.js";import{a as n}from"./spotLight-hg94aMJD.esm.min.js";import{A as l,G as r}from"./glTFLoader-3ZUBWawQ.esm.min.js";import"./rawTexture-ByD8l28R.esm.min.js";import"./assetContainer-DDEska5G.esm.min.js";import"./glTFLoaderAnimation-C9g-SHaJ.esm.min.js";const d="EXT_lights_ies";class h{constructor(e){this.name=d,this._loader=e,this.enabled=this._loader.isExtensionUsed(d)}dispose(){this._loader=null,delete this._lights}onLoading(){const e=this._loader.gltf.extensions;if(e&&e[this.name]){const i=e[this.name];this._lights=i.lights,l.Assign(this._lights)}}loadNodeAsync(a,o,d){return r.LoadExtensionAsync(a,o,this.name,(async(h,_)=>{let m,c;this._loader._allMaterialsDirtyRequired=!0;const f=await this._loader.loadNodeAsync(a,o,(t=>{c=l.Get(h,this._lights,_.light);const a=c.name||t.name;this._loader.babylonScene._blockEntityCollection=!!this._loader._assetContainer,m=new n(a,e.Zero(),e.Backward(),0,1,this._loader.babylonScene),m.angle=Math.PI/2,m.innerAngle=0,m._parentContainer=this._loader._assetContainer,this._loader.babylonScene._blockEntityCollection=!1,c._babylonLight=m,m.falloffType=i.FALLOFF_GLTF,m.diffuse=_.color?s.FromArray(_.color):s.White(),m.intensity=_.multiplier||1,m.range=Number.MAX_VALUE,m.parent=t,this._loader._babylonLights.push(m),r.AddPointerMetadata(m,h),d(t)}));let b;if(c.uri)b=await this._loader.loadUriAsync(a,c,c.uri);else{const e=l.Get(`${a}/bufferView`,this._loader.gltf.bufferViews,c.bufferView);b=await this._loader.loadBufferViewAsync(`/bufferViews/${e.index}`,e)}return m.iesProfileTexture=new t(name+"_iesProfile",this._loader.babylonScene,!0,!1,void 0,null,null,b,!0,void 0,void 0,void 0,void 0,".ies"),f}))}}a(d),o(d,!0,(e=>new h(e)));export{h as EXT_lights_ies};
|
|
2
|
+
//# sourceMappingURL=EXT_lights_ies-CFzvmxxg.esm.min.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"EXT_lights_ies-CFzvmxxg.esm.min.js","sources":["../../../../../dev/loaders/dist/glTF/2.0/Extensions/EXT_lights_ies.js"],"sourcesContent":["import { Vector3 } from \"core/Maths/math.vector\";\nimport { Color3 } from \"core/Maths/math.color\";\nimport { SpotLight } from \"core/Lights/spotLight\";\nimport { Light } from \"core/Lights/light\";\nimport { GLTFLoader, ArrayItem } from \"../glTFLoader\";\nimport { registerGLTFExtension, unregisterGLTFExtension } from \"../glTFLoaderExtensionRegistry\";\nimport { Texture } from \"core/Materials/Textures/texture\";\nconst NAME = \"EXT_lights_ies\";\n/**\n * [Specification](https://github.com/KhronosGroup/glTF/tree/main/extensions/2.0/Vendor/EXT_lights_ies)\n */\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport class EXT_lights_ies {\n /**\n * @internal\n */\n constructor(loader) {\n /**\n * The name of this extension.\n */\n this.name = NAME;\n this._loader = loader;\n this.enabled = this._loader.isExtensionUsed(NAME);\n }\n /** @internal */\n dispose() {\n this._loader = null;\n delete this._lights;\n }\n /** @internal */\n onLoading() {\n const extensions = this._loader.gltf.extensions;\n if (extensions && extensions[this.name]) {\n const extension = extensions[this.name];\n this._lights = extension.lights;\n ArrayItem.Assign(this._lights);\n }\n }\n /**\n * @internal\n */\n loadNodeAsync(context, node, assign) {\n return GLTFLoader.LoadExtensionAsync(context, node, this.name, async (extensionContext, extension) => {\n this._loader._allMaterialsDirtyRequired = true;\n let babylonSpotLight;\n let light;\n const transformNode = await this._loader.loadNodeAsync(context, node, (babylonMesh) => {\n light = ArrayItem.Get(extensionContext, this._lights, extension.light);\n const name = light.name || babylonMesh.name;\n this._loader.babylonScene._blockEntityCollection = !!this._loader._assetContainer;\n babylonSpotLight = new SpotLight(name, Vector3.Zero(), Vector3.Backward(), 0, 1, this._loader.babylonScene);\n babylonSpotLight.angle = Math.PI / 2;\n babylonSpotLight.innerAngle = 0;\n babylonSpotLight._parentContainer = this._loader._assetContainer;\n this._loader.babylonScene._blockEntityCollection = false;\n light._babylonLight = babylonSpotLight;\n babylonSpotLight.falloffType = Light.FALLOFF_GLTF;\n babylonSpotLight.diffuse = extension.color ? Color3.FromArray(extension.color) : Color3.White();\n babylonSpotLight.intensity = extension.multiplier || 1;\n babylonSpotLight.range = Number.MAX_VALUE;\n babylonSpotLight.parent = babylonMesh;\n this._loader._babylonLights.push(babylonSpotLight);\n GLTFLoader.AddPointerMetadata(babylonSpotLight, extensionContext);\n assign(babylonMesh);\n });\n // Load the profile\n let bufferData;\n if (light.uri) {\n bufferData = await this._loader.loadUriAsync(context, light, light.uri);\n }\n else {\n const bufferView = ArrayItem.Get(`${context}/bufferView`, this._loader.gltf.bufferViews, light.bufferView);\n bufferData = await this._loader.loadBufferViewAsync(`/bufferViews/${bufferView.index}`, bufferView);\n }\n babylonSpotLight.iesProfileTexture = new Texture(name + \"_iesProfile\", this._loader.babylonScene, true, false, undefined, null, null, bufferData, true, undefined, undefined, undefined, undefined, \".ies\");\n return transformNode;\n });\n }\n}\nunregisterGLTFExtension(NAME);\nregisterGLTFExtension(NAME, true, (loader) => new EXT_lights_ies(loader));\n//# sourceMappingURL=EXT_lights_ies.js.map"],"names":["NAME","EXT_lights_ies","constructor","loader","this","name","_loader","enabled","isExtensionUsed","dispose","_lights","onLoading","extensions","gltf","extension","lights","ArrayItem","Assign","loadNodeAsync","context","node","assign","GLTFLoader","LoadExtensionAsync","async","extensionContext","babylonSpotLight","light","_allMaterialsDirtyRequired","transformNode","babylonMesh","Get","babylonScene","_blockEntityCollection","_assetContainer","SpotLight","Vector3","Zero","Backward","angle","Math","PI","innerAngle","_parentContainer","_babylonLight","falloffType","Light","FALLOFF_GLTF","diffuse","color","Color3","FromArray","White","intensity","multiplier","range","Number","MAX_VALUE","parent","_babylonLights","push","AddPointerMetadata","bufferData","uri","loadUriAsync","bufferView","bufferViews","loadBufferViewAsync","index","iesProfileTexture","Texture","undefined","unregisterGLTFExtension","registerGLTFExtension"],"mappings":"oUAOA,MAAMA,EAAO,iBAKN,MAAMC,EAIT,WAAAC,CAAYC,GAIRC,KAAKC,KAAOL,EACZI,KAAKE,QAAUH,EACfC,KAAKG,QAAUH,KAAKE,QAAQE,gBAAgBR,EACpD,CAEI,OAAAS,GACIL,KAAKE,QAAU,YACRF,KAAKM,OACpB,CAEI,SAAAC,GACI,MAAMC,EAAaR,KAAKE,QAAQO,KAAKD,WACrC,GAAIA,GAAcA,EAAWR,KAAKC,MAAO,CACrC,MAAMS,EAAYF,EAAWR,KAAKC,MAClCD,KAAKM,QAAUI,EAAUC,OACzBC,EAAUC,OAAOb,KAAKM,QAClC,CACA,CAII,aAAAQ,CAAcC,EAASC,EAAMC,GACzB,OAAOC,EAAWC,mBAAmBJ,EAASC,EAAMhB,KAAKC,MAAMmB,MAAOC,EAAkBX,KAEpF,IAAIY,EACAC,EAFJvB,KAAKE,QAAQsB,4BAA6B,EAG1C,MAAMC,QAAsBzB,KAAKE,QAAQY,cAAcC,EAASC,GAAOU,IACnEH,EAAQX,EAAUe,IAAIN,EAAkBrB,KAAKM,QAASI,EAAUa,OAChE,MAAMtB,EAAOsB,EAAMtB,MAAQyB,EAAYzB,KACvCD,KAAKE,QAAQ0B,aAAaC,yBAA2B7B,KAAKE,QAAQ4B,gBAClER,EAAmB,IAAIS,EAAU9B,EAAM+B,EAAQC,OAAQD,EAAQE,WAAY,EAAG,EAAGlC,KAAKE,QAAQ0B,cAC9FN,EAAiBa,MAAQC,KAAKC,GAAK,EACnCf,EAAiBgB,WAAa,EAC9BhB,EAAiBiB,iBAAmBvC,KAAKE,QAAQ4B,gBACjD9B,KAAKE,QAAQ0B,aAAaC,wBAAyB,EACnDN,EAAMiB,cAAgBlB,EACtBA,EAAiBmB,YAAcC,EAAMC,aACrCrB,EAAiBsB,QAAUlC,EAAUmC,MAAQC,EAAOC,UAAUrC,EAAUmC,OAASC,EAAOE,QACxF1B,EAAiB2B,UAAYvC,EAAUwC,YAAc,EACrD5B,EAAiB6B,MAAQC,OAAOC,UAChC/B,EAAiBgC,OAAS5B,EAC1B1B,KAAKE,QAAQqD,eAAeC,KAAKlC,GACjCJ,EAAWuC,mBAAmBnC,EAAkBD,GAChDJ,EAAOS,EAAY,IAGvB,IAAIgC,EACJ,GAAInC,EAAMoC,IACND,QAAmB1D,KAAKE,QAAQ0D,aAAa7C,EAASQ,EAAOA,EAAMoC,SAElE,CACD,MAAME,EAAajD,EAAUe,IAAI,GAAGZ,eAAsBf,KAAKE,QAAQO,KAAKqD,YAAavC,EAAMsC,YAC/FH,QAAmB1D,KAAKE,QAAQ6D,oBAAoB,gBAAgBF,EAAWG,QAASH,EACxG,CAEY,OADAvC,EAAiB2C,kBAAoB,IAAIC,EAAQjE,KAAO,cAAeD,KAAKE,QAAQ0B,cAAc,GAAM,OAAOuC,EAAW,KAAM,KAAMT,GAAY,OAAMS,OAAWA,OAAWA,OAAWA,EAAW,QAC7L1C,CAAa,GAEhC,EAEA2C,EAAwBxE,GACxByE,EAAsBzE,GAAM,GAAOG,GAAW,IAAIF,EAAeE"}
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
import { v as Vector3, aY as Light, s as Color3, t as Texture, aQ as unregisterGLTFExtension, aR as registerGLTFExtension } from './index-Cw2FZpYY.esm.js';
|
|
2
|
+
import { a as SpotLight } from './spotLight-CmDQEB8V.esm.js';
|
|
3
|
+
import { A as ArrayItem, G as GLTFLoader } from './glTFLoader-DVoAJl_A.esm.js';
|
|
4
|
+
import './rawTexture-DGz22uaX.esm.js';
|
|
5
|
+
import './assetContainer-QD3gUzyx.esm.js';
|
|
6
|
+
import './glTFLoaderAnimation-By7yP8sQ.esm.js';
|
|
7
|
+
|
|
8
|
+
const NAME = "EXT_lights_ies";
|
|
9
|
+
/**
|
|
10
|
+
* [Specification](https://github.com/KhronosGroup/glTF/tree/main/extensions/2.0/Vendor/EXT_lights_ies)
|
|
11
|
+
*/
|
|
12
|
+
// eslint-disable-next-line @typescript-eslint/naming-convention
|
|
13
|
+
class EXT_lights_ies {
|
|
14
|
+
/**
|
|
15
|
+
* @internal
|
|
16
|
+
*/
|
|
17
|
+
constructor(loader) {
|
|
18
|
+
/**
|
|
19
|
+
* The name of this extension.
|
|
20
|
+
*/
|
|
21
|
+
this.name = NAME;
|
|
22
|
+
this._loader = loader;
|
|
23
|
+
this.enabled = this._loader.isExtensionUsed(NAME);
|
|
24
|
+
}
|
|
25
|
+
/** @internal */
|
|
26
|
+
dispose() {
|
|
27
|
+
this._loader = null;
|
|
28
|
+
delete this._lights;
|
|
29
|
+
}
|
|
30
|
+
/** @internal */
|
|
31
|
+
onLoading() {
|
|
32
|
+
const extensions = this._loader.gltf.extensions;
|
|
33
|
+
if (extensions && extensions[this.name]) {
|
|
34
|
+
const extension = extensions[this.name];
|
|
35
|
+
this._lights = extension.lights;
|
|
36
|
+
ArrayItem.Assign(this._lights);
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* @internal
|
|
41
|
+
*/
|
|
42
|
+
loadNodeAsync(context, node, assign) {
|
|
43
|
+
return GLTFLoader.LoadExtensionAsync(context, node, this.name, async (extensionContext, extension) => {
|
|
44
|
+
this._loader._allMaterialsDirtyRequired = true;
|
|
45
|
+
let babylonSpotLight;
|
|
46
|
+
let light;
|
|
47
|
+
const transformNode = await this._loader.loadNodeAsync(context, node, (babylonMesh) => {
|
|
48
|
+
light = ArrayItem.Get(extensionContext, this._lights, extension.light);
|
|
49
|
+
const name = light.name || babylonMesh.name;
|
|
50
|
+
this._loader.babylonScene._blockEntityCollection = !!this._loader._assetContainer;
|
|
51
|
+
babylonSpotLight = new SpotLight(name, Vector3.Zero(), Vector3.Backward(), 0, 1, this._loader.babylonScene);
|
|
52
|
+
babylonSpotLight.angle = Math.PI / 2;
|
|
53
|
+
babylonSpotLight.innerAngle = 0;
|
|
54
|
+
babylonSpotLight._parentContainer = this._loader._assetContainer;
|
|
55
|
+
this._loader.babylonScene._blockEntityCollection = false;
|
|
56
|
+
light._babylonLight = babylonSpotLight;
|
|
57
|
+
babylonSpotLight.falloffType = Light.FALLOFF_GLTF;
|
|
58
|
+
babylonSpotLight.diffuse = extension.color ? Color3.FromArray(extension.color) : Color3.White();
|
|
59
|
+
babylonSpotLight.intensity = extension.multiplier || 1;
|
|
60
|
+
babylonSpotLight.range = Number.MAX_VALUE;
|
|
61
|
+
babylonSpotLight.parent = babylonMesh;
|
|
62
|
+
this._loader._babylonLights.push(babylonSpotLight);
|
|
63
|
+
GLTFLoader.AddPointerMetadata(babylonSpotLight, extensionContext);
|
|
64
|
+
assign(babylonMesh);
|
|
65
|
+
});
|
|
66
|
+
// Load the profile
|
|
67
|
+
let bufferData;
|
|
68
|
+
if (light.uri) {
|
|
69
|
+
bufferData = await this._loader.loadUriAsync(context, light, light.uri);
|
|
70
|
+
}
|
|
71
|
+
else {
|
|
72
|
+
const bufferView = ArrayItem.Get(`${context}/bufferView`, this._loader.gltf.bufferViews, light.bufferView);
|
|
73
|
+
bufferData = await this._loader.loadBufferViewAsync(`/bufferViews/${bufferView.index}`, bufferView);
|
|
74
|
+
}
|
|
75
|
+
babylonSpotLight.iesProfileTexture = new Texture(name + "_iesProfile", this._loader.babylonScene, true, false, undefined, null, null, bufferData, true, undefined, undefined, undefined, undefined, ".ies");
|
|
76
|
+
return transformNode;
|
|
77
|
+
});
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
unregisterGLTFExtension(NAME);
|
|
81
|
+
registerGLTFExtension(NAME, true, (loader) => new EXT_lights_ies(loader));
|
|
82
|
+
|
|
83
|
+
export { EXT_lights_ies };
|
|
84
|
+
//# sourceMappingURL=EXT_lights_ies-cyFdY7yl.esm.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"EXT_lights_ies-cyFdY7yl.esm.js","sources":["../../../../../dev/loaders/dist/glTF/2.0/Extensions/EXT_lights_ies.js"],"sourcesContent":["import { Vector3 } from \"core/Maths/math.vector\";\nimport { Color3 } from \"core/Maths/math.color\";\nimport { SpotLight } from \"core/Lights/spotLight\";\nimport { Light } from \"core/Lights/light\";\nimport { GLTFLoader, ArrayItem } from \"../glTFLoader\";\nimport { registerGLTFExtension, unregisterGLTFExtension } from \"../glTFLoaderExtensionRegistry\";\nimport { Texture } from \"core/Materials/Textures/texture\";\nconst NAME = \"EXT_lights_ies\";\n/**\n * [Specification](https://github.com/KhronosGroup/glTF/tree/main/extensions/2.0/Vendor/EXT_lights_ies)\n */\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport class EXT_lights_ies {\n /**\n * @internal\n */\n constructor(loader) {\n /**\n * The name of this extension.\n */\n this.name = NAME;\n this._loader = loader;\n this.enabled = this._loader.isExtensionUsed(NAME);\n }\n /** @internal */\n dispose() {\n this._loader = null;\n delete this._lights;\n }\n /** @internal */\n onLoading() {\n const extensions = this._loader.gltf.extensions;\n if (extensions && extensions[this.name]) {\n const extension = extensions[this.name];\n this._lights = extension.lights;\n ArrayItem.Assign(this._lights);\n }\n }\n /**\n * @internal\n */\n loadNodeAsync(context, node, assign) {\n return GLTFLoader.LoadExtensionAsync(context, node, this.name, async (extensionContext, extension) => {\n this._loader._allMaterialsDirtyRequired = true;\n let babylonSpotLight;\n let light;\n const transformNode = await this._loader.loadNodeAsync(context, node, (babylonMesh) => {\n light = ArrayItem.Get(extensionContext, this._lights, extension.light);\n const name = light.name || babylonMesh.name;\n this._loader.babylonScene._blockEntityCollection = !!this._loader._assetContainer;\n babylonSpotLight = new SpotLight(name, Vector3.Zero(), Vector3.Backward(), 0, 1, this._loader.babylonScene);\n babylonSpotLight.angle = Math.PI / 2;\n babylonSpotLight.innerAngle = 0;\n babylonSpotLight._parentContainer = this._loader._assetContainer;\n this._loader.babylonScene._blockEntityCollection = false;\n light._babylonLight = babylonSpotLight;\n babylonSpotLight.falloffType = Light.FALLOFF_GLTF;\n babylonSpotLight.diffuse = extension.color ? Color3.FromArray(extension.color) : Color3.White();\n babylonSpotLight.intensity = extension.multiplier || 1;\n babylonSpotLight.range = Number.MAX_VALUE;\n babylonSpotLight.parent = babylonMesh;\n this._loader._babylonLights.push(babylonSpotLight);\n GLTFLoader.AddPointerMetadata(babylonSpotLight, extensionContext);\n assign(babylonMesh);\n });\n // Load the profile\n let bufferData;\n if (light.uri) {\n bufferData = await this._loader.loadUriAsync(context, light, light.uri);\n }\n else {\n const bufferView = ArrayItem.Get(`${context}/bufferView`, this._loader.gltf.bufferViews, light.bufferView);\n bufferData = await this._loader.loadBufferViewAsync(`/bufferViews/${bufferView.index}`, bufferView);\n }\n babylonSpotLight.iesProfileTexture = new Texture(name + \"_iesProfile\", this._loader.babylonScene, true, false, undefined, null, null, bufferData, true, undefined, undefined, undefined, undefined, \".ies\");\n return transformNode;\n });\n }\n}\nunregisterGLTFExtension(NAME);\nregisterGLTFExtension(NAME, true, (loader) => new EXT_lights_ies(loader));\n//# sourceMappingURL=EXT_lights_ies.js.map"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{aO as e,C as t,a1 as s,ac as n,a5 as a,aP as r,S as i,aQ as o,aR as l}from"./index-DRbhrB0j.esm.min.js";import{_ as h}from"./environmentTextureTools-BjmCbfSf.esm.min.js";import{G as c,A as m}from"./glTFLoader-3ZUBWawQ.esm.min.js";import"./dumpTools-C8ZzlWEh.esm.min.js";import"./rawTexture-ByD8l28R.esm.min.js";import"./assetContainer-DDEska5G.esm.min.js";import"./glTFLoaderAnimation-C9g-SHaJ.esm.min.js";class d extends e{constructor(e,s,n,a=t.TEXTUREFORMAT_RGBA,r=t.TEXTURETYPE_UNSIGNED_BYTE,i=!1,o=!1,l=t.TEXTURE_TRILINEAR_SAMPLINGMODE,h=null){super("",e),this._texture=e.getEngine().createRawCubeTexture(s,n,a,r,i,o,l,h)}update(e,t,s,n,a=null){this._texture.getEngine().updateRawCubeTexture(this._texture,e,t,s,n,a)}updateRGBDAsync(e,t=null,s=.8,n=0){return h(this._texture,e,t,s,n).then((()=>{}))}clone(){return s.Clone((()=>{const e=this.getScene(),t=this._texture,s=new d(e,t._bufferViewArray,t.width,t.format,t.type,t.generateMipMaps,t.invertY,t.samplingMode,t._compression);return 13===t.source&&s.updateRGBDAsync(t._bufferViewArrayArray,t._sphericalPolynomial,t._lodGenerationScale,t._lodGenerationOffset),s}),this)}}const u="EXT_lights_image_based";class g{constructor(e){this.name=u,this._loader=e,this.enabled=this._loader.isExtensionUsed(u)}dispose(){this._loader=null,delete this._lights}onLoading(){const e=this._loader.gltf.extensions;if(e&&e[this.name]){const t=e[this.name];this._lights=t.lights}}loadSceneAsync(e,t){return c.LoadExtensionAsync(e,t,this.name,((s,n)=>{this._loader._allMaterialsDirtyRequired=!0;const a=new Array;a.push(this._loader.loadSceneAsync(e,t)),this._loader.logOpen(`${s}`);const r=m.Get(`${s}/light`,this._lights,n.light);return a.push(this._loadLightAsync(`/extensions/${this.name}/lights/${n.light}`,r).then((e=>{this._loader.babylonScene.environmentTexture=e}))),this._loader.logClose(),Promise.all(a).then((()=>{}))}))}_loadLightAsync(e,t){if(!t._loaded){const s=new Array;this._loader.logOpen(`${e}`);const o=new Array(t.specularImages.length);for(let n=0;n<t.specularImages.length;n++){const a=t.specularImages[n];o[n]=new Array(a.length);for(let t=0;t<a.length;t++){const r=`${e}/specularImages/${n}/${t}`;this._loader.logOpen(`${r}`);const i=a[t],l=m.Get(r,this._loader.gltf.images,i);s.push(this._loader.loadImageAsync(`/images/${i}`,l).then((e=>{o[n][t]=e}))),this._loader.logClose()}}this._loader.logClose(),t._loaded=Promise.all(s).then((()=>{const s=new d(this._loader.babylonScene,null,t.specularImageSize);if(s.name=t.name||"environment",t._babylonTexture=s,null!=t.intensity&&(s.level=t.intensity),t.rotation){let e=n.FromArray(t.rotation);this._loader.babylonScene.useRightHandedSystem||(e=n.Inverse(e)),a.FromQuaternionToRef(e,s.getReflectionTextureMatrix())}if(!t.irradianceCoefficients)throw new Error(`${e}: Irradiance coefficients are missing`);const l=r.FromArray(t.irradianceCoefficients);l.scaleInPlace(t.intensity),l.convertIrradianceToLambertianRadiance();const h=i.FromHarmonics(l),c=(o.length-1)/Math.log2(t.specularImageSize);return s.updateRGBDAsync(o,h,c)}))}return t._loaded.then((()=>t._babylonTexture))}}o(u),l(u,!0,(e=>new g(e)));export{g as EXT_lights_image_based};
|
|
2
|
+
//# sourceMappingURL=EXT_lights_image_based-BNmSqx40.esm.min.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"EXT_lights_image_based-BNmSqx40.esm.min.js","sources":["../../../../../dev/core/dist/Materials/Textures/rawCubeTexture.js","../../../../../dev/loaders/dist/glTF/2.0/Extensions/EXT_lights_image_based.js"],"sourcesContent":["import { SerializationHelper } from \"../../Misc/decorators.serialization\";\nimport { _UpdateRGBDAsync as UpdateRGBDAsyncEnvTools } from \"../../Misc/environmentTextureTools\";\nimport { CubeTexture } from \"./cubeTexture\";\nimport { Constants } from \"../../Engines/constants\";\n/**\n * Raw cube texture where the raw buffers are passed in\n */\nexport class RawCubeTexture extends CubeTexture {\n /**\n * Creates a cube texture where the raw buffers are passed in.\n * @param scene defines the scene the texture is attached to\n * @param data defines the array of data to use to create each face\n * @param size defines the size of the textures\n * @param format defines the format of the data\n * @param type defines the type of the data (like Engine.TEXTURETYPE_UNSIGNED_BYTE)\n * @param generateMipMaps defines if the engine should generate the mip levels\n * @param invertY defines if data must be stored with Y axis inverted\n * @param samplingMode defines the required sampling mode (like Texture.NEAREST_SAMPLINGMODE)\n * @param compression defines the compression used (null by default)\n */\n constructor(scene, data, size, format = Constants.TEXTUREFORMAT_RGBA, type = Constants.TEXTURETYPE_UNSIGNED_BYTE, generateMipMaps = false, invertY = false, samplingMode = Constants.TEXTURE_TRILINEAR_SAMPLINGMODE, compression = null) {\n super(\"\", scene);\n this._texture = scene.getEngine().createRawCubeTexture(data, size, format, type, generateMipMaps, invertY, samplingMode, compression);\n }\n /**\n * Updates the raw cube texture.\n * @param data defines the data to store\n * @param format defines the data format\n * @param type defines the type fo the data (Engine.TEXTURETYPE_UNSIGNED_BYTE by default)\n * @param invertY defines if data must be stored with Y axis inverted\n * @param compression defines the compression used (null by default)\n */\n update(data, format, type, invertY, compression = null) {\n this._texture.getEngine().updateRawCubeTexture(this._texture, data, format, type, invertY, compression);\n }\n /**\n * Updates a raw cube texture with RGBD encoded data.\n * @param data defines the array of data [mipmap][face] to use to create each face\n * @param sphericalPolynomial defines the spherical polynomial for irradiance\n * @param lodScale defines the scale applied to environment texture. This manages the range of LOD level used for IBL according to the roughness\n * @param lodOffset defines the offset applied to environment texture. This manages first LOD level used for IBL according to the roughness\n * @returns a promise that resolves when the operation is complete\n */\n updateRGBDAsync(data, sphericalPolynomial = null, lodScale = 0.8, lodOffset = 0) {\n return UpdateRGBDAsyncEnvTools(this._texture, data, sphericalPolynomial, lodScale, lodOffset).then(() => { });\n }\n /**\n * Clones the raw cube texture.\n * @returns a new cube texture\n */\n clone() {\n return SerializationHelper.Clone(() => {\n const scene = this.getScene();\n const internalTexture = this._texture;\n const texture = new RawCubeTexture(scene, internalTexture._bufferViewArray, internalTexture.width, internalTexture.format, internalTexture.type, internalTexture.generateMipMaps, internalTexture.invertY, internalTexture.samplingMode, internalTexture._compression);\n if (internalTexture.source === 13 /* InternalTextureSource.CubeRawRGBD */) {\n texture.updateRGBDAsync(internalTexture._bufferViewArrayArray, internalTexture._sphericalPolynomial, internalTexture._lodGenerationScale, internalTexture._lodGenerationOffset);\n }\n return texture;\n }, this);\n }\n}\n//# sourceMappingURL=rawCubeTexture.js.map","import { SphericalHarmonics, SphericalPolynomial } from \"core/Maths/sphericalPolynomial\";\nimport { Quaternion, Matrix } from \"core/Maths/math.vector\";\nimport { RawCubeTexture } from \"core/Materials/Textures/rawCubeTexture\";\nimport { GLTFLoader, ArrayItem } from \"../glTFLoader\";\nimport { registerGLTFExtension, unregisterGLTFExtension } from \"../glTFLoaderExtensionRegistry\";\nconst NAME = \"EXT_lights_image_based\";\n/**\n * [Specification](https://github.com/KhronosGroup/glTF/blob/main/extensions/2.0/Vendor/EXT_lights_image_based/README.md)\n */\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport class EXT_lights_image_based {\n /**\n * @internal\n */\n constructor(loader) {\n /**\n * The name of this extension.\n */\n this.name = NAME;\n this._loader = loader;\n this.enabled = this._loader.isExtensionUsed(NAME);\n }\n /** @internal */\n dispose() {\n this._loader = null;\n delete this._lights;\n }\n /** @internal */\n onLoading() {\n const extensions = this._loader.gltf.extensions;\n if (extensions && extensions[this.name]) {\n const extension = extensions[this.name];\n this._lights = extension.lights;\n }\n }\n /**\n * @internal\n */\n loadSceneAsync(context, scene) {\n return GLTFLoader.LoadExtensionAsync(context, scene, this.name, (extensionContext, extension) => {\n this._loader._allMaterialsDirtyRequired = true;\n const promises = new Array();\n promises.push(this._loader.loadSceneAsync(context, scene));\n this._loader.logOpen(`${extensionContext}`);\n const light = ArrayItem.Get(`${extensionContext}/light`, this._lights, extension.light);\n promises.push(this._loadLightAsync(`/extensions/${this.name}/lights/${extension.light}`, light).then((texture) => {\n this._loader.babylonScene.environmentTexture = texture;\n }));\n this._loader.logClose();\n return Promise.all(promises).then(() => { });\n });\n }\n _loadLightAsync(context, light) {\n if (!light._loaded) {\n const promises = new Array();\n this._loader.logOpen(`${context}`);\n const imageData = new Array(light.specularImages.length);\n for (let mipmap = 0; mipmap < light.specularImages.length; mipmap++) {\n const faces = light.specularImages[mipmap];\n imageData[mipmap] = new Array(faces.length);\n for (let face = 0; face < faces.length; face++) {\n const specularImageContext = `${context}/specularImages/${mipmap}/${face}`;\n this._loader.logOpen(`${specularImageContext}`);\n const index = faces[face];\n const image = ArrayItem.Get(specularImageContext, this._loader.gltf.images, index);\n promises.push(this._loader.loadImageAsync(`/images/${index}`, image).then((data) => {\n imageData[mipmap][face] = data;\n }));\n this._loader.logClose();\n }\n }\n this._loader.logClose();\n light._loaded = Promise.all(promises).then(() => {\n const babylonTexture = new RawCubeTexture(this._loader.babylonScene, null, light.specularImageSize);\n babylonTexture.name = light.name || \"environment\";\n light._babylonTexture = babylonTexture;\n if (light.intensity != undefined) {\n babylonTexture.level = light.intensity;\n }\n if (light.rotation) {\n let rotation = Quaternion.FromArray(light.rotation);\n // Invert the rotation so that positive rotation is counter-clockwise.\n if (!this._loader.babylonScene.useRightHandedSystem) {\n rotation = Quaternion.Inverse(rotation);\n }\n Matrix.FromQuaternionToRef(rotation, babylonTexture.getReflectionTextureMatrix());\n }\n if (!light.irradianceCoefficients) {\n throw new Error(`${context}: Irradiance coefficients are missing`);\n }\n const sphericalHarmonics = SphericalHarmonics.FromArray(light.irradianceCoefficients);\n sphericalHarmonics.scaleInPlace(light.intensity);\n sphericalHarmonics.convertIrradianceToLambertianRadiance();\n const sphericalPolynomial = SphericalPolynomial.FromHarmonics(sphericalHarmonics);\n // Compute the lod generation scale to fit exactly to the number of levels available.\n const lodGenerationScale = (imageData.length - 1) / Math.log2(light.specularImageSize);\n return babylonTexture.updateRGBDAsync(imageData, sphericalPolynomial, lodGenerationScale);\n });\n }\n return light._loaded.then(() => {\n return light._babylonTexture;\n });\n }\n}\nunregisterGLTFExtension(NAME);\nregisterGLTFExtension(NAME, true, (loader) => new EXT_lights_image_based(loader));\n//# sourceMappingURL=EXT_lights_image_based.js.map"],"names":["RawCubeTexture","CubeTexture","constructor","scene","data","size","format","Constants","TEXTUREFORMAT_RGBA","type","TEXTURETYPE_UNSIGNED_BYTE","generateMipMaps","invertY","samplingMode","TEXTURE_TRILINEAR_SAMPLINGMODE","compression","super","this","_texture","getEngine","createRawCubeTexture","update","updateRawCubeTexture","updateRGBDAsync","sphericalPolynomial","lodScale","lodOffset","UpdateRGBDAsyncEnvTools","then","clone","SerializationHelper","Clone","getScene","internalTexture","texture","_bufferViewArray","width","_compression","source","_bufferViewArrayArray","_sphericalPolynomial","_lodGenerationScale","_lodGenerationOffset","NAME","EXT_lights_image_based","loader","name","_loader","enabled","isExtensionUsed","dispose","_lights","onLoading","extensions","gltf","extension","lights","loadSceneAsync","context","GLTFLoader","LoadExtensionAsync","extensionContext","_allMaterialsDirtyRequired","promises","Array","push","logOpen","light","ArrayItem","Get","_loadLightAsync","babylonScene","environmentTexture","logClose","Promise","all","_loaded","imageData","specularImages","length","mipmap","faces","face","specularImageContext","index","image","images","loadImageAsync","babylonTexture","specularImageSize","_babylonTexture","undefined","intensity","level","rotation","Quaternion","FromArray","useRightHandedSystem","Inverse","Matrix","FromQuaternionToRef","getReflectionTextureMatrix","irradianceCoefficients","Error","sphericalHarmonics","SphericalHarmonics","scaleInPlace","convertIrradianceToLambertianRadiance","SphericalPolynomial","FromHarmonics","lodGenerationScale","Math","log2","unregisterGLTFExtension","registerGLTFExtension"],"mappings":"6ZAOO,MAAMA,UAAuBC,EAahC,WAAAC,CAAYC,EAAOC,EAAMC,EAAMC,EAASC,EAAUC,mBAAoBC,EAAOF,EAAUG,0BAA2BC,GAAkB,EAAOC,GAAU,EAAOC,EAAeN,EAAUO,+BAAgCC,EAAc,MAC/NC,MAAM,GAAIb,GACVc,KAAKC,SAAWf,EAAMgB,YAAYC,qBAAqBhB,EAAMC,EAAMC,EAAQG,EAAME,EAAiBC,EAASC,EAAcE,EACjI,CASI,MAAAM,CAAOjB,EAAME,EAAQG,EAAMG,EAASG,EAAc,MAC9CE,KAAKC,SAASC,YAAYG,qBAAqBL,KAAKC,SAAUd,EAAME,EAAQG,EAAMG,EAASG,EACnG,CASI,eAAAQ,CAAgBnB,EAAMoB,EAAsB,KAAMC,EAAW,GAAKC,EAAY,GAC1E,OAAOC,EAAwBV,KAAKC,SAAUd,EAAMoB,EAAqBC,EAAUC,GAAWE,MAAK,QAC3G,CAKI,KAAAC,GACI,OAAOC,EAAoBC,OAAM,KAC7B,MAAM5B,EAAQc,KAAKe,WACbC,EAAkBhB,KAAKC,SACvBgB,EAAU,IAAIlC,EAAeG,EAAO8B,EAAgBE,iBAAkBF,EAAgBG,MAAOH,EAAgB3B,OAAQ2B,EAAgBxB,KAAMwB,EAAgBtB,gBAAiBsB,EAAgBrB,QAASqB,EAAgBpB,aAAcoB,EAAgBI,cAIzP,OAH+B,KAA3BJ,EAAgBK,QAChBJ,EAAQX,gBAAgBU,EAAgBM,sBAAuBN,EAAgBO,qBAAsBP,EAAgBQ,oBAAqBR,EAAgBS,sBAEvJR,CAAO,GACfjB,KACX,ECvDA,MAAM0B,EAAO,yBAKN,MAAMC,EAIT,WAAA1C,CAAY2C,GAIR5B,KAAK6B,KAAOH,EACZ1B,KAAK8B,QAAUF,EACf5B,KAAK+B,QAAU/B,KAAK8B,QAAQE,gBAAgBN,EACpD,CAEI,OAAAO,GACIjC,KAAK8B,QAAU,YACR9B,KAAKkC,OACpB,CAEI,SAAAC,GACI,MAAMC,EAAapC,KAAK8B,QAAQO,KAAKD,WACrC,GAAIA,GAAcA,EAAWpC,KAAK6B,MAAO,CACrC,MAAMS,EAAYF,EAAWpC,KAAK6B,MAClC7B,KAAKkC,QAAUI,EAAUC,MACrC,CACA,CAII,cAAAC,CAAeC,EAASvD,GACpB,OAAOwD,EAAWC,mBAAmBF,EAASvD,EAAOc,KAAK6B,MAAM,CAACe,EAAkBN,KAC/EtC,KAAK8B,QAAQe,4BAA6B,EAC1C,MAAMC,EAAW,IAAIC,MACrBD,EAASE,KAAKhD,KAAK8B,QAAQU,eAAeC,EAASvD,IACnDc,KAAK8B,QAAQmB,QAAQ,GAAGL,KACxB,MAAMM,EAAQC,EAAUC,IAAI,GAAGR,UAA0B5C,KAAKkC,QAASI,EAAUY,OAKjF,OAJAJ,EAASE,KAAKhD,KAAKqD,gBAAgB,eAAerD,KAAK6B,eAAeS,EAAUY,QAASA,GAAOvC,MAAMM,IAClGjB,KAAK8B,QAAQwB,aAAaC,mBAAqBtC,CAAO,KAE1DjB,KAAK8B,QAAQ0B,WACNC,QAAQC,IAAIZ,GAAUnC,MAAK,QAAU,GAExD,CACI,eAAA0C,CAAgBZ,EAASS,GACrB,IAAKA,EAAMS,QAAS,CAChB,MAAMb,EAAW,IAAIC,MACrB/C,KAAK8B,QAAQmB,QAAQ,GAAGR,KACxB,MAAMmB,EAAY,IAAIb,MAAMG,EAAMW,eAAeC,QACjD,IAAK,IAAIC,EAAS,EAAGA,EAASb,EAAMW,eAAeC,OAAQC,IAAU,CACjE,MAAMC,EAAQd,EAAMW,eAAeE,GACnCH,EAAUG,GAAU,IAAIhB,MAAMiB,EAAMF,QACpC,IAAK,IAAIG,EAAO,EAAGA,EAAOD,EAAMF,OAAQG,IAAQ,CAC5C,MAAMC,EAAuB,GAAGzB,oBAA0BsB,KAAUE,IACpEjE,KAAK8B,QAAQmB,QAAQ,GAAGiB,KACxB,MAAMC,EAAQH,EAAMC,GACdG,EAAQjB,EAAUC,IAAIc,EAAsBlE,KAAK8B,QAAQO,KAAKgC,OAAQF,GAC5ErB,EAASE,KAAKhD,KAAK8B,QAAQwC,eAAe,WAAWH,IAASC,GAAOzD,MAAMxB,IACvEyE,EAAUG,GAAQE,GAAQ9E,CAAI,KAElCa,KAAK8B,QAAQ0B,UACjC,CACA,CACYxD,KAAK8B,QAAQ0B,WACbN,EAAMS,QAAUF,QAAQC,IAAIZ,GAAUnC,MAAK,KACvC,MAAM4D,EAAiB,IAAIxF,EAAeiB,KAAK8B,QAAQwB,aAAc,KAAMJ,EAAMsB,mBAMjF,GALAD,EAAe1C,KAAOqB,EAAMrB,MAAQ,cACpCqB,EAAMuB,gBAAkBF,EACDG,MAAnBxB,EAAMyB,YACNJ,EAAeK,MAAQ1B,EAAMyB,WAE7BzB,EAAM2B,SAAU,CAChB,IAAIA,EAAWC,EAAWC,UAAU7B,EAAM2B,UAErC7E,KAAK8B,QAAQwB,aAAa0B,uBAC3BH,EAAWC,EAAWG,QAAQJ,IAElCK,EAAOC,oBAAoBN,EAAUN,EAAea,6BACxE,CACgB,IAAKlC,EAAMmC,uBACP,MAAM,IAAIC,MAAM,GAAG7C,0CAEvB,MAAM8C,EAAqBC,EAAmBT,UAAU7B,EAAMmC,wBAC9DE,EAAmBE,aAAavC,EAAMyB,WACtCY,EAAmBG,wCACnB,MAAMnF,EAAsBoF,EAAoBC,cAAcL,GAExDM,GAAsBjC,EAAUE,OAAS,GAAKgC,KAAKC,KAAK7C,EAAMsB,mBACpE,OAAOD,EAAejE,gBAAgBsD,EAAWrD,EAAqBsF,EAAmB,GAEzG,CACQ,OAAO3C,EAAMS,QAAQhD,MAAK,IACfuC,EAAMuB,iBAEzB,EAEAuB,EAAwBtE,GACxBuE,EAAsBvE,GAAM,GAAOE,GAAW,IAAID,EAAuBC"}
|
|
@@ -0,0 +1,171 @@
|
|
|
1
|
+
import { aO as CubeTexture, C as Constants, a1 as SerializationHelper, ac as Quaternion, a5 as Matrix, aP as SphericalHarmonics, S as SphericalPolynomial, aQ as unregisterGLTFExtension, aR as registerGLTFExtension } from './index-Cw2FZpYY.esm.js';
|
|
2
|
+
import { _ as _UpdateRGBDAsync } from './environmentTextureTools-DYbFmR95.esm.js';
|
|
3
|
+
import { G as GLTFLoader, A as ArrayItem } from './glTFLoader-DVoAJl_A.esm.js';
|
|
4
|
+
import './dumpTools-C3vcqEdz.esm.js';
|
|
5
|
+
import './rawTexture-DGz22uaX.esm.js';
|
|
6
|
+
import './assetContainer-QD3gUzyx.esm.js';
|
|
7
|
+
import './glTFLoaderAnimation-By7yP8sQ.esm.js';
|
|
8
|
+
|
|
9
|
+
/**
|
|
10
|
+
* Raw cube texture where the raw buffers are passed in
|
|
11
|
+
*/
|
|
12
|
+
class RawCubeTexture extends CubeTexture {
|
|
13
|
+
/**
|
|
14
|
+
* Creates a cube texture where the raw buffers are passed in.
|
|
15
|
+
* @param scene defines the scene the texture is attached to
|
|
16
|
+
* @param data defines the array of data to use to create each face
|
|
17
|
+
* @param size defines the size of the textures
|
|
18
|
+
* @param format defines the format of the data
|
|
19
|
+
* @param type defines the type of the data (like Engine.TEXTURETYPE_UNSIGNED_BYTE)
|
|
20
|
+
* @param generateMipMaps defines if the engine should generate the mip levels
|
|
21
|
+
* @param invertY defines if data must be stored with Y axis inverted
|
|
22
|
+
* @param samplingMode defines the required sampling mode (like Texture.NEAREST_SAMPLINGMODE)
|
|
23
|
+
* @param compression defines the compression used (null by default)
|
|
24
|
+
*/
|
|
25
|
+
constructor(scene, data, size, format = Constants.TEXTUREFORMAT_RGBA, type = Constants.TEXTURETYPE_UNSIGNED_BYTE, generateMipMaps = false, invertY = false, samplingMode = Constants.TEXTURE_TRILINEAR_SAMPLINGMODE, compression = null) {
|
|
26
|
+
super("", scene);
|
|
27
|
+
this._texture = scene.getEngine().createRawCubeTexture(data, size, format, type, generateMipMaps, invertY, samplingMode, compression);
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Updates the raw cube texture.
|
|
31
|
+
* @param data defines the data to store
|
|
32
|
+
* @param format defines the data format
|
|
33
|
+
* @param type defines the type fo the data (Engine.TEXTURETYPE_UNSIGNED_BYTE by default)
|
|
34
|
+
* @param invertY defines if data must be stored with Y axis inverted
|
|
35
|
+
* @param compression defines the compression used (null by default)
|
|
36
|
+
*/
|
|
37
|
+
update(data, format, type, invertY, compression = null) {
|
|
38
|
+
this._texture.getEngine().updateRawCubeTexture(this._texture, data, format, type, invertY, compression);
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Updates a raw cube texture with RGBD encoded data.
|
|
42
|
+
* @param data defines the array of data [mipmap][face] to use to create each face
|
|
43
|
+
* @param sphericalPolynomial defines the spherical polynomial for irradiance
|
|
44
|
+
* @param lodScale defines the scale applied to environment texture. This manages the range of LOD level used for IBL according to the roughness
|
|
45
|
+
* @param lodOffset defines the offset applied to environment texture. This manages first LOD level used for IBL according to the roughness
|
|
46
|
+
* @returns a promise that resolves when the operation is complete
|
|
47
|
+
*/
|
|
48
|
+
updateRGBDAsync(data, sphericalPolynomial = null, lodScale = 0.8, lodOffset = 0) {
|
|
49
|
+
return _UpdateRGBDAsync(this._texture, data, sphericalPolynomial, lodScale, lodOffset).then(() => { });
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* Clones the raw cube texture.
|
|
53
|
+
* @returns a new cube texture
|
|
54
|
+
*/
|
|
55
|
+
clone() {
|
|
56
|
+
return SerializationHelper.Clone(() => {
|
|
57
|
+
const scene = this.getScene();
|
|
58
|
+
const internalTexture = this._texture;
|
|
59
|
+
const texture = new RawCubeTexture(scene, internalTexture._bufferViewArray, internalTexture.width, internalTexture.format, internalTexture.type, internalTexture.generateMipMaps, internalTexture.invertY, internalTexture.samplingMode, internalTexture._compression);
|
|
60
|
+
if (internalTexture.source === 13 /* InternalTextureSource.CubeRawRGBD */) {
|
|
61
|
+
texture.updateRGBDAsync(internalTexture._bufferViewArrayArray, internalTexture._sphericalPolynomial, internalTexture._lodGenerationScale, internalTexture._lodGenerationOffset);
|
|
62
|
+
}
|
|
63
|
+
return texture;
|
|
64
|
+
}, this);
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
const NAME = "EXT_lights_image_based";
|
|
69
|
+
/**
|
|
70
|
+
* [Specification](https://github.com/KhronosGroup/glTF/blob/main/extensions/2.0/Vendor/EXT_lights_image_based/README.md)
|
|
71
|
+
*/
|
|
72
|
+
// eslint-disable-next-line @typescript-eslint/naming-convention
|
|
73
|
+
class EXT_lights_image_based {
|
|
74
|
+
/**
|
|
75
|
+
* @internal
|
|
76
|
+
*/
|
|
77
|
+
constructor(loader) {
|
|
78
|
+
/**
|
|
79
|
+
* The name of this extension.
|
|
80
|
+
*/
|
|
81
|
+
this.name = NAME;
|
|
82
|
+
this._loader = loader;
|
|
83
|
+
this.enabled = this._loader.isExtensionUsed(NAME);
|
|
84
|
+
}
|
|
85
|
+
/** @internal */
|
|
86
|
+
dispose() {
|
|
87
|
+
this._loader = null;
|
|
88
|
+
delete this._lights;
|
|
89
|
+
}
|
|
90
|
+
/** @internal */
|
|
91
|
+
onLoading() {
|
|
92
|
+
const extensions = this._loader.gltf.extensions;
|
|
93
|
+
if (extensions && extensions[this.name]) {
|
|
94
|
+
const extension = extensions[this.name];
|
|
95
|
+
this._lights = extension.lights;
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
/**
|
|
99
|
+
* @internal
|
|
100
|
+
*/
|
|
101
|
+
loadSceneAsync(context, scene) {
|
|
102
|
+
return GLTFLoader.LoadExtensionAsync(context, scene, this.name, (extensionContext, extension) => {
|
|
103
|
+
this._loader._allMaterialsDirtyRequired = true;
|
|
104
|
+
const promises = new Array();
|
|
105
|
+
promises.push(this._loader.loadSceneAsync(context, scene));
|
|
106
|
+
this._loader.logOpen(`${extensionContext}`);
|
|
107
|
+
const light = ArrayItem.Get(`${extensionContext}/light`, this._lights, extension.light);
|
|
108
|
+
promises.push(this._loadLightAsync(`/extensions/${this.name}/lights/${extension.light}`, light).then((texture) => {
|
|
109
|
+
this._loader.babylonScene.environmentTexture = texture;
|
|
110
|
+
}));
|
|
111
|
+
this._loader.logClose();
|
|
112
|
+
return Promise.all(promises).then(() => { });
|
|
113
|
+
});
|
|
114
|
+
}
|
|
115
|
+
_loadLightAsync(context, light) {
|
|
116
|
+
if (!light._loaded) {
|
|
117
|
+
const promises = new Array();
|
|
118
|
+
this._loader.logOpen(`${context}`);
|
|
119
|
+
const imageData = new Array(light.specularImages.length);
|
|
120
|
+
for (let mipmap = 0; mipmap < light.specularImages.length; mipmap++) {
|
|
121
|
+
const faces = light.specularImages[mipmap];
|
|
122
|
+
imageData[mipmap] = new Array(faces.length);
|
|
123
|
+
for (let face = 0; face < faces.length; face++) {
|
|
124
|
+
const specularImageContext = `${context}/specularImages/${mipmap}/${face}`;
|
|
125
|
+
this._loader.logOpen(`${specularImageContext}`);
|
|
126
|
+
const index = faces[face];
|
|
127
|
+
const image = ArrayItem.Get(specularImageContext, this._loader.gltf.images, index);
|
|
128
|
+
promises.push(this._loader.loadImageAsync(`/images/${index}`, image).then((data) => {
|
|
129
|
+
imageData[mipmap][face] = data;
|
|
130
|
+
}));
|
|
131
|
+
this._loader.logClose();
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
this._loader.logClose();
|
|
135
|
+
light._loaded = Promise.all(promises).then(() => {
|
|
136
|
+
const babylonTexture = new RawCubeTexture(this._loader.babylonScene, null, light.specularImageSize);
|
|
137
|
+
babylonTexture.name = light.name || "environment";
|
|
138
|
+
light._babylonTexture = babylonTexture;
|
|
139
|
+
if (light.intensity != undefined) {
|
|
140
|
+
babylonTexture.level = light.intensity;
|
|
141
|
+
}
|
|
142
|
+
if (light.rotation) {
|
|
143
|
+
let rotation = Quaternion.FromArray(light.rotation);
|
|
144
|
+
// Invert the rotation so that positive rotation is counter-clockwise.
|
|
145
|
+
if (!this._loader.babylonScene.useRightHandedSystem) {
|
|
146
|
+
rotation = Quaternion.Inverse(rotation);
|
|
147
|
+
}
|
|
148
|
+
Matrix.FromQuaternionToRef(rotation, babylonTexture.getReflectionTextureMatrix());
|
|
149
|
+
}
|
|
150
|
+
if (!light.irradianceCoefficients) {
|
|
151
|
+
throw new Error(`${context}: Irradiance coefficients are missing`);
|
|
152
|
+
}
|
|
153
|
+
const sphericalHarmonics = SphericalHarmonics.FromArray(light.irradianceCoefficients);
|
|
154
|
+
sphericalHarmonics.scaleInPlace(light.intensity);
|
|
155
|
+
sphericalHarmonics.convertIrradianceToLambertianRadiance();
|
|
156
|
+
const sphericalPolynomial = SphericalPolynomial.FromHarmonics(sphericalHarmonics);
|
|
157
|
+
// Compute the lod generation scale to fit exactly to the number of levels available.
|
|
158
|
+
const lodGenerationScale = (imageData.length - 1) / Math.log2(light.specularImageSize);
|
|
159
|
+
return babylonTexture.updateRGBDAsync(imageData, sphericalPolynomial, lodGenerationScale);
|
|
160
|
+
});
|
|
161
|
+
}
|
|
162
|
+
return light._loaded.then(() => {
|
|
163
|
+
return light._babylonTexture;
|
|
164
|
+
});
|
|
165
|
+
}
|
|
166
|
+
}
|
|
167
|
+
unregisterGLTFExtension(NAME);
|
|
168
|
+
registerGLTFExtension(NAME, true, (loader) => new EXT_lights_image_based(loader));
|
|
169
|
+
|
|
170
|
+
export { EXT_lights_image_based };
|
|
171
|
+
//# sourceMappingURL=EXT_lights_image_based-CC48JVU0.esm.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"EXT_lights_image_based-CC48JVU0.esm.js","sources":["../../../../../dev/core/dist/Materials/Textures/rawCubeTexture.js","../../../../../dev/loaders/dist/glTF/2.0/Extensions/EXT_lights_image_based.js"],"sourcesContent":["import { SerializationHelper } from \"../../Misc/decorators.serialization\";\nimport { _UpdateRGBDAsync as UpdateRGBDAsyncEnvTools } from \"../../Misc/environmentTextureTools\";\nimport { CubeTexture } from \"./cubeTexture\";\nimport { Constants } from \"../../Engines/constants\";\n/**\n * Raw cube texture where the raw buffers are passed in\n */\nexport class RawCubeTexture extends CubeTexture {\n /**\n * Creates a cube texture where the raw buffers are passed in.\n * @param scene defines the scene the texture is attached to\n * @param data defines the array of data to use to create each face\n * @param size defines the size of the textures\n * @param format defines the format of the data\n * @param type defines the type of the data (like Engine.TEXTURETYPE_UNSIGNED_BYTE)\n * @param generateMipMaps defines if the engine should generate the mip levels\n * @param invertY defines if data must be stored with Y axis inverted\n * @param samplingMode defines the required sampling mode (like Texture.NEAREST_SAMPLINGMODE)\n * @param compression defines the compression used (null by default)\n */\n constructor(scene, data, size, format = Constants.TEXTUREFORMAT_RGBA, type = Constants.TEXTURETYPE_UNSIGNED_BYTE, generateMipMaps = false, invertY = false, samplingMode = Constants.TEXTURE_TRILINEAR_SAMPLINGMODE, compression = null) {\n super(\"\", scene);\n this._texture = scene.getEngine().createRawCubeTexture(data, size, format, type, generateMipMaps, invertY, samplingMode, compression);\n }\n /**\n * Updates the raw cube texture.\n * @param data defines the data to store\n * @param format defines the data format\n * @param type defines the type fo the data (Engine.TEXTURETYPE_UNSIGNED_BYTE by default)\n * @param invertY defines if data must be stored with Y axis inverted\n * @param compression defines the compression used (null by default)\n */\n update(data, format, type, invertY, compression = null) {\n this._texture.getEngine().updateRawCubeTexture(this._texture, data, format, type, invertY, compression);\n }\n /**\n * Updates a raw cube texture with RGBD encoded data.\n * @param data defines the array of data [mipmap][face] to use to create each face\n * @param sphericalPolynomial defines the spherical polynomial for irradiance\n * @param lodScale defines the scale applied to environment texture. This manages the range of LOD level used for IBL according to the roughness\n * @param lodOffset defines the offset applied to environment texture. This manages first LOD level used for IBL according to the roughness\n * @returns a promise that resolves when the operation is complete\n */\n updateRGBDAsync(data, sphericalPolynomial = null, lodScale = 0.8, lodOffset = 0) {\n return UpdateRGBDAsyncEnvTools(this._texture, data, sphericalPolynomial, lodScale, lodOffset).then(() => { });\n }\n /**\n * Clones the raw cube texture.\n * @returns a new cube texture\n */\n clone() {\n return SerializationHelper.Clone(() => {\n const scene = this.getScene();\n const internalTexture = this._texture;\n const texture = new RawCubeTexture(scene, internalTexture._bufferViewArray, internalTexture.width, internalTexture.format, internalTexture.type, internalTexture.generateMipMaps, internalTexture.invertY, internalTexture.samplingMode, internalTexture._compression);\n if (internalTexture.source === 13 /* InternalTextureSource.CubeRawRGBD */) {\n texture.updateRGBDAsync(internalTexture._bufferViewArrayArray, internalTexture._sphericalPolynomial, internalTexture._lodGenerationScale, internalTexture._lodGenerationOffset);\n }\n return texture;\n }, this);\n }\n}\n//# sourceMappingURL=rawCubeTexture.js.map","import { SphericalHarmonics, SphericalPolynomial } from \"core/Maths/sphericalPolynomial\";\nimport { Quaternion, Matrix } from \"core/Maths/math.vector\";\nimport { RawCubeTexture } from \"core/Materials/Textures/rawCubeTexture\";\nimport { GLTFLoader, ArrayItem } from \"../glTFLoader\";\nimport { registerGLTFExtension, unregisterGLTFExtension } from \"../glTFLoaderExtensionRegistry\";\nconst NAME = \"EXT_lights_image_based\";\n/**\n * [Specification](https://github.com/KhronosGroup/glTF/blob/main/extensions/2.0/Vendor/EXT_lights_image_based/README.md)\n */\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport class EXT_lights_image_based {\n /**\n * @internal\n */\n constructor(loader) {\n /**\n * The name of this extension.\n */\n this.name = NAME;\n this._loader = loader;\n this.enabled = this._loader.isExtensionUsed(NAME);\n }\n /** @internal */\n dispose() {\n this._loader = null;\n delete this._lights;\n }\n /** @internal */\n onLoading() {\n const extensions = this._loader.gltf.extensions;\n if (extensions && extensions[this.name]) {\n const extension = extensions[this.name];\n this._lights = extension.lights;\n }\n }\n /**\n * @internal\n */\n loadSceneAsync(context, scene) {\n return GLTFLoader.LoadExtensionAsync(context, scene, this.name, (extensionContext, extension) => {\n this._loader._allMaterialsDirtyRequired = true;\n const promises = new Array();\n promises.push(this._loader.loadSceneAsync(context, scene));\n this._loader.logOpen(`${extensionContext}`);\n const light = ArrayItem.Get(`${extensionContext}/light`, this._lights, extension.light);\n promises.push(this._loadLightAsync(`/extensions/${this.name}/lights/${extension.light}`, light).then((texture) => {\n this._loader.babylonScene.environmentTexture = texture;\n }));\n this._loader.logClose();\n return Promise.all(promises).then(() => { });\n });\n }\n _loadLightAsync(context, light) {\n if (!light._loaded) {\n const promises = new Array();\n this._loader.logOpen(`${context}`);\n const imageData = new Array(light.specularImages.length);\n for (let mipmap = 0; mipmap < light.specularImages.length; mipmap++) {\n const faces = light.specularImages[mipmap];\n imageData[mipmap] = new Array(faces.length);\n for (let face = 0; face < faces.length; face++) {\n const specularImageContext = `${context}/specularImages/${mipmap}/${face}`;\n this._loader.logOpen(`${specularImageContext}`);\n const index = faces[face];\n const image = ArrayItem.Get(specularImageContext, this._loader.gltf.images, index);\n promises.push(this._loader.loadImageAsync(`/images/${index}`, image).then((data) => {\n imageData[mipmap][face] = data;\n }));\n this._loader.logClose();\n }\n }\n this._loader.logClose();\n light._loaded = Promise.all(promises).then(() => {\n const babylonTexture = new RawCubeTexture(this._loader.babylonScene, null, light.specularImageSize);\n babylonTexture.name = light.name || \"environment\";\n light._babylonTexture = babylonTexture;\n if (light.intensity != undefined) {\n babylonTexture.level = light.intensity;\n }\n if (light.rotation) {\n let rotation = Quaternion.FromArray(light.rotation);\n // Invert the rotation so that positive rotation is counter-clockwise.\n if (!this._loader.babylonScene.useRightHandedSystem) {\n rotation = Quaternion.Inverse(rotation);\n }\n Matrix.FromQuaternionToRef(rotation, babylonTexture.getReflectionTextureMatrix());\n }\n if (!light.irradianceCoefficients) {\n throw new Error(`${context}: Irradiance coefficients are missing`);\n }\n const sphericalHarmonics = SphericalHarmonics.FromArray(light.irradianceCoefficients);\n sphericalHarmonics.scaleInPlace(light.intensity);\n sphericalHarmonics.convertIrradianceToLambertianRadiance();\n const sphericalPolynomial = SphericalPolynomial.FromHarmonics(sphericalHarmonics);\n // Compute the lod generation scale to fit exactly to the number of levels available.\n const lodGenerationScale = (imageData.length - 1) / Math.log2(light.specularImageSize);\n return babylonTexture.updateRGBDAsync(imageData, sphericalPolynomial, lodGenerationScale);\n });\n }\n return light._loaded.then(() => {\n return light._babylonTexture;\n });\n }\n}\nunregisterGLTFExtension(NAME);\nregisterGLTFExtension(NAME, true, (loader) => new EXT_lights_image_based(loader));\n//# sourceMappingURL=EXT_lights_image_based.js.map"],"names":["UpdateRGBDAsyncEnvTools"],"mappings":"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"}
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
import { a7 as TmpVectors, v as Vector3, ac as Quaternion, a5 as Matrix, aQ as unregisterGLTFExtension, aR as registerGLTFExtension } from './index-Cw2FZpYY.esm.js';
|
|
2
|
+
import { G as GLTFLoader, A as ArrayItem } from './glTFLoader-DVoAJl_A.esm.js';
|
|
3
|
+
import './thinInstanceMesh-BN8Ev-h8.esm.js';
|
|
4
|
+
import './rawTexture-DGz22uaX.esm.js';
|
|
5
|
+
import './assetContainer-QD3gUzyx.esm.js';
|
|
6
|
+
import './glTFLoaderAnimation-By7yP8sQ.esm.js';
|
|
7
|
+
|
|
8
|
+
const NAME = "EXT_mesh_gpu_instancing";
|
|
9
|
+
/**
|
|
10
|
+
* [Specification](https://github.com/KhronosGroup/glTF/blob/main/extensions/2.0/Vendor/EXT_mesh_gpu_instancing/README.md)
|
|
11
|
+
* [Playground Sample](https://playground.babylonjs.com/#QFIGLW#9)
|
|
12
|
+
*/
|
|
13
|
+
// eslint-disable-next-line @typescript-eslint/naming-convention
|
|
14
|
+
class EXT_mesh_gpu_instancing {
|
|
15
|
+
/**
|
|
16
|
+
* @internal
|
|
17
|
+
*/
|
|
18
|
+
constructor(loader) {
|
|
19
|
+
/**
|
|
20
|
+
* The name of this extension.
|
|
21
|
+
*/
|
|
22
|
+
this.name = NAME;
|
|
23
|
+
this._loader = loader;
|
|
24
|
+
this.enabled = this._loader.isExtensionUsed(NAME);
|
|
25
|
+
}
|
|
26
|
+
/** @internal */
|
|
27
|
+
dispose() {
|
|
28
|
+
this._loader = null;
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* @internal
|
|
32
|
+
*/
|
|
33
|
+
loadNodeAsync(context, node, assign) {
|
|
34
|
+
return GLTFLoader.LoadExtensionAsync(context, node, this.name, (extensionContext, extension) => {
|
|
35
|
+
this._loader._disableInstancedMesh++;
|
|
36
|
+
const promise = this._loader.loadNodeAsync(`/nodes/${node.index}`, node, assign);
|
|
37
|
+
this._loader._disableInstancedMesh--;
|
|
38
|
+
if (!node._primitiveBabylonMeshes) {
|
|
39
|
+
return promise;
|
|
40
|
+
}
|
|
41
|
+
const promises = new Array();
|
|
42
|
+
let instanceCount = 0;
|
|
43
|
+
const loadAttribute = (attribute) => {
|
|
44
|
+
if (extension.attributes[attribute] == undefined) {
|
|
45
|
+
promises.push(Promise.resolve(null));
|
|
46
|
+
return;
|
|
47
|
+
}
|
|
48
|
+
const accessor = ArrayItem.Get(`${extensionContext}/attributes/${attribute}`, this._loader.gltf.accessors, extension.attributes[attribute]);
|
|
49
|
+
promises.push(this._loader._loadFloatAccessorAsync(`/accessors/${accessor.bufferView}`, accessor));
|
|
50
|
+
if (instanceCount === 0) {
|
|
51
|
+
instanceCount = accessor.count;
|
|
52
|
+
}
|
|
53
|
+
else if (instanceCount !== accessor.count) {
|
|
54
|
+
throw new Error(`${extensionContext}/attributes: Instance buffer accessors do not have the same count.`);
|
|
55
|
+
}
|
|
56
|
+
};
|
|
57
|
+
loadAttribute("TRANSLATION");
|
|
58
|
+
loadAttribute("ROTATION");
|
|
59
|
+
loadAttribute("SCALE");
|
|
60
|
+
return promise.then((babylonTransformNode) => {
|
|
61
|
+
return Promise.all(promises).then(([translationBuffer, rotationBuffer, scaleBuffer]) => {
|
|
62
|
+
const matrices = new Float32Array(instanceCount * 16);
|
|
63
|
+
TmpVectors.Vector3[0].copyFromFloats(0, 0, 0); // translation
|
|
64
|
+
TmpVectors.Quaternion[0].copyFromFloats(0, 0, 0, 1); // rotation
|
|
65
|
+
TmpVectors.Vector3[1].copyFromFloats(1, 1, 1); // scale
|
|
66
|
+
for (let i = 0; i < instanceCount; ++i) {
|
|
67
|
+
translationBuffer && Vector3.FromArrayToRef(translationBuffer, i * 3, TmpVectors.Vector3[0]);
|
|
68
|
+
rotationBuffer && Quaternion.FromArrayToRef(rotationBuffer, i * 4, TmpVectors.Quaternion[0]);
|
|
69
|
+
scaleBuffer && Vector3.FromArrayToRef(scaleBuffer, i * 3, TmpVectors.Vector3[1]);
|
|
70
|
+
Matrix.ComposeToRef(TmpVectors.Vector3[1], TmpVectors.Quaternion[0], TmpVectors.Vector3[0], TmpVectors.Matrix[0]);
|
|
71
|
+
TmpVectors.Matrix[0].copyToArray(matrices, i * 16);
|
|
72
|
+
}
|
|
73
|
+
for (const babylonMesh of node._primitiveBabylonMeshes) {
|
|
74
|
+
babylonMesh.thinInstanceSetBuffer("matrix", matrices, 16, true);
|
|
75
|
+
}
|
|
76
|
+
return babylonTransformNode;
|
|
77
|
+
});
|
|
78
|
+
});
|
|
79
|
+
});
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
unregisterGLTFExtension(NAME);
|
|
83
|
+
registerGLTFExtension(NAME, true, (loader) => new EXT_mesh_gpu_instancing(loader));
|
|
84
|
+
|
|
85
|
+
export { EXT_mesh_gpu_instancing };
|
|
86
|
+
//# sourceMappingURL=EXT_mesh_gpu_instancing-B2qj3kQu.esm.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"EXT_mesh_gpu_instancing-B2qj3kQu.esm.js","sources":["../../../../../dev/loaders/dist/glTF/2.0/Extensions/EXT_mesh_gpu_instancing.js"],"sourcesContent":["import { Vector3, Quaternion, Matrix, TmpVectors } from \"core/Maths/math.vector\";\nimport { GLTFLoader, ArrayItem } from \"../glTFLoader\";\nimport { registerGLTFExtension, unregisterGLTFExtension } from \"../glTFLoaderExtensionRegistry\";\nimport \"core/Meshes/thinInstanceMesh\";\nconst NAME = \"EXT_mesh_gpu_instancing\";\n/**\n * [Specification](https://github.com/KhronosGroup/glTF/blob/main/extensions/2.0/Vendor/EXT_mesh_gpu_instancing/README.md)\n * [Playground Sample](https://playground.babylonjs.com/#QFIGLW#9)\n */\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport class EXT_mesh_gpu_instancing {\n /**\n * @internal\n */\n constructor(loader) {\n /**\n * The name of this extension.\n */\n this.name = NAME;\n this._loader = loader;\n this.enabled = this._loader.isExtensionUsed(NAME);\n }\n /** @internal */\n dispose() {\n this._loader = null;\n }\n /**\n * @internal\n */\n loadNodeAsync(context, node, assign) {\n return GLTFLoader.LoadExtensionAsync(context, node, this.name, (extensionContext, extension) => {\n this._loader._disableInstancedMesh++;\n const promise = this._loader.loadNodeAsync(`/nodes/${node.index}`, node, assign);\n this._loader._disableInstancedMesh--;\n if (!node._primitiveBabylonMeshes) {\n return promise;\n }\n const promises = new Array();\n let instanceCount = 0;\n const loadAttribute = (attribute) => {\n if (extension.attributes[attribute] == undefined) {\n promises.push(Promise.resolve(null));\n return;\n }\n const accessor = ArrayItem.Get(`${extensionContext}/attributes/${attribute}`, this._loader.gltf.accessors, extension.attributes[attribute]);\n promises.push(this._loader._loadFloatAccessorAsync(`/accessors/${accessor.bufferView}`, accessor));\n if (instanceCount === 0) {\n instanceCount = accessor.count;\n }\n else if (instanceCount !== accessor.count) {\n throw new Error(`${extensionContext}/attributes: Instance buffer accessors do not have the same count.`);\n }\n };\n loadAttribute(\"TRANSLATION\");\n loadAttribute(\"ROTATION\");\n loadAttribute(\"SCALE\");\n return promise.then((babylonTransformNode) => {\n return Promise.all(promises).then(([translationBuffer, rotationBuffer, scaleBuffer]) => {\n const matrices = new Float32Array(instanceCount * 16);\n TmpVectors.Vector3[0].copyFromFloats(0, 0, 0); // translation\n TmpVectors.Quaternion[0].copyFromFloats(0, 0, 0, 1); // rotation\n TmpVectors.Vector3[1].copyFromFloats(1, 1, 1); // scale\n for (let i = 0; i < instanceCount; ++i) {\n translationBuffer && Vector3.FromArrayToRef(translationBuffer, i * 3, TmpVectors.Vector3[0]);\n rotationBuffer && Quaternion.FromArrayToRef(rotationBuffer, i * 4, TmpVectors.Quaternion[0]);\n scaleBuffer && Vector3.FromArrayToRef(scaleBuffer, i * 3, TmpVectors.Vector3[1]);\n Matrix.ComposeToRef(TmpVectors.Vector3[1], TmpVectors.Quaternion[0], TmpVectors.Vector3[0], TmpVectors.Matrix[0]);\n TmpVectors.Matrix[0].copyToArray(matrices, i * 16);\n }\n for (const babylonMesh of node._primitiveBabylonMeshes) {\n babylonMesh.thinInstanceSetBuffer(\"matrix\", matrices, 16, true);\n }\n return babylonTransformNode;\n });\n });\n });\n }\n}\nunregisterGLTFExtension(NAME);\nregisterGLTFExtension(NAME, true, (loader) => new EXT_mesh_gpu_instancing(loader));\n//# sourceMappingURL=EXT_mesh_gpu_instancing.js.map"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{a7 as e,v as s,ac as o,a5 as t,aQ as r,aR as n}from"./index-DRbhrB0j.esm.min.js";import{G as a,A as i}from"./glTFLoader-3ZUBWawQ.esm.min.js";import"./thinInstanceMesh-Bm9vmKU4.esm.min.js";import"./rawTexture-ByD8l28R.esm.min.js";import"./assetContainer-DDEska5G.esm.min.js";import"./glTFLoaderAnimation-C9g-SHaJ.esm.min.js";const c="EXT_mesh_gpu_instancing";class l{constructor(e){this.name=c,this._loader=e,this.enabled=this._loader.isExtensionUsed(c)}dispose(){this._loader=null}loadNodeAsync(r,n,c){return a.LoadExtensionAsync(r,n,this.name,((r,a)=>{this._loader._disableInstancedMesh++;const l=this._loader.loadNodeAsync(`/nodes/${n.index}`,n,c);if(this._loader._disableInstancedMesh--,!n._primitiveBabylonMeshes)return l;const m=new Array;let d=0;const h=e=>{if(null==a.attributes[e])return void m.push(Promise.resolve(null));const s=i.Get(`${r}/attributes/${e}`,this._loader.gltf.accessors,a.attributes[e]);if(m.push(this._loader._loadFloatAccessorAsync(`/accessors/${s.bufferView}`,s)),0===d)d=s.count;else if(d!==s.count)throw new Error(`${r}/attributes: Instance buffer accessors do not have the same count.`)};return h("TRANSLATION"),h("ROTATION"),h("SCALE"),l.then((r=>Promise.all(m).then((([a,i,c])=>{const l=new Float32Array(16*d);e.Vector3[0].copyFromFloats(0,0,0),e.Quaternion[0].copyFromFloats(0,0,0,1),e.Vector3[1].copyFromFloats(1,1,1);for(let r=0;r<d;++r)a&&s.FromArrayToRef(a,3*r,e.Vector3[0]),i&&o.FromArrayToRef(i,4*r,e.Quaternion[0]),c&&s.FromArrayToRef(c,3*r,e.Vector3[1]),t.ComposeToRef(e.Vector3[1],e.Quaternion[0],e.Vector3[0],e.Matrix[0]),e.Matrix[0].copyToArray(l,16*r);for(const e of n._primitiveBabylonMeshes)e.thinInstanceSetBuffer("matrix",l,16,!0);return r}))))}))}}r(c),n(c,!0,(e=>new l(e)));export{l as EXT_mesh_gpu_instancing};
|
|
2
|
+
//# sourceMappingURL=EXT_mesh_gpu_instancing-lanrAAoi.esm.min.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"EXT_mesh_gpu_instancing-lanrAAoi.esm.min.js","sources":["../../../../../dev/loaders/dist/glTF/2.0/Extensions/EXT_mesh_gpu_instancing.js"],"sourcesContent":["import { Vector3, Quaternion, Matrix, TmpVectors } from \"core/Maths/math.vector\";\nimport { GLTFLoader, ArrayItem } from \"../glTFLoader\";\nimport { registerGLTFExtension, unregisterGLTFExtension } from \"../glTFLoaderExtensionRegistry\";\nimport \"core/Meshes/thinInstanceMesh\";\nconst NAME = \"EXT_mesh_gpu_instancing\";\n/**\n * [Specification](https://github.com/KhronosGroup/glTF/blob/main/extensions/2.0/Vendor/EXT_mesh_gpu_instancing/README.md)\n * [Playground Sample](https://playground.babylonjs.com/#QFIGLW#9)\n */\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport class EXT_mesh_gpu_instancing {\n /**\n * @internal\n */\n constructor(loader) {\n /**\n * The name of this extension.\n */\n this.name = NAME;\n this._loader = loader;\n this.enabled = this._loader.isExtensionUsed(NAME);\n }\n /** @internal */\n dispose() {\n this._loader = null;\n }\n /**\n * @internal\n */\n loadNodeAsync(context, node, assign) {\n return GLTFLoader.LoadExtensionAsync(context, node, this.name, (extensionContext, extension) => {\n this._loader._disableInstancedMesh++;\n const promise = this._loader.loadNodeAsync(`/nodes/${node.index}`, node, assign);\n this._loader._disableInstancedMesh--;\n if (!node._primitiveBabylonMeshes) {\n return promise;\n }\n const promises = new Array();\n let instanceCount = 0;\n const loadAttribute = (attribute) => {\n if (extension.attributes[attribute] == undefined) {\n promises.push(Promise.resolve(null));\n return;\n }\n const accessor = ArrayItem.Get(`${extensionContext}/attributes/${attribute}`, this._loader.gltf.accessors, extension.attributes[attribute]);\n promises.push(this._loader._loadFloatAccessorAsync(`/accessors/${accessor.bufferView}`, accessor));\n if (instanceCount === 0) {\n instanceCount = accessor.count;\n }\n else if (instanceCount !== accessor.count) {\n throw new Error(`${extensionContext}/attributes: Instance buffer accessors do not have the same count.`);\n }\n };\n loadAttribute(\"TRANSLATION\");\n loadAttribute(\"ROTATION\");\n loadAttribute(\"SCALE\");\n return promise.then((babylonTransformNode) => {\n return Promise.all(promises).then(([translationBuffer, rotationBuffer, scaleBuffer]) => {\n const matrices = new Float32Array(instanceCount * 16);\n TmpVectors.Vector3[0].copyFromFloats(0, 0, 0); // translation\n TmpVectors.Quaternion[0].copyFromFloats(0, 0, 0, 1); // rotation\n TmpVectors.Vector3[1].copyFromFloats(1, 1, 1); // scale\n for (let i = 0; i < instanceCount; ++i) {\n translationBuffer && Vector3.FromArrayToRef(translationBuffer, i * 3, TmpVectors.Vector3[0]);\n rotationBuffer && Quaternion.FromArrayToRef(rotationBuffer, i * 4, TmpVectors.Quaternion[0]);\n scaleBuffer && Vector3.FromArrayToRef(scaleBuffer, i * 3, TmpVectors.Vector3[1]);\n Matrix.ComposeToRef(TmpVectors.Vector3[1], TmpVectors.Quaternion[0], TmpVectors.Vector3[0], TmpVectors.Matrix[0]);\n TmpVectors.Matrix[0].copyToArray(matrices, i * 16);\n }\n for (const babylonMesh of node._primitiveBabylonMeshes) {\n babylonMesh.thinInstanceSetBuffer(\"matrix\", matrices, 16, true);\n }\n return babylonTransformNode;\n });\n });\n });\n }\n}\nunregisterGLTFExtension(NAME);\nregisterGLTFExtension(NAME, true, (loader) => new EXT_mesh_gpu_instancing(loader));\n//# sourceMappingURL=EXT_mesh_gpu_instancing.js.map"],"names":["NAME","EXT_mesh_gpu_instancing","constructor","loader","this","name","_loader","enabled","isExtensionUsed","dispose","loadNodeAsync","context","node","assign","GLTFLoader","LoadExtensionAsync","extensionContext","extension","_disableInstancedMesh","promise","index","_primitiveBabylonMeshes","promises","Array","instanceCount","loadAttribute","attribute","undefined","attributes","push","Promise","resolve","accessor","ArrayItem","Get","gltf","accessors","_loadFloatAccessorAsync","bufferView","count","Error","then","babylonTransformNode","all","translationBuffer","rotationBuffer","scaleBuffer","matrices","Float32Array","TmpVectors","Vector3","copyFromFloats","Quaternion","i","FromArrayToRef","Matrix","ComposeToRef","copyToArray","babylonMesh","thinInstanceSetBuffer","unregisterGLTFExtension","registerGLTFExtension"],"mappings":"2UAIA,MAAMA,EAAO,0BAMN,MAAMC,EAIT,WAAAC,CAAYC,GAIRC,KAAKC,KAAOL,EACZI,KAAKE,QAAUH,EACfC,KAAKG,QAAUH,KAAKE,QAAQE,gBAAgBR,EACpD,CAEI,OAAAS,GACIL,KAAKE,QAAU,IACvB,CAII,aAAAI,CAAcC,EAASC,EAAMC,GACzB,OAAOC,EAAWC,mBAAmBJ,EAASC,EAAMR,KAAKC,MAAM,CAACW,EAAkBC,KAC9Eb,KAAKE,QAAQY,wBACb,MAAMC,EAAUf,KAAKE,QAAQI,cAAc,UAAUE,EAAKQ,QAASR,EAAMC,GAEzE,GADAT,KAAKE,QAAQY,yBACRN,EAAKS,wBACN,OAAOF,EAEX,MAAMG,EAAW,IAAIC,MACrB,IAAIC,EAAgB,EACpB,MAAMC,EAAiBC,IACnB,GAAuCC,MAAnCV,EAAUW,WAAWF,GAErB,YADAJ,EAASO,KAAKC,QAAQC,QAAQ,OAGlC,MAAMC,EAAWC,EAAUC,IAAI,GAAGlB,gBAA+BU,IAAatB,KAAKE,QAAQ6B,KAAKC,UAAWnB,EAAUW,WAAWF,IAEhI,GADAJ,EAASO,KAAKzB,KAAKE,QAAQ+B,wBAAwB,cAAcL,EAASM,aAAcN,IAClE,IAAlBR,EACAA,EAAgBQ,EAASO,WAExB,GAAIf,IAAkBQ,EAASO,MAChC,MAAM,IAAIC,MAAM,GAAGxB,sEACvC,EAKY,OAHAS,EAAc,eACdA,EAAc,YACdA,EAAc,SACPN,EAAQsB,MAAMC,GACVZ,QAAQa,IAAIrB,GAAUmB,MAAK,EAAEG,EAAmBC,EAAgBC,MACnE,MAAMC,EAAW,IAAIC,aAA6B,GAAhBxB,GAClCyB,EAAWC,QAAQ,GAAGC,eAAe,EAAG,EAAG,GAC3CF,EAAWG,WAAW,GAAGD,eAAe,EAAG,EAAG,EAAG,GACjDF,EAAWC,QAAQ,GAAGC,eAAe,EAAG,EAAG,GAC3C,IAAK,IAAIE,EAAI,EAAGA,EAAI7B,IAAiB6B,EACjCT,GAAqBM,EAAQI,eAAeV,EAAuB,EAAJS,EAAOJ,EAAWC,QAAQ,IACzFL,GAAkBO,EAAWE,eAAeT,EAAoB,EAAJQ,EAAOJ,EAAWG,WAAW,IACzFN,GAAeI,EAAQI,eAAeR,EAAiB,EAAJO,EAAOJ,EAAWC,QAAQ,IAC7EK,EAAOC,aAAaP,EAAWC,QAAQ,GAAID,EAAWG,WAAW,GAAIH,EAAWC,QAAQ,GAAID,EAAWM,OAAO,IAC9GN,EAAWM,OAAO,GAAGE,YAAYV,EAAc,GAAJM,GAE/C,IAAK,MAAMK,KAAe9C,EAAKS,wBAC3BqC,EAAYC,sBAAsB,SAAUZ,EAAU,IAAI,GAE9D,OAAOL,CAAoB,KAEjC,GAEd,EAEAkB,EAAwB5D,GACxB6D,EAAsB7D,GAAM,GAAOG,GAAW,IAAIF,EAAwBE"}
|