@babylonjs/viewer 7.41.0 → 7.41.1-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-BS2USlck.esm.min.js +2 -0
- package/dist/chunks/EXT_lights_ies-BS2USlck.esm.min.js.map +1 -0
- package/dist/chunks/EXT_lights_ies-C-joQ5O4.esm.js +84 -0
- package/dist/chunks/EXT_lights_ies-C-joQ5O4.esm.js.map +1 -0
- package/dist/chunks/EXT_lights_image_based-C3wbbb5Z.esm.js +171 -0
- package/dist/chunks/EXT_lights_image_based-C3wbbb5Z.esm.js.map +1 -0
- package/dist/chunks/EXT_lights_image_based-DDdRDnM2.esm.min.js +2 -0
- package/dist/chunks/EXT_lights_image_based-DDdRDnM2.esm.min.js.map +1 -0
- package/dist/chunks/EXT_mesh_gpu_instancing-AXAnRQN7.esm.js +86 -0
- package/dist/chunks/EXT_mesh_gpu_instancing-AXAnRQN7.esm.js.map +1 -0
- package/dist/chunks/EXT_mesh_gpu_instancing-BcjPo6uC.esm.min.js +2 -0
- package/dist/chunks/EXT_mesh_gpu_instancing-BcjPo6uC.esm.min.js.map +1 -0
- package/dist/chunks/EXT_meshopt_compression-DlUkQB2P.esm.js +134 -0
- package/dist/chunks/EXT_meshopt_compression-DlUkQB2P.esm.js.map +1 -0
- package/dist/chunks/EXT_meshopt_compression-yJ4OpORd.esm.min.js +2 -0
- package/dist/chunks/EXT_meshopt_compression-yJ4OpORd.esm.min.js.map +1 -0
- package/dist/chunks/EXT_texture_avif-BQWbvJfK.esm.min.js +2 -0
- package/dist/chunks/EXT_texture_avif-BQWbvJfK.esm.min.js.map +1 -0
- package/dist/chunks/EXT_texture_avif-C0pGpnGv.esm.js +44 -0
- package/dist/chunks/EXT_texture_avif-C0pGpnGv.esm.js.map +1 -0
- package/dist/chunks/EXT_texture_webp-Dd7Uqtmh.esm.min.js +2 -0
- package/dist/chunks/EXT_texture_webp-Dd7Uqtmh.esm.min.js.map +1 -0
- package/dist/chunks/EXT_texture_webp-DehlrnW-.esm.js +43 -0
- package/dist/chunks/EXT_texture_webp-DehlrnW-.esm.js.map +1 -0
- package/dist/chunks/ExtrasAsMetadata-C5NMuDj4.esm.js +64 -0
- package/dist/chunks/ExtrasAsMetadata-C5NMuDj4.esm.js.map +1 -0
- package/dist/chunks/ExtrasAsMetadata-Cp3LHdoG.esm.min.js +2 -0
- package/dist/chunks/ExtrasAsMetadata-Cp3LHdoG.esm.min.js.map +1 -0
- package/dist/chunks/KHR_animation_pointer-DEBOwDXh.esm.min.js +2 -0
- package/dist/chunks/KHR_animation_pointer-DEBOwDXh.esm.min.js.map +1 -0
- package/dist/chunks/KHR_animation_pointer-Dx1OeG2b.esm.js +352 -0
- package/dist/chunks/KHR_animation_pointer-Dx1OeG2b.esm.js.map +1 -0
- package/dist/chunks/KHR_draco_mesh_compression-Ch0QOlBL.esm.min.js +2 -0
- package/dist/chunks/KHR_draco_mesh_compression-Ch0QOlBL.esm.min.js.map +1 -0
- package/dist/chunks/KHR_draco_mesh_compression-D59SFLyo.esm.js +610 -0
- package/dist/chunks/KHR_draco_mesh_compression-D59SFLyo.esm.js.map +1 -0
- package/dist/chunks/KHR_interactivity-Blj_9jts.esm.min.js +2 -0
- package/dist/chunks/KHR_interactivity-Blj_9jts.esm.min.js.map +1 -0
- package/dist/chunks/KHR_interactivity-CR0LYUa7.esm.js +4033 -0
- package/dist/chunks/KHR_interactivity-CR0LYUa7.esm.js.map +1 -0
- package/dist/chunks/KHR_lights_punctual--w0a62AP.esm.js +581 -0
- package/dist/chunks/KHR_lights_punctual--w0a62AP.esm.js.map +1 -0
- package/dist/chunks/KHR_lights_punctual-BojffBbG.esm.min.js +2 -0
- package/dist/chunks/KHR_lights_punctual-BojffBbG.esm.min.js.map +1 -0
- package/dist/chunks/KHR_materials_anisotropy-BPtHWkOQ.esm.js +65 -0
- package/dist/chunks/KHR_materials_anisotropy-BPtHWkOQ.esm.js.map +1 -0
- package/dist/chunks/KHR_materials_anisotropy-DU5_bnCL.esm.min.js +2 -0
- package/dist/chunks/KHR_materials_anisotropy-DU5_bnCL.esm.min.js.map +1 -0
- package/dist/chunks/KHR_materials_clearcoat-BBuRlPhc.esm.min.js +2 -0
- package/dist/chunks/KHR_materials_clearcoat-BBuRlPhc.esm.min.js.map +1 -0
- package/dist/chunks/KHR_materials_clearcoat-Eg0xbuWN.esm.js +96 -0
- package/dist/chunks/KHR_materials_clearcoat-Eg0xbuWN.esm.js.map +1 -0
- package/dist/chunks/KHR_materials_diffuse_transmission-Bkzk60Y5.esm.min.js +2 -0
- package/dist/chunks/KHR_materials_diffuse_transmission-Bkzk60Y5.esm.min.js.map +1 -0
- package/dist/chunks/KHR_materials_diffuse_transmission-C3DaLgRY.esm.js +97 -0
- package/dist/chunks/KHR_materials_diffuse_transmission-C3DaLgRY.esm.js.map +1 -0
- package/dist/chunks/KHR_materials_dispersion-DL_XFhxj.esm.js +62 -0
- package/dist/chunks/KHR_materials_dispersion-DL_XFhxj.esm.js.map +1 -0
- package/dist/chunks/KHR_materials_dispersion-DbMQPBgM.esm.min.js +2 -0
- package/dist/chunks/KHR_materials_dispersion-DbMQPBgM.esm.min.js.map +1 -0
- package/dist/chunks/KHR_materials_emissive_strength-BuHyjtBD.esm.js +55 -0
- package/dist/chunks/KHR_materials_emissive_strength-BuHyjtBD.esm.js.map +1 -0
- package/dist/chunks/KHR_materials_emissive_strength-Djlr_ul3.esm.min.js +2 -0
- package/dist/chunks/KHR_materials_emissive_strength-Djlr_ul3.esm.min.js.map +1 -0
- package/dist/chunks/KHR_materials_ior-BIe6qBOo.esm.js +64 -0
- package/dist/chunks/KHR_materials_ior-BIe6qBOo.esm.js.map +1 -0
- package/dist/chunks/KHR_materials_ior-DOfaAmNY.esm.min.js +2 -0
- package/dist/chunks/KHR_materials_ior-DOfaAmNY.esm.min.js.map +1 -0
- package/dist/chunks/KHR_materials_iridescence-BgElZgUu.esm.js +72 -0
- package/dist/chunks/KHR_materials_iridescence-BgElZgUu.esm.js.map +1 -0
- package/dist/chunks/KHR_materials_iridescence-lUeo07SZ.esm.min.js +2 -0
- package/dist/chunks/KHR_materials_iridescence-lUeo07SZ.esm.min.js.map +1 -0
- package/dist/chunks/KHR_materials_pbrSpecularGlossiness-9ShQyhJ6.esm.min.js +2 -0
- package/dist/chunks/KHR_materials_pbrSpecularGlossiness-9ShQyhJ6.esm.min.js.map +1 -0
- package/dist/chunks/KHR_materials_pbrSpecularGlossiness-DE5LjLg6.esm.js +81 -0
- package/dist/chunks/KHR_materials_pbrSpecularGlossiness-DE5LjLg6.esm.js.map +1 -0
- package/dist/chunks/KHR_materials_sheen-BfZe6ZFu.esm.js +85 -0
- package/dist/chunks/KHR_materials_sheen-BfZe6ZFu.esm.js.map +1 -0
- package/dist/chunks/KHR_materials_sheen-OWjuK2V4.esm.min.js +2 -0
- package/dist/chunks/KHR_materials_sheen-OWjuK2V4.esm.min.js.map +1 -0
- package/dist/chunks/KHR_materials_specular-dowPxbW3.esm.js +75 -0
- package/dist/chunks/KHR_materials_specular-dowPxbW3.esm.js.map +1 -0
- package/dist/chunks/KHR_materials_specular-nWeBZu0R.esm.min.js +2 -0
- package/dist/chunks/KHR_materials_specular-nWeBZu0R.esm.min.js.map +1 -0
- package/dist/chunks/KHR_materials_transmission-BPNQkK0O.esm.min.js +2 -0
- package/dist/chunks/KHR_materials_transmission-BPNQkK0O.esm.min.js.map +1 -0
- package/dist/chunks/KHR_materials_transmission-CHr_yLLX.esm.js +307 -0
- package/dist/chunks/KHR_materials_transmission-CHr_yLLX.esm.js.map +1 -0
- package/dist/chunks/KHR_materials_unlit-BYXpcsdj.esm.min.js +2 -0
- package/dist/chunks/KHR_materials_unlit-BYXpcsdj.esm.min.js.map +1 -0
- package/dist/chunks/KHR_materials_unlit-Cr7YsDHT.esm.js +74 -0
- package/dist/chunks/KHR_materials_unlit-Cr7YsDHT.esm.js.map +1 -0
- package/dist/chunks/KHR_materials_variants-BCVX3sJa.esm.js +262 -0
- package/dist/chunks/KHR_materials_variants-BCVX3sJa.esm.js.map +1 -0
- package/dist/chunks/KHR_materials_variants-BXzl6KpJ.esm.min.js +2 -0
- package/dist/chunks/KHR_materials_variants-BXzl6KpJ.esm.min.js.map +1 -0
- package/dist/chunks/KHR_materials_volume-BD9KEaJz.esm.min.js +2 -0
- package/dist/chunks/KHR_materials_volume-BD9KEaJz.esm.min.js.map +1 -0
- package/dist/chunks/KHR_materials_volume-DrqGUGW6.esm.js +87 -0
- package/dist/chunks/KHR_materials_volume-DrqGUGW6.esm.js.map +1 -0
- package/dist/chunks/KHR_mesh_quantization-Dg22auJA.esm.min.js +2 -0
- package/dist/chunks/KHR_mesh_quantization-Dg22auJA.esm.min.js.map +1 -0
- package/dist/chunks/KHR_mesh_quantization-hvxpvTbe.esm.js +26 -0
- package/dist/chunks/KHR_mesh_quantization-hvxpvTbe.esm.js.map +1 -0
- package/dist/chunks/KHR_node_hoverability-BDiqFmBB.esm.js +39 -0
- package/dist/chunks/KHR_node_hoverability-BDiqFmBB.esm.js.map +1 -0
- package/dist/chunks/KHR_node_hoverability-CumkOtZM.esm.min.js +2 -0
- package/dist/chunks/KHR_node_hoverability-CumkOtZM.esm.min.js.map +1 -0
- package/dist/chunks/KHR_node_visibility-BKEa-Yfj.esm.min.js +2 -0
- package/dist/chunks/KHR_node_visibility-BKEa-Yfj.esm.min.js.map +1 -0
- package/dist/chunks/KHR_node_visibility-K0fsD4Vv.esm.js +46 -0
- package/dist/chunks/KHR_node_visibility-K0fsD4Vv.esm.js.map +1 -0
- package/dist/chunks/KHR_texture_basisu-8YVY1pKo.esm.js +43 -0
- package/dist/chunks/KHR_texture_basisu-8YVY1pKo.esm.js.map +1 -0
- package/dist/chunks/KHR_texture_basisu-BM__NeSW.esm.min.js +2 -0
- package/dist/chunks/KHR_texture_basisu-BM__NeSW.esm.min.js.map +1 -0
- package/dist/chunks/KHR_texture_transform--qxpdvRw.esm.js +63 -0
- package/dist/chunks/KHR_texture_transform--qxpdvRw.esm.js.map +1 -0
- package/dist/chunks/KHR_texture_transform-C0MO-oJp.esm.min.js +2 -0
- package/dist/chunks/KHR_texture_transform-C0MO-oJp.esm.min.js.map +1 -0
- package/dist/chunks/KHR_xmp_json_ld-D9FpHvJo.esm.js +51 -0
- package/dist/chunks/KHR_xmp_json_ld-D9FpHvJo.esm.js.map +1 -0
- package/dist/chunks/KHR_xmp_json_ld-DeXPWWQE.esm.min.js +2 -0
- package/dist/chunks/KHR_xmp_json_ld-DeXPWWQE.esm.min.js.map +1 -0
- package/dist/chunks/MSFT_audio_emitter-BbICSwFH.esm.min.js +2 -0
- package/dist/chunks/MSFT_audio_emitter-BbICSwFH.esm.min.js.map +1 -0
- package/dist/chunks/MSFT_audio_emitter-Dd5lbfUc.esm.js +2201 -0
- package/dist/chunks/MSFT_audio_emitter-Dd5lbfUc.esm.js.map +1 -0
- package/dist/chunks/MSFT_lod-B0zrRF3s.esm.js +337 -0
- package/dist/chunks/MSFT_lod-B0zrRF3s.esm.js.map +1 -0
- package/dist/chunks/MSFT_lod-Bd4znUfD.esm.min.js +2 -0
- package/dist/chunks/MSFT_lod-Bd4znUfD.esm.min.js.map +1 -0
- package/dist/chunks/MSFT_minecraftMesh-CdIpMgsb.esm.min.js +2 -0
- package/dist/chunks/MSFT_minecraftMesh-CdIpMgsb.esm.min.js.map +1 -0
- package/dist/chunks/MSFT_minecraftMesh-WFc8m_Ka.esm.js +46 -0
- package/dist/chunks/MSFT_minecraftMesh-WFc8m_Ka.esm.js.map +1 -0
- package/dist/chunks/MSFT_sRGBFactors-CTbtGna8.esm.js +47 -0
- package/dist/chunks/MSFT_sRGBFactors-CTbtGna8.esm.js.map +1 -0
- package/dist/chunks/MSFT_sRGBFactors-yTSoBQJx.esm.min.js +2 -0
- package/dist/chunks/MSFT_sRGBFactors-yTSoBQJx.esm.min.js.map +1 -0
- package/dist/chunks/animationGroup-8TJDgymS.esm.js +2482 -0
- package/dist/chunks/animationGroup-8TJDgymS.esm.js.map +1 -0
- package/dist/chunks/animationGroup-toXtd3a1.esm.min.js +2 -0
- package/dist/chunks/animationGroup-toXtd3a1.esm.min.js.map +1 -0
- package/dist/chunks/assetContainer-7pMDUaac.esm.min.js +2 -0
- package/dist/chunks/assetContainer-7pMDUaac.esm.min.js.map +1 -0
- package/dist/chunks/assetContainer-DYzO0AbX.esm.js +1720 -0
- package/dist/chunks/assetContainer-DYzO0AbX.esm.js.map +1 -0
- package/dist/chunks/audioEngine-Kz4HSEXd.esm.min.js +2 -0
- package/dist/chunks/audioEngine-Kz4HSEXd.esm.min.js.map +1 -0
- package/dist/chunks/audioEngine-peiGqjr6.esm.js +305 -0
- package/dist/chunks/audioEngine-peiGqjr6.esm.js.map +1 -0
- package/dist/chunks/bakedVertexAnimation-BZvcL01J.esm.min.js +2 -0
- package/dist/chunks/bakedVertexAnimation-BZvcL01J.esm.min.js.map +1 -0
- package/dist/chunks/bakedVertexAnimation-CPflSjER.esm.js +114 -0
- package/dist/chunks/bakedVertexAnimation-CPflSjER.esm.js.map +1 -0
- package/dist/chunks/basisTextureLoader-CR0XhSAg.esm.js +600 -0
- package/dist/chunks/basisTextureLoader-CR0XhSAg.esm.js.map +1 -0
- package/dist/chunks/basisTextureLoader-DVJdcB62.esm.min.js +2 -0
- package/dist/chunks/basisTextureLoader-DVJdcB62.esm.min.js.map +1 -0
- package/dist/chunks/dds-6EdM5O6M.esm.js +540 -0
- package/dist/chunks/dds-6EdM5O6M.esm.js.map +1 -0
- package/dist/chunks/dds-DVX_K9B3.esm.min.js +2 -0
- package/dist/chunks/dds-DVX_K9B3.esm.min.js.map +1 -0
- package/dist/chunks/ddsTextureLoader-BAK7Ib2Z.esm.min.js +2 -0
- package/dist/chunks/ddsTextureLoader-BAK7Ib2Z.esm.min.js.map +1 -0
- package/dist/chunks/ddsTextureLoader-_nktVxwZ.esm.js +88 -0
- package/dist/chunks/ddsTextureLoader-_nktVxwZ.esm.js.map +1 -0
- package/dist/chunks/decalFragment-C_Cews3-.esm.js +18 -0
- package/dist/chunks/decalFragment-C_Cews3-.esm.js.map +1 -0
- package/dist/chunks/decalFragment-Dmj88EX9.esm.min.js +2 -0
- package/dist/chunks/decalFragment-Dmj88EX9.esm.min.js.map +1 -0
- package/dist/chunks/default.fragment-Bv_nR7po.esm.min.js +2 -0
- package/dist/chunks/default.fragment-Bv_nR7po.esm.min.js.map +1 -0
- package/dist/chunks/default.fragment-CkZQyJVM.esm.min.js +2 -0
- package/dist/chunks/default.fragment-CkZQyJVM.esm.min.js.map +1 -0
- package/dist/chunks/default.fragment-CyFHDykY.esm.js +446 -0
- package/dist/chunks/default.fragment-CyFHDykY.esm.js.map +1 -0
- package/dist/chunks/default.fragment-ej-2z5tS.esm.js +515 -0
- package/dist/chunks/default.fragment-ej-2z5tS.esm.js.map +1 -0
- package/dist/chunks/default.vertex-16mVOFgT.esm.js +211 -0
- package/dist/chunks/default.vertex-16mVOFgT.esm.js.map +1 -0
- package/dist/chunks/default.vertex-D--q2At3.esm.min.js +2 -0
- package/dist/chunks/default.vertex-D--q2At3.esm.min.js.map +1 -0
- package/dist/chunks/default.vertex-DDlgZTrR.esm.js +190 -0
- package/dist/chunks/default.vertex-DDlgZTrR.esm.js.map +1 -0
- package/dist/chunks/default.vertex-_jqs3KiZ.esm.min.js +2 -0
- package/dist/chunks/default.vertex-_jqs3KiZ.esm.min.js.map +1 -0
- package/dist/chunks/defaultUboDeclaration-8YG0iNg8.esm.js +15 -0
- package/dist/chunks/defaultUboDeclaration-8YG0iNg8.esm.js.map +1 -0
- package/dist/chunks/defaultUboDeclaration-BoBSRTbi.esm.js +13 -0
- package/dist/chunks/defaultUboDeclaration-BoBSRTbi.esm.js.map +1 -0
- package/dist/chunks/defaultUboDeclaration-Dt_5vo1d.esm.min.js +2 -0
- package/dist/chunks/defaultUboDeclaration-Dt_5vo1d.esm.min.js.map +1 -0
- package/dist/chunks/defaultUboDeclaration-R6gGjkAM.esm.min.js +2 -0
- package/dist/chunks/defaultUboDeclaration-R6gGjkAM.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-Bhux0wvM.esm.js +200 -0
- package/dist/chunks/dumpTools-Bhux0wvM.esm.js.map +1 -0
- package/dist/chunks/dumpTools-CHCb2UkY.esm.min.js +2 -0
- package/dist/chunks/dumpTools-CHCb2UkY.esm.min.js.map +1 -0
- package/dist/chunks/engine-DF_zE4qj.esm.js +2213 -0
- package/dist/chunks/engine-DF_zE4qj.esm.js.map +1 -0
- package/dist/chunks/engine-DVmdDcyP.esm.min.js +2 -0
- package/dist/chunks/engine-DVmdDcyP.esm.min.js.map +1 -0
- package/dist/chunks/engine.common-CvOmoKru.esm.js +1162 -0
- package/dist/chunks/engine.common-CvOmoKru.esm.js.map +1 -0
- package/dist/chunks/engine.common-DpTzktQJ.esm.min.js +2 -0
- package/dist/chunks/engine.common-DpTzktQJ.esm.min.js.map +1 -0
- package/dist/chunks/envTextureLoader-4YxGm-Px.esm.js +64 -0
- package/dist/chunks/envTextureLoader-4YxGm-Px.esm.js.map +1 -0
- package/dist/chunks/envTextureLoader-DMQui088.esm.min.js +2 -0
- package/dist/chunks/envTextureLoader-DMQui088.esm.min.js.map +1 -0
- package/dist/chunks/environmentTextureTools-BPGrTBPI.esm.min.js +2 -0
- package/dist/chunks/environmentTextureTools-BPGrTBPI.esm.min.js.map +1 -0
- package/dist/chunks/environmentTextureTools-DvkpsqkN.esm.js +382 -0
- package/dist/chunks/environmentTextureTools-DvkpsqkN.esm.js.map +1 -0
- package/dist/chunks/exrTextureLoader-BRkB54sO.esm.js +1683 -0
- package/dist/chunks/exrTextureLoader-BRkB54sO.esm.js.map +1 -0
- package/dist/chunks/exrTextureLoader-BtN7_zst.esm.min.js +2 -0
- package/dist/chunks/exrTextureLoader-BtN7_zst.esm.min.js.map +1 -0
- package/dist/chunks/fogFragment-BrGGFaiu.esm.js +101 -0
- package/dist/chunks/fogFragment-BrGGFaiu.esm.js.map +1 -0
- package/dist/chunks/fogFragment-ByOwwQur.esm.min.js +2 -0
- package/dist/chunks/fogFragment-ByOwwQur.esm.min.js.map +1 -0
- package/dist/chunks/fogFragment-Chod24nu.esm.min.js +2 -0
- package/dist/chunks/fogFragment-Chod24nu.esm.min.js.map +1 -0
- package/dist/chunks/fogFragment-gZfybCpt.esm.js +102 -0
- package/dist/chunks/fogFragment-gZfybCpt.esm.js.map +1 -0
- package/dist/chunks/fresnelFunction-BdEia8ob.esm.min.js +2 -0
- package/dist/chunks/fresnelFunction-BdEia8ob.esm.min.js.map +1 -0
- package/dist/chunks/fresnelFunction-DBlxfmri.esm.js +12 -0
- package/dist/chunks/fresnelFunction-DBlxfmri.esm.js.map +1 -0
- package/dist/chunks/glTFLoader-D4C1IGb3.esm.min.js +2 -0
- package/dist/chunks/glTFLoader-D4C1IGb3.esm.min.js.map +1 -0
- package/dist/chunks/glTFLoader-fUFiWvYb.esm.js +7693 -0
- package/dist/chunks/glTFLoader-fUFiWvYb.esm.js.map +1 -0
- package/dist/chunks/glTFLoaderAnimation-BB_Vw079.esm.min.js +2 -0
- package/dist/chunks/glTFLoaderAnimation-BB_Vw079.esm.min.js.map +1 -0
- package/dist/chunks/glTFLoaderAnimation-CttmY50U.esm.js +77 -0
- package/dist/chunks/glTFLoaderAnimation-CttmY50U.esm.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-B0Rp1hEo.esm.min.js +2 -0
- package/dist/chunks/harmonicsFunctions-B0Rp1hEo.esm.min.js.map +1 -0
- package/dist/chunks/harmonicsFunctions-Cca_z552.esm.js +34 -0
- package/dist/chunks/harmonicsFunctions-Cca_z552.esm.js.map +1 -0
- package/dist/chunks/harmonicsFunctions-D4ID83NC.esm.min.js +2 -0
- package/dist/chunks/harmonicsFunctions-D4ID83NC.esm.min.js.map +1 -0
- package/dist/chunks/harmonicsFunctions-HJ5dbl0w.esm.js +35 -0
- package/dist/chunks/harmonicsFunctions-HJ5dbl0w.esm.js.map +1 -0
- package/dist/chunks/hdrTextureLoader-C3kqy6YV.esm.js +253 -0
- package/dist/chunks/hdrTextureLoader-C3kqy6YV.esm.js.map +1 -0
- package/dist/chunks/hdrTextureLoader-Dhlluz4z.esm.min.js +2 -0
- package/dist/chunks/hdrTextureLoader-Dhlluz4z.esm.min.js.map +1 -0
- package/dist/chunks/helperFunctions-BJotVqUd.esm.min.js +2 -0
- package/dist/chunks/helperFunctions-BJotVqUd.esm.min.js.map +1 -0
- package/dist/chunks/helperFunctions-C66wRWtu.esm.js +110 -0
- package/dist/chunks/helperFunctions-C66wRWtu.esm.js.map +1 -0
- package/dist/chunks/helperFunctions-DwEZ9rqh.esm.min.js +2 -0
- package/dist/chunks/helperFunctions-DwEZ9rqh.esm.min.js.map +1 -0
- package/dist/chunks/helperFunctions-gnki_9Kj.esm.js +83 -0
- package/dist/chunks/helperFunctions-gnki_9Kj.esm.js.map +1 -0
- package/dist/chunks/iesTextureLoader-QDs2Cwy5.esm.js +189 -0
- package/dist/chunks/iesTextureLoader-QDs2Cwy5.esm.js.map +1 -0
- package/dist/chunks/iesTextureLoader-pwA6Q4HK.esm.min.js +2 -0
- package/dist/chunks/iesTextureLoader-pwA6Q4HK.esm.min.js.map +1 -0
- package/dist/chunks/index-C6hXZyZb.esm.js +74889 -0
- package/dist/chunks/index-C6hXZyZb.esm.js.map +1 -0
- package/dist/chunks/index-rZVkfTE6.esm.min.js +57 -0
- package/dist/chunks/index-rZVkfTE6.esm.min.js.map +1 -0
- package/dist/chunks/ktxTextureLoader-jVu-Sj-0.esm.js +814 -0
- package/dist/chunks/ktxTextureLoader-jVu-Sj-0.esm.js.map +1 -0
- package/dist/chunks/ktxTextureLoader-zG9azrZF.esm.min.js +2 -0
- package/dist/chunks/ktxTextureLoader-zG9azrZF.esm.min.js.map +1 -0
- package/dist/chunks/logDepthDeclaration-0cA1pTvQ.esm.min.js +2 -0
- package/dist/chunks/logDepthDeclaration-0cA1pTvQ.esm.min.js.map +1 -0
- package/dist/chunks/logDepthDeclaration-CYxYhXIS.esm.js +11 -0
- package/dist/chunks/logDepthDeclaration-CYxYhXIS.esm.js.map +1 -0
- package/dist/chunks/logDepthDeclaration-D4KGxdX-.esm.min.js +2 -0
- package/dist/chunks/logDepthDeclaration-D4KGxdX-.esm.min.js.map +1 -0
- package/dist/chunks/logDepthDeclaration-DJlt2-H5.esm.js +35 -0
- package/dist/chunks/logDepthDeclaration-DJlt2-H5.esm.js.map +1 -0
- package/dist/chunks/logDepthVertex-BS2JEtXA.esm.min.js +2 -0
- package/dist/chunks/logDepthVertex-BS2JEtXA.esm.min.js.map +1 -0
- package/dist/chunks/logDepthVertex-DKPfA10X.esm.js +81 -0
- package/dist/chunks/logDepthVertex-DKPfA10X.esm.js.map +1 -0
- package/dist/chunks/logDepthVertex-ojTShW5I.esm.js +77 -0
- package/dist/chunks/logDepthVertex-ojTShW5I.esm.js.map +1 -0
- package/dist/chunks/logDepthVertex-v-0pHNc-.esm.min.js +2 -0
- package/dist/chunks/logDepthVertex-v-0pHNc-.esm.min.js.map +1 -0
- package/dist/chunks/mainUVVaryingDeclaration-BAzmbS0W.esm.min.js +2 -0
- package/dist/chunks/mainUVVaryingDeclaration-BAzmbS0W.esm.min.js.map +1 -0
- package/dist/chunks/mainUVVaryingDeclaration-Cnux1jkK.esm.js +11 -0
- package/dist/chunks/mainUVVaryingDeclaration-Cnux1jkK.esm.js.map +1 -0
- package/dist/chunks/mainUVVaryingDeclaration-CwS0hUUZ.esm.min.js +2 -0
- package/dist/chunks/mainUVVaryingDeclaration-CwS0hUUZ.esm.min.js.map +1 -0
- package/dist/chunks/mainUVVaryingDeclaration-DCawby1A.esm.js +11 -0
- package/dist/chunks/mainUVVaryingDeclaration-DCawby1A.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-QvH0RgeZ.esm.js +26 -0
- package/dist/chunks/meshUboDeclaration-QvH0RgeZ.esm.js.map +1 -0
- package/dist/chunks/meshUboDeclaration-g2s_cYI1.esm.min.js +2 -0
- package/dist/chunks/meshUboDeclaration-g2s_cYI1.esm.min.js.map +1 -0
- package/dist/chunks/objFileLoader-BOutXdVR.esm.min.js +2 -0
- package/dist/chunks/objFileLoader-BOutXdVR.esm.min.js.map +1 -0
- package/dist/chunks/objFileLoader-BPwrX8RK.esm.js +1338 -0
- package/dist/chunks/objFileLoader-BPwrX8RK.esm.js.map +1 -0
- package/dist/chunks/oitFragment-CmcWUhsZ.esm.js +1240 -0
- package/dist/chunks/oitFragment-CmcWUhsZ.esm.js.map +1 -0
- package/dist/chunks/oitFragment-D8XBQ6Wa.esm.js +1078 -0
- package/dist/chunks/oitFragment-D8XBQ6Wa.esm.js.map +1 -0
- package/dist/chunks/oitFragment-DgAlmoHs.esm.min.js +2 -0
- package/dist/chunks/oitFragment-DgAlmoHs.esm.min.js.map +1 -0
- package/dist/chunks/oitFragment-DpJ5xGhy.esm.min.js +2 -0
- package/dist/chunks/oitFragment-DpJ5xGhy.esm.min.js.map +1 -0
- package/dist/chunks/pass.fragment--XRaXRhU.esm.js +15 -0
- package/dist/chunks/pass.fragment--XRaXRhU.esm.js.map +1 -0
- package/dist/chunks/pass.fragment-5Q3qXxDe.esm.min.js +2 -0
- package/dist/chunks/pass.fragment-5Q3qXxDe.esm.min.js.map +1 -0
- package/dist/chunks/pass.fragment-BBLiyU_i.esm.min.js +2 -0
- package/dist/chunks/pass.fragment-BBLiyU_i.esm.min.js.map +1 -0
- package/dist/chunks/pass.fragment-DI4ZYZJe.esm.js +15 -0
- package/dist/chunks/pass.fragment-DI4ZYZJe.esm.js.map +1 -0
- package/dist/chunks/pbr.fragment-C7xQS4ZJ.esm.js +3269 -0
- package/dist/chunks/pbr.fragment-C7xQS4ZJ.esm.js.map +1 -0
- package/dist/chunks/pbr.fragment-Ddxaik8T.esm.min.js +2 -0
- package/dist/chunks/pbr.fragment-Ddxaik8T.esm.min.js.map +1 -0
- package/dist/chunks/pbr.fragment-fky04gH_.esm.js +3222 -0
- package/dist/chunks/pbr.fragment-fky04gH_.esm.js.map +1 -0
- package/dist/chunks/pbr.fragment-ya1zai4w.esm.min.js +2 -0
- package/dist/chunks/pbr.fragment-ya1zai4w.esm.min.js.map +1 -0
- package/dist/chunks/pbr.vertex-BPEYHoRM.esm.js +223 -0
- package/dist/chunks/pbr.vertex-BPEYHoRM.esm.js.map +1 -0
- package/dist/chunks/pbr.vertex-BXcMYADF.esm.js +348 -0
- package/dist/chunks/pbr.vertex-BXcMYADF.esm.js.map +1 -0
- package/dist/chunks/pbr.vertex-BjA08auU.esm.min.js +2 -0
- package/dist/chunks/pbr.vertex-BjA08auU.esm.min.js.map +1 -0
- package/dist/chunks/pbr.vertex-Cx2V3lNf.esm.min.js +2 -0
- package/dist/chunks/pbr.vertex-Cx2V3lNf.esm.min.js.map +1 -0
- package/dist/chunks/postprocess.vertex-BHpQrNSx.esm.min.js +2 -0
- package/dist/chunks/postprocess.vertex-BHpQrNSx.esm.min.js.map +1 -0
- package/dist/chunks/postprocess.vertex-DnDbk0tq.esm.js +20 -0
- package/dist/chunks/postprocess.vertex-DnDbk0tq.esm.js.map +1 -0
- package/dist/chunks/rawTexture-CWiRIto8.esm.js +191 -0
- package/dist/chunks/rawTexture-CWiRIto8.esm.js.map +1 -0
- package/dist/chunks/rawTexture-DX8V9PEj.esm.min.js +2 -0
- package/dist/chunks/rawTexture-DX8V9PEj.esm.min.js.map +1 -0
- package/dist/chunks/ray-ix7SqYNQ.esm.min.js +2 -0
- package/dist/chunks/ray-ix7SqYNQ.esm.min.js.map +1 -0
- package/dist/chunks/ray-nTZBkOil.esm.js +946 -0
- package/dist/chunks/ray-nTZBkOil.esm.js.map +1 -0
- package/dist/chunks/rgbdDecode.fragment-Be3ofvlt.esm.min.js +2 -0
- package/dist/chunks/rgbdDecode.fragment-Be3ofvlt.esm.min.js.map +1 -0
- package/dist/chunks/rgbdDecode.fragment-C05QJpT2.esm.js +13 -0
- package/dist/chunks/rgbdDecode.fragment-C05QJpT2.esm.js.map +1 -0
- package/dist/chunks/rgbdDecode.fragment-D3SYBclQ.esm.min.js +2 -0
- package/dist/chunks/rgbdDecode.fragment-D3SYBclQ.esm.min.js.map +1 -0
- package/dist/chunks/rgbdDecode.fragment-DBG6KfKF.esm.js +13 -0
- package/dist/chunks/rgbdDecode.fragment-DBG6KfKF.esm.js.map +1 -0
- package/dist/chunks/rgbdEncode.fragment-BlhtohrO.esm.js +13 -0
- package/dist/chunks/rgbdEncode.fragment-BlhtohrO.esm.js.map +1 -0
- package/dist/chunks/rgbdEncode.fragment-BmJKYw6A.esm.min.js +2 -0
- package/dist/chunks/rgbdEncode.fragment-BmJKYw6A.esm.min.js.map +1 -0
- package/dist/chunks/rgbdEncode.fragment-dr2kGjSO.esm.js +13 -0
- package/dist/chunks/rgbdEncode.fragment-dr2kGjSO.esm.js.map +1 -0
- package/dist/chunks/rgbdEncode.fragment-hXPzg1p5.esm.min.js +2 -0
- package/dist/chunks/rgbdEncode.fragment-hXPzg1p5.esm.min.js.map +1 -0
- package/dist/chunks/splatFileLoader-Bs42LtsP.esm.min.js +2 -0
- package/dist/chunks/splatFileLoader-Bs42LtsP.esm.min.js.map +1 -0
- package/dist/chunks/splatFileLoader-Dp33YOem.esm.js +3379 -0
- package/dist/chunks/splatFileLoader-Dp33YOem.esm.js.map +1 -0
- package/dist/chunks/spotLight-C0NmKeem.esm.js +701 -0
- package/dist/chunks/spotLight-C0NmKeem.esm.js.map +1 -0
- package/dist/chunks/spotLight-CcuCNdES.esm.min.js +2 -0
- package/dist/chunks/spotLight-CcuCNdES.esm.min.js.map +1 -0
- package/dist/chunks/standardMaterial-C1E5n_4w.esm.min.js +2 -0
- package/dist/chunks/standardMaterial-C1E5n_4w.esm.min.js.map +1 -0
- package/dist/chunks/standardMaterial-v_D8QA4q.esm.js +1807 -0
- package/dist/chunks/standardMaterial-v_D8QA4q.esm.js.map +1 -0
- package/dist/chunks/stlFileLoader-DC2IRQDj.esm.min.js +2 -0
- package/dist/chunks/stlFileLoader-DC2IRQDj.esm.min.js.map +1 -0
- package/dist/chunks/stlFileLoader-LRHEIFfU.esm.js +238 -0
- package/dist/chunks/stlFileLoader-LRHEIFfU.esm.js.map +1 -0
- package/dist/chunks/tgaTextureLoader-2ekJC0En.esm.js +349 -0
- package/dist/chunks/tgaTextureLoader-2ekJC0En.esm.js.map +1 -0
- package/dist/chunks/tgaTextureLoader-Clj6zUK-.esm.min.js +2 -0
- package/dist/chunks/tgaTextureLoader-Clj6zUK-.esm.min.js.map +1 -0
- package/dist/chunks/thinEngine-DksimP2U.esm.js +3848 -0
- package/dist/chunks/thinEngine-DksimP2U.esm.js.map +1 -0
- package/dist/chunks/thinEngine-tsALaFYH.esm.min.js +2 -0
- package/dist/chunks/thinEngine-tsALaFYH.esm.min.js.map +1 -0
- package/dist/chunks/thinInstanceMesh-B8AW0Oa2.esm.js +314 -0
- package/dist/chunks/thinInstanceMesh-B8AW0Oa2.esm.js.map +1 -0
- package/dist/chunks/thinInstanceMesh-kCGEJ0-e.esm.min.js +2 -0
- package/dist/chunks/thinInstanceMesh-kCGEJ0-e.esm.min.js.map +1 -0
- package/dist/chunks/vertexColorMixing-Bjijk3lU.esm.min.js +2 -0
- package/dist/chunks/vertexColorMixing-Bjijk3lU.esm.min.js.map +1 -0
- package/dist/chunks/vertexColorMixing-D9917nJN.esm.js +428 -0
- package/dist/chunks/vertexColorMixing-D9917nJN.esm.js.map +1 -0
- package/dist/chunks/vertexColorMixing-DgthWrKf.esm.min.js +2 -0
- package/dist/chunks/vertexColorMixing-DgthWrKf.esm.min.js.map +1 -0
- package/dist/chunks/vertexColorMixing-U1SA6UK3.esm.js +538 -0
- package/dist/chunks/vertexColorMixing-U1SA6UK3.esm.js.map +1 -0
- package/dist/chunks/webgpuEngine-BOGR1D8F.esm.min.js +2 -0
- package/dist/chunks/webgpuEngine-BOGR1D8F.esm.min.js.map +1 -0
- package/dist/chunks/webgpuEngine-BrzOpZ-2.esm.js +11533 -0
- package/dist/chunks/webgpuEngine-BrzOpZ-2.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
|
@@ -0,0 +1,540 @@
|
|
|
1
|
+
import { f as FromHalfFloat, a9 as ToHalfFloat, bz as Clamp, L as Logger, C as Constants, bG as CubeMapToSphericalPolynomialTools } from './index-C6hXZyZb.esm.js';
|
|
2
|
+
|
|
3
|
+
/* eslint-disable @typescript-eslint/naming-convention */
|
|
4
|
+
// Based on demo done by Brandon Jones - http://media.tojicode.com/webgl-samples/dds.html
|
|
5
|
+
// All values and structures referenced from:
|
|
6
|
+
// http://msdn.microsoft.com/en-us/library/bb943991.aspx/
|
|
7
|
+
const DDS_MAGIC = 0x20534444;
|
|
8
|
+
const //DDSD_CAPS = 0x1,
|
|
9
|
+
//DDSD_HEIGHT = 0x2,
|
|
10
|
+
//DDSD_WIDTH = 0x4,
|
|
11
|
+
//DDSD_PITCH = 0x8,
|
|
12
|
+
//DDSD_PIXELFORMAT = 0x1000,
|
|
13
|
+
DDSD_MIPMAPCOUNT = 0x20000;
|
|
14
|
+
//DDSD_LINEARSIZE = 0x80000,
|
|
15
|
+
//DDSD_DEPTH = 0x800000;
|
|
16
|
+
// var DDSCAPS_COMPLEX = 0x8,
|
|
17
|
+
// DDSCAPS_MIPMAP = 0x400000,
|
|
18
|
+
// DDSCAPS_TEXTURE = 0x1000;
|
|
19
|
+
const DDSCAPS2_CUBEMAP = 0x200;
|
|
20
|
+
// DDSCAPS2_CUBEMAP_POSITIVEX = 0x400,
|
|
21
|
+
// DDSCAPS2_CUBEMAP_NEGATIVEX = 0x800,
|
|
22
|
+
// DDSCAPS2_CUBEMAP_POSITIVEY = 0x1000,
|
|
23
|
+
// DDSCAPS2_CUBEMAP_NEGATIVEY = 0x2000,
|
|
24
|
+
// DDSCAPS2_CUBEMAP_POSITIVEZ = 0x4000,
|
|
25
|
+
// DDSCAPS2_CUBEMAP_NEGATIVEZ = 0x8000,
|
|
26
|
+
// DDSCAPS2_VOLUME = 0x200000;
|
|
27
|
+
const //DDPF_ALPHAPIXELS = 0x1,
|
|
28
|
+
//DDPF_ALPHA = 0x2,
|
|
29
|
+
DDPF_FOURCC = 0x4, DDPF_RGB = 0x40,
|
|
30
|
+
//DDPF_YUV = 0x200,
|
|
31
|
+
DDPF_LUMINANCE = 0x20000;
|
|
32
|
+
function FourCCToInt32(value) {
|
|
33
|
+
return value.charCodeAt(0) + (value.charCodeAt(1) << 8) + (value.charCodeAt(2) << 16) + (value.charCodeAt(3) << 24);
|
|
34
|
+
}
|
|
35
|
+
function Int32ToFourCC(value) {
|
|
36
|
+
return String.fromCharCode(value & 0xff, (value >> 8) & 0xff, (value >> 16) & 0xff, (value >> 24) & 0xff);
|
|
37
|
+
}
|
|
38
|
+
const FOURCC_DXT1 = FourCCToInt32("DXT1");
|
|
39
|
+
const FOURCC_DXT3 = FourCCToInt32("DXT3");
|
|
40
|
+
const FOURCC_DXT5 = FourCCToInt32("DXT5");
|
|
41
|
+
const FOURCC_DX10 = FourCCToInt32("DX10");
|
|
42
|
+
const FOURCC_D3DFMT_R16G16B16A16F = 113;
|
|
43
|
+
const FOURCC_D3DFMT_R32G32B32A32F = 116;
|
|
44
|
+
const DXGI_FORMAT_R32G32B32A32_FLOAT = 2;
|
|
45
|
+
const DXGI_FORMAT_R16G16B16A16_FLOAT = 10;
|
|
46
|
+
const DXGI_FORMAT_B8G8R8X8_UNORM = 88;
|
|
47
|
+
const headerLengthInt = 31; // The header length in 32 bit ints
|
|
48
|
+
// Offsets into the header array
|
|
49
|
+
const off_magic = 0;
|
|
50
|
+
const off_size = 1;
|
|
51
|
+
const off_flags = 2;
|
|
52
|
+
const off_height = 3;
|
|
53
|
+
const off_width = 4;
|
|
54
|
+
const off_mipmapCount = 7;
|
|
55
|
+
const off_pfFlags = 20;
|
|
56
|
+
const off_pfFourCC = 21;
|
|
57
|
+
const off_RGBbpp = 22;
|
|
58
|
+
const off_RMask = 23;
|
|
59
|
+
const off_GMask = 24;
|
|
60
|
+
const off_BMask = 25;
|
|
61
|
+
const off_AMask = 26;
|
|
62
|
+
// var off_caps1 = 27;
|
|
63
|
+
const off_caps2 = 28;
|
|
64
|
+
// var off_caps3 = 29;
|
|
65
|
+
// var off_caps4 = 30;
|
|
66
|
+
const off_dxgiFormat = 32;
|
|
67
|
+
/**
|
|
68
|
+
* Class used to provide DDS decompression tools
|
|
69
|
+
*/
|
|
70
|
+
class DDSTools {
|
|
71
|
+
/**
|
|
72
|
+
* Gets DDS information from an array buffer
|
|
73
|
+
* @param data defines the array buffer view to read data from
|
|
74
|
+
* @returns the DDS information
|
|
75
|
+
*/
|
|
76
|
+
static GetDDSInfo(data) {
|
|
77
|
+
const header = new Int32Array(data.buffer, data.byteOffset, headerLengthInt);
|
|
78
|
+
const extendedHeader = new Int32Array(data.buffer, data.byteOffset, headerLengthInt + 4);
|
|
79
|
+
let mipmapCount = 1;
|
|
80
|
+
if (header[off_flags] & DDSD_MIPMAPCOUNT) {
|
|
81
|
+
mipmapCount = Math.max(1, header[off_mipmapCount]);
|
|
82
|
+
}
|
|
83
|
+
const fourCC = header[off_pfFourCC];
|
|
84
|
+
const dxgiFormat = fourCC === FOURCC_DX10 ? extendedHeader[off_dxgiFormat] : 0;
|
|
85
|
+
let textureType = Constants.TEXTURETYPE_UNSIGNED_BYTE;
|
|
86
|
+
switch (fourCC) {
|
|
87
|
+
case FOURCC_D3DFMT_R16G16B16A16F:
|
|
88
|
+
textureType = Constants.TEXTURETYPE_HALF_FLOAT;
|
|
89
|
+
break;
|
|
90
|
+
case FOURCC_D3DFMT_R32G32B32A32F:
|
|
91
|
+
textureType = Constants.TEXTURETYPE_FLOAT;
|
|
92
|
+
break;
|
|
93
|
+
case FOURCC_DX10:
|
|
94
|
+
if (dxgiFormat === DXGI_FORMAT_R16G16B16A16_FLOAT) {
|
|
95
|
+
textureType = Constants.TEXTURETYPE_HALF_FLOAT;
|
|
96
|
+
break;
|
|
97
|
+
}
|
|
98
|
+
if (dxgiFormat === DXGI_FORMAT_R32G32B32A32_FLOAT) {
|
|
99
|
+
textureType = Constants.TEXTURETYPE_FLOAT;
|
|
100
|
+
break;
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
return {
|
|
104
|
+
width: header[off_width],
|
|
105
|
+
height: header[off_height],
|
|
106
|
+
mipmapCount: mipmapCount,
|
|
107
|
+
isFourCC: (header[off_pfFlags] & DDPF_FOURCC) === DDPF_FOURCC,
|
|
108
|
+
isRGB: (header[off_pfFlags] & DDPF_RGB) === DDPF_RGB,
|
|
109
|
+
isLuminance: (header[off_pfFlags] & DDPF_LUMINANCE) === DDPF_LUMINANCE,
|
|
110
|
+
isCube: (header[off_caps2] & DDSCAPS2_CUBEMAP) === DDSCAPS2_CUBEMAP,
|
|
111
|
+
isCompressed: fourCC === FOURCC_DXT1 || fourCC === FOURCC_DXT3 || fourCC === FOURCC_DXT5,
|
|
112
|
+
dxgiFormat: dxgiFormat,
|
|
113
|
+
textureType: textureType,
|
|
114
|
+
};
|
|
115
|
+
}
|
|
116
|
+
static _GetHalfFloatAsFloatRGBAArrayBuffer(width, height, dataOffset, dataLength, arrayBuffer, lod) {
|
|
117
|
+
const destArray = new Float32Array(dataLength);
|
|
118
|
+
const srcData = new Uint16Array(arrayBuffer, dataOffset);
|
|
119
|
+
let index = 0;
|
|
120
|
+
for (let y = 0; y < height; y++) {
|
|
121
|
+
for (let x = 0; x < width; x++) {
|
|
122
|
+
const srcPos = (x + y * width) * 4;
|
|
123
|
+
destArray[index] = FromHalfFloat(srcData[srcPos]);
|
|
124
|
+
destArray[index + 1] = FromHalfFloat(srcData[srcPos + 1]);
|
|
125
|
+
destArray[index + 2] = FromHalfFloat(srcData[srcPos + 2]);
|
|
126
|
+
if (DDSTools.StoreLODInAlphaChannel) {
|
|
127
|
+
destArray[index + 3] = lod;
|
|
128
|
+
}
|
|
129
|
+
else {
|
|
130
|
+
destArray[index + 3] = FromHalfFloat(srcData[srcPos + 3]);
|
|
131
|
+
}
|
|
132
|
+
index += 4;
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
return destArray;
|
|
136
|
+
}
|
|
137
|
+
static _GetHalfFloatRGBAArrayBuffer(width, height, dataOffset, dataLength, arrayBuffer, lod) {
|
|
138
|
+
if (DDSTools.StoreLODInAlphaChannel) {
|
|
139
|
+
const destArray = new Uint16Array(dataLength);
|
|
140
|
+
const srcData = new Uint16Array(arrayBuffer, dataOffset);
|
|
141
|
+
let index = 0;
|
|
142
|
+
for (let y = 0; y < height; y++) {
|
|
143
|
+
for (let x = 0; x < width; x++) {
|
|
144
|
+
const srcPos = (x + y * width) * 4;
|
|
145
|
+
destArray[index] = srcData[srcPos];
|
|
146
|
+
destArray[index + 1] = srcData[srcPos + 1];
|
|
147
|
+
destArray[index + 2] = srcData[srcPos + 2];
|
|
148
|
+
destArray[index + 3] = ToHalfFloat(lod);
|
|
149
|
+
index += 4;
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
return destArray;
|
|
153
|
+
}
|
|
154
|
+
return new Uint16Array(arrayBuffer, dataOffset, dataLength);
|
|
155
|
+
}
|
|
156
|
+
static _GetFloatRGBAArrayBuffer(width, height, dataOffset, dataLength, arrayBuffer, lod) {
|
|
157
|
+
if (DDSTools.StoreLODInAlphaChannel) {
|
|
158
|
+
const destArray = new Float32Array(dataLength);
|
|
159
|
+
const srcData = new Float32Array(arrayBuffer, dataOffset);
|
|
160
|
+
let index = 0;
|
|
161
|
+
for (let y = 0; y < height; y++) {
|
|
162
|
+
for (let x = 0; x < width; x++) {
|
|
163
|
+
const srcPos = (x + y * width) * 4;
|
|
164
|
+
destArray[index] = srcData[srcPos];
|
|
165
|
+
destArray[index + 1] = srcData[srcPos + 1];
|
|
166
|
+
destArray[index + 2] = srcData[srcPos + 2];
|
|
167
|
+
destArray[index + 3] = lod;
|
|
168
|
+
index += 4;
|
|
169
|
+
}
|
|
170
|
+
}
|
|
171
|
+
return destArray;
|
|
172
|
+
}
|
|
173
|
+
return new Float32Array(arrayBuffer, dataOffset, dataLength);
|
|
174
|
+
}
|
|
175
|
+
static _GetFloatAsHalfFloatRGBAArrayBuffer(width, height, dataOffset, dataLength, arrayBuffer, lod) {
|
|
176
|
+
const destArray = new Uint16Array(dataLength);
|
|
177
|
+
const srcData = new Float32Array(arrayBuffer, dataOffset);
|
|
178
|
+
let index = 0;
|
|
179
|
+
for (let y = 0; y < height; y++) {
|
|
180
|
+
for (let x = 0; x < width; x++) {
|
|
181
|
+
destArray[index] = ToHalfFloat(srcData[index]);
|
|
182
|
+
destArray[index + 1] = ToHalfFloat(srcData[index + 1]);
|
|
183
|
+
destArray[index + 2] = ToHalfFloat(srcData[index + 2]);
|
|
184
|
+
if (DDSTools.StoreLODInAlphaChannel) {
|
|
185
|
+
destArray[index + 3] = ToHalfFloat(lod);
|
|
186
|
+
}
|
|
187
|
+
else {
|
|
188
|
+
destArray[index + 3] = ToHalfFloat(srcData[index + 3]);
|
|
189
|
+
}
|
|
190
|
+
index += 4;
|
|
191
|
+
}
|
|
192
|
+
}
|
|
193
|
+
return destArray;
|
|
194
|
+
}
|
|
195
|
+
static _GetFloatAsUIntRGBAArrayBuffer(width, height, dataOffset, dataLength, arrayBuffer, lod) {
|
|
196
|
+
const destArray = new Uint8Array(dataLength);
|
|
197
|
+
const srcData = new Float32Array(arrayBuffer, dataOffset);
|
|
198
|
+
let index = 0;
|
|
199
|
+
for (let y = 0; y < height; y++) {
|
|
200
|
+
for (let x = 0; x < width; x++) {
|
|
201
|
+
const srcPos = (x + y * width) * 4;
|
|
202
|
+
destArray[index] = Clamp(srcData[srcPos]) * 255;
|
|
203
|
+
destArray[index + 1] = Clamp(srcData[srcPos + 1]) * 255;
|
|
204
|
+
destArray[index + 2] = Clamp(srcData[srcPos + 2]) * 255;
|
|
205
|
+
if (DDSTools.StoreLODInAlphaChannel) {
|
|
206
|
+
destArray[index + 3] = lod;
|
|
207
|
+
}
|
|
208
|
+
else {
|
|
209
|
+
destArray[index + 3] = Clamp(srcData[srcPos + 3]) * 255;
|
|
210
|
+
}
|
|
211
|
+
index += 4;
|
|
212
|
+
}
|
|
213
|
+
}
|
|
214
|
+
return destArray;
|
|
215
|
+
}
|
|
216
|
+
static _GetHalfFloatAsUIntRGBAArrayBuffer(width, height, dataOffset, dataLength, arrayBuffer, lod) {
|
|
217
|
+
const destArray = new Uint8Array(dataLength);
|
|
218
|
+
const srcData = new Uint16Array(arrayBuffer, dataOffset);
|
|
219
|
+
let index = 0;
|
|
220
|
+
for (let y = 0; y < height; y++) {
|
|
221
|
+
for (let x = 0; x < width; x++) {
|
|
222
|
+
const srcPos = (x + y * width) * 4;
|
|
223
|
+
destArray[index] = Clamp(FromHalfFloat(srcData[srcPos])) * 255;
|
|
224
|
+
destArray[index + 1] = Clamp(FromHalfFloat(srcData[srcPos + 1])) * 255;
|
|
225
|
+
destArray[index + 2] = Clamp(FromHalfFloat(srcData[srcPos + 2])) * 255;
|
|
226
|
+
if (DDSTools.StoreLODInAlphaChannel) {
|
|
227
|
+
destArray[index + 3] = lod;
|
|
228
|
+
}
|
|
229
|
+
else {
|
|
230
|
+
destArray[index + 3] = Clamp(FromHalfFloat(srcData[srcPos + 3])) * 255;
|
|
231
|
+
}
|
|
232
|
+
index += 4;
|
|
233
|
+
}
|
|
234
|
+
}
|
|
235
|
+
return destArray;
|
|
236
|
+
}
|
|
237
|
+
static _GetRGBAArrayBuffer(width, height, dataOffset, dataLength, arrayBuffer, rOffset, gOffset, bOffset, aOffset) {
|
|
238
|
+
const byteArray = new Uint8Array(dataLength);
|
|
239
|
+
const srcData = new Uint8Array(arrayBuffer, dataOffset);
|
|
240
|
+
let index = 0;
|
|
241
|
+
for (let y = 0; y < height; y++) {
|
|
242
|
+
for (let x = 0; x < width; x++) {
|
|
243
|
+
const srcPos = (x + y * width) * 4;
|
|
244
|
+
byteArray[index] = srcData[srcPos + rOffset];
|
|
245
|
+
byteArray[index + 1] = srcData[srcPos + gOffset];
|
|
246
|
+
byteArray[index + 2] = srcData[srcPos + bOffset];
|
|
247
|
+
byteArray[index + 3] = srcData[srcPos + aOffset];
|
|
248
|
+
index += 4;
|
|
249
|
+
}
|
|
250
|
+
}
|
|
251
|
+
return byteArray;
|
|
252
|
+
}
|
|
253
|
+
static _ExtractLongWordOrder(value) {
|
|
254
|
+
if (value === 0 || value === 255 || value === -16777216) {
|
|
255
|
+
return 0;
|
|
256
|
+
}
|
|
257
|
+
return 1 + DDSTools._ExtractLongWordOrder(value >> 8);
|
|
258
|
+
}
|
|
259
|
+
static _GetRGBArrayBuffer(width, height, dataOffset, dataLength, arrayBuffer, rOffset, gOffset, bOffset) {
|
|
260
|
+
const byteArray = new Uint8Array(dataLength);
|
|
261
|
+
const srcData = new Uint8Array(arrayBuffer, dataOffset);
|
|
262
|
+
let index = 0;
|
|
263
|
+
for (let y = 0; y < height; y++) {
|
|
264
|
+
for (let x = 0; x < width; x++) {
|
|
265
|
+
const srcPos = (x + y * width) * 3;
|
|
266
|
+
byteArray[index] = srcData[srcPos + rOffset];
|
|
267
|
+
byteArray[index + 1] = srcData[srcPos + gOffset];
|
|
268
|
+
byteArray[index + 2] = srcData[srcPos + bOffset];
|
|
269
|
+
index += 3;
|
|
270
|
+
}
|
|
271
|
+
}
|
|
272
|
+
return byteArray;
|
|
273
|
+
}
|
|
274
|
+
static _GetLuminanceArrayBuffer(width, height, dataOffset, dataLength, arrayBuffer) {
|
|
275
|
+
const byteArray = new Uint8Array(dataLength);
|
|
276
|
+
const srcData = new Uint8Array(arrayBuffer, dataOffset);
|
|
277
|
+
let index = 0;
|
|
278
|
+
for (let y = 0; y < height; y++) {
|
|
279
|
+
for (let x = 0; x < width; x++) {
|
|
280
|
+
const srcPos = x + y * width;
|
|
281
|
+
byteArray[index] = srcData[srcPos];
|
|
282
|
+
index++;
|
|
283
|
+
}
|
|
284
|
+
}
|
|
285
|
+
return byteArray;
|
|
286
|
+
}
|
|
287
|
+
/**
|
|
288
|
+
* Uploads DDS Levels to a Babylon Texture
|
|
289
|
+
* @internal
|
|
290
|
+
*/
|
|
291
|
+
static UploadDDSLevels(engine, texture, data, info, loadMipmaps, faces, lodIndex = -1, currentFace, destTypeMustBeFilterable = true) {
|
|
292
|
+
let sphericalPolynomialFaces = null;
|
|
293
|
+
if (info.sphericalPolynomial) {
|
|
294
|
+
sphericalPolynomialFaces = [];
|
|
295
|
+
}
|
|
296
|
+
const ext = !!engine.getCaps().s3tc;
|
|
297
|
+
// TODO WEBGPU Once generateMipMaps is split into generateMipMaps + hasMipMaps in InternalTexture this line can be removed
|
|
298
|
+
texture.generateMipMaps = loadMipmaps;
|
|
299
|
+
const header = new Int32Array(data.buffer, data.byteOffset, headerLengthInt);
|
|
300
|
+
let fourCC, width, height, dataLength = 0, dataOffset;
|
|
301
|
+
let byteArray, mipmapCount, mip;
|
|
302
|
+
let internalCompressedFormat = 0;
|
|
303
|
+
let blockBytes = 1;
|
|
304
|
+
if (header[off_magic] !== DDS_MAGIC) {
|
|
305
|
+
Logger.Error("Invalid magic number in DDS header");
|
|
306
|
+
return;
|
|
307
|
+
}
|
|
308
|
+
if (!info.isFourCC && !info.isRGB && !info.isLuminance) {
|
|
309
|
+
Logger.Error("Unsupported format, must contain a FourCC, RGB or LUMINANCE code");
|
|
310
|
+
return;
|
|
311
|
+
}
|
|
312
|
+
if (info.isCompressed && !ext) {
|
|
313
|
+
Logger.Error("Compressed textures are not supported on this platform.");
|
|
314
|
+
return;
|
|
315
|
+
}
|
|
316
|
+
let bpp = header[off_RGBbpp];
|
|
317
|
+
dataOffset = header[off_size] + 4;
|
|
318
|
+
let computeFormats = false;
|
|
319
|
+
if (info.isFourCC) {
|
|
320
|
+
fourCC = header[off_pfFourCC];
|
|
321
|
+
switch (fourCC) {
|
|
322
|
+
case FOURCC_DXT1:
|
|
323
|
+
blockBytes = 8;
|
|
324
|
+
internalCompressedFormat = Constants.TEXTUREFORMAT_COMPRESSED_RGBA_S3TC_DXT1;
|
|
325
|
+
break;
|
|
326
|
+
case FOURCC_DXT3:
|
|
327
|
+
blockBytes = 16;
|
|
328
|
+
internalCompressedFormat = Constants.TEXTUREFORMAT_COMPRESSED_RGBA_S3TC_DXT3;
|
|
329
|
+
break;
|
|
330
|
+
case FOURCC_DXT5:
|
|
331
|
+
blockBytes = 16;
|
|
332
|
+
internalCompressedFormat = Constants.TEXTUREFORMAT_COMPRESSED_RGBA_S3TC_DXT5;
|
|
333
|
+
break;
|
|
334
|
+
case FOURCC_D3DFMT_R16G16B16A16F:
|
|
335
|
+
computeFormats = true;
|
|
336
|
+
bpp = 64;
|
|
337
|
+
break;
|
|
338
|
+
case FOURCC_D3DFMT_R32G32B32A32F:
|
|
339
|
+
computeFormats = true;
|
|
340
|
+
bpp = 128;
|
|
341
|
+
break;
|
|
342
|
+
case FOURCC_DX10: {
|
|
343
|
+
// There is an additionnal header so dataOffset need to be changed
|
|
344
|
+
dataOffset += 5 * 4; // 5 uints
|
|
345
|
+
let supported = false;
|
|
346
|
+
switch (info.dxgiFormat) {
|
|
347
|
+
case DXGI_FORMAT_R16G16B16A16_FLOAT:
|
|
348
|
+
computeFormats = true;
|
|
349
|
+
bpp = 64;
|
|
350
|
+
supported = true;
|
|
351
|
+
break;
|
|
352
|
+
case DXGI_FORMAT_R32G32B32A32_FLOAT:
|
|
353
|
+
computeFormats = true;
|
|
354
|
+
bpp = 128;
|
|
355
|
+
supported = true;
|
|
356
|
+
break;
|
|
357
|
+
case DXGI_FORMAT_B8G8R8X8_UNORM:
|
|
358
|
+
info.isRGB = true;
|
|
359
|
+
info.isFourCC = false;
|
|
360
|
+
bpp = 32;
|
|
361
|
+
supported = true;
|
|
362
|
+
break;
|
|
363
|
+
}
|
|
364
|
+
if (supported) {
|
|
365
|
+
break;
|
|
366
|
+
}
|
|
367
|
+
}
|
|
368
|
+
// eslint-disable-next-line no-fallthrough
|
|
369
|
+
default:
|
|
370
|
+
Logger.Error(["Unsupported FourCC code:", Int32ToFourCC(fourCC)]);
|
|
371
|
+
return;
|
|
372
|
+
}
|
|
373
|
+
}
|
|
374
|
+
const rOffset = DDSTools._ExtractLongWordOrder(header[off_RMask]);
|
|
375
|
+
const gOffset = DDSTools._ExtractLongWordOrder(header[off_GMask]);
|
|
376
|
+
const bOffset = DDSTools._ExtractLongWordOrder(header[off_BMask]);
|
|
377
|
+
const aOffset = DDSTools._ExtractLongWordOrder(header[off_AMask]);
|
|
378
|
+
if (computeFormats) {
|
|
379
|
+
internalCompressedFormat = engine._getRGBABufferInternalSizedFormat(info.textureType);
|
|
380
|
+
}
|
|
381
|
+
mipmapCount = 1;
|
|
382
|
+
if (header[off_flags] & DDSD_MIPMAPCOUNT && loadMipmaps !== false) {
|
|
383
|
+
mipmapCount = Math.max(1, header[off_mipmapCount]);
|
|
384
|
+
}
|
|
385
|
+
const startFace = currentFace || 0;
|
|
386
|
+
const caps = engine.getCaps();
|
|
387
|
+
for (let face = startFace; face < faces; face++) {
|
|
388
|
+
width = header[off_width];
|
|
389
|
+
height = header[off_height];
|
|
390
|
+
for (mip = 0; mip < mipmapCount; ++mip) {
|
|
391
|
+
if (lodIndex === -1 || lodIndex === mip) {
|
|
392
|
+
// In case of fixed LOD, if the lod has just been uploaded, early exit.
|
|
393
|
+
const i = lodIndex === -1 ? mip : 0;
|
|
394
|
+
if (!info.isCompressed && info.isFourCC) {
|
|
395
|
+
texture.format = Constants.TEXTUREFORMAT_RGBA;
|
|
396
|
+
dataLength = width * height * 4;
|
|
397
|
+
let floatArray = null;
|
|
398
|
+
if (engine._badOS || engine._badDesktopOS || (!caps.textureHalfFloat && !caps.textureFloat)) {
|
|
399
|
+
// Required because iOS has many issues with float and half float generation
|
|
400
|
+
if (bpp === 128) {
|
|
401
|
+
floatArray = DDSTools._GetFloatAsUIntRGBAArrayBuffer(width, height, data.byteOffset + dataOffset, dataLength, data.buffer, i);
|
|
402
|
+
if (sphericalPolynomialFaces && i == 0) {
|
|
403
|
+
sphericalPolynomialFaces.push(DDSTools._GetFloatRGBAArrayBuffer(width, height, data.byteOffset + dataOffset, dataLength, data.buffer, i));
|
|
404
|
+
}
|
|
405
|
+
}
|
|
406
|
+
else if (bpp === 64) {
|
|
407
|
+
floatArray = DDSTools._GetHalfFloatAsUIntRGBAArrayBuffer(width, height, data.byteOffset + dataOffset, dataLength, data.buffer, i);
|
|
408
|
+
if (sphericalPolynomialFaces && i == 0) {
|
|
409
|
+
sphericalPolynomialFaces.push(DDSTools._GetHalfFloatAsFloatRGBAArrayBuffer(width, height, data.byteOffset + dataOffset, dataLength, data.buffer, i));
|
|
410
|
+
}
|
|
411
|
+
}
|
|
412
|
+
texture.type = Constants.TEXTURETYPE_UNSIGNED_BYTE;
|
|
413
|
+
}
|
|
414
|
+
else {
|
|
415
|
+
const floatAvailable = caps.textureFloat && ((destTypeMustBeFilterable && caps.textureFloatLinearFiltering) || !destTypeMustBeFilterable);
|
|
416
|
+
const halfFloatAvailable = caps.textureHalfFloat && ((destTypeMustBeFilterable && caps.textureHalfFloatLinearFiltering) || !destTypeMustBeFilterable);
|
|
417
|
+
const destType = (bpp === 128 || (bpp === 64 && !halfFloatAvailable)) && floatAvailable
|
|
418
|
+
? Constants.TEXTURETYPE_FLOAT
|
|
419
|
+
: (bpp === 64 || (bpp === 128 && !floatAvailable)) && halfFloatAvailable
|
|
420
|
+
? Constants.TEXTURETYPE_HALF_FLOAT
|
|
421
|
+
: Constants.TEXTURETYPE_UNSIGNED_BYTE;
|
|
422
|
+
let dataGetter;
|
|
423
|
+
let dataGetterPolynomial = null;
|
|
424
|
+
switch (bpp) {
|
|
425
|
+
case 128: {
|
|
426
|
+
switch (destType) {
|
|
427
|
+
case Constants.TEXTURETYPE_FLOAT:
|
|
428
|
+
dataGetter = DDSTools._GetFloatRGBAArrayBuffer;
|
|
429
|
+
dataGetterPolynomial = null;
|
|
430
|
+
break;
|
|
431
|
+
case Constants.TEXTURETYPE_HALF_FLOAT:
|
|
432
|
+
dataGetter = DDSTools._GetFloatAsHalfFloatRGBAArrayBuffer;
|
|
433
|
+
dataGetterPolynomial = DDSTools._GetFloatRGBAArrayBuffer;
|
|
434
|
+
break;
|
|
435
|
+
case Constants.TEXTURETYPE_UNSIGNED_BYTE:
|
|
436
|
+
dataGetter = DDSTools._GetFloatAsUIntRGBAArrayBuffer;
|
|
437
|
+
dataGetterPolynomial = DDSTools._GetFloatRGBAArrayBuffer;
|
|
438
|
+
break;
|
|
439
|
+
}
|
|
440
|
+
break;
|
|
441
|
+
}
|
|
442
|
+
default: {
|
|
443
|
+
// 64 bpp
|
|
444
|
+
switch (destType) {
|
|
445
|
+
case Constants.TEXTURETYPE_FLOAT:
|
|
446
|
+
dataGetter = DDSTools._GetHalfFloatAsFloatRGBAArrayBuffer;
|
|
447
|
+
dataGetterPolynomial = null;
|
|
448
|
+
break;
|
|
449
|
+
case Constants.TEXTURETYPE_HALF_FLOAT:
|
|
450
|
+
dataGetter = DDSTools._GetHalfFloatRGBAArrayBuffer;
|
|
451
|
+
dataGetterPolynomial = DDSTools._GetHalfFloatAsFloatRGBAArrayBuffer;
|
|
452
|
+
break;
|
|
453
|
+
case Constants.TEXTURETYPE_UNSIGNED_BYTE:
|
|
454
|
+
dataGetter = DDSTools._GetHalfFloatAsUIntRGBAArrayBuffer;
|
|
455
|
+
dataGetterPolynomial = DDSTools._GetHalfFloatAsFloatRGBAArrayBuffer;
|
|
456
|
+
break;
|
|
457
|
+
}
|
|
458
|
+
break;
|
|
459
|
+
}
|
|
460
|
+
}
|
|
461
|
+
texture.type = destType;
|
|
462
|
+
floatArray = dataGetter(width, height, data.byteOffset + dataOffset, dataLength, data.buffer, i);
|
|
463
|
+
if (sphericalPolynomialFaces && i == 0) {
|
|
464
|
+
sphericalPolynomialFaces.push(dataGetterPolynomial ? dataGetterPolynomial(width, height, data.byteOffset + dataOffset, dataLength, data.buffer, i) : floatArray);
|
|
465
|
+
}
|
|
466
|
+
}
|
|
467
|
+
if (floatArray) {
|
|
468
|
+
engine._uploadDataToTextureDirectly(texture, floatArray, face, i);
|
|
469
|
+
}
|
|
470
|
+
}
|
|
471
|
+
else if (info.isRGB) {
|
|
472
|
+
texture.type = Constants.TEXTURETYPE_UNSIGNED_BYTE;
|
|
473
|
+
if (bpp === 24) {
|
|
474
|
+
texture.format = Constants.TEXTUREFORMAT_RGB;
|
|
475
|
+
dataLength = width * height * 3;
|
|
476
|
+
byteArray = DDSTools._GetRGBArrayBuffer(width, height, data.byteOffset + dataOffset, dataLength, data.buffer, rOffset, gOffset, bOffset);
|
|
477
|
+
engine._uploadDataToTextureDirectly(texture, byteArray, face, i);
|
|
478
|
+
}
|
|
479
|
+
else {
|
|
480
|
+
// 32
|
|
481
|
+
texture.format = Constants.TEXTUREFORMAT_RGBA;
|
|
482
|
+
dataLength = width * height * 4;
|
|
483
|
+
byteArray = DDSTools._GetRGBAArrayBuffer(width, height, data.byteOffset + dataOffset, dataLength, data.buffer, rOffset, gOffset, bOffset, aOffset);
|
|
484
|
+
engine._uploadDataToTextureDirectly(texture, byteArray, face, i);
|
|
485
|
+
}
|
|
486
|
+
}
|
|
487
|
+
else if (info.isLuminance) {
|
|
488
|
+
const unpackAlignment = engine._getUnpackAlignement();
|
|
489
|
+
const unpaddedRowSize = width;
|
|
490
|
+
const paddedRowSize = Math.floor((width + unpackAlignment - 1) / unpackAlignment) * unpackAlignment;
|
|
491
|
+
dataLength = paddedRowSize * (height - 1) + unpaddedRowSize;
|
|
492
|
+
byteArray = DDSTools._GetLuminanceArrayBuffer(width, height, data.byteOffset + dataOffset, dataLength, data.buffer);
|
|
493
|
+
texture.format = Constants.TEXTUREFORMAT_LUMINANCE;
|
|
494
|
+
texture.type = Constants.TEXTURETYPE_UNSIGNED_BYTE;
|
|
495
|
+
engine._uploadDataToTextureDirectly(texture, byteArray, face, i);
|
|
496
|
+
}
|
|
497
|
+
else {
|
|
498
|
+
dataLength = (((Math.max(4, width) / 4) * Math.max(4, height)) / 4) * blockBytes;
|
|
499
|
+
byteArray = new Uint8Array(data.buffer, data.byteOffset + dataOffset, dataLength);
|
|
500
|
+
texture.type = Constants.TEXTURETYPE_UNSIGNED_BYTE;
|
|
501
|
+
engine._uploadCompressedDataToTextureDirectly(texture, internalCompressedFormat, width, height, byteArray, face, i);
|
|
502
|
+
}
|
|
503
|
+
}
|
|
504
|
+
dataOffset += bpp ? width * height * (bpp / 8) : dataLength;
|
|
505
|
+
width *= 0.5;
|
|
506
|
+
height *= 0.5;
|
|
507
|
+
width = Math.max(1.0, width);
|
|
508
|
+
height = Math.max(1.0, height);
|
|
509
|
+
}
|
|
510
|
+
if (currentFace !== undefined) {
|
|
511
|
+
// Loading a single face
|
|
512
|
+
break;
|
|
513
|
+
}
|
|
514
|
+
}
|
|
515
|
+
if (sphericalPolynomialFaces && sphericalPolynomialFaces.length > 0) {
|
|
516
|
+
info.sphericalPolynomial = CubeMapToSphericalPolynomialTools.ConvertCubeMapToSphericalPolynomial({
|
|
517
|
+
size: header[off_width],
|
|
518
|
+
right: sphericalPolynomialFaces[0],
|
|
519
|
+
left: sphericalPolynomialFaces[1],
|
|
520
|
+
up: sphericalPolynomialFaces[2],
|
|
521
|
+
down: sphericalPolynomialFaces[3],
|
|
522
|
+
front: sphericalPolynomialFaces[4],
|
|
523
|
+
back: sphericalPolynomialFaces[5],
|
|
524
|
+
format: Constants.TEXTUREFORMAT_RGBA,
|
|
525
|
+
type: Constants.TEXTURETYPE_FLOAT,
|
|
526
|
+
gammaSpace: false,
|
|
527
|
+
});
|
|
528
|
+
}
|
|
529
|
+
else {
|
|
530
|
+
info.sphericalPolynomial = undefined;
|
|
531
|
+
}
|
|
532
|
+
}
|
|
533
|
+
}
|
|
534
|
+
/**
|
|
535
|
+
* Gets or sets a boolean indicating that LOD info is stored in alpha channel (false by default)
|
|
536
|
+
*/
|
|
537
|
+
DDSTools.StoreLODInAlphaChannel = false;
|
|
538
|
+
|
|
539
|
+
export { DDSTools };
|
|
540
|
+
//# sourceMappingURL=dds-6EdM5O6M.esm.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dds-6EdM5O6M.esm.js","sources":["../../../../../dev/core/dist/Misc/dds.js"],"sourcesContent":["/* eslint-disable @typescript-eslint/naming-convention */\nimport { Clamp } from \"../Maths/math.scalar.functions\";\nimport { Constants } from \"../Engines/constants\";\nimport { Logger } from \"../Misc/logger\";\nimport { CubeMapToSphericalPolynomialTools } from \"../Misc/HighDynamicRange/cubemapToSphericalPolynomial\";\nimport { FromHalfFloat, ToHalfFloat } from \"./textureTools\";\nimport \"../Engines/AbstractEngine/abstractEngine.cubeTexture\";\n// Based on demo done by Brandon Jones - http://media.tojicode.com/webgl-samples/dds.html\n// All values and structures referenced from:\n// http://msdn.microsoft.com/en-us/library/bb943991.aspx/\nconst DDS_MAGIC = 0x20534444;\nconst //DDSD_CAPS = 0x1,\n//DDSD_HEIGHT = 0x2,\n//DDSD_WIDTH = 0x4,\n//DDSD_PITCH = 0x8,\n//DDSD_PIXELFORMAT = 0x1000,\nDDSD_MIPMAPCOUNT = 0x20000;\n//DDSD_LINEARSIZE = 0x80000,\n//DDSD_DEPTH = 0x800000;\n// var DDSCAPS_COMPLEX = 0x8,\n// DDSCAPS_MIPMAP = 0x400000,\n// DDSCAPS_TEXTURE = 0x1000;\nconst DDSCAPS2_CUBEMAP = 0x200;\n// DDSCAPS2_CUBEMAP_POSITIVEX = 0x400,\n// DDSCAPS2_CUBEMAP_NEGATIVEX = 0x800,\n// DDSCAPS2_CUBEMAP_POSITIVEY = 0x1000,\n// DDSCAPS2_CUBEMAP_NEGATIVEY = 0x2000,\n// DDSCAPS2_CUBEMAP_POSITIVEZ = 0x4000,\n// DDSCAPS2_CUBEMAP_NEGATIVEZ = 0x8000,\n// DDSCAPS2_VOLUME = 0x200000;\nconst //DDPF_ALPHAPIXELS = 0x1,\n//DDPF_ALPHA = 0x2,\nDDPF_FOURCC = 0x4, DDPF_RGB = 0x40, \n//DDPF_YUV = 0x200,\nDDPF_LUMINANCE = 0x20000;\nfunction FourCCToInt32(value) {\n return value.charCodeAt(0) + (value.charCodeAt(1) << 8) + (value.charCodeAt(2) << 16) + (value.charCodeAt(3) << 24);\n}\nfunction Int32ToFourCC(value) {\n return String.fromCharCode(value & 0xff, (value >> 8) & 0xff, (value >> 16) & 0xff, (value >> 24) & 0xff);\n}\nconst FOURCC_DXT1 = FourCCToInt32(\"DXT1\");\nconst FOURCC_DXT3 = FourCCToInt32(\"DXT3\");\nconst FOURCC_DXT5 = FourCCToInt32(\"DXT5\");\nconst FOURCC_DX10 = FourCCToInt32(\"DX10\");\nconst FOURCC_D3DFMT_R16G16B16A16F = 113;\nconst FOURCC_D3DFMT_R32G32B32A32F = 116;\nconst DXGI_FORMAT_R32G32B32A32_FLOAT = 2;\nconst DXGI_FORMAT_R16G16B16A16_FLOAT = 10;\nconst DXGI_FORMAT_B8G8R8X8_UNORM = 88;\nconst headerLengthInt = 31; // The header length in 32 bit ints\n// Offsets into the header array\nconst off_magic = 0;\nconst off_size = 1;\nconst off_flags = 2;\nconst off_height = 3;\nconst off_width = 4;\nconst off_mipmapCount = 7;\nconst off_pfFlags = 20;\nconst off_pfFourCC = 21;\nconst off_RGBbpp = 22;\nconst off_RMask = 23;\nconst off_GMask = 24;\nconst off_BMask = 25;\nconst off_AMask = 26;\n// var off_caps1 = 27;\nconst off_caps2 = 28;\n// var off_caps3 = 29;\n// var off_caps4 = 30;\nconst off_dxgiFormat = 32;\n/**\n * Class used to provide DDS decompression tools\n */\nexport class DDSTools {\n /**\n * Gets DDS information from an array buffer\n * @param data defines the array buffer view to read data from\n * @returns the DDS information\n */\n static GetDDSInfo(data) {\n const header = new Int32Array(data.buffer, data.byteOffset, headerLengthInt);\n const extendedHeader = new Int32Array(data.buffer, data.byteOffset, headerLengthInt + 4);\n let mipmapCount = 1;\n if (header[off_flags] & DDSD_MIPMAPCOUNT) {\n mipmapCount = Math.max(1, header[off_mipmapCount]);\n }\n const fourCC = header[off_pfFourCC];\n const dxgiFormat = fourCC === FOURCC_DX10 ? extendedHeader[off_dxgiFormat] : 0;\n let textureType = Constants.TEXTURETYPE_UNSIGNED_BYTE;\n switch (fourCC) {\n case FOURCC_D3DFMT_R16G16B16A16F:\n textureType = Constants.TEXTURETYPE_HALF_FLOAT;\n break;\n case FOURCC_D3DFMT_R32G32B32A32F:\n textureType = Constants.TEXTURETYPE_FLOAT;\n break;\n case FOURCC_DX10:\n if (dxgiFormat === DXGI_FORMAT_R16G16B16A16_FLOAT) {\n textureType = Constants.TEXTURETYPE_HALF_FLOAT;\n break;\n }\n if (dxgiFormat === DXGI_FORMAT_R32G32B32A32_FLOAT) {\n textureType = Constants.TEXTURETYPE_FLOAT;\n break;\n }\n }\n return {\n width: header[off_width],\n height: header[off_height],\n mipmapCount: mipmapCount,\n isFourCC: (header[off_pfFlags] & DDPF_FOURCC) === DDPF_FOURCC,\n isRGB: (header[off_pfFlags] & DDPF_RGB) === DDPF_RGB,\n isLuminance: (header[off_pfFlags] & DDPF_LUMINANCE) === DDPF_LUMINANCE,\n isCube: (header[off_caps2] & DDSCAPS2_CUBEMAP) === DDSCAPS2_CUBEMAP,\n isCompressed: fourCC === FOURCC_DXT1 || fourCC === FOURCC_DXT3 || fourCC === FOURCC_DXT5,\n dxgiFormat: dxgiFormat,\n textureType: textureType,\n };\n }\n static _GetHalfFloatAsFloatRGBAArrayBuffer(width, height, dataOffset, dataLength, arrayBuffer, lod) {\n const destArray = new Float32Array(dataLength);\n const srcData = new Uint16Array(arrayBuffer, dataOffset);\n let index = 0;\n for (let y = 0; y < height; y++) {\n for (let x = 0; x < width; x++) {\n const srcPos = (x + y * width) * 4;\n destArray[index] = FromHalfFloat(srcData[srcPos]);\n destArray[index + 1] = FromHalfFloat(srcData[srcPos + 1]);\n destArray[index + 2] = FromHalfFloat(srcData[srcPos + 2]);\n if (DDSTools.StoreLODInAlphaChannel) {\n destArray[index + 3] = lod;\n }\n else {\n destArray[index + 3] = FromHalfFloat(srcData[srcPos + 3]);\n }\n index += 4;\n }\n }\n return destArray;\n }\n static _GetHalfFloatRGBAArrayBuffer(width, height, dataOffset, dataLength, arrayBuffer, lod) {\n if (DDSTools.StoreLODInAlphaChannel) {\n const destArray = new Uint16Array(dataLength);\n const srcData = new Uint16Array(arrayBuffer, dataOffset);\n let index = 0;\n for (let y = 0; y < height; y++) {\n for (let x = 0; x < width; x++) {\n const srcPos = (x + y * width) * 4;\n destArray[index] = srcData[srcPos];\n destArray[index + 1] = srcData[srcPos + 1];\n destArray[index + 2] = srcData[srcPos + 2];\n destArray[index + 3] = ToHalfFloat(lod);\n index += 4;\n }\n }\n return destArray;\n }\n return new Uint16Array(arrayBuffer, dataOffset, dataLength);\n }\n static _GetFloatRGBAArrayBuffer(width, height, dataOffset, dataLength, arrayBuffer, lod) {\n if (DDSTools.StoreLODInAlphaChannel) {\n const destArray = new Float32Array(dataLength);\n const srcData = new Float32Array(arrayBuffer, dataOffset);\n let index = 0;\n for (let y = 0; y < height; y++) {\n for (let x = 0; x < width; x++) {\n const srcPos = (x + y * width) * 4;\n destArray[index] = srcData[srcPos];\n destArray[index + 1] = srcData[srcPos + 1];\n destArray[index + 2] = srcData[srcPos + 2];\n destArray[index + 3] = lod;\n index += 4;\n }\n }\n return destArray;\n }\n return new Float32Array(arrayBuffer, dataOffset, dataLength);\n }\n static _GetFloatAsHalfFloatRGBAArrayBuffer(width, height, dataOffset, dataLength, arrayBuffer, lod) {\n const destArray = new Uint16Array(dataLength);\n const srcData = new Float32Array(arrayBuffer, dataOffset);\n let index = 0;\n for (let y = 0; y < height; y++) {\n for (let x = 0; x < width; x++) {\n destArray[index] = ToHalfFloat(srcData[index]);\n destArray[index + 1] = ToHalfFloat(srcData[index + 1]);\n destArray[index + 2] = ToHalfFloat(srcData[index + 2]);\n if (DDSTools.StoreLODInAlphaChannel) {\n destArray[index + 3] = ToHalfFloat(lod);\n }\n else {\n destArray[index + 3] = ToHalfFloat(srcData[index + 3]);\n }\n index += 4;\n }\n }\n return destArray;\n }\n static _GetFloatAsUIntRGBAArrayBuffer(width, height, dataOffset, dataLength, arrayBuffer, lod) {\n const destArray = new Uint8Array(dataLength);\n const srcData = new Float32Array(arrayBuffer, dataOffset);\n let index = 0;\n for (let y = 0; y < height; y++) {\n for (let x = 0; x < width; x++) {\n const srcPos = (x + y * width) * 4;\n destArray[index] = Clamp(srcData[srcPos]) * 255;\n destArray[index + 1] = Clamp(srcData[srcPos + 1]) * 255;\n destArray[index + 2] = Clamp(srcData[srcPos + 2]) * 255;\n if (DDSTools.StoreLODInAlphaChannel) {\n destArray[index + 3] = lod;\n }\n else {\n destArray[index + 3] = Clamp(srcData[srcPos + 3]) * 255;\n }\n index += 4;\n }\n }\n return destArray;\n }\n static _GetHalfFloatAsUIntRGBAArrayBuffer(width, height, dataOffset, dataLength, arrayBuffer, lod) {\n const destArray = new Uint8Array(dataLength);\n const srcData = new Uint16Array(arrayBuffer, dataOffset);\n let index = 0;\n for (let y = 0; y < height; y++) {\n for (let x = 0; x < width; x++) {\n const srcPos = (x + y * width) * 4;\n destArray[index] = Clamp(FromHalfFloat(srcData[srcPos])) * 255;\n destArray[index + 1] = Clamp(FromHalfFloat(srcData[srcPos + 1])) * 255;\n destArray[index + 2] = Clamp(FromHalfFloat(srcData[srcPos + 2])) * 255;\n if (DDSTools.StoreLODInAlphaChannel) {\n destArray[index + 3] = lod;\n }\n else {\n destArray[index + 3] = Clamp(FromHalfFloat(srcData[srcPos + 3])) * 255;\n }\n index += 4;\n }\n }\n return destArray;\n }\n static _GetRGBAArrayBuffer(width, height, dataOffset, dataLength, arrayBuffer, rOffset, gOffset, bOffset, aOffset) {\n const byteArray = new Uint8Array(dataLength);\n const srcData = new Uint8Array(arrayBuffer, dataOffset);\n let index = 0;\n for (let y = 0; y < height; y++) {\n for (let x = 0; x < width; x++) {\n const srcPos = (x + y * width) * 4;\n byteArray[index] = srcData[srcPos + rOffset];\n byteArray[index + 1] = srcData[srcPos + gOffset];\n byteArray[index + 2] = srcData[srcPos + bOffset];\n byteArray[index + 3] = srcData[srcPos + aOffset];\n index += 4;\n }\n }\n return byteArray;\n }\n static _ExtractLongWordOrder(value) {\n if (value === 0 || value === 255 || value === -16777216) {\n return 0;\n }\n return 1 + DDSTools._ExtractLongWordOrder(value >> 8);\n }\n static _GetRGBArrayBuffer(width, height, dataOffset, dataLength, arrayBuffer, rOffset, gOffset, bOffset) {\n const byteArray = new Uint8Array(dataLength);\n const srcData = new Uint8Array(arrayBuffer, dataOffset);\n let index = 0;\n for (let y = 0; y < height; y++) {\n for (let x = 0; x < width; x++) {\n const srcPos = (x + y * width) * 3;\n byteArray[index] = srcData[srcPos + rOffset];\n byteArray[index + 1] = srcData[srcPos + gOffset];\n byteArray[index + 2] = srcData[srcPos + bOffset];\n index += 3;\n }\n }\n return byteArray;\n }\n static _GetLuminanceArrayBuffer(width, height, dataOffset, dataLength, arrayBuffer) {\n const byteArray = new Uint8Array(dataLength);\n const srcData = new Uint8Array(arrayBuffer, dataOffset);\n let index = 0;\n for (let y = 0; y < height; y++) {\n for (let x = 0; x < width; x++) {\n const srcPos = x + y * width;\n byteArray[index] = srcData[srcPos];\n index++;\n }\n }\n return byteArray;\n }\n /**\n * Uploads DDS Levels to a Babylon Texture\n * @internal\n */\n static UploadDDSLevels(engine, texture, data, info, loadMipmaps, faces, lodIndex = -1, currentFace, destTypeMustBeFilterable = true) {\n let sphericalPolynomialFaces = null;\n if (info.sphericalPolynomial) {\n sphericalPolynomialFaces = [];\n }\n const ext = !!engine.getCaps().s3tc;\n // TODO WEBGPU Once generateMipMaps is split into generateMipMaps + hasMipMaps in InternalTexture this line can be removed\n texture.generateMipMaps = loadMipmaps;\n const header = new Int32Array(data.buffer, data.byteOffset, headerLengthInt);\n let fourCC, width, height, dataLength = 0, dataOffset;\n let byteArray, mipmapCount, mip;\n let internalCompressedFormat = 0;\n let blockBytes = 1;\n if (header[off_magic] !== DDS_MAGIC) {\n Logger.Error(\"Invalid magic number in DDS header\");\n return;\n }\n if (!info.isFourCC && !info.isRGB && !info.isLuminance) {\n Logger.Error(\"Unsupported format, must contain a FourCC, RGB or LUMINANCE code\");\n return;\n }\n if (info.isCompressed && !ext) {\n Logger.Error(\"Compressed textures are not supported on this platform.\");\n return;\n }\n let bpp = header[off_RGBbpp];\n dataOffset = header[off_size] + 4;\n let computeFormats = false;\n if (info.isFourCC) {\n fourCC = header[off_pfFourCC];\n switch (fourCC) {\n case FOURCC_DXT1:\n blockBytes = 8;\n internalCompressedFormat = Constants.TEXTUREFORMAT_COMPRESSED_RGBA_S3TC_DXT1;\n break;\n case FOURCC_DXT3:\n blockBytes = 16;\n internalCompressedFormat = Constants.TEXTUREFORMAT_COMPRESSED_RGBA_S3TC_DXT3;\n break;\n case FOURCC_DXT5:\n blockBytes = 16;\n internalCompressedFormat = Constants.TEXTUREFORMAT_COMPRESSED_RGBA_S3TC_DXT5;\n break;\n case FOURCC_D3DFMT_R16G16B16A16F:\n computeFormats = true;\n bpp = 64;\n break;\n case FOURCC_D3DFMT_R32G32B32A32F:\n computeFormats = true;\n bpp = 128;\n break;\n case FOURCC_DX10: {\n // There is an additionnal header so dataOffset need to be changed\n dataOffset += 5 * 4; // 5 uints\n let supported = false;\n switch (info.dxgiFormat) {\n case DXGI_FORMAT_R16G16B16A16_FLOAT:\n computeFormats = true;\n bpp = 64;\n supported = true;\n break;\n case DXGI_FORMAT_R32G32B32A32_FLOAT:\n computeFormats = true;\n bpp = 128;\n supported = true;\n break;\n case DXGI_FORMAT_B8G8R8X8_UNORM:\n info.isRGB = true;\n info.isFourCC = false;\n bpp = 32;\n supported = true;\n break;\n }\n if (supported) {\n break;\n }\n }\n // eslint-disable-next-line no-fallthrough\n default:\n Logger.Error([\"Unsupported FourCC code:\", Int32ToFourCC(fourCC)]);\n return;\n }\n }\n const rOffset = DDSTools._ExtractLongWordOrder(header[off_RMask]);\n const gOffset = DDSTools._ExtractLongWordOrder(header[off_GMask]);\n const bOffset = DDSTools._ExtractLongWordOrder(header[off_BMask]);\n const aOffset = DDSTools._ExtractLongWordOrder(header[off_AMask]);\n if (computeFormats) {\n internalCompressedFormat = engine._getRGBABufferInternalSizedFormat(info.textureType);\n }\n mipmapCount = 1;\n if (header[off_flags] & DDSD_MIPMAPCOUNT && loadMipmaps !== false) {\n mipmapCount = Math.max(1, header[off_mipmapCount]);\n }\n const startFace = currentFace || 0;\n const caps = engine.getCaps();\n for (let face = startFace; face < faces; face++) {\n width = header[off_width];\n height = header[off_height];\n for (mip = 0; mip < mipmapCount; ++mip) {\n if (lodIndex === -1 || lodIndex === mip) {\n // In case of fixed LOD, if the lod has just been uploaded, early exit.\n const i = lodIndex === -1 ? mip : 0;\n if (!info.isCompressed && info.isFourCC) {\n texture.format = Constants.TEXTUREFORMAT_RGBA;\n dataLength = width * height * 4;\n let floatArray = null;\n if (engine._badOS || engine._badDesktopOS || (!caps.textureHalfFloat && !caps.textureFloat)) {\n // Required because iOS has many issues with float and half float generation\n if (bpp === 128) {\n floatArray = DDSTools._GetFloatAsUIntRGBAArrayBuffer(width, height, data.byteOffset + dataOffset, dataLength, data.buffer, i);\n if (sphericalPolynomialFaces && i == 0) {\n sphericalPolynomialFaces.push(DDSTools._GetFloatRGBAArrayBuffer(width, height, data.byteOffset + dataOffset, dataLength, data.buffer, i));\n }\n }\n else if (bpp === 64) {\n floatArray = DDSTools._GetHalfFloatAsUIntRGBAArrayBuffer(width, height, data.byteOffset + dataOffset, dataLength, data.buffer, i);\n if (sphericalPolynomialFaces && i == 0) {\n sphericalPolynomialFaces.push(DDSTools._GetHalfFloatAsFloatRGBAArrayBuffer(width, height, data.byteOffset + dataOffset, dataLength, data.buffer, i));\n }\n }\n texture.type = Constants.TEXTURETYPE_UNSIGNED_BYTE;\n }\n else {\n const floatAvailable = caps.textureFloat && ((destTypeMustBeFilterable && caps.textureFloatLinearFiltering) || !destTypeMustBeFilterable);\n const halfFloatAvailable = caps.textureHalfFloat && ((destTypeMustBeFilterable && caps.textureHalfFloatLinearFiltering) || !destTypeMustBeFilterable);\n const destType = (bpp === 128 || (bpp === 64 && !halfFloatAvailable)) && floatAvailable\n ? Constants.TEXTURETYPE_FLOAT\n : (bpp === 64 || (bpp === 128 && !floatAvailable)) && halfFloatAvailable\n ? Constants.TEXTURETYPE_HALF_FLOAT\n : Constants.TEXTURETYPE_UNSIGNED_BYTE;\n let dataGetter;\n let dataGetterPolynomial = null;\n switch (bpp) {\n case 128: {\n switch (destType) {\n case Constants.TEXTURETYPE_FLOAT:\n dataGetter = DDSTools._GetFloatRGBAArrayBuffer;\n dataGetterPolynomial = null;\n break;\n case Constants.TEXTURETYPE_HALF_FLOAT:\n dataGetter = DDSTools._GetFloatAsHalfFloatRGBAArrayBuffer;\n dataGetterPolynomial = DDSTools._GetFloatRGBAArrayBuffer;\n break;\n case Constants.TEXTURETYPE_UNSIGNED_BYTE:\n dataGetter = DDSTools._GetFloatAsUIntRGBAArrayBuffer;\n dataGetterPolynomial = DDSTools._GetFloatRGBAArrayBuffer;\n break;\n }\n break;\n }\n default: {\n // 64 bpp\n switch (destType) {\n case Constants.TEXTURETYPE_FLOAT:\n dataGetter = DDSTools._GetHalfFloatAsFloatRGBAArrayBuffer;\n dataGetterPolynomial = null;\n break;\n case Constants.TEXTURETYPE_HALF_FLOAT:\n dataGetter = DDSTools._GetHalfFloatRGBAArrayBuffer;\n dataGetterPolynomial = DDSTools._GetHalfFloatAsFloatRGBAArrayBuffer;\n break;\n case Constants.TEXTURETYPE_UNSIGNED_BYTE:\n dataGetter = DDSTools._GetHalfFloatAsUIntRGBAArrayBuffer;\n dataGetterPolynomial = DDSTools._GetHalfFloatAsFloatRGBAArrayBuffer;\n break;\n }\n break;\n }\n }\n texture.type = destType;\n floatArray = dataGetter(width, height, data.byteOffset + dataOffset, dataLength, data.buffer, i);\n if (sphericalPolynomialFaces && i == 0) {\n sphericalPolynomialFaces.push(dataGetterPolynomial ? dataGetterPolynomial(width, height, data.byteOffset + dataOffset, dataLength, data.buffer, i) : floatArray);\n }\n }\n if (floatArray) {\n engine._uploadDataToTextureDirectly(texture, floatArray, face, i);\n }\n }\n else if (info.isRGB) {\n texture.type = Constants.TEXTURETYPE_UNSIGNED_BYTE;\n if (bpp === 24) {\n texture.format = Constants.TEXTUREFORMAT_RGB;\n dataLength = width * height * 3;\n byteArray = DDSTools._GetRGBArrayBuffer(width, height, data.byteOffset + dataOffset, dataLength, data.buffer, rOffset, gOffset, bOffset);\n engine._uploadDataToTextureDirectly(texture, byteArray, face, i);\n }\n else {\n // 32\n texture.format = Constants.TEXTUREFORMAT_RGBA;\n dataLength = width * height * 4;\n byteArray = DDSTools._GetRGBAArrayBuffer(width, height, data.byteOffset + dataOffset, dataLength, data.buffer, rOffset, gOffset, bOffset, aOffset);\n engine._uploadDataToTextureDirectly(texture, byteArray, face, i);\n }\n }\n else if (info.isLuminance) {\n const unpackAlignment = engine._getUnpackAlignement();\n const unpaddedRowSize = width;\n const paddedRowSize = Math.floor((width + unpackAlignment - 1) / unpackAlignment) * unpackAlignment;\n dataLength = paddedRowSize * (height - 1) + unpaddedRowSize;\n byteArray = DDSTools._GetLuminanceArrayBuffer(width, height, data.byteOffset + dataOffset, dataLength, data.buffer);\n texture.format = Constants.TEXTUREFORMAT_LUMINANCE;\n texture.type = Constants.TEXTURETYPE_UNSIGNED_BYTE;\n engine._uploadDataToTextureDirectly(texture, byteArray, face, i);\n }\n else {\n dataLength = (((Math.max(4, width) / 4) * Math.max(4, height)) / 4) * blockBytes;\n byteArray = new Uint8Array(data.buffer, data.byteOffset + dataOffset, dataLength);\n texture.type = Constants.TEXTURETYPE_UNSIGNED_BYTE;\n engine._uploadCompressedDataToTextureDirectly(texture, internalCompressedFormat, width, height, byteArray, face, i);\n }\n }\n dataOffset += bpp ? width * height * (bpp / 8) : dataLength;\n width *= 0.5;\n height *= 0.5;\n width = Math.max(1.0, width);\n height = Math.max(1.0, height);\n }\n if (currentFace !== undefined) {\n // Loading a single face\n break;\n }\n }\n if (sphericalPolynomialFaces && sphericalPolynomialFaces.length > 0) {\n info.sphericalPolynomial = CubeMapToSphericalPolynomialTools.ConvertCubeMapToSphericalPolynomial({\n size: header[off_width],\n right: sphericalPolynomialFaces[0],\n left: sphericalPolynomialFaces[1],\n up: sphericalPolynomialFaces[2],\n down: sphericalPolynomialFaces[3],\n front: sphericalPolynomialFaces[4],\n back: sphericalPolynomialFaces[5],\n format: Constants.TEXTUREFORMAT_RGBA,\n type: Constants.TEXTURETYPE_FLOAT,\n gammaSpace: false,\n });\n }\n else {\n info.sphericalPolynomial = undefined;\n }\n }\n}\n/**\n * Gets or sets a boolean indicating that LOD info is stored in alpha channel (false by default)\n */\nDDSTools.StoreLODInAlphaChannel = false;\n//# sourceMappingURL=dds.js.map"],"names":[],"mappings":"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"}
|