@babylonjs/viewer 7.24.0 → 7.25.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/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_image_based-DC9fPJli.esm.min.js +2 -0
- package/dist/chunks/EXT_lights_image_based-DC9fPJli.esm.min.js.map +1 -0
- package/dist/chunks/EXT_lights_image_based-DfFQ31PL.esm.js +170 -0
- package/dist/chunks/EXT_lights_image_based-DfFQ31PL.esm.js.map +1 -0
- package/dist/chunks/EXT_mesh_gpu_instancing-DepTQjtD.esm.min.js +2 -0
- package/dist/chunks/EXT_mesh_gpu_instancing-DepTQjtD.esm.min.js.map +1 -0
- package/dist/chunks/EXT_mesh_gpu_instancing-cqFbSeIg.esm.js +86 -0
- package/dist/chunks/EXT_mesh_gpu_instancing-cqFbSeIg.esm.js.map +1 -0
- package/dist/chunks/EXT_meshopt_compression-BZz8a7N9.esm.js +134 -0
- package/dist/chunks/EXT_meshopt_compression-BZz8a7N9.esm.js.map +1 -0
- package/dist/chunks/EXT_meshopt_compression-CjMbh6eU.esm.min.js +2 -0
- package/dist/chunks/EXT_meshopt_compression-CjMbh6eU.esm.min.js.map +1 -0
- package/dist/chunks/EXT_texture_avif-DBTOdhvO.esm.js +44 -0
- package/dist/chunks/EXT_texture_avif-DBTOdhvO.esm.js.map +1 -0
- package/dist/chunks/EXT_texture_avif-DVAZSRkl.esm.min.js +2 -0
- package/dist/chunks/EXT_texture_avif-DVAZSRkl.esm.min.js.map +1 -0
- package/dist/chunks/EXT_texture_webp-BWiEqn-s.esm.min.js +2 -0
- package/dist/chunks/EXT_texture_webp-BWiEqn-s.esm.min.js.map +1 -0
- package/dist/chunks/EXT_texture_webp-Bgb7TgNp.esm.js +43 -0
- package/dist/chunks/EXT_texture_webp-Bgb7TgNp.esm.js.map +1 -0
- package/dist/chunks/ExtrasAsMetadata-Cr7Llzvd.esm.js +64 -0
- package/dist/chunks/ExtrasAsMetadata-Cr7Llzvd.esm.js.map +1 -0
- package/dist/chunks/ExtrasAsMetadata-DGIXOpGN.esm.min.js +2 -0
- package/dist/chunks/ExtrasAsMetadata-DGIXOpGN.esm.min.js.map +1 -0
- package/dist/chunks/KHR_animation_pointer-DrmQLtaw.esm.js +343 -0
- package/dist/chunks/KHR_animation_pointer-DrmQLtaw.esm.js.map +1 -0
- package/dist/chunks/KHR_animation_pointer-IVYLBxVU.esm.min.js +2 -0
- package/dist/chunks/KHR_animation_pointer-IVYLBxVU.esm.min.js.map +1 -0
- package/dist/chunks/KHR_draco_mesh_compression-CfqHokQU.esm.min.js +2 -0
- package/dist/chunks/KHR_draco_mesh_compression-CfqHokQU.esm.min.js.map +1 -0
- package/dist/chunks/KHR_draco_mesh_compression-DZR9h5nP.esm.js +610 -0
- package/dist/chunks/KHR_draco_mesh_compression-DZR9h5nP.esm.js.map +1 -0
- package/dist/chunks/KHR_interactivity-BQOxjpC1.esm.min.js +2 -0
- package/dist/chunks/KHR_interactivity-BQOxjpC1.esm.min.js.map +1 -0
- package/dist/chunks/KHR_interactivity-BbEGVmbr.esm.js +4033 -0
- package/dist/chunks/KHR_interactivity-BbEGVmbr.esm.js.map +1 -0
- package/dist/chunks/KHR_lights_punctual-5wF2wPZ4.esm.js +1253 -0
- package/dist/chunks/KHR_lights_punctual-5wF2wPZ4.esm.js.map +1 -0
- package/dist/chunks/KHR_lights_punctual-CxE0tWFW.esm.min.js +2 -0
- package/dist/chunks/KHR_lights_punctual-CxE0tWFW.esm.min.js.map +1 -0
- package/dist/chunks/KHR_materials_anisotropy-D5wj2P4R.esm.js +64 -0
- package/dist/chunks/KHR_materials_anisotropy-D5wj2P4R.esm.js.map +1 -0
- package/dist/chunks/KHR_materials_anisotropy-DzShF01_.esm.min.js +2 -0
- package/dist/chunks/KHR_materials_anisotropy-DzShF01_.esm.min.js.map +1 -0
- package/dist/chunks/KHR_materials_clearcoat-CVlq2-J0.esm.min.js +2 -0
- package/dist/chunks/KHR_materials_clearcoat-CVlq2-J0.esm.min.js.map +1 -0
- package/dist/chunks/KHR_materials_clearcoat-v7Cuht8B.esm.js +96 -0
- package/dist/chunks/KHR_materials_clearcoat-v7Cuht8B.esm.js.map +1 -0
- package/dist/chunks/KHR_materials_diffuse_transmission-Btv08kRf.esm.min.js +2 -0
- package/dist/chunks/KHR_materials_diffuse_transmission-Btv08kRf.esm.min.js.map +1 -0
- package/dist/chunks/KHR_materials_diffuse_transmission-DxEe_ssV.esm.js +95 -0
- package/dist/chunks/KHR_materials_diffuse_transmission-DxEe_ssV.esm.js.map +1 -0
- package/dist/chunks/KHR_materials_dispersion-BIMxA8Vq.esm.min.js +2 -0
- package/dist/chunks/KHR_materials_dispersion-BIMxA8Vq.esm.min.js.map +1 -0
- package/dist/chunks/KHR_materials_dispersion-D_4Rt_AT.esm.js +62 -0
- package/dist/chunks/KHR_materials_dispersion-D_4Rt_AT.esm.js.map +1 -0
- package/dist/chunks/KHR_materials_emissive_strength-BImvoUuh.esm.js +55 -0
- package/dist/chunks/KHR_materials_emissive_strength-BImvoUuh.esm.js.map +1 -0
- package/dist/chunks/KHR_materials_emissive_strength-BidGyKyI.esm.min.js +2 -0
- package/dist/chunks/KHR_materials_emissive_strength-BidGyKyI.esm.min.js.map +1 -0
- package/dist/chunks/KHR_materials_ior-DRDijE46.esm.min.js +2 -0
- package/dist/chunks/KHR_materials_ior-DRDijE46.esm.min.js.map +1 -0
- package/dist/chunks/KHR_materials_ior-Qsq8sSTQ.esm.js +64 -0
- package/dist/chunks/KHR_materials_ior-Qsq8sSTQ.esm.js.map +1 -0
- package/dist/chunks/KHR_materials_iridescence-BO-OSEkK.esm.min.js +2 -0
- package/dist/chunks/KHR_materials_iridescence-BO-OSEkK.esm.min.js.map +1 -0
- package/dist/chunks/KHR_materials_iridescence-Cc8j46MB.esm.js +72 -0
- package/dist/chunks/KHR_materials_iridescence-Cc8j46MB.esm.js.map +1 -0
- package/dist/chunks/KHR_materials_pbrSpecularGlossiness-Cd2w1hlF.esm.min.js +2 -0
- package/dist/chunks/KHR_materials_pbrSpecularGlossiness-Cd2w1hlF.esm.min.js.map +1 -0
- package/dist/chunks/KHR_materials_pbrSpecularGlossiness-DEtDFZPX.esm.js +81 -0
- package/dist/chunks/KHR_materials_pbrSpecularGlossiness-DEtDFZPX.esm.js.map +1 -0
- package/dist/chunks/KHR_materials_sheen-2GP5jiCT.esm.min.js +2 -0
- package/dist/chunks/KHR_materials_sheen-2GP5jiCT.esm.min.js.map +1 -0
- package/dist/chunks/KHR_materials_sheen-CQ3Q14sp.esm.js +85 -0
- package/dist/chunks/KHR_materials_sheen-CQ3Q14sp.esm.js.map +1 -0
- package/dist/chunks/KHR_materials_specular-B8bgMjMv.esm.min.js +2 -0
- package/dist/chunks/KHR_materials_specular-B8bgMjMv.esm.min.js.map +1 -0
- package/dist/chunks/KHR_materials_specular-D7P48RHW.esm.js +75 -0
- package/dist/chunks/KHR_materials_specular-D7P48RHW.esm.js.map +1 -0
- package/dist/chunks/KHR_materials_transmission-B6NtjEPp.esm.js +306 -0
- package/dist/chunks/KHR_materials_transmission-B6NtjEPp.esm.js.map +1 -0
- package/dist/chunks/KHR_materials_transmission-DPUUVLV8.esm.min.js +2 -0
- package/dist/chunks/KHR_materials_transmission-DPUUVLV8.esm.min.js.map +1 -0
- package/dist/chunks/KHR_materials_unlit-BRJnLegu.esm.min.js +2 -0
- package/dist/chunks/KHR_materials_unlit-BRJnLegu.esm.min.js.map +1 -0
- package/dist/chunks/KHR_materials_unlit-jqO9HFUm.esm.js +74 -0
- package/dist/chunks/KHR_materials_unlit-jqO9HFUm.esm.js.map +1 -0
- package/dist/chunks/KHR_materials_variants-D3zo3Fn8.esm.min.js +2 -0
- package/dist/chunks/KHR_materials_variants-D3zo3Fn8.esm.min.js.map +1 -0
- package/dist/chunks/KHR_materials_variants-DVhDwsbf.esm.js +238 -0
- package/dist/chunks/KHR_materials_variants-DVhDwsbf.esm.js.map +1 -0
- package/dist/chunks/KHR_materials_volume-BBlHI00R.esm.min.js +2 -0
- package/dist/chunks/KHR_materials_volume-BBlHI00R.esm.min.js.map +1 -0
- package/dist/chunks/KHR_materials_volume-pazjLjwn.esm.js +87 -0
- package/dist/chunks/KHR_materials_volume-pazjLjwn.esm.js.map +1 -0
- package/dist/chunks/KHR_mesh_quantization-BFCOpPq5.esm.min.js +2 -0
- package/dist/chunks/KHR_mesh_quantization-BFCOpPq5.esm.min.js.map +1 -0
- package/dist/chunks/KHR_mesh_quantization-DPAOJj_N.esm.js +26 -0
- package/dist/chunks/KHR_mesh_quantization-DPAOJj_N.esm.js.map +1 -0
- package/dist/chunks/KHR_texture_basisu-BGQg840h.esm.js +43 -0
- package/dist/chunks/KHR_texture_basisu-BGQg840h.esm.js.map +1 -0
- package/dist/chunks/KHR_texture_basisu-DjOd_UYI.esm.min.js +2 -0
- package/dist/chunks/KHR_texture_basisu-DjOd_UYI.esm.min.js.map +1 -0
- package/dist/chunks/KHR_texture_transform-CIEkHeKT.esm.js +63 -0
- package/dist/chunks/KHR_texture_transform-CIEkHeKT.esm.js.map +1 -0
- package/dist/chunks/KHR_texture_transform-LAK_4q2j.esm.min.js +2 -0
- package/dist/chunks/KHR_texture_transform-LAK_4q2j.esm.min.js.map +1 -0
- package/dist/chunks/KHR_xmp_json_ld-ByF20O9F.esm.min.js +2 -0
- package/dist/chunks/KHR_xmp_json_ld-ByF20O9F.esm.min.js.map +1 -0
- package/dist/chunks/KHR_xmp_json_ld-if0NXwJy.esm.js +51 -0
- package/dist/chunks/KHR_xmp_json_ld-if0NXwJy.esm.js.map +1 -0
- package/dist/chunks/MSFT_audio_emitter-D2B5Hzz0.esm.js +1608 -0
- package/dist/chunks/MSFT_audio_emitter-D2B5Hzz0.esm.js.map +1 -0
- package/dist/chunks/MSFT_audio_emitter-k-n62mVd.esm.min.js +2 -0
- package/dist/chunks/MSFT_audio_emitter-k-n62mVd.esm.min.js.map +1 -0
- package/dist/chunks/MSFT_lod-CpIv0Ill.esm.min.js +2 -0
- package/dist/chunks/MSFT_lod-CpIv0Ill.esm.min.js.map +1 -0
- package/dist/chunks/MSFT_lod-DZ3Pv8Ql.esm.js +337 -0
- package/dist/chunks/MSFT_lod-DZ3Pv8Ql.esm.js.map +1 -0
- package/dist/chunks/MSFT_minecraftMesh-GnUA-Z1C.esm.min.js +2 -0
- package/dist/chunks/MSFT_minecraftMesh-GnUA-Z1C.esm.min.js.map +1 -0
- package/dist/chunks/MSFT_minecraftMesh-KL-RFOpw.esm.js +46 -0
- package/dist/chunks/MSFT_minecraftMesh-KL-RFOpw.esm.js.map +1 -0
- package/dist/chunks/MSFT_sRGBFactors-BqvzNhFN.esm.js +47 -0
- package/dist/chunks/MSFT_sRGBFactors-BqvzNhFN.esm.js.map +1 -0
- package/dist/chunks/MSFT_sRGBFactors-BzPS1BeM.esm.min.js +2 -0
- package/dist/chunks/MSFT_sRGBFactors-BzPS1BeM.esm.min.js.map +1 -0
- package/dist/chunks/assetContainer-CaFtpYEC.esm.min.js +2 -0
- package/dist/chunks/assetContainer-CaFtpYEC.esm.min.js.map +1 -0
- package/dist/chunks/assetContainer-DEN9e8ap.esm.js +1598 -0
- package/dist/chunks/assetContainer-DEN9e8ap.esm.js.map +1 -0
- package/dist/chunks/basisTextureLoader-4lvRsW5R.esm.js +600 -0
- package/dist/chunks/basisTextureLoader-4lvRsW5R.esm.js.map +1 -0
- package/dist/chunks/basisTextureLoader-CSgqqtvQ.esm.min.js +2 -0
- package/dist/chunks/basisTextureLoader-CSgqqtvQ.esm.min.js.map +1 -0
- package/dist/chunks/ddsTextureLoader-BIGKoQfH.esm.min.js +2 -0
- package/dist/chunks/ddsTextureLoader-BIGKoQfH.esm.min.js.map +1 -0
- package/dist/chunks/ddsTextureLoader-WkW9Z98R.esm.js +87 -0
- package/dist/chunks/ddsTextureLoader-WkW9Z98R.esm.js.map +1 -0
- package/dist/chunks/default.fragment-C5qVdkwU.esm.min.js +2 -0
- package/dist/chunks/default.fragment-C5qVdkwU.esm.min.js.map +1 -0
- package/dist/chunks/default.fragment-KU3HcVdD.esm.js +515 -0
- package/dist/chunks/default.fragment-KU3HcVdD.esm.js.map +1 -0
- package/dist/chunks/default.fragment-YuNZ7QG_.esm.js +456 -0
- package/dist/chunks/default.fragment-YuNZ7QG_.esm.js.map +1 -0
- package/dist/chunks/default.fragment-tBVj8NVU.esm.min.js +2 -0
- package/dist/chunks/default.fragment-tBVj8NVU.esm.min.js.map +1 -0
- package/dist/chunks/default.vertex-BO-PPsjL.esm.min.js +2 -0
- package/dist/chunks/default.vertex-BO-PPsjL.esm.min.js.map +1 -0
- package/dist/chunks/default.vertex-BVid4c1x.esm.js +199 -0
- package/dist/chunks/default.vertex-BVid4c1x.esm.js.map +1 -0
- package/dist/chunks/default.vertex-DyVCLPqJ.esm.js +178 -0
- package/dist/chunks/default.vertex-DyVCLPqJ.esm.js.map +1 -0
- package/dist/chunks/default.vertex-Jx_lr96D.esm.min.js +2 -0
- package/dist/chunks/default.vertex-Jx_lr96D.esm.min.js.map +1 -0
- package/dist/chunks/defaultUboDeclaration-BCAmDlbI.esm.min.js +2 -0
- package/dist/chunks/defaultUboDeclaration-BCAmDlbI.esm.min.js.map +1 -0
- package/dist/chunks/defaultUboDeclaration-Bc5r1i_z.esm.js +13 -0
- package/dist/chunks/defaultUboDeclaration-Bc5r1i_z.esm.js.map +1 -0
- package/dist/chunks/defaultUboDeclaration-BuE-DHID.esm.js +15 -0
- package/dist/chunks/defaultUboDeclaration-BuE-DHID.esm.js.map +1 -0
- package/dist/chunks/defaultUboDeclaration-DSNWa2yC.esm.min.js +2 -0
- package/dist/chunks/defaultUboDeclaration-DSNWa2yC.esm.min.js.map +1 -0
- package/dist/chunks/envTextureLoader-DMQ4NJ4V.esm.js +63 -0
- package/dist/chunks/envTextureLoader-DMQ4NJ4V.esm.js.map +1 -0
- package/dist/chunks/envTextureLoader-a8A_Oy6u.esm.min.js +2 -0
- package/dist/chunks/envTextureLoader-a8A_Oy6u.esm.min.js.map +1 -0
- package/dist/chunks/environmentTextureTools-DUKiZwIi.esm.min.js +2 -0
- package/dist/chunks/environmentTextureTools-DUKiZwIi.esm.min.js.map +1 -0
- package/dist/chunks/environmentTextureTools-nMKhR78g.esm.js +381 -0
- package/dist/chunks/environmentTextureTools-nMKhR78g.esm.js.map +1 -0
- package/dist/chunks/exrTextureLoader-D5NU09ih.esm.js +1682 -0
- package/dist/chunks/exrTextureLoader-D5NU09ih.esm.js.map +1 -0
- package/dist/chunks/exrTextureLoader-N-X2bKA6.esm.min.js +2 -0
- package/dist/chunks/exrTextureLoader-N-X2bKA6.esm.min.js.map +1 -0
- package/dist/chunks/fogFragment-D6bC8Ff4.esm.min.js +2 -0
- package/dist/chunks/fogFragment-D6bC8Ff4.esm.min.js.map +1 -0
- package/dist/chunks/fogFragment-I5stYsjp.esm.js +102 -0
- package/dist/chunks/fogFragment-I5stYsjp.esm.js.map +1 -0
- package/dist/chunks/glTFLoader-Da2YOCGR.esm.js +7552 -0
- package/dist/chunks/glTFLoader-Da2YOCGR.esm.js.map +1 -0
- package/dist/chunks/glTFLoader-Is2_r9v2.esm.min.js +2 -0
- package/dist/chunks/glTFLoader-Is2_r9v2.esm.min.js.map +1 -0
- package/dist/chunks/glTFLoaderAnimation-Bglz6m7h.esm.min.js +2 -0
- package/dist/chunks/glTFLoaderAnimation-Bglz6m7h.esm.min.js.map +1 -0
- package/dist/chunks/glTFLoaderAnimation-CbznFn_D.esm.js +77 -0
- package/dist/chunks/glTFLoaderAnimation-CbznFn_D.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-BetF_GFT.esm.js +35 -0
- package/dist/chunks/harmonicsFunctions-BetF_GFT.esm.js.map +1 -0
- package/dist/chunks/harmonicsFunctions-CilRmaCi.esm.js +34 -0
- package/dist/chunks/harmonicsFunctions-CilRmaCi.esm.js.map +1 -0
- package/dist/chunks/harmonicsFunctions-DeWuwYX2.esm.min.js +2 -0
- package/dist/chunks/harmonicsFunctions-DeWuwYX2.esm.min.js.map +1 -0
- package/dist/chunks/harmonicsFunctions-DvXfJIer.esm.min.js +2 -0
- package/dist/chunks/harmonicsFunctions-DvXfJIer.esm.min.js.map +1 -0
- package/dist/chunks/hdrTextureLoader-Dcqnpgjb.esm.min.js +2 -0
- package/dist/chunks/hdrTextureLoader-Dcqnpgjb.esm.min.js.map +1 -0
- package/dist/chunks/hdrTextureLoader-byrfFp-O.esm.js +252 -0
- package/dist/chunks/hdrTextureLoader-byrfFp-O.esm.js.map +1 -0
- package/dist/chunks/helperFunctions-B7m7R064.esm.js +108 -0
- package/dist/chunks/helperFunctions-B7m7R064.esm.js.map +1 -0
- package/dist/chunks/helperFunctions-BAP7B_1V.esm.min.js +2 -0
- package/dist/chunks/helperFunctions-BAP7B_1V.esm.min.js.map +1 -0
- package/dist/chunks/helperFunctions-CigixUGL.esm.min.js +2 -0
- package/dist/chunks/helperFunctions-CigixUGL.esm.min.js.map +1 -0
- package/dist/chunks/helperFunctions-D2JAu3Um.esm.js +80 -0
- package/dist/chunks/helperFunctions-D2JAu3Um.esm.js.map +1 -0
- package/dist/chunks/index-Ba-YQVRw.esm.min.js +57 -0
- package/dist/chunks/index-Ba-YQVRw.esm.min.js.map +1 -0
- package/dist/chunks/index-DCMXQRx5.esm.js +81652 -0
- package/dist/chunks/index-DCMXQRx5.esm.js.map +1 -0
- package/dist/chunks/ktxTextureLoader-B7JJ6I6Z.esm.js +814 -0
- package/dist/chunks/ktxTextureLoader-B7JJ6I6Z.esm.js.map +1 -0
- package/dist/chunks/ktxTextureLoader-BVcuaoad.esm.min.js +2 -0
- package/dist/chunks/ktxTextureLoader-BVcuaoad.esm.min.js.map +1 -0
- package/dist/chunks/logDepthDeclaration-BJgjCQaD.esm.js +42 -0
- package/dist/chunks/logDepthDeclaration-BJgjCQaD.esm.js.map +1 -0
- package/dist/chunks/logDepthDeclaration-Bsw_jD9J.esm.js +35 -0
- package/dist/chunks/logDepthDeclaration-Bsw_jD9J.esm.js.map +1 -0
- package/dist/chunks/logDepthDeclaration-C0bLjDGt.esm.min.js +2 -0
- package/dist/chunks/logDepthDeclaration-C0bLjDGt.esm.min.js.map +1 -0
- package/dist/chunks/logDepthDeclaration-CF5JhF4_.esm.min.js +2 -0
- package/dist/chunks/logDepthDeclaration-CF5JhF4_.esm.min.js.map +1 -0
- package/dist/chunks/logDepthVertex-Bu3IKzw6.esm.min.js +2 -0
- package/dist/chunks/logDepthVertex-Bu3IKzw6.esm.min.js.map +1 -0
- package/dist/chunks/logDepthVertex-D6ApgK5s.esm.js +77 -0
- package/dist/chunks/logDepthVertex-D6ApgK5s.esm.js.map +1 -0
- package/dist/chunks/logDepthVertex-RSueoP5o.esm.min.js +2 -0
- package/dist/chunks/logDepthVertex-RSueoP5o.esm.min.js.map +1 -0
- package/dist/chunks/logDepthVertex-jmh6sp9r.esm.js +605 -0
- package/dist/chunks/logDepthVertex-jmh6sp9r.esm.js.map +1 -0
- package/dist/chunks/mainUVVaryingDeclaration-BNr0GD05.esm.min.js +2 -0
- package/dist/chunks/mainUVVaryingDeclaration-BNr0GD05.esm.min.js.map +1 -0
- package/dist/chunks/mainUVVaryingDeclaration-ZPe9Pfpm.esm.js +11 -0
- package/dist/chunks/mainUVVaryingDeclaration-ZPe9Pfpm.esm.js.map +1 -0
- package/dist/chunks/objFileLoader-B1j9OyPi.esm.js +1280 -0
- package/dist/chunks/objFileLoader-B1j9OyPi.esm.js.map +1 -0
- package/dist/chunks/objFileLoader-B2Z0kBGZ.esm.min.js +2 -0
- package/dist/chunks/objFileLoader-B2Z0kBGZ.esm.min.js.map +1 -0
- package/dist/chunks/oitFragment-C7OX8yZO.esm.js +1166 -0
- package/dist/chunks/oitFragment-C7OX8yZO.esm.js.map +1 -0
- package/dist/chunks/oitFragment-CROGuom4.esm.min.js +2 -0
- package/dist/chunks/oitFragment-CROGuom4.esm.min.js.map +1 -0
- package/dist/chunks/oitFragment-Cx8fxkh0.esm.min.js +2 -0
- package/dist/chunks/oitFragment-Cx8fxkh0.esm.min.js.map +1 -0
- package/dist/chunks/oitFragment-QaeREI-l.esm.js +1210 -0
- package/dist/chunks/oitFragment-QaeREI-l.esm.js.map +1 -0
- package/dist/chunks/pass.fragment-Cp76VdVm.esm.min.js +2 -0
- package/dist/chunks/pass.fragment-Cp76VdVm.esm.min.js.map +1 -0
- package/dist/chunks/pass.fragment-DWGZaulM.esm.js +15 -0
- package/dist/chunks/pass.fragment-DWGZaulM.esm.js.map +1 -0
- package/dist/chunks/pbr.fragment-1MSLuKxt.esm.min.js +2 -0
- package/dist/chunks/pbr.fragment-1MSLuKxt.esm.min.js.map +1 -0
- package/dist/chunks/pbr.fragment-CVVaxHTM.esm.js +3172 -0
- package/dist/chunks/pbr.fragment-CVVaxHTM.esm.js.map +1 -0
- package/dist/chunks/pbr.fragment-DjDXkzPC.esm.js +3228 -0
- package/dist/chunks/pbr.fragment-DjDXkzPC.esm.js.map +1 -0
- package/dist/chunks/pbr.fragment-u-qCDBnn.esm.min.js +2 -0
- package/dist/chunks/pbr.fragment-u-qCDBnn.esm.min.js.map +1 -0
- package/dist/chunks/pbr.vertex-CY3atoVH.esm.min.js +2 -0
- package/dist/chunks/pbr.vertex-CY3atoVH.esm.min.js.map +1 -0
- package/dist/chunks/pbr.vertex-CvBNpmrL.esm.js +335 -0
- package/dist/chunks/pbr.vertex-CvBNpmrL.esm.js.map +1 -0
- package/dist/chunks/pbr.vertex-Cz1vuu4g.esm.min.js +2 -0
- package/dist/chunks/pbr.vertex-Cz1vuu4g.esm.min.js.map +1 -0
- package/dist/chunks/pbr.vertex-DmN6aBEn.esm.js +208 -0
- package/dist/chunks/pbr.vertex-DmN6aBEn.esm.js.map +1 -0
- package/dist/chunks/postprocess.vertex-C1KLVO46.esm.min.js +2 -0
- package/dist/chunks/postprocess.vertex-C1KLVO46.esm.min.js.map +1 -0
- package/dist/chunks/postprocess.vertex-bRjFMMTw.esm.js +20 -0
- package/dist/chunks/postprocess.vertex-bRjFMMTw.esm.js.map +1 -0
- package/dist/chunks/rawTexture-CnRJFGS0.esm.min.js +2 -0
- package/dist/chunks/rawTexture-CnRJFGS0.esm.min.js.map +1 -0
- package/dist/chunks/rawTexture-DqO-U47x.esm.js +562 -0
- package/dist/chunks/rawTexture-DqO-U47x.esm.js.map +1 -0
- package/dist/chunks/rgbdDecode.fragment-B3x1NGLA.esm.js +17 -0
- package/dist/chunks/rgbdDecode.fragment-B3x1NGLA.esm.js.map +1 -0
- package/dist/chunks/rgbdDecode.fragment-Ced65A9P.esm.js +17 -0
- package/dist/chunks/rgbdDecode.fragment-Ced65A9P.esm.js.map +1 -0
- package/dist/chunks/rgbdDecode.fragment-DeTDMkx-.esm.min.js +2 -0
- package/dist/chunks/rgbdDecode.fragment-DeTDMkx-.esm.min.js.map +1 -0
- package/dist/chunks/rgbdDecode.fragment-I4vSkcn6.esm.min.js +2 -0
- package/dist/chunks/rgbdDecode.fragment-I4vSkcn6.esm.min.js.map +1 -0
- package/dist/chunks/rgbdEncode.fragment-BI_5lpaM.esm.js +17 -0
- package/dist/chunks/rgbdEncode.fragment-BI_5lpaM.esm.js.map +1 -0
- package/dist/chunks/rgbdEncode.fragment-CvsdJfL-.esm.min.js +2 -0
- package/dist/chunks/rgbdEncode.fragment-CvsdJfL-.esm.min.js.map +1 -0
- package/dist/chunks/rgbdEncode.fragment-DBV9U7_S.esm.js +17 -0
- package/dist/chunks/rgbdEncode.fragment-DBV9U7_S.esm.js.map +1 -0
- package/dist/chunks/rgbdEncode.fragment-Ga_wck8r.esm.min.js +2 -0
- package/dist/chunks/rgbdEncode.fragment-Ga_wck8r.esm.min.js.map +1 -0
- package/dist/chunks/splatFileLoader-CqZQp8gT.esm.min.js +2 -0
- package/dist/chunks/splatFileLoader-CqZQp8gT.esm.min.js.map +1 -0
- package/dist/chunks/splatFileLoader-Ojz6wPQF.esm.js +3154 -0
- package/dist/chunks/splatFileLoader-Ojz6wPQF.esm.js.map +1 -0
- package/dist/chunks/standardMaterial-BRFkCYek.esm.min.js +2 -0
- package/dist/chunks/standardMaterial-BRFkCYek.esm.min.js.map +1 -0
- package/dist/chunks/standardMaterial-CrPdkeQ7.esm.js +1809 -0
- package/dist/chunks/standardMaterial-CrPdkeQ7.esm.js.map +1 -0
- package/dist/chunks/stlFileLoader-CZ4gnzj5.esm.js +237 -0
- package/dist/chunks/stlFileLoader-CZ4gnzj5.esm.js.map +1 -0
- package/dist/chunks/stlFileLoader-vUsEa3k7.esm.min.js +2 -0
- package/dist/chunks/stlFileLoader-vUsEa3k7.esm.min.js.map +1 -0
- package/dist/chunks/tgaTextureLoader-CWw7TE84.esm.js +349 -0
- package/dist/chunks/tgaTextureLoader-CWw7TE84.esm.js.map +1 -0
- package/dist/chunks/tgaTextureLoader-z-0S-ufz.esm.min.js +2 -0
- package/dist/chunks/tgaTextureLoader-z-0S-ufz.esm.min.js.map +1 -0
- package/dist/chunks/thinInstanceMesh-BPnShKmm.esm.min.js +2 -0
- package/dist/chunks/thinInstanceMesh-BPnShKmm.esm.min.js.map +1 -0
- package/dist/chunks/thinInstanceMesh-BvcXpcNe.esm.js +314 -0
- package/dist/chunks/thinInstanceMesh-BvcXpcNe.esm.js.map +1 -0
- package/dist/chunks/vertexColorMixing-BY_oWZih.esm.min.js +2 -0
- package/dist/chunks/vertexColorMixing-BY_oWZih.esm.min.js.map +1 -0
- package/dist/chunks/vertexColorMixing-Cq9NDkQU.esm.js +528 -0
- package/dist/chunks/vertexColorMixing-Cq9NDkQU.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 +237 -0
- package/lib/index.js +871 -0
- package/lib/index.js.map +1 -0
- package/package.json +17 -27
- package/readme.md +35 -21
- 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 -192
- 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 -199
- 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 -21
- package/templating/plugins/hdButtonPlugin.js.map +0 -1
- package/templating/plugins/printButton.d.ts +0 -9
- package/templating/plugins/printButton.js +0 -40
- 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 -675
- 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 @@
|
|
|
1
|
+
{"version":3,"file":"basisTextureLoader-4lvRsW5R.esm.js","sources":["../../../../../dev/core/dist/Misc/basisWorker.js","../../../../../dev/core/dist/Misc/basis.js","../../../../../dev/core/dist/Materials/Textures/Loaders/basisTextureLoader.js"],"sourcesContent":["import { Tools } from \"./tools\";\n/**\n * The worker function that gets converted to a blob url to pass into a worker.\n * To be used if a developer wants to create their own worker instance and inject it instead of using the default worker.\n */\nexport function workerFunction() {\n const _BASIS_FORMAT = {\n cTFETC1: 0,\n cTFETC2: 1,\n cTFBC1: 2,\n cTFBC3: 3,\n cTFBC4: 4,\n cTFBC5: 5,\n cTFBC7: 6,\n cTFPVRTC1_4_RGB: 8,\n cTFPVRTC1_4_RGBA: 9,\n cTFASTC_4x4: 10,\n cTFATC_RGB: 11,\n cTFATC_RGBA_INTERPOLATED_ALPHA: 12,\n cTFRGBA32: 13,\n cTFRGB565: 14,\n cTFBGR565: 15,\n cTFRGBA4444: 16,\n cTFFXT1_RGB: 17,\n cTFPVRTC2_4_RGB: 18,\n cTFPVRTC2_4_RGBA: 19,\n cTFETC2_EAC_R11: 20,\n cTFETC2_EAC_RG11: 21,\n };\n let transcoderModulePromise = null;\n onmessage = (event) => {\n if (event.data.action === \"init\") {\n // Load the transcoder if it hasn't been yet\n if (event.data.url) {\n // make sure we loaded the script correctly\n try {\n importScripts(event.data.url);\n }\n catch (e) {\n postMessage({ action: \"error\", error: e });\n }\n }\n if (!transcoderModulePromise) {\n transcoderModulePromise = BASIS({\n // Override wasm binary\n wasmBinary: event.data.wasmBinary,\n });\n }\n if (transcoderModulePromise !== null) {\n transcoderModulePromise.then((m) => {\n BASIS = m;\n m.initializeBasis();\n postMessage({ action: \"init\" });\n });\n }\n }\n else if (event.data.action === \"transcode\") {\n // Transcode the basis image and return the resulting pixels\n const config = event.data.config;\n const imgData = event.data.imageData;\n const loadedFile = new BASIS.BasisFile(imgData);\n const fileInfo = GetFileInfo(loadedFile);\n let format = event.data.ignoreSupportedFormats ? null : GetSupportedTranscodeFormat(event.data.config, fileInfo);\n let needsConversion = false;\n if (format === null) {\n needsConversion = true;\n format = fileInfo.hasAlpha ? _BASIS_FORMAT.cTFBC3 : _BASIS_FORMAT.cTFBC1;\n }\n // Begin transcode\n let success = true;\n if (!loadedFile.startTranscoding()) {\n success = false;\n }\n const buffers = [];\n for (let imageIndex = 0; imageIndex < fileInfo.images.length; imageIndex++) {\n if (!success) {\n break;\n }\n const image = fileInfo.images[imageIndex];\n if (config.loadSingleImage === undefined || config.loadSingleImage === imageIndex) {\n let mipCount = image.levels.length;\n if (config.loadMipmapLevels === false) {\n mipCount = 1;\n }\n for (let levelIndex = 0; levelIndex < mipCount; levelIndex++) {\n const levelInfo = image.levels[levelIndex];\n const pixels = TranscodeLevel(loadedFile, imageIndex, levelIndex, format, needsConversion);\n if (!pixels) {\n success = false;\n break;\n }\n levelInfo.transcodedPixels = pixels;\n buffers.push(levelInfo.transcodedPixels.buffer);\n }\n }\n }\n // Close file\n loadedFile.close();\n loadedFile.delete();\n if (needsConversion) {\n format = -1;\n }\n if (!success) {\n postMessage({ action: \"transcode\", success: success, id: event.data.id });\n }\n else {\n postMessage({ action: \"transcode\", success: success, id: event.data.id, fileInfo: fileInfo, format: format }, buffers);\n }\n }\n };\n /**\n * Detects the supported transcode format for the file\n * @param config transcode config\n * @param fileInfo info about the file\n * @returns the chosed format or null if none are supported\n */\n function GetSupportedTranscodeFormat(config, fileInfo) {\n let format = null;\n if (config.supportedCompressionFormats) {\n if (config.supportedCompressionFormats.astc) {\n format = _BASIS_FORMAT.cTFASTC_4x4;\n }\n else if (config.supportedCompressionFormats.bc7) {\n format = _BASIS_FORMAT.cTFBC7;\n }\n else if (config.supportedCompressionFormats.s3tc) {\n format = fileInfo.hasAlpha ? _BASIS_FORMAT.cTFBC3 : _BASIS_FORMAT.cTFBC1;\n }\n else if (config.supportedCompressionFormats.pvrtc) {\n format = fileInfo.hasAlpha ? _BASIS_FORMAT.cTFPVRTC1_4_RGBA : _BASIS_FORMAT.cTFPVRTC1_4_RGB;\n }\n else if (config.supportedCompressionFormats.etc2) {\n format = _BASIS_FORMAT.cTFETC2;\n }\n else if (config.supportedCompressionFormats.etc1) {\n format = _BASIS_FORMAT.cTFETC1;\n }\n else {\n format = _BASIS_FORMAT.cTFRGB565;\n }\n }\n return format;\n }\n /**\n * Retrieves information about the basis file eg. dimensions\n * @param basisFile the basis file to get the info from\n * @returns information about the basis file\n */\n function GetFileInfo(basisFile) {\n const hasAlpha = basisFile.getHasAlpha();\n const imageCount = basisFile.getNumImages();\n const images = [];\n for (let i = 0; i < imageCount; i++) {\n const imageInfo = {\n levels: [],\n };\n const levelCount = basisFile.getNumLevels(i);\n for (let level = 0; level < levelCount; level++) {\n const levelInfo = {\n width: basisFile.getImageWidth(i, level),\n height: basisFile.getImageHeight(i, level),\n };\n imageInfo.levels.push(levelInfo);\n }\n images.push(imageInfo);\n }\n const info = { hasAlpha, images };\n return info;\n }\n function TranscodeLevel(loadedFile, imageIndex, levelIndex, format, convertToRgb565) {\n const dstSize = loadedFile.getImageTranscodedSizeInBytes(imageIndex, levelIndex, format);\n let dst = new Uint8Array(dstSize);\n if (!loadedFile.transcodeImage(dst, imageIndex, levelIndex, format, 1, 0)) {\n return null;\n }\n // If no supported format is found, load as dxt and convert to rgb565\n if (convertToRgb565) {\n const alignedWidth = (loadedFile.getImageWidth(imageIndex, levelIndex) + 3) & ~3;\n const alignedHeight = (loadedFile.getImageHeight(imageIndex, levelIndex) + 3) & ~3;\n dst = ConvertDxtToRgb565(dst, 0, alignedWidth, alignedHeight);\n }\n return dst;\n }\n /**\n * From https://github.com/BinomialLLC/basis_universal/blob/master/webgl/texture/dxt-to-rgb565.js\n * An unoptimized version of dxtToRgb565. Also, the floating\n * point math used to compute the colors actually results in\n * slightly different colors compared to hardware DXT decoders.\n * @param src dxt src pixels\n * @param srcByteOffset offset for the start of src\n * @param width aligned width of the image\n * @param height aligned height of the image\n * @returns the converted pixels\n */\n function ConvertDxtToRgb565(src, srcByteOffset, width, height) {\n const c = new Uint16Array(4);\n const dst = new Uint16Array(width * height);\n const blockWidth = width / 4;\n const blockHeight = height / 4;\n for (let blockY = 0; blockY < blockHeight; blockY++) {\n for (let blockX = 0; blockX < blockWidth; blockX++) {\n const i = srcByteOffset + 8 * (blockY * blockWidth + blockX);\n c[0] = src[i] | (src[i + 1] << 8);\n c[1] = src[i + 2] | (src[i + 3] << 8);\n c[2] =\n ((2 * (c[0] & 0x1f) + 1 * (c[1] & 0x1f)) / 3) |\n (((2 * (c[0] & 0x7e0) + 1 * (c[1] & 0x7e0)) / 3) & 0x7e0) |\n (((2 * (c[0] & 0xf800) + 1 * (c[1] & 0xf800)) / 3) & 0xf800);\n c[3] =\n ((2 * (c[1] & 0x1f) + 1 * (c[0] & 0x1f)) / 3) |\n (((2 * (c[1] & 0x7e0) + 1 * (c[0] & 0x7e0)) / 3) & 0x7e0) |\n (((2 * (c[1] & 0xf800) + 1 * (c[0] & 0xf800)) / 3) & 0xf800);\n for (let row = 0; row < 4; row++) {\n const m = src[i + 4 + row];\n let dstI = (blockY * 4 + row) * width + blockX * 4;\n dst[dstI++] = c[m & 0x3];\n dst[dstI++] = c[(m >> 2) & 0x3];\n dst[dstI++] = c[(m >> 4) & 0x3];\n dst[dstI++] = c[(m >> 6) & 0x3];\n }\n }\n }\n return dst;\n }\n}\n/**\n * Initialize a web worker with the basis transcoder\n * @param worker the worker to initialize\n * @param wasmBinary the wasm binary to load into the worker\n * @param moduleUrl the url to the basis transcoder module\n * @returns a promise that resolves when the worker is initialized\n */\nexport function initializeWebWorker(worker, wasmBinary, moduleUrl) {\n return new Promise((res, reject) => {\n const initHandler = (msg) => {\n if (msg.data.action === \"init\") {\n worker.removeEventListener(\"message\", initHandler);\n res(worker);\n }\n else if (msg.data.action === \"error\") {\n reject(msg.data.error || \"error initializing worker\");\n }\n };\n worker.addEventListener(\"message\", initHandler);\n // we can use transferable objects here because the worker will own the ArrayBuffer\n worker.postMessage({ action: \"init\", url: moduleUrl ? Tools.GetBabylonScriptURL(moduleUrl) : undefined, wasmBinary }, [wasmBinary]);\n });\n}\n//# sourceMappingURL=basisWorker.js.map","import { Tools } from \"./tools\";\nimport { Texture } from \"../Materials/Textures/texture\";\nimport { InternalTexture } from \"../Materials/Textures/internalTexture\";\nimport { Constants } from \"../Engines/constants\";\nimport { initializeWebWorker, workerFunction } from \"./basisWorker\";\n/**\n * Info about the .basis files\n */\nexport class BasisFileInfo {\n}\n/**\n * Result of transcoding a basis file\n */\nclass TranscodeResult {\n}\n/**\n * Configuration options for the Basis transcoder\n */\nexport class BasisTranscodeConfiguration {\n}\n/**\n * @internal\n * Enum of basis transcoder formats\n */\nvar BASIS_FORMATS;\n(function (BASIS_FORMATS) {\n BASIS_FORMATS[BASIS_FORMATS[\"cTFETC1\"] = 0] = \"cTFETC1\";\n BASIS_FORMATS[BASIS_FORMATS[\"cTFETC2\"] = 1] = \"cTFETC2\";\n BASIS_FORMATS[BASIS_FORMATS[\"cTFBC1\"] = 2] = \"cTFBC1\";\n BASIS_FORMATS[BASIS_FORMATS[\"cTFBC3\"] = 3] = \"cTFBC3\";\n BASIS_FORMATS[BASIS_FORMATS[\"cTFBC4\"] = 4] = \"cTFBC4\";\n BASIS_FORMATS[BASIS_FORMATS[\"cTFBC5\"] = 5] = \"cTFBC5\";\n BASIS_FORMATS[BASIS_FORMATS[\"cTFBC7\"] = 6] = \"cTFBC7\";\n BASIS_FORMATS[BASIS_FORMATS[\"cTFPVRTC1_4_RGB\"] = 8] = \"cTFPVRTC1_4_RGB\";\n BASIS_FORMATS[BASIS_FORMATS[\"cTFPVRTC1_4_RGBA\"] = 9] = \"cTFPVRTC1_4_RGBA\";\n BASIS_FORMATS[BASIS_FORMATS[\"cTFASTC_4x4\"] = 10] = \"cTFASTC_4x4\";\n BASIS_FORMATS[BASIS_FORMATS[\"cTFATC_RGB\"] = 11] = \"cTFATC_RGB\";\n BASIS_FORMATS[BASIS_FORMATS[\"cTFATC_RGBA_INTERPOLATED_ALPHA\"] = 12] = \"cTFATC_RGBA_INTERPOLATED_ALPHA\";\n BASIS_FORMATS[BASIS_FORMATS[\"cTFRGBA32\"] = 13] = \"cTFRGBA32\";\n BASIS_FORMATS[BASIS_FORMATS[\"cTFRGB565\"] = 14] = \"cTFRGB565\";\n BASIS_FORMATS[BASIS_FORMATS[\"cTFBGR565\"] = 15] = \"cTFBGR565\";\n BASIS_FORMATS[BASIS_FORMATS[\"cTFRGBA4444\"] = 16] = \"cTFRGBA4444\";\n BASIS_FORMATS[BASIS_FORMATS[\"cTFFXT1_RGB\"] = 17] = \"cTFFXT1_RGB\";\n BASIS_FORMATS[BASIS_FORMATS[\"cTFPVRTC2_4_RGB\"] = 18] = \"cTFPVRTC2_4_RGB\";\n BASIS_FORMATS[BASIS_FORMATS[\"cTFPVRTC2_4_RGBA\"] = 19] = \"cTFPVRTC2_4_RGBA\";\n BASIS_FORMATS[BASIS_FORMATS[\"cTFETC2_EAC_R11\"] = 20] = \"cTFETC2_EAC_R11\";\n BASIS_FORMATS[BASIS_FORMATS[\"cTFETC2_EAC_RG11\"] = 21] = \"cTFETC2_EAC_RG11\";\n})(BASIS_FORMATS || (BASIS_FORMATS = {}));\n/**\n * Used to load .Basis files\n * See https://github.com/BinomialLLC/basis_universal/tree/master/webgl\n */\nexport const BasisToolsOptions = {\n /**\n * URL to use when loading the basis transcoder\n */\n JSModuleURL: `${Tools._DefaultCdnUrl}/basisTranscoder/1/basis_transcoder.js`,\n /**\n * URL to use when loading the wasm module for the transcoder\n */\n WasmModuleURL: `${Tools._DefaultCdnUrl}/basisTranscoder/1/basis_transcoder.wasm`,\n};\n/**\n * Get the internal format to be passed to texImage2D corresponding to the .basis format value\n * @param basisFormat format chosen from GetSupportedTranscodeFormat\n * @param engine\n * @returns internal format corresponding to the Basis format\n */\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nexport const GetInternalFormatFromBasisFormat = (basisFormat, engine) => {\n let format;\n switch (basisFormat) {\n case BASIS_FORMATS.cTFETC1:\n format = Constants.TEXTUREFORMAT_COMPRESSED_RGB_ETC1_WEBGL;\n break;\n case BASIS_FORMATS.cTFBC1:\n format = Constants.TEXTUREFORMAT_COMPRESSED_RGB_S3TC_DXT1;\n break;\n case BASIS_FORMATS.cTFBC4:\n format = Constants.TEXTUREFORMAT_COMPRESSED_RGBA_S3TC_DXT5;\n break;\n case BASIS_FORMATS.cTFASTC_4x4:\n format = Constants.TEXTUREFORMAT_COMPRESSED_RGBA_ASTC_4x4;\n break;\n case BASIS_FORMATS.cTFETC2:\n format = Constants.TEXTUREFORMAT_COMPRESSED_RGBA8_ETC2_EAC;\n break;\n case BASIS_FORMATS.cTFBC7:\n format = Constants.TEXTUREFORMAT_COMPRESSED_RGBA_BPTC_UNORM;\n break;\n }\n if (format === undefined) {\n // eslint-disable-next-line no-throw-literal\n throw \"The chosen Basis transcoder format is not currently supported\";\n }\n return format;\n};\nlet _WorkerPromise = null;\nlet _Worker = null;\nlet _actionId = 0;\nconst _IgnoreSupportedFormats = false;\nconst _CreateWorkerAsync = () => {\n if (!_WorkerPromise) {\n _WorkerPromise = new Promise((res, reject) => {\n if (_Worker) {\n res(_Worker);\n }\n else {\n Tools.LoadFileAsync(Tools.GetBabylonScriptURL(BasisToolsOptions.WasmModuleURL))\n .then((wasmBinary) => {\n if (typeof URL !== \"function\") {\n return reject(\"Basis transcoder requires an environment with a URL constructor\");\n }\n const workerBlobUrl = URL.createObjectURL(new Blob([`(${workerFunction})()`], { type: \"application/javascript\" }));\n _Worker = new Worker(workerBlobUrl);\n initializeWebWorker(_Worker, wasmBinary, BasisToolsOptions.JSModuleURL).then(res, reject);\n })\n .catch(reject);\n }\n });\n }\n return _WorkerPromise;\n};\n/**\n * Set the worker to use for transcoding\n * @param worker The worker that will be used for transcoding\n */\nexport const SetBasisTranscoderWorker = (worker) => {\n _Worker = worker;\n};\n/**\n * Transcodes a loaded image file to compressed pixel data\n * @param data image data to transcode\n * @param config configuration options for the transcoding\n * @returns a promise resulting in the transcoded image\n */\nexport const TranscodeAsync = (data, config) => {\n const dataView = data instanceof ArrayBuffer ? new Uint8Array(data) : data;\n return new Promise((res, rej) => {\n _CreateWorkerAsync().then(() => {\n const actionId = _actionId++;\n const messageHandler = (msg) => {\n if (msg.data.action === \"transcode\" && msg.data.id === actionId) {\n _Worker.removeEventListener(\"message\", messageHandler);\n if (!msg.data.success) {\n rej(\"Transcode is not supported on this device\");\n }\n else {\n res(msg.data);\n }\n }\n };\n _Worker.addEventListener(\"message\", messageHandler);\n const dataViewCopy = new Uint8Array(dataView.byteLength);\n dataViewCopy.set(new Uint8Array(dataView.buffer, dataView.byteOffset, dataView.byteLength));\n _Worker.postMessage({ action: \"transcode\", id: actionId, imageData: dataViewCopy, config: config, ignoreSupportedFormats: _IgnoreSupportedFormats }, [\n dataViewCopy.buffer,\n ]);\n }, (error) => {\n rej(error);\n });\n });\n};\n/**\n * Binds a texture according to its underlying target.\n * @param texture texture to bind\n * @param engine the engine to bind the texture in\n */\nconst BindTexture = (texture, engine) => {\n let target = engine._gl?.TEXTURE_2D;\n if (texture.isCube) {\n target = engine._gl?.TEXTURE_CUBE_MAP;\n }\n engine._bindTextureDirectly(target, texture, true);\n};\n/**\n * Loads a texture from the transcode result\n * @param texture texture load to\n * @param transcodeResult the result of transcoding the basis file to load from\n */\nexport const LoadTextureFromTranscodeResult = (texture, transcodeResult) => {\n const engine = texture.getEngine();\n for (let i = 0; i < transcodeResult.fileInfo.images.length; i++) {\n const rootImage = transcodeResult.fileInfo.images[i].levels[0];\n texture._invertVScale = texture.invertY;\n if (transcodeResult.format === -1 || transcodeResult.format === BASIS_FORMATS.cTFRGB565) {\n // No compatable compressed format found, fallback to RGB\n texture.type = Constants.TEXTURETYPE_UNSIGNED_SHORT_5_6_5;\n texture.format = Constants.TEXTUREFORMAT_RGB;\n if (engine._features.basisNeedsPOT && (Math.log2(rootImage.width) % 1 !== 0 || Math.log2(rootImage.height) % 1 !== 0)) {\n // Create non power of two texture\n const source = new InternalTexture(engine, 2 /* InternalTextureSource.Temp */);\n texture._invertVScale = texture.invertY;\n source.type = Constants.TEXTURETYPE_UNSIGNED_SHORT_5_6_5;\n source.format = Constants.TEXTUREFORMAT_RGB;\n // Fallback requires aligned width/height\n source.width = (rootImage.width + 3) & ~3;\n source.height = (rootImage.height + 3) & ~3;\n BindTexture(source, engine);\n engine._uploadDataToTextureDirectly(source, new Uint16Array(rootImage.transcodedPixels.buffer), i, 0, Constants.TEXTUREFORMAT_RGB, true);\n // Resize to power of two\n engine._rescaleTexture(source, texture, engine.scenes[0], engine._getInternalFormat(Constants.TEXTUREFORMAT_RGB), () => {\n engine._releaseTexture(source);\n BindTexture(texture, engine);\n });\n }\n else {\n // Fallback is already inverted\n texture._invertVScale = !texture.invertY;\n // Upload directly\n texture.width = (rootImage.width + 3) & ~3;\n texture.height = (rootImage.height + 3) & ~3;\n texture.samplingMode = Constants.TEXTURE_LINEAR_LINEAR;\n BindTexture(texture, engine);\n engine._uploadDataToTextureDirectly(texture, new Uint16Array(rootImage.transcodedPixels.buffer), i, 0, Constants.TEXTUREFORMAT_RGB, true);\n }\n }\n else {\n texture.width = rootImage.width;\n texture.height = rootImage.height;\n texture.generateMipMaps = transcodeResult.fileInfo.images[i].levels.length > 1;\n const format = BasisTools.GetInternalFormatFromBasisFormat(transcodeResult.format, engine);\n texture.format = format;\n BindTexture(texture, engine);\n // Upload all mip levels in the file\n transcodeResult.fileInfo.images[i].levels.forEach((level, index) => {\n engine._uploadCompressedDataToTextureDirectly(texture, format, level.width, level.height, level.transcodedPixels, i, index);\n });\n if (engine._features.basisNeedsPOT && (Math.log2(texture.width) % 1 !== 0 || Math.log2(texture.height) % 1 !== 0)) {\n Tools.Warn(\"Loaded .basis texture width and height are not a power of two. Texture wrapping will be set to Texture.CLAMP_ADDRESSMODE as other modes are not supported with non power of two dimensions in webGL 1.\");\n texture._cachedWrapU = Texture.CLAMP_ADDRESSMODE;\n texture._cachedWrapV = Texture.CLAMP_ADDRESSMODE;\n }\n }\n }\n};\n/**\n * Used to load .Basis files\n * See https://github.com/BinomialLLC/basis_universal/tree/master/webgl\n */\nexport const BasisTools = {\n /**\n * URL to use when loading the basis transcoder\n */\n JSModuleURL: BasisToolsOptions.JSModuleURL,\n /**\n * URL to use when loading the wasm module for the transcoder\n */\n WasmModuleURL: BasisToolsOptions.WasmModuleURL,\n /**\n * Get the internal format to be passed to texImage2D corresponding to the .basis format value\n * @param basisFormat format chosen from GetSupportedTranscodeFormat\n * @returns internal format corresponding to the Basis format\n */\n GetInternalFormatFromBasisFormat,\n /**\n * Transcodes a loaded image file to compressed pixel data\n * @param data image data to transcode\n * @param config configuration options for the transcoding\n * @returns a promise resulting in the transcoded image\n */\n TranscodeAsync,\n /**\n * Loads a texture from the transcode result\n * @param texture texture load to\n * @param transcodeResult the result of transcoding the basis file to load from\n */\n LoadTextureFromTranscodeResult,\n};\nObject.defineProperty(BasisTools, \"JSModuleURL\", {\n get: function () {\n return BasisToolsOptions.JSModuleURL;\n },\n set: function (value) {\n BasisToolsOptions.JSModuleURL = value;\n },\n});\nObject.defineProperty(BasisTools, \"WasmModuleURL\", {\n get: function () {\n return BasisToolsOptions.WasmModuleURL;\n },\n set: function (value) {\n BasisToolsOptions.WasmModuleURL = value;\n },\n});\n//# sourceMappingURL=basis.js.map","import { LoadTextureFromTranscodeResult, TranscodeAsync } from \"../../../Misc/basis\";\nimport { Tools } from \"../../../Misc/tools\";\nimport \"../../../Engines/Extensions/engine.cubeTexture\";\n/**\n * Loader for .basis file format\n */\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport class _BasisTextureLoader {\n constructor() {\n /**\n * Defines whether the loader supports cascade loading the different faces.\n */\n this.supportCascades = false;\n }\n /**\n * Uploads the cube texture data to the WebGL texture. It has already been bound.\n * @param data contains the texture data\n * @param texture defines the BabylonJS internal texture\n * @param createPolynomials will be true if polynomials have been requested\n * @param onLoad defines the callback to trigger once the texture is ready\n * @param onError defines the callback to trigger in case of error\n */\n loadCubeData(data, texture, createPolynomials, onLoad, onError) {\n if (Array.isArray(data)) {\n return;\n }\n const caps = texture.getEngine().getCaps();\n const transcodeConfig = {\n supportedCompressionFormats: {\n etc1: caps.etc1 ? true : false,\n s3tc: caps.s3tc ? true : false,\n pvrtc: caps.pvrtc ? true : false,\n etc2: caps.etc2 ? true : false,\n astc: caps.astc ? true : false,\n bc7: caps.bptc ? true : false,\n },\n };\n TranscodeAsync(data, transcodeConfig)\n .then((result) => {\n const hasMipmap = result.fileInfo.images[0].levels.length > 1 && texture.generateMipMaps;\n LoadTextureFromTranscodeResult(texture, result);\n texture.getEngine()._setCubeMapTextureParams(texture, hasMipmap);\n texture.isReady = true;\n texture.onLoadedObservable.notifyObservers(texture);\n texture.onLoadedObservable.clear();\n if (onLoad) {\n onLoad();\n }\n })\n .catch((err) => {\n const errorMessage = \"Failed to transcode Basis file, transcoding may not be supported on this device\";\n Tools.Warn(errorMessage);\n texture.isReady = true;\n if (onError) {\n onError(err);\n }\n });\n }\n /**\n * Uploads the 2D texture data to the WebGL texture. It has already been bound once in the callback.\n * @param data contains the texture data\n * @param texture defines the BabylonJS internal texture\n * @param callback defines the method to call once ready to upload\n */\n loadData(data, texture, callback) {\n const caps = texture.getEngine().getCaps();\n const transcodeConfig = {\n supportedCompressionFormats: {\n etc1: caps.etc1 ? true : false,\n s3tc: caps.s3tc ? true : false,\n pvrtc: caps.pvrtc ? true : false,\n etc2: caps.etc2 ? true : false,\n astc: caps.astc ? true : false,\n bc7: caps.bptc ? true : false,\n },\n };\n TranscodeAsync(data, transcodeConfig)\n .then((result) => {\n const rootImage = result.fileInfo.images[0].levels[0];\n const hasMipmap = result.fileInfo.images[0].levels.length > 1 && texture.generateMipMaps;\n callback(rootImage.width, rootImage.height, hasMipmap, result.format !== -1, () => {\n LoadTextureFromTranscodeResult(texture, result);\n });\n })\n .catch((err) => {\n Tools.Warn(\"Failed to transcode Basis file, transcoding may not be supported on this device\");\n Tools.Warn(`Failed to transcode Basis file: ${err}`);\n callback(0, 0, false, false, () => { }, true);\n });\n }\n}\n//# sourceMappingURL=basisTextureLoader.js.map"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{e,u as t,aW as a,T as s}from"./index-Ba-YQVRw.esm.min.js";function r(){const e=0,t=1,a=2,s=3,r=6,o=8,n=9,i=10,c=14;let T=null;function l(e,t,a,s,r){const o=e.getImageTranscodedSizeInBytes(t,a,s);let n=new Uint8Array(o);if(!e.transcodeImage(n,t,a,s,1,0))return null;if(r){n=function(e,t,a,s){const r=new Uint16Array(4),o=new Uint16Array(a*s),n=a/4,i=s/4;for(let s=0;s<i;s++)for(let i=0;i<n;i++){const c=t+8*(s*n+i);r[0]=e[c]|e[c+1]<<8,r[1]=e[c+2]|e[c+3]<<8,r[2]=(2*(31&r[0])+1*(31&r[1]))/3|(2*(2016&r[0])+1*(2016&r[1]))/3&2016|(2*(63488&r[0])+1*(63488&r[1]))/3&63488,r[3]=(2*(31&r[1])+1*(31&r[0]))/3|(2*(2016&r[1])+1*(2016&r[0]))/3&2016|(2*(63488&r[1])+1*(63488&r[0]))/3&63488;for(let t=0;t<4;t++){const n=e[c+4+t];let T=(4*s+t)*a+4*i;o[T++]=r[3&n],o[T++]=r[n>>2&3],o[T++]=r[n>>4&3],o[T++]=r[n>>6&3]}}return o}(n,0,e.getImageWidth(t,a)+3&-4,e.getImageHeight(t,a)+3&-4)}return n}onmessage=d=>{if("init"===d.data.action){if(d.data.url)try{importScripts(d.data.url)}catch(e){postMessage({action:"error",error:e})}T||(T=BASIS({wasmBinary:d.data.wasmBinary})),null!==T&&T.then((e=>{BASIS=e,e.initializeBasis(),postMessage({action:"init"})}))}else if("transcode"===d.data.action){const T=d.data.config,R=d.data.imageData,u=new BASIS.BasisFile(R),_=function(e){const t=e.getHasAlpha(),a=e.getNumImages(),s=[];for(let t=0;t<a;t++){const a={levels:[]},r=e.getNumLevels(t);for(let s=0;s<r;s++){const r={width:e.getImageWidth(t,s),height:e.getImageHeight(t,s)};a.levels.push(r)}s.push(a)}return{hasAlpha:t,images:s}}(u);let p=d.data.ignoreSupportedFormats?null:function(T,l){let d=null;T.supportedCompressionFormats&&(d=T.supportedCompressionFormats.astc?i:T.supportedCompressionFormats.bc7?r:T.supportedCompressionFormats.s3tc?l.hasAlpha?s:a:T.supportedCompressionFormats.pvrtc?l.hasAlpha?n:o:T.supportedCompressionFormats.etc2?t:T.supportedCompressionFormats.etc1?e:c);return d}(d.data.config,_),g=!1;null===p&&(g=!0,p=_.hasAlpha?s:a);let m=!0;u.startTranscoding()||(m=!1);const f=[];for(let e=0;e<_.images.length&&m;e++){const t=_.images[e];if(void 0===T.loadSingleImage||T.loadSingleImage===e){let a=t.levels.length;!1===T.loadMipmapLevels&&(a=1);for(let s=0;s<a;s++){const a=t.levels[s],r=l(u,e,s,p,g);if(!r){m=!1;break}a.transcodedPixels=r,f.push(a.transcodedPixels.buffer)}}}u.close(),u.delete(),g&&(p=-1),m?postMessage({action:"transcode",success:m,id:d.data.id,fileInfo:_,format:p},f):postMessage({action:"transcode",success:m,id:d.data.id})}}}var o;!function(e){e[e.cTFETC1=0]="cTFETC1",e[e.cTFETC2=1]="cTFETC2",e[e.cTFBC1=2]="cTFBC1",e[e.cTFBC3=3]="cTFBC3",e[e.cTFBC4=4]="cTFBC4",e[e.cTFBC5=5]="cTFBC5",e[e.cTFBC7=6]="cTFBC7",e[e.cTFPVRTC1_4_RGB=8]="cTFPVRTC1_4_RGB",e[e.cTFPVRTC1_4_RGBA=9]="cTFPVRTC1_4_RGBA",e[e.cTFASTC_4x4=10]="cTFASTC_4x4",e[e.cTFATC_RGB=11]="cTFATC_RGB",e[e.cTFATC_RGBA_INTERPOLATED_ALPHA=12]="cTFATC_RGBA_INTERPOLATED_ALPHA",e[e.cTFRGBA32=13]="cTFRGBA32",e[e.cTFRGB565=14]="cTFRGB565",e[e.cTFBGR565=15]="cTFBGR565",e[e.cTFRGBA4444=16]="cTFRGBA4444",e[e.cTFFXT1_RGB=17]="cTFFXT1_RGB",e[e.cTFPVRTC2_4_RGB=18]="cTFPVRTC2_4_RGB",e[e.cTFPVRTC2_4_RGBA=19]="cTFPVRTC2_4_RGBA",e[e.cTFETC2_EAC_R11=20]="cTFETC2_EAC_R11",e[e.cTFETC2_EAC_RG11=21]="cTFETC2_EAC_RG11"}(o||(o={}));const n={JSModuleURL:`${e._DefaultCdnUrl}/basisTranscoder/1/basis_transcoder.js`,WasmModuleURL:`${e._DefaultCdnUrl}/basisTranscoder/1/basis_transcoder.wasm`};let i=null,c=null,T=0;const l=()=>(i||(i=new Promise(((t,a)=>{c?t(c):e.LoadFileAsync(e.GetBabylonScriptURL(n.WasmModuleURL)).then((s=>{if("function"!=typeof URL)return a("Basis transcoder requires an environment with a URL constructor");const o=URL.createObjectURL(new Blob([`(${r})()`],{type:"application/javascript"}));c=new Worker(o),function(t,a,s){return new Promise(((r,o)=>{const n=e=>{"init"===e.data.action?(t.removeEventListener("message",n),r(t)):"error"===e.data.action&&o(e.data.error||"error initializing worker")};t.addEventListener("message",n),t.postMessage({action:"init",url:s?e.GetBabylonScriptURL(s):void 0,wasmBinary:a},[a])}))}(c,s,n.JSModuleURL).then(t,a)})).catch(a)}))),i),d=(e,t)=>{const a=e instanceof ArrayBuffer?new Uint8Array(e):e;return new Promise(((e,s)=>{l().then((()=>{const r=T++,o=t=>{"transcode"===t.data.action&&t.data.id===r&&(c.removeEventListener("message",o),t.data.success?e(t.data):s("Transcode is not supported on this device"))};c.addEventListener("message",o);const n=new Uint8Array(a.byteLength);n.set(new Uint8Array(a.buffer,a.byteOffset,a.byteLength)),c.postMessage({action:"transcode",id:r,imageData:n,config:t,ignoreSupportedFormats:false},[n.buffer])}),(e=>{s(e)}))}))},R=(e,t)=>{let a=t._gl?.TEXTURE_2D;e.isCube&&(a=t._gl?.TEXTURE_CUBE_MAP),t._bindTextureDirectly(a,e,!0)},u=(r,n)=>{const i=r.getEngine();for(let c=0;c<n.fileInfo.images.length;c++){const T=n.fileInfo.images[c].levels[0];if(r._invertVScale=r.invertY,-1===n.format||n.format===o.cTFRGB565)if(r.type=t.TEXTURETYPE_UNSIGNED_SHORT_5_6_5,r.format=t.TEXTUREFORMAT_RGB,!i._features.basisNeedsPOT||Math.log2(T.width)%1==0&&Math.log2(T.height)%1==0)r._invertVScale=!r.invertY,r.width=T.width+3&-4,r.height=T.height+3&-4,r.samplingMode=t.TEXTURE_LINEAR_LINEAR,R(r,i),i._uploadDataToTextureDirectly(r,new Uint16Array(T.transcodedPixels.buffer),c,0,t.TEXTUREFORMAT_RGB,!0);else{const e=new a(i,2);r._invertVScale=r.invertY,e.type=t.TEXTURETYPE_UNSIGNED_SHORT_5_6_5,e.format=t.TEXTUREFORMAT_RGB,e.width=T.width+3&-4,e.height=T.height+3&-4,R(e,i),i._uploadDataToTextureDirectly(e,new Uint16Array(T.transcodedPixels.buffer),c,0,t.TEXTUREFORMAT_RGB,!0),i._rescaleTexture(e,r,i.scenes[0],i._getInternalFormat(t.TEXTUREFORMAT_RGB),(()=>{i._releaseTexture(e),R(r,i)}))}else{r.width=T.width,r.height=T.height,r.generateMipMaps=n.fileInfo.images[c].levels.length>1;const t=_.GetInternalFormatFromBasisFormat(n.format,i);r.format=t,R(r,i),n.fileInfo.images[c].levels.forEach(((e,a)=>{i._uploadCompressedDataToTextureDirectly(r,t,e.width,e.height,e.transcodedPixels,c,a)})),!i._features.basisNeedsPOT||Math.log2(r.width)%1==0&&Math.log2(r.height)%1==0||(e.Warn("Loaded .basis texture width and height are not a power of two. Texture wrapping will be set to Texture.CLAMP_ADDRESSMODE as other modes are not supported with non power of two dimensions in webGL 1."),r._cachedWrapU=s.CLAMP_ADDRESSMODE,r._cachedWrapV=s.CLAMP_ADDRESSMODE)}}},_={JSModuleURL:n.JSModuleURL,WasmModuleURL:n.WasmModuleURL,GetInternalFormatFromBasisFormat:(e,a)=>{let s;switch(e){case o.cTFETC1:s=t.TEXTUREFORMAT_COMPRESSED_RGB_ETC1_WEBGL;break;case o.cTFBC1:s=t.TEXTUREFORMAT_COMPRESSED_RGB_S3TC_DXT1;break;case o.cTFBC4:s=t.TEXTUREFORMAT_COMPRESSED_RGBA_S3TC_DXT5;break;case o.cTFASTC_4x4:s=t.TEXTUREFORMAT_COMPRESSED_RGBA_ASTC_4x4;break;case o.cTFETC2:s=t.TEXTUREFORMAT_COMPRESSED_RGBA8_ETC2_EAC;break;case o.cTFBC7:s=t.TEXTUREFORMAT_COMPRESSED_RGBA_BPTC_UNORM}if(void 0===s)throw"The chosen Basis transcoder format is not currently supported";return s},TranscodeAsync:d,LoadTextureFromTranscodeResult:u};Object.defineProperty(_,"JSModuleURL",{get:function(){return n.JSModuleURL},set:function(e){n.JSModuleURL=e}}),Object.defineProperty(_,"WasmModuleURL",{get:function(){return n.WasmModuleURL},set:function(e){n.WasmModuleURL=e}});class p{constructor(){this.supportCascades=!1}loadCubeData(t,a,s,r,o){if(Array.isArray(t))return;const n=a.getEngine().getCaps(),i={supportedCompressionFormats:{etc1:!!n.etc1,s3tc:!!n.s3tc,pvrtc:!!n.pvrtc,etc2:!!n.etc2,astc:!!n.astc,bc7:!!n.bptc}};d(t,i).then((e=>{const t=e.fileInfo.images[0].levels.length>1&&a.generateMipMaps;u(a,e),a.getEngine()._setCubeMapTextureParams(a,t),a.isReady=!0,a.onLoadedObservable.notifyObservers(a),a.onLoadedObservable.clear(),r&&r()})).catch((t=>{e.Warn("Failed to transcode Basis file, transcoding may not be supported on this device"),a.isReady=!0,o&&o(t)}))}loadData(t,a,s){const r=a.getEngine().getCaps(),o={supportedCompressionFormats:{etc1:!!r.etc1,s3tc:!!r.s3tc,pvrtc:!!r.pvrtc,etc2:!!r.etc2,astc:!!r.astc,bc7:!!r.bptc}};d(t,o).then((e=>{const t=e.fileInfo.images[0].levels[0],r=e.fileInfo.images[0].levels.length>1&&a.generateMipMaps;s(t.width,t.height,r,-1!==e.format,(()=>{u(a,e)}))})).catch((t=>{e.Warn("Failed to transcode Basis file, transcoding may not be supported on this device"),e.Warn(`Failed to transcode Basis file: ${t}`),s(0,0,!1,!1,(()=>{}),!0)}))}}export{p as _BasisTextureLoader};
|
|
2
|
+
//# sourceMappingURL=basisTextureLoader-CSgqqtvQ.esm.min.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"basisTextureLoader-CSgqqtvQ.esm.min.js","sources":["../../../../../dev/core/dist/Misc/basisWorker.js","../../../../../dev/core/dist/Misc/basis.js","../../../../../dev/core/dist/Materials/Textures/Loaders/basisTextureLoader.js"],"sourcesContent":["import { Tools } from \"./tools\";\n/**\n * The worker function that gets converted to a blob url to pass into a worker.\n * To be used if a developer wants to create their own worker instance and inject it instead of using the default worker.\n */\nexport function workerFunction() {\n const _BASIS_FORMAT = {\n cTFETC1: 0,\n cTFETC2: 1,\n cTFBC1: 2,\n cTFBC3: 3,\n cTFBC4: 4,\n cTFBC5: 5,\n cTFBC7: 6,\n cTFPVRTC1_4_RGB: 8,\n cTFPVRTC1_4_RGBA: 9,\n cTFASTC_4x4: 10,\n cTFATC_RGB: 11,\n cTFATC_RGBA_INTERPOLATED_ALPHA: 12,\n cTFRGBA32: 13,\n cTFRGB565: 14,\n cTFBGR565: 15,\n cTFRGBA4444: 16,\n cTFFXT1_RGB: 17,\n cTFPVRTC2_4_RGB: 18,\n cTFPVRTC2_4_RGBA: 19,\n cTFETC2_EAC_R11: 20,\n cTFETC2_EAC_RG11: 21,\n };\n let transcoderModulePromise = null;\n onmessage = (event) => {\n if (event.data.action === \"init\") {\n // Load the transcoder if it hasn't been yet\n if (event.data.url) {\n // make sure we loaded the script correctly\n try {\n importScripts(event.data.url);\n }\n catch (e) {\n postMessage({ action: \"error\", error: e });\n }\n }\n if (!transcoderModulePromise) {\n transcoderModulePromise = BASIS({\n // Override wasm binary\n wasmBinary: event.data.wasmBinary,\n });\n }\n if (transcoderModulePromise !== null) {\n transcoderModulePromise.then((m) => {\n BASIS = m;\n m.initializeBasis();\n postMessage({ action: \"init\" });\n });\n }\n }\n else if (event.data.action === \"transcode\") {\n // Transcode the basis image and return the resulting pixels\n const config = event.data.config;\n const imgData = event.data.imageData;\n const loadedFile = new BASIS.BasisFile(imgData);\n const fileInfo = GetFileInfo(loadedFile);\n let format = event.data.ignoreSupportedFormats ? null : GetSupportedTranscodeFormat(event.data.config, fileInfo);\n let needsConversion = false;\n if (format === null) {\n needsConversion = true;\n format = fileInfo.hasAlpha ? _BASIS_FORMAT.cTFBC3 : _BASIS_FORMAT.cTFBC1;\n }\n // Begin transcode\n let success = true;\n if (!loadedFile.startTranscoding()) {\n success = false;\n }\n const buffers = [];\n for (let imageIndex = 0; imageIndex < fileInfo.images.length; imageIndex++) {\n if (!success) {\n break;\n }\n const image = fileInfo.images[imageIndex];\n if (config.loadSingleImage === undefined || config.loadSingleImage === imageIndex) {\n let mipCount = image.levels.length;\n if (config.loadMipmapLevels === false) {\n mipCount = 1;\n }\n for (let levelIndex = 0; levelIndex < mipCount; levelIndex++) {\n const levelInfo = image.levels[levelIndex];\n const pixels = TranscodeLevel(loadedFile, imageIndex, levelIndex, format, needsConversion);\n if (!pixels) {\n success = false;\n break;\n }\n levelInfo.transcodedPixels = pixels;\n buffers.push(levelInfo.transcodedPixels.buffer);\n }\n }\n }\n // Close file\n loadedFile.close();\n loadedFile.delete();\n if (needsConversion) {\n format = -1;\n }\n if (!success) {\n postMessage({ action: \"transcode\", success: success, id: event.data.id });\n }\n else {\n postMessage({ action: \"transcode\", success: success, id: event.data.id, fileInfo: fileInfo, format: format }, buffers);\n }\n }\n };\n /**\n * Detects the supported transcode format for the file\n * @param config transcode config\n * @param fileInfo info about the file\n * @returns the chosed format or null if none are supported\n */\n function GetSupportedTranscodeFormat(config, fileInfo) {\n let format = null;\n if (config.supportedCompressionFormats) {\n if (config.supportedCompressionFormats.astc) {\n format = _BASIS_FORMAT.cTFASTC_4x4;\n }\n else if (config.supportedCompressionFormats.bc7) {\n format = _BASIS_FORMAT.cTFBC7;\n }\n else if (config.supportedCompressionFormats.s3tc) {\n format = fileInfo.hasAlpha ? _BASIS_FORMAT.cTFBC3 : _BASIS_FORMAT.cTFBC1;\n }\n else if (config.supportedCompressionFormats.pvrtc) {\n format = fileInfo.hasAlpha ? _BASIS_FORMAT.cTFPVRTC1_4_RGBA : _BASIS_FORMAT.cTFPVRTC1_4_RGB;\n }\n else if (config.supportedCompressionFormats.etc2) {\n format = _BASIS_FORMAT.cTFETC2;\n }\n else if (config.supportedCompressionFormats.etc1) {\n format = _BASIS_FORMAT.cTFETC1;\n }\n else {\n format = _BASIS_FORMAT.cTFRGB565;\n }\n }\n return format;\n }\n /**\n * Retrieves information about the basis file eg. dimensions\n * @param basisFile the basis file to get the info from\n * @returns information about the basis file\n */\n function GetFileInfo(basisFile) {\n const hasAlpha = basisFile.getHasAlpha();\n const imageCount = basisFile.getNumImages();\n const images = [];\n for (let i = 0; i < imageCount; i++) {\n const imageInfo = {\n levels: [],\n };\n const levelCount = basisFile.getNumLevels(i);\n for (let level = 0; level < levelCount; level++) {\n const levelInfo = {\n width: basisFile.getImageWidth(i, level),\n height: basisFile.getImageHeight(i, level),\n };\n imageInfo.levels.push(levelInfo);\n }\n images.push(imageInfo);\n }\n const info = { hasAlpha, images };\n return info;\n }\n function TranscodeLevel(loadedFile, imageIndex, levelIndex, format, convertToRgb565) {\n const dstSize = loadedFile.getImageTranscodedSizeInBytes(imageIndex, levelIndex, format);\n let dst = new Uint8Array(dstSize);\n if (!loadedFile.transcodeImage(dst, imageIndex, levelIndex, format, 1, 0)) {\n return null;\n }\n // If no supported format is found, load as dxt and convert to rgb565\n if (convertToRgb565) {\n const alignedWidth = (loadedFile.getImageWidth(imageIndex, levelIndex) + 3) & ~3;\n const alignedHeight = (loadedFile.getImageHeight(imageIndex, levelIndex) + 3) & ~3;\n dst = ConvertDxtToRgb565(dst, 0, alignedWidth, alignedHeight);\n }\n return dst;\n }\n /**\n * From https://github.com/BinomialLLC/basis_universal/blob/master/webgl/texture/dxt-to-rgb565.js\n * An unoptimized version of dxtToRgb565. Also, the floating\n * point math used to compute the colors actually results in\n * slightly different colors compared to hardware DXT decoders.\n * @param src dxt src pixels\n * @param srcByteOffset offset for the start of src\n * @param width aligned width of the image\n * @param height aligned height of the image\n * @returns the converted pixels\n */\n function ConvertDxtToRgb565(src, srcByteOffset, width, height) {\n const c = new Uint16Array(4);\n const dst = new Uint16Array(width * height);\n const blockWidth = width / 4;\n const blockHeight = height / 4;\n for (let blockY = 0; blockY < blockHeight; blockY++) {\n for (let blockX = 0; blockX < blockWidth; blockX++) {\n const i = srcByteOffset + 8 * (blockY * blockWidth + blockX);\n c[0] = src[i] | (src[i + 1] << 8);\n c[1] = src[i + 2] | (src[i + 3] << 8);\n c[2] =\n ((2 * (c[0] & 0x1f) + 1 * (c[1] & 0x1f)) / 3) |\n (((2 * (c[0] & 0x7e0) + 1 * (c[1] & 0x7e0)) / 3) & 0x7e0) |\n (((2 * (c[0] & 0xf800) + 1 * (c[1] & 0xf800)) / 3) & 0xf800);\n c[3] =\n ((2 * (c[1] & 0x1f) + 1 * (c[0] & 0x1f)) / 3) |\n (((2 * (c[1] & 0x7e0) + 1 * (c[0] & 0x7e0)) / 3) & 0x7e0) |\n (((2 * (c[1] & 0xf800) + 1 * (c[0] & 0xf800)) / 3) & 0xf800);\n for (let row = 0; row < 4; row++) {\n const m = src[i + 4 + row];\n let dstI = (blockY * 4 + row) * width + blockX * 4;\n dst[dstI++] = c[m & 0x3];\n dst[dstI++] = c[(m >> 2) & 0x3];\n dst[dstI++] = c[(m >> 4) & 0x3];\n dst[dstI++] = c[(m >> 6) & 0x3];\n }\n }\n }\n return dst;\n }\n}\n/**\n * Initialize a web worker with the basis transcoder\n * @param worker the worker to initialize\n * @param wasmBinary the wasm binary to load into the worker\n * @param moduleUrl the url to the basis transcoder module\n * @returns a promise that resolves when the worker is initialized\n */\nexport function initializeWebWorker(worker, wasmBinary, moduleUrl) {\n return new Promise((res, reject) => {\n const initHandler = (msg) => {\n if (msg.data.action === \"init\") {\n worker.removeEventListener(\"message\", initHandler);\n res(worker);\n }\n else if (msg.data.action === \"error\") {\n reject(msg.data.error || \"error initializing worker\");\n }\n };\n worker.addEventListener(\"message\", initHandler);\n // we can use transferable objects here because the worker will own the ArrayBuffer\n worker.postMessage({ action: \"init\", url: moduleUrl ? Tools.GetBabylonScriptURL(moduleUrl) : undefined, wasmBinary }, [wasmBinary]);\n });\n}\n//# sourceMappingURL=basisWorker.js.map","import { Tools } from \"./tools\";\nimport { Texture } from \"../Materials/Textures/texture\";\nimport { InternalTexture } from \"../Materials/Textures/internalTexture\";\nimport { Constants } from \"../Engines/constants\";\nimport { initializeWebWorker, workerFunction } from \"./basisWorker\";\n/**\n * Info about the .basis files\n */\nexport class BasisFileInfo {\n}\n/**\n * Result of transcoding a basis file\n */\nclass TranscodeResult {\n}\n/**\n * Configuration options for the Basis transcoder\n */\nexport class BasisTranscodeConfiguration {\n}\n/**\n * @internal\n * Enum of basis transcoder formats\n */\nvar BASIS_FORMATS;\n(function (BASIS_FORMATS) {\n BASIS_FORMATS[BASIS_FORMATS[\"cTFETC1\"] = 0] = \"cTFETC1\";\n BASIS_FORMATS[BASIS_FORMATS[\"cTFETC2\"] = 1] = \"cTFETC2\";\n BASIS_FORMATS[BASIS_FORMATS[\"cTFBC1\"] = 2] = \"cTFBC1\";\n BASIS_FORMATS[BASIS_FORMATS[\"cTFBC3\"] = 3] = \"cTFBC3\";\n BASIS_FORMATS[BASIS_FORMATS[\"cTFBC4\"] = 4] = \"cTFBC4\";\n BASIS_FORMATS[BASIS_FORMATS[\"cTFBC5\"] = 5] = \"cTFBC5\";\n BASIS_FORMATS[BASIS_FORMATS[\"cTFBC7\"] = 6] = \"cTFBC7\";\n BASIS_FORMATS[BASIS_FORMATS[\"cTFPVRTC1_4_RGB\"] = 8] = \"cTFPVRTC1_4_RGB\";\n BASIS_FORMATS[BASIS_FORMATS[\"cTFPVRTC1_4_RGBA\"] = 9] = \"cTFPVRTC1_4_RGBA\";\n BASIS_FORMATS[BASIS_FORMATS[\"cTFASTC_4x4\"] = 10] = \"cTFASTC_4x4\";\n BASIS_FORMATS[BASIS_FORMATS[\"cTFATC_RGB\"] = 11] = \"cTFATC_RGB\";\n BASIS_FORMATS[BASIS_FORMATS[\"cTFATC_RGBA_INTERPOLATED_ALPHA\"] = 12] = \"cTFATC_RGBA_INTERPOLATED_ALPHA\";\n BASIS_FORMATS[BASIS_FORMATS[\"cTFRGBA32\"] = 13] = \"cTFRGBA32\";\n BASIS_FORMATS[BASIS_FORMATS[\"cTFRGB565\"] = 14] = \"cTFRGB565\";\n BASIS_FORMATS[BASIS_FORMATS[\"cTFBGR565\"] = 15] = \"cTFBGR565\";\n BASIS_FORMATS[BASIS_FORMATS[\"cTFRGBA4444\"] = 16] = \"cTFRGBA4444\";\n BASIS_FORMATS[BASIS_FORMATS[\"cTFFXT1_RGB\"] = 17] = \"cTFFXT1_RGB\";\n BASIS_FORMATS[BASIS_FORMATS[\"cTFPVRTC2_4_RGB\"] = 18] = \"cTFPVRTC2_4_RGB\";\n BASIS_FORMATS[BASIS_FORMATS[\"cTFPVRTC2_4_RGBA\"] = 19] = \"cTFPVRTC2_4_RGBA\";\n BASIS_FORMATS[BASIS_FORMATS[\"cTFETC2_EAC_R11\"] = 20] = \"cTFETC2_EAC_R11\";\n BASIS_FORMATS[BASIS_FORMATS[\"cTFETC2_EAC_RG11\"] = 21] = \"cTFETC2_EAC_RG11\";\n})(BASIS_FORMATS || (BASIS_FORMATS = {}));\n/**\n * Used to load .Basis files\n * See https://github.com/BinomialLLC/basis_universal/tree/master/webgl\n */\nexport const BasisToolsOptions = {\n /**\n * URL to use when loading the basis transcoder\n */\n JSModuleURL: `${Tools._DefaultCdnUrl}/basisTranscoder/1/basis_transcoder.js`,\n /**\n * URL to use when loading the wasm module for the transcoder\n */\n WasmModuleURL: `${Tools._DefaultCdnUrl}/basisTranscoder/1/basis_transcoder.wasm`,\n};\n/**\n * Get the internal format to be passed to texImage2D corresponding to the .basis format value\n * @param basisFormat format chosen from GetSupportedTranscodeFormat\n * @param engine\n * @returns internal format corresponding to the Basis format\n */\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nexport const GetInternalFormatFromBasisFormat = (basisFormat, engine) => {\n let format;\n switch (basisFormat) {\n case BASIS_FORMATS.cTFETC1:\n format = Constants.TEXTUREFORMAT_COMPRESSED_RGB_ETC1_WEBGL;\n break;\n case BASIS_FORMATS.cTFBC1:\n format = Constants.TEXTUREFORMAT_COMPRESSED_RGB_S3TC_DXT1;\n break;\n case BASIS_FORMATS.cTFBC4:\n format = Constants.TEXTUREFORMAT_COMPRESSED_RGBA_S3TC_DXT5;\n break;\n case BASIS_FORMATS.cTFASTC_4x4:\n format = Constants.TEXTUREFORMAT_COMPRESSED_RGBA_ASTC_4x4;\n break;\n case BASIS_FORMATS.cTFETC2:\n format = Constants.TEXTUREFORMAT_COMPRESSED_RGBA8_ETC2_EAC;\n break;\n case BASIS_FORMATS.cTFBC7:\n format = Constants.TEXTUREFORMAT_COMPRESSED_RGBA_BPTC_UNORM;\n break;\n }\n if (format === undefined) {\n // eslint-disable-next-line no-throw-literal\n throw \"The chosen Basis transcoder format is not currently supported\";\n }\n return format;\n};\nlet _WorkerPromise = null;\nlet _Worker = null;\nlet _actionId = 0;\nconst _IgnoreSupportedFormats = false;\nconst _CreateWorkerAsync = () => {\n if (!_WorkerPromise) {\n _WorkerPromise = new Promise((res, reject) => {\n if (_Worker) {\n res(_Worker);\n }\n else {\n Tools.LoadFileAsync(Tools.GetBabylonScriptURL(BasisToolsOptions.WasmModuleURL))\n .then((wasmBinary) => {\n if (typeof URL !== \"function\") {\n return reject(\"Basis transcoder requires an environment with a URL constructor\");\n }\n const workerBlobUrl = URL.createObjectURL(new Blob([`(${workerFunction})()`], { type: \"application/javascript\" }));\n _Worker = new Worker(workerBlobUrl);\n initializeWebWorker(_Worker, wasmBinary, BasisToolsOptions.JSModuleURL).then(res, reject);\n })\n .catch(reject);\n }\n });\n }\n return _WorkerPromise;\n};\n/**\n * Set the worker to use for transcoding\n * @param worker The worker that will be used for transcoding\n */\nexport const SetBasisTranscoderWorker = (worker) => {\n _Worker = worker;\n};\n/**\n * Transcodes a loaded image file to compressed pixel data\n * @param data image data to transcode\n * @param config configuration options for the transcoding\n * @returns a promise resulting in the transcoded image\n */\nexport const TranscodeAsync = (data, config) => {\n const dataView = data instanceof ArrayBuffer ? new Uint8Array(data) : data;\n return new Promise((res, rej) => {\n _CreateWorkerAsync().then(() => {\n const actionId = _actionId++;\n const messageHandler = (msg) => {\n if (msg.data.action === \"transcode\" && msg.data.id === actionId) {\n _Worker.removeEventListener(\"message\", messageHandler);\n if (!msg.data.success) {\n rej(\"Transcode is not supported on this device\");\n }\n else {\n res(msg.data);\n }\n }\n };\n _Worker.addEventListener(\"message\", messageHandler);\n const dataViewCopy = new Uint8Array(dataView.byteLength);\n dataViewCopy.set(new Uint8Array(dataView.buffer, dataView.byteOffset, dataView.byteLength));\n _Worker.postMessage({ action: \"transcode\", id: actionId, imageData: dataViewCopy, config: config, ignoreSupportedFormats: _IgnoreSupportedFormats }, [\n dataViewCopy.buffer,\n ]);\n }, (error) => {\n rej(error);\n });\n });\n};\n/**\n * Binds a texture according to its underlying target.\n * @param texture texture to bind\n * @param engine the engine to bind the texture in\n */\nconst BindTexture = (texture, engine) => {\n let target = engine._gl?.TEXTURE_2D;\n if (texture.isCube) {\n target = engine._gl?.TEXTURE_CUBE_MAP;\n }\n engine._bindTextureDirectly(target, texture, true);\n};\n/**\n * Loads a texture from the transcode result\n * @param texture texture load to\n * @param transcodeResult the result of transcoding the basis file to load from\n */\nexport const LoadTextureFromTranscodeResult = (texture, transcodeResult) => {\n const engine = texture.getEngine();\n for (let i = 0; i < transcodeResult.fileInfo.images.length; i++) {\n const rootImage = transcodeResult.fileInfo.images[i].levels[0];\n texture._invertVScale = texture.invertY;\n if (transcodeResult.format === -1 || transcodeResult.format === BASIS_FORMATS.cTFRGB565) {\n // No compatable compressed format found, fallback to RGB\n texture.type = Constants.TEXTURETYPE_UNSIGNED_SHORT_5_6_5;\n texture.format = Constants.TEXTUREFORMAT_RGB;\n if (engine._features.basisNeedsPOT && (Math.log2(rootImage.width) % 1 !== 0 || Math.log2(rootImage.height) % 1 !== 0)) {\n // Create non power of two texture\n const source = new InternalTexture(engine, 2 /* InternalTextureSource.Temp */);\n texture._invertVScale = texture.invertY;\n source.type = Constants.TEXTURETYPE_UNSIGNED_SHORT_5_6_5;\n source.format = Constants.TEXTUREFORMAT_RGB;\n // Fallback requires aligned width/height\n source.width = (rootImage.width + 3) & ~3;\n source.height = (rootImage.height + 3) & ~3;\n BindTexture(source, engine);\n engine._uploadDataToTextureDirectly(source, new Uint16Array(rootImage.transcodedPixels.buffer), i, 0, Constants.TEXTUREFORMAT_RGB, true);\n // Resize to power of two\n engine._rescaleTexture(source, texture, engine.scenes[0], engine._getInternalFormat(Constants.TEXTUREFORMAT_RGB), () => {\n engine._releaseTexture(source);\n BindTexture(texture, engine);\n });\n }\n else {\n // Fallback is already inverted\n texture._invertVScale = !texture.invertY;\n // Upload directly\n texture.width = (rootImage.width + 3) & ~3;\n texture.height = (rootImage.height + 3) & ~3;\n texture.samplingMode = Constants.TEXTURE_LINEAR_LINEAR;\n BindTexture(texture, engine);\n engine._uploadDataToTextureDirectly(texture, new Uint16Array(rootImage.transcodedPixels.buffer), i, 0, Constants.TEXTUREFORMAT_RGB, true);\n }\n }\n else {\n texture.width = rootImage.width;\n texture.height = rootImage.height;\n texture.generateMipMaps = transcodeResult.fileInfo.images[i].levels.length > 1;\n const format = BasisTools.GetInternalFormatFromBasisFormat(transcodeResult.format, engine);\n texture.format = format;\n BindTexture(texture, engine);\n // Upload all mip levels in the file\n transcodeResult.fileInfo.images[i].levels.forEach((level, index) => {\n engine._uploadCompressedDataToTextureDirectly(texture, format, level.width, level.height, level.transcodedPixels, i, index);\n });\n if (engine._features.basisNeedsPOT && (Math.log2(texture.width) % 1 !== 0 || Math.log2(texture.height) % 1 !== 0)) {\n Tools.Warn(\"Loaded .basis texture width and height are not a power of two. Texture wrapping will be set to Texture.CLAMP_ADDRESSMODE as other modes are not supported with non power of two dimensions in webGL 1.\");\n texture._cachedWrapU = Texture.CLAMP_ADDRESSMODE;\n texture._cachedWrapV = Texture.CLAMP_ADDRESSMODE;\n }\n }\n }\n};\n/**\n * Used to load .Basis files\n * See https://github.com/BinomialLLC/basis_universal/tree/master/webgl\n */\nexport const BasisTools = {\n /**\n * URL to use when loading the basis transcoder\n */\n JSModuleURL: BasisToolsOptions.JSModuleURL,\n /**\n * URL to use when loading the wasm module for the transcoder\n */\n WasmModuleURL: BasisToolsOptions.WasmModuleURL,\n /**\n * Get the internal format to be passed to texImage2D corresponding to the .basis format value\n * @param basisFormat format chosen from GetSupportedTranscodeFormat\n * @returns internal format corresponding to the Basis format\n */\n GetInternalFormatFromBasisFormat,\n /**\n * Transcodes a loaded image file to compressed pixel data\n * @param data image data to transcode\n * @param config configuration options for the transcoding\n * @returns a promise resulting in the transcoded image\n */\n TranscodeAsync,\n /**\n * Loads a texture from the transcode result\n * @param texture texture load to\n * @param transcodeResult the result of transcoding the basis file to load from\n */\n LoadTextureFromTranscodeResult,\n};\nObject.defineProperty(BasisTools, \"JSModuleURL\", {\n get: function () {\n return BasisToolsOptions.JSModuleURL;\n },\n set: function (value) {\n BasisToolsOptions.JSModuleURL = value;\n },\n});\nObject.defineProperty(BasisTools, \"WasmModuleURL\", {\n get: function () {\n return BasisToolsOptions.WasmModuleURL;\n },\n set: function (value) {\n BasisToolsOptions.WasmModuleURL = value;\n },\n});\n//# sourceMappingURL=basis.js.map","import { LoadTextureFromTranscodeResult, TranscodeAsync } from \"../../../Misc/basis\";\nimport { Tools } from \"../../../Misc/tools\";\nimport \"../../../Engines/Extensions/engine.cubeTexture\";\n/**\n * Loader for .basis file format\n */\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport class _BasisTextureLoader {\n constructor() {\n /**\n * Defines whether the loader supports cascade loading the different faces.\n */\n this.supportCascades = false;\n }\n /**\n * Uploads the cube texture data to the WebGL texture. It has already been bound.\n * @param data contains the texture data\n * @param texture defines the BabylonJS internal texture\n * @param createPolynomials will be true if polynomials have been requested\n * @param onLoad defines the callback to trigger once the texture is ready\n * @param onError defines the callback to trigger in case of error\n */\n loadCubeData(data, texture, createPolynomials, onLoad, onError) {\n if (Array.isArray(data)) {\n return;\n }\n const caps = texture.getEngine().getCaps();\n const transcodeConfig = {\n supportedCompressionFormats: {\n etc1: caps.etc1 ? true : false,\n s3tc: caps.s3tc ? true : false,\n pvrtc: caps.pvrtc ? true : false,\n etc2: caps.etc2 ? true : false,\n astc: caps.astc ? true : false,\n bc7: caps.bptc ? true : false,\n },\n };\n TranscodeAsync(data, transcodeConfig)\n .then((result) => {\n const hasMipmap = result.fileInfo.images[0].levels.length > 1 && texture.generateMipMaps;\n LoadTextureFromTranscodeResult(texture, result);\n texture.getEngine()._setCubeMapTextureParams(texture, hasMipmap);\n texture.isReady = true;\n texture.onLoadedObservable.notifyObservers(texture);\n texture.onLoadedObservable.clear();\n if (onLoad) {\n onLoad();\n }\n })\n .catch((err) => {\n const errorMessage = \"Failed to transcode Basis file, transcoding may not be supported on this device\";\n Tools.Warn(errorMessage);\n texture.isReady = true;\n if (onError) {\n onError(err);\n }\n });\n }\n /**\n * Uploads the 2D texture data to the WebGL texture. It has already been bound once in the callback.\n * @param data contains the texture data\n * @param texture defines the BabylonJS internal texture\n * @param callback defines the method to call once ready to upload\n */\n loadData(data, texture, callback) {\n const caps = texture.getEngine().getCaps();\n const transcodeConfig = {\n supportedCompressionFormats: {\n etc1: caps.etc1 ? true : false,\n s3tc: caps.s3tc ? true : false,\n pvrtc: caps.pvrtc ? true : false,\n etc2: caps.etc2 ? true : false,\n astc: caps.astc ? true : false,\n bc7: caps.bptc ? true : false,\n },\n };\n TranscodeAsync(data, transcodeConfig)\n .then((result) => {\n const rootImage = result.fileInfo.images[0].levels[0];\n const hasMipmap = result.fileInfo.images[0].levels.length > 1 && texture.generateMipMaps;\n callback(rootImage.width, rootImage.height, hasMipmap, result.format !== -1, () => {\n LoadTextureFromTranscodeResult(texture, result);\n });\n })\n .catch((err) => {\n Tools.Warn(\"Failed to transcode Basis file, transcoding may not be supported on this device\");\n Tools.Warn(`Failed to transcode Basis file: ${err}`);\n callback(0, 0, false, false, () => { }, true);\n });\n }\n}\n//# sourceMappingURL=basisTextureLoader.js.map"],"names":["workerFunction","_BASIS_FORMAT","transcoderModulePromise","TranscodeLevel","loadedFile","imageIndex","levelIndex","format","convertToRgb565","dstSize","getImageTranscodedSizeInBytes","dst","Uint8Array","transcodeImage","src","srcByteOffset","width","height","c","Uint16Array","blockWidth","blockHeight","blockY","blockX","i","row","m","dstI","ConvertDxtToRgb565","getImageWidth","getImageHeight","onmessage","event","data","action","url","importScripts","e","postMessage","error","BASIS","wasmBinary","then","initializeBasis","config","imgData","imageData","BasisFile","fileInfo","basisFile","hasAlpha","getHasAlpha","imageCount","getNumImages","images","imageInfo","levels","levelCount","getNumLevels","level","levelInfo","push","GetFileInfo","ignoreSupportedFormats","supportedCompressionFormats","astc","bc7","s3tc","pvrtc","etc2","etc1","GetSupportedTranscodeFormat","needsConversion","success","startTranscoding","buffers","length","image","undefined","loadSingleImage","mipCount","loadMipmapLevels","pixels","transcodedPixels","buffer","close","delete","id","BASIS_FORMATS","BasisToolsOptions","JSModuleURL","Tools","_DefaultCdnUrl","WasmModuleURL","_WorkerPromise","_Worker","_actionId","_CreateWorkerAsync","Promise","res","reject","LoadFileAsync","GetBabylonScriptURL","URL","workerBlobUrl","createObjectURL","Blob","type","Worker","worker","moduleUrl","initHandler","msg","removeEventListener","addEventListener","initializeWebWorker","catch","TranscodeAsync","dataView","ArrayBuffer","rej","actionId","messageHandler","dataViewCopy","byteLength","set","byteOffset","BindTexture","texture","engine","target","_gl","TEXTURE_2D","isCube","TEXTURE_CUBE_MAP","_bindTextureDirectly","LoadTextureFromTranscodeResult","transcodeResult","getEngine","rootImage","_invertVScale","invertY","cTFRGB565","Constants","TEXTURETYPE_UNSIGNED_SHORT_5_6_5","TEXTUREFORMAT_RGB","_features","basisNeedsPOT","Math","log2","samplingMode","TEXTURE_LINEAR_LINEAR","_uploadDataToTextureDirectly","source","InternalTexture","_rescaleTexture","scenes","_getInternalFormat","_releaseTexture","generateMipMaps","BasisTools","GetInternalFormatFromBasisFormat","forEach","index","_uploadCompressedDataToTextureDirectly","Warn","_cachedWrapU","Texture","CLAMP_ADDRESSMODE","_cachedWrapV","basisFormat","cTFETC1","TEXTUREFORMAT_COMPRESSED_RGB_ETC1_WEBGL","cTFBC1","TEXTUREFORMAT_COMPRESSED_RGB_S3TC_DXT1","cTFBC4","TEXTUREFORMAT_COMPRESSED_RGBA_S3TC_DXT5","cTFASTC_4x4","TEXTUREFORMAT_COMPRESSED_RGBA_ASTC_4x4","cTFETC2","TEXTUREFORMAT_COMPRESSED_RGBA8_ETC2_EAC","cTFBC7","TEXTUREFORMAT_COMPRESSED_RGBA_BPTC_UNORM","Object","defineProperty","get","value","_BasisTextureLoader","constructor","this","supportCascades","loadCubeData","createPolynomials","onLoad","onError","Array","isArray","caps","getCaps","transcodeConfig","bptc","result","hasMipmap","_setCubeMapTextureParams","isReady","onLoadedObservable","notifyObservers","clear","err","loadData","callback"],"mappings":"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"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{b0 as e,aj as a}from"./index-Ba-YQVRw.esm.min.js";class i{constructor(){this.supportCascades=!0}loadCubeData(i,t,s,p){const n=t.getEngine();let o,r=!1,m=1e3;if(Array.isArray(i))for(let a=0;a<i.length;a++){const s=i[a];o=e.GetDDSInfo(s),t.width=o.width,t.height=o.height,r=(o.isRGB||o.isLuminance||o.mipmapCount>1)&&t.generateMipMaps,n._unpackFlipY(o.isCompressed),e.UploadDDSLevels(n,t,s,o,r,6,-1,a),o.isFourCC||1!==o.mipmapCount?m=o.mipmapCount-1:n.generateMipMapsForCubemap(t)}else{const p=i;o=e.GetDDSInfo(p),t.width=o.width,t.height=o.height,s&&(o.sphericalPolynomial=new a),r=(o.isRGB||o.isLuminance||o.mipmapCount>1)&&t.generateMipMaps,n._unpackFlipY(o.isCompressed),e.UploadDDSLevels(n,t,p,o,r,6),o.isFourCC||1!==o.mipmapCount?m=o.mipmapCount-1:n.generateMipMapsForCubemap(t,!1)}n._setCubeMapTextureParams(t,r,m),t.isReady=!0,t.onLoadedObservable.notifyObservers(t),t.onLoadedObservable.clear(),p&&p({isDDS:!0,width:t.width,info:o,data:i,texture:t})}loadData(a,i,t){const s=e.GetDDSInfo(a),p=(s.isRGB||s.isLuminance||s.mipmapCount>1)&&i.generateMipMaps&&Math.max(s.width,s.height)>>s.mipmapCount-1==1;t(s.width,s.height,p,s.isFourCC,(()=>{e.UploadDDSLevels(i.getEngine(),i,a,s,p,1)}))}}export{i as _DDSTextureLoader};
|
|
2
|
+
//# sourceMappingURL=ddsTextureLoader-BIGKoQfH.esm.min.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ddsTextureLoader-BIGKoQfH.esm.min.js","sources":["../../../../../dev/core/dist/Materials/Textures/Loaders/ddsTextureLoader.js"],"sourcesContent":["import { SphericalPolynomial } from \"../../../Maths/sphericalPolynomial\";\nimport { DDSTools } from \"../../../Misc/dds\";\nimport \"../../../Engines/Extensions/engine.cubeTexture\";\n/**\n * Implementation of the DDS Texture Loader.\n * @internal\n */\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport class _DDSTextureLoader {\n constructor() {\n /**\n * Defines whether the loader supports cascade loading the different faces.\n */\n this.supportCascades = true;\n }\n /**\n * Uploads the cube texture data to the WebGL texture. It has already been bound.\n * @param imgs contains the cube maps\n * @param texture defines the BabylonJS internal texture\n * @param createPolynomials will be true if polynomials have been requested\n * @param onLoad defines the callback to trigger once the texture is ready\n */\n loadCubeData(imgs, texture, createPolynomials, onLoad) {\n const engine = texture.getEngine();\n let info;\n let loadMipmap = false;\n let maxLevel = 1000;\n if (Array.isArray(imgs)) {\n for (let index = 0; index < imgs.length; index++) {\n const data = imgs[index];\n info = DDSTools.GetDDSInfo(data);\n texture.width = info.width;\n texture.height = info.height;\n loadMipmap = (info.isRGB || info.isLuminance || info.mipmapCount > 1) && texture.generateMipMaps;\n engine._unpackFlipY(info.isCompressed);\n DDSTools.UploadDDSLevels(engine, texture, data, info, loadMipmap, 6, -1, index);\n if (!info.isFourCC && info.mipmapCount === 1) {\n engine.generateMipMapsForCubemap(texture);\n }\n else {\n maxLevel = info.mipmapCount - 1;\n }\n }\n }\n else {\n const data = imgs;\n info = DDSTools.GetDDSInfo(data);\n texture.width = info.width;\n texture.height = info.height;\n if (createPolynomials) {\n info.sphericalPolynomial = new SphericalPolynomial();\n }\n loadMipmap = (info.isRGB || info.isLuminance || info.mipmapCount > 1) && texture.generateMipMaps;\n engine._unpackFlipY(info.isCompressed);\n DDSTools.UploadDDSLevels(engine, texture, data, info, loadMipmap, 6);\n if (!info.isFourCC && info.mipmapCount === 1) {\n // Do not unbind as we still need to set the parameters.\n engine.generateMipMapsForCubemap(texture, false);\n }\n else {\n maxLevel = info.mipmapCount - 1;\n }\n }\n engine._setCubeMapTextureParams(texture, loadMipmap, maxLevel);\n texture.isReady = true;\n texture.onLoadedObservable.notifyObservers(texture);\n texture.onLoadedObservable.clear();\n if (onLoad) {\n onLoad({ isDDS: true, width: texture.width, info, data: imgs, texture });\n }\n }\n /**\n * Uploads the 2D texture data to the WebGL texture. It has already been bound once in the callback.\n * @param data contains the texture data\n * @param texture defines the BabylonJS internal texture\n * @param callback defines the method to call once ready to upload\n */\n loadData(data, texture, callback) {\n const info = DDSTools.GetDDSInfo(data);\n const loadMipmap = (info.isRGB || info.isLuminance || info.mipmapCount > 1) && texture.generateMipMaps && Math.max(info.width, info.height) >> (info.mipmapCount - 1) === 1;\n callback(info.width, info.height, loadMipmap, info.isFourCC, () => {\n DDSTools.UploadDDSLevels(texture.getEngine(), texture, data, info, loadMipmap, 1);\n });\n }\n}\n//# sourceMappingURL=ddsTextureLoader.js.map"],"names":["_DDSTextureLoader","constructor","this","supportCascades","loadCubeData","imgs","texture","createPolynomials","onLoad","engine","getEngine","info","loadMipmap","maxLevel","Array","isArray","index","length","data","DDSTools","GetDDSInfo","width","height","isRGB","isLuminance","mipmapCount","generateMipMaps","_unpackFlipY","isCompressed","UploadDDSLevels","isFourCC","generateMipMapsForCubemap","sphericalPolynomial","SphericalPolynomial","_setCubeMapTextureParams","isReady","onLoadedObservable","notifyObservers","clear","isDDS","loadData","callback","Math","max"],"mappings":"yDAQO,MAAMA,EACT,WAAAC,GAIIC,KAAKC,iBAAkB,CAC1B,CAQD,YAAAC,CAAaC,EAAMC,EAASC,EAAmBC,GAC3C,MAAMC,EAASH,EAAQI,YACvB,IAAIC,EACAC,GAAa,EACbC,EAAW,IACf,GAAIC,MAAMC,QAAQV,GACd,IAAK,IAAIW,EAAQ,EAAGA,EAAQX,EAAKY,OAAQD,IAAS,CAC9C,MAAME,EAAOb,EAAKW,GAClBL,EAAOQ,EAASC,WAAWF,GAC3BZ,EAAQe,MAAQV,EAAKU,MACrBf,EAAQgB,OAASX,EAAKW,OACtBV,GAAcD,EAAKY,OAASZ,EAAKa,aAAeb,EAAKc,YAAc,IAAMnB,EAAQoB,gBACjFjB,EAAOkB,aAAahB,EAAKiB,cACzBT,EAASU,gBAAgBpB,EAAQH,EAASY,EAAMP,EAAMC,EAAY,GAAI,EAAGI,GACpEL,EAAKmB,UAAiC,IAArBnB,EAAKc,YAIvBZ,EAAWF,EAAKc,YAAc,EAH9BhB,EAAOsB,0BAA0BzB,EAKxC,KAEA,CACD,MAAMY,EAAOb,EACbM,EAAOQ,EAASC,WAAWF,GAC3BZ,EAAQe,MAAQV,EAAKU,MACrBf,EAAQgB,OAASX,EAAKW,OAClBf,IACAI,EAAKqB,oBAAsB,IAAIC,GAEnCrB,GAAcD,EAAKY,OAASZ,EAAKa,aAAeb,EAAKc,YAAc,IAAMnB,EAAQoB,gBACjFjB,EAAOkB,aAAahB,EAAKiB,cACzBT,EAASU,gBAAgBpB,EAAQH,EAASY,EAAMP,EAAMC,EAAY,GAC7DD,EAAKmB,UAAiC,IAArBnB,EAAKc,YAKvBZ,EAAWF,EAAKc,YAAc,EAH9BhB,EAAOsB,0BAA0BzB,GAAS,EAKjD,CACDG,EAAOyB,yBAAyB5B,EAASM,EAAYC,GACrDP,EAAQ6B,SAAU,EAClB7B,EAAQ8B,mBAAmBC,gBAAgB/B,GAC3CA,EAAQ8B,mBAAmBE,QACvB9B,GACAA,EAAO,CAAE+B,OAAO,EAAMlB,MAAOf,EAAQe,MAAOV,OAAMO,KAAMb,EAAMC,WAErE,CAOD,QAAAkC,CAAStB,EAAMZ,EAASmC,GACpB,MAAM9B,EAAOQ,EAASC,WAAWF,GAC3BN,GAAcD,EAAKY,OAASZ,EAAKa,aAAeb,EAAKc,YAAc,IAAMnB,EAAQoB,iBAAmBgB,KAAKC,IAAIhC,EAAKU,MAAOV,EAAKW,SAAYX,EAAKc,YAAc,GAAO,EAC1KgB,EAAS9B,EAAKU,MAAOV,EAAKW,OAAQV,EAAYD,EAAKmB,UAAU,KACzDX,EAASU,gBAAgBvB,EAAQI,YAAaJ,EAASY,EAAMP,EAAMC,EAAY,EAAE,GAExF"}
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
import { b0 as DDSTools, aj as SphericalPolynomial } from './index-DCMXQRx5.esm.js';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Implementation of the DDS Texture Loader.
|
|
5
|
+
* @internal
|
|
6
|
+
*/
|
|
7
|
+
// eslint-disable-next-line @typescript-eslint/naming-convention
|
|
8
|
+
class _DDSTextureLoader {
|
|
9
|
+
constructor() {
|
|
10
|
+
/**
|
|
11
|
+
* Defines whether the loader supports cascade loading the different faces.
|
|
12
|
+
*/
|
|
13
|
+
this.supportCascades = true;
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* Uploads the cube texture data to the WebGL texture. It has already been bound.
|
|
17
|
+
* @param imgs contains the cube maps
|
|
18
|
+
* @param texture defines the BabylonJS internal texture
|
|
19
|
+
* @param createPolynomials will be true if polynomials have been requested
|
|
20
|
+
* @param onLoad defines the callback to trigger once the texture is ready
|
|
21
|
+
*/
|
|
22
|
+
loadCubeData(imgs, texture, createPolynomials, onLoad) {
|
|
23
|
+
const engine = texture.getEngine();
|
|
24
|
+
let info;
|
|
25
|
+
let loadMipmap = false;
|
|
26
|
+
let maxLevel = 1000;
|
|
27
|
+
if (Array.isArray(imgs)) {
|
|
28
|
+
for (let index = 0; index < imgs.length; index++) {
|
|
29
|
+
const data = imgs[index];
|
|
30
|
+
info = DDSTools.GetDDSInfo(data);
|
|
31
|
+
texture.width = info.width;
|
|
32
|
+
texture.height = info.height;
|
|
33
|
+
loadMipmap = (info.isRGB || info.isLuminance || info.mipmapCount > 1) && texture.generateMipMaps;
|
|
34
|
+
engine._unpackFlipY(info.isCompressed);
|
|
35
|
+
DDSTools.UploadDDSLevels(engine, texture, data, info, loadMipmap, 6, -1, index);
|
|
36
|
+
if (!info.isFourCC && info.mipmapCount === 1) {
|
|
37
|
+
engine.generateMipMapsForCubemap(texture);
|
|
38
|
+
}
|
|
39
|
+
else {
|
|
40
|
+
maxLevel = info.mipmapCount - 1;
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
else {
|
|
45
|
+
const data = imgs;
|
|
46
|
+
info = DDSTools.GetDDSInfo(data);
|
|
47
|
+
texture.width = info.width;
|
|
48
|
+
texture.height = info.height;
|
|
49
|
+
if (createPolynomials) {
|
|
50
|
+
info.sphericalPolynomial = new SphericalPolynomial();
|
|
51
|
+
}
|
|
52
|
+
loadMipmap = (info.isRGB || info.isLuminance || info.mipmapCount > 1) && texture.generateMipMaps;
|
|
53
|
+
engine._unpackFlipY(info.isCompressed);
|
|
54
|
+
DDSTools.UploadDDSLevels(engine, texture, data, info, loadMipmap, 6);
|
|
55
|
+
if (!info.isFourCC && info.mipmapCount === 1) {
|
|
56
|
+
// Do not unbind as we still need to set the parameters.
|
|
57
|
+
engine.generateMipMapsForCubemap(texture, false);
|
|
58
|
+
}
|
|
59
|
+
else {
|
|
60
|
+
maxLevel = info.mipmapCount - 1;
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
engine._setCubeMapTextureParams(texture, loadMipmap, maxLevel);
|
|
64
|
+
texture.isReady = true;
|
|
65
|
+
texture.onLoadedObservable.notifyObservers(texture);
|
|
66
|
+
texture.onLoadedObservable.clear();
|
|
67
|
+
if (onLoad) {
|
|
68
|
+
onLoad({ isDDS: true, width: texture.width, info, data: imgs, texture });
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* Uploads the 2D texture data to the WebGL texture. It has already been bound once in the callback.
|
|
73
|
+
* @param data contains the texture data
|
|
74
|
+
* @param texture defines the BabylonJS internal texture
|
|
75
|
+
* @param callback defines the method to call once ready to upload
|
|
76
|
+
*/
|
|
77
|
+
loadData(data, texture, callback) {
|
|
78
|
+
const info = DDSTools.GetDDSInfo(data);
|
|
79
|
+
const loadMipmap = (info.isRGB || info.isLuminance || info.mipmapCount > 1) && texture.generateMipMaps && Math.max(info.width, info.height) >> (info.mipmapCount - 1) === 1;
|
|
80
|
+
callback(info.width, info.height, loadMipmap, info.isFourCC, () => {
|
|
81
|
+
DDSTools.UploadDDSLevels(texture.getEngine(), texture, data, info, loadMipmap, 1);
|
|
82
|
+
});
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
export { _DDSTextureLoader };
|
|
87
|
+
//# sourceMappingURL=ddsTextureLoader-WkW9Z98R.esm.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ddsTextureLoader-WkW9Z98R.esm.js","sources":["../../../../../dev/core/dist/Materials/Textures/Loaders/ddsTextureLoader.js"],"sourcesContent":["import { SphericalPolynomial } from \"../../../Maths/sphericalPolynomial\";\nimport { DDSTools } from \"../../../Misc/dds\";\nimport \"../../../Engines/Extensions/engine.cubeTexture\";\n/**\n * Implementation of the DDS Texture Loader.\n * @internal\n */\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport class _DDSTextureLoader {\n constructor() {\n /**\n * Defines whether the loader supports cascade loading the different faces.\n */\n this.supportCascades = true;\n }\n /**\n * Uploads the cube texture data to the WebGL texture. It has already been bound.\n * @param imgs contains the cube maps\n * @param texture defines the BabylonJS internal texture\n * @param createPolynomials will be true if polynomials have been requested\n * @param onLoad defines the callback to trigger once the texture is ready\n */\n loadCubeData(imgs, texture, createPolynomials, onLoad) {\n const engine = texture.getEngine();\n let info;\n let loadMipmap = false;\n let maxLevel = 1000;\n if (Array.isArray(imgs)) {\n for (let index = 0; index < imgs.length; index++) {\n const data = imgs[index];\n info = DDSTools.GetDDSInfo(data);\n texture.width = info.width;\n texture.height = info.height;\n loadMipmap = (info.isRGB || info.isLuminance || info.mipmapCount > 1) && texture.generateMipMaps;\n engine._unpackFlipY(info.isCompressed);\n DDSTools.UploadDDSLevels(engine, texture, data, info, loadMipmap, 6, -1, index);\n if (!info.isFourCC && info.mipmapCount === 1) {\n engine.generateMipMapsForCubemap(texture);\n }\n else {\n maxLevel = info.mipmapCount - 1;\n }\n }\n }\n else {\n const data = imgs;\n info = DDSTools.GetDDSInfo(data);\n texture.width = info.width;\n texture.height = info.height;\n if (createPolynomials) {\n info.sphericalPolynomial = new SphericalPolynomial();\n }\n loadMipmap = (info.isRGB || info.isLuminance || info.mipmapCount > 1) && texture.generateMipMaps;\n engine._unpackFlipY(info.isCompressed);\n DDSTools.UploadDDSLevels(engine, texture, data, info, loadMipmap, 6);\n if (!info.isFourCC && info.mipmapCount === 1) {\n // Do not unbind as we still need to set the parameters.\n engine.generateMipMapsForCubemap(texture, false);\n }\n else {\n maxLevel = info.mipmapCount - 1;\n }\n }\n engine._setCubeMapTextureParams(texture, loadMipmap, maxLevel);\n texture.isReady = true;\n texture.onLoadedObservable.notifyObservers(texture);\n texture.onLoadedObservable.clear();\n if (onLoad) {\n onLoad({ isDDS: true, width: texture.width, info, data: imgs, texture });\n }\n }\n /**\n * Uploads the 2D texture data to the WebGL texture. It has already been bound once in the callback.\n * @param data contains the texture data\n * @param texture defines the BabylonJS internal texture\n * @param callback defines the method to call once ready to upload\n */\n loadData(data, texture, callback) {\n const info = DDSTools.GetDDSInfo(data);\n const loadMipmap = (info.isRGB || info.isLuminance || info.mipmapCount > 1) && texture.generateMipMaps && Math.max(info.width, info.height) >> (info.mipmapCount - 1) === 1;\n callback(info.width, info.height, loadMipmap, info.isFourCC, () => {\n DDSTools.UploadDDSLevels(texture.getEngine(), texture, data, info, loadMipmap, 1);\n });\n }\n}\n//# sourceMappingURL=ddsTextureLoader.js.map"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{S as e}from"./index-Ba-YQVRw.esm.min.js";import"./oitFragment-CROGuom4.esm.min.js";import"./defaultUboDeclaration-DSNWa2yC.esm.min.js";import"./mainUVVaryingDeclaration-BNr0GD05.esm.min.js";import"./helperFunctions-CigixUGL.esm.min.js";import"./fogFragment-D6bC8Ff4.esm.min.js";import"./logDepthDeclaration-C0bLjDGt.esm.min.js";e.IncludesShadersStore.defaultFragmentDeclaration="uniform vec4 vEyePosition;uniform vec4 vDiffuseColor;\n#ifdef SPECULARTERM\nuniform vec4 vSpecularColor;\n#endif\nuniform vec3 vEmissiveColor;uniform vec3 vAmbientColor;uniform float visibility;\n#ifdef DIFFUSE\nuniform vec2 vDiffuseInfos;\n#endif\n#ifdef AMBIENT\nuniform vec2 vAmbientInfos;\n#endif\n#ifdef OPACITY \nuniform vec2 vOpacityInfos;\n#endif\n#ifdef EMISSIVE\nuniform vec2 vEmissiveInfos;\n#endif\n#ifdef LIGHTMAP\nuniform vec2 vLightmapInfos;\n#endif\n#ifdef BUMP\nuniform vec3 vBumpInfos;uniform vec2 vTangentSpaceParams;\n#endif\n#ifdef ALPHATEST\nuniform float alphaCutOff;\n#endif\n#if defined(REFLECTIONMAP_SPHERICAL) || defined(REFLECTIONMAP_PROJECTION) || defined(REFRACTION) || defined(PREPASS)\nuniform mat4 view;\n#endif\n#ifdef REFRACTION\nuniform vec4 vRefractionInfos;\n#ifndef REFRACTIONMAP_3D\nuniform mat4 refractionMatrix;\n#endif\n#ifdef REFRACTIONFRESNEL\nuniform vec4 refractionLeftColor;uniform vec4 refractionRightColor;\n#endif\n#if defined(USE_LOCAL_REFRACTIONMAP_CUBIC) && defined(REFRACTIONMAP_3D)\nuniform vec3 vRefractionPosition;uniform vec3 vRefractionSize; \n#endif\n#endif\n#if defined(SPECULAR) && defined(SPECULARTERM)\nuniform vec2 vSpecularInfos;\n#endif\n#ifdef DIFFUSEFRESNEL\nuniform vec4 diffuseLeftColor;uniform vec4 diffuseRightColor;\n#endif\n#ifdef OPACITYFRESNEL\nuniform vec4 opacityParts;\n#endif\n#ifdef EMISSIVEFRESNEL\nuniform vec4 emissiveLeftColor;uniform vec4 emissiveRightColor;\n#endif\n#ifdef REFLECTION\nuniform vec2 vReflectionInfos;\n#if defined(REFLECTIONMAP_PLANAR) || defined(REFLECTIONMAP_CUBIC) || defined(REFLECTIONMAP_PROJECTION) || defined(REFLECTIONMAP_EQUIRECTANGULAR) || defined(REFLECTIONMAP_SPHERICAL) || defined(REFLECTIONMAP_SKYBOX)\nuniform mat4 reflectionMatrix;\n#endif\n#ifndef REFLECTIONMAP_SKYBOX\n#if defined(USE_LOCAL_REFLECTIONMAP_CUBIC) && defined(REFLECTIONMAP_CUBIC)\nuniform vec3 vReflectionPosition;uniform vec3 vReflectionSize; \n#endif\n#endif\n#ifdef REFLECTIONFRESNEL\nuniform vec4 reflectionLeftColor;uniform vec4 reflectionRightColor;\n#endif\n#endif\n#ifdef DETAIL\nuniform vec4 vDetailInfos;\n#endif\n#include<decalFragmentDeclaration>\n#define ADDITIONAL_FRAGMENT_DECLARATION\n";e.IncludesShadersStore.lightsFragmentFunctions="struct lightingInfo\n{vec3 diffuse;\n#ifdef SPECULARTERM\nvec3 specular;\n#endif\n#ifdef NDOTL\nfloat ndl;\n#endif\n};lightingInfo computeLighting(vec3 viewDirectionW,vec3 vNormal,vec4 lightData,vec3 diffuseColor,vec3 specularColor,float range,float glossiness) {lightingInfo result;vec3 lightVectorW;float attenuation=1.0;if (lightData.w==0.)\n{vec3 direction=lightData.xyz-vPositionW;attenuation=max(0.,1.0-length(direction)/range);lightVectorW=normalize(direction);}\nelse\n{lightVectorW=normalize(-lightData.xyz);}\nfloat ndl=max(0.,dot(vNormal,lightVectorW));\n#ifdef NDOTL\nresult.ndl=ndl;\n#endif\nresult.diffuse=ndl*diffuseColor*attenuation;\n#ifdef SPECULARTERM\nvec3 angleW=normalize(viewDirectionW+lightVectorW);float specComp=max(0.,dot(vNormal,angleW));specComp=pow(specComp,max(1.,glossiness));result.specular=specComp*specularColor*attenuation;\n#endif\nreturn result;}\nlightingInfo computeSpotLighting(vec3 viewDirectionW,vec3 vNormal,vec4 lightData,vec4 lightDirection,vec3 diffuseColor,vec3 specularColor,float range,float glossiness) {lightingInfo result;vec3 direction=lightData.xyz-vPositionW;vec3 lightVectorW=normalize(direction);float attenuation=max(0.,1.0-length(direction)/range);float cosAngle=max(0.,dot(lightDirection.xyz,-lightVectorW));if (cosAngle>=lightDirection.w)\n{cosAngle=max(0.,pow(cosAngle,lightData.w));attenuation*=cosAngle;float ndl=max(0.,dot(vNormal,lightVectorW));\n#ifdef NDOTL\nresult.ndl=ndl;\n#endif\nresult.diffuse=ndl*diffuseColor*attenuation;\n#ifdef SPECULARTERM\nvec3 angleW=normalize(viewDirectionW+lightVectorW);float specComp=max(0.,dot(vNormal,angleW));specComp=pow(specComp,max(1.,glossiness));result.specular=specComp*specularColor*attenuation;\n#endif\nreturn result;}\nresult.diffuse=vec3(0.);\n#ifdef SPECULARTERM\nresult.specular=vec3(0.);\n#endif\n#ifdef NDOTL\nresult.ndl=0.;\n#endif\nreturn result;}\nlightingInfo computeHemisphericLighting(vec3 viewDirectionW,vec3 vNormal,vec4 lightData,vec3 diffuseColor,vec3 specularColor,vec3 groundColor,float glossiness) {lightingInfo result;float ndl=dot(vNormal,lightData.xyz)*0.5+0.5;\n#ifdef NDOTL\nresult.ndl=ndl;\n#endif\nresult.diffuse=mix(groundColor,diffuseColor,ndl);\n#ifdef SPECULARTERM\nvec3 angleW=normalize(viewDirectionW+lightData.xyz);float specComp=max(0.,dot(vNormal,angleW));specComp=pow(specComp,max(1.,glossiness));result.specular=specComp*specularColor;\n#endif\nreturn result;}\n#define inline\nvec3 computeProjectionTextureDiffuseLighting(sampler2D projectionLightSampler,mat4 textureProjectionMatrix,vec3 posW){vec4 strq=textureProjectionMatrix*vec4(posW,1.0);strq/=strq.w;vec3 textureColor=texture2D(projectionLightSampler,strq.xy).rgb;return textureColor;}";e.IncludesShadersStore.fresnelFunction="#ifdef FRESNEL\nfloat computeFresnelTerm(vec3 viewDirection,vec3 worldNormal,float bias,float power)\n{float fresnelTerm=pow(bias+abs(dot(viewDirection,worldNormal)),power);return clamp(fresnelTerm,0.,1.);}\n#endif\n";const n="defaultPixelShader",i="#include<__decl__defaultFragment>\n#if defined(BUMP) || !defined(NORMAL)\n#extension GL_OES_standard_derivatives : enable\n#endif\n#include<prePassDeclaration>[SCENE_MRT_COUNT]\n#include<oitDeclaration>\n#define CUSTOM_FRAGMENT_BEGIN\n#ifdef LOGARITHMICDEPTH\n#extension GL_EXT_frag_depth : enable\n#endif\nvarying vec3 vPositionW;\n#ifdef NORMAL\nvarying vec3 vNormalW;\n#endif\n#if defined(VERTEXCOLOR) || defined(INSTANCESCOLOR) && defined(INSTANCES)\nvarying vec4 vColor;\n#endif\n#include<mainUVVaryingDeclaration>[1..7]\n#include<helperFunctions>\n#include<__decl__lightFragment>[0..maxSimultaneousLights]\n#include<lightsFragmentFunctions>\n#include<shadowsFragmentFunctions>\n#include<samplerFragmentDeclaration>(_DEFINENAME_,DIFFUSE,_VARYINGNAME_,Diffuse,_SAMPLERNAME_,diffuse)\n#include<samplerFragmentDeclaration>(_DEFINENAME_,AMBIENT,_VARYINGNAME_,Ambient,_SAMPLERNAME_,ambient)\n#include<samplerFragmentDeclaration>(_DEFINENAME_,OPACITY,_VARYINGNAME_,Opacity,_SAMPLERNAME_,opacity)\n#include<samplerFragmentDeclaration>(_DEFINENAME_,EMISSIVE,_VARYINGNAME_,Emissive,_SAMPLERNAME_,emissive)\n#include<samplerFragmentDeclaration>(_DEFINENAME_,LIGHTMAP,_VARYINGNAME_,Lightmap,_SAMPLERNAME_,lightmap)\n#include<samplerFragmentDeclaration>(_DEFINENAME_,DECAL,_VARYINGNAME_,Decal,_SAMPLERNAME_,decal)\n#ifdef REFRACTION\n#ifdef REFRACTIONMAP_3D\nuniform samplerCube refractionCubeSampler;\n#else\nuniform sampler2D refraction2DSampler;\n#endif\n#endif\n#if defined(SPECULARTERM)\n#include<samplerFragmentDeclaration>(_DEFINENAME_,SPECULAR,_VARYINGNAME_,Specular,_SAMPLERNAME_,specular)\n#endif\n#include<fresnelFunction>\n#ifdef REFLECTION\n#ifdef REFLECTIONMAP_3D\nuniform samplerCube reflectionCubeSampler;\n#else\nuniform sampler2D reflection2DSampler;\n#endif\n#ifdef REFLECTIONMAP_SKYBOX\nvarying vec3 vPositionUVW;\n#else\n#if defined(REFLECTIONMAP_EQUIRECTANGULAR_FIXED) || defined(REFLECTIONMAP_MIRROREDEQUIRECTANGULAR_FIXED)\nvarying vec3 vDirectionW;\n#endif\n#endif\n#include<reflectionFunction>\n#endif\n#include<imageProcessingDeclaration>\n#include<imageProcessingFunctions>\n#include<bumpFragmentMainFunctions>\n#include<bumpFragmentFunctions>\n#include<clipPlaneFragmentDeclaration>\n#include<logDepthDeclaration>\n#include<fogFragmentDeclaration>\n#define CUSTOM_FRAGMENT_DEFINITIONS\nvoid main(void) {\n#define CUSTOM_FRAGMENT_MAIN_BEGIN\n#include<clipPlaneFragment>\nvec3 viewDirectionW=normalize(vEyePosition.xyz-vPositionW);vec4 baseColor=vec4(1.,1.,1.,1.);vec3 diffuseColor=vDiffuseColor.rgb;float alpha=vDiffuseColor.a;\n#ifdef NORMAL\nvec3 normalW=normalize(vNormalW);\n#else\nvec3 normalW=normalize(-cross(dFdx(vPositionW),dFdy(vPositionW)));\n#endif\n#include<bumpFragment>\n#ifdef TWOSIDEDLIGHTING\nnormalW=gl_FrontFacing ? normalW : -normalW;\n#endif\n#ifdef DIFFUSE\nbaseColor=texture2D(diffuseSampler,vDiffuseUV+uvOffset);\n#if defined(ALPHATEST) && !defined(ALPHATEST_AFTERALLALPHACOMPUTATIONS)\nif (baseColor.a<alphaCutOff)\ndiscard;\n#endif\n#ifdef ALPHAFROMDIFFUSE\nalpha*=baseColor.a;\n#endif\n#define CUSTOM_FRAGMENT_UPDATE_ALPHA\nbaseColor.rgb*=vDiffuseInfos.y;\n#endif\n#if defined(DECAL) && !defined(DECAL_AFTER_DETAIL)\nvec4 decalColor=texture2D(decalSampler,vDecalUV+uvOffset);\n#include<decalFragment>(surfaceAlbedo,baseColor,GAMMADECAL,_GAMMADECAL_NOTUSED_)\n#endif\n#include<depthPrePass>\n#if defined(VERTEXCOLOR) || defined(INSTANCESCOLOR) && defined(INSTANCES)\nbaseColor.rgb*=vColor.rgb;\n#endif\n#ifdef DETAIL\nbaseColor.rgb=baseColor.rgb*2.0*mix(0.5,detailColor.r,vDetailInfos.y);\n#endif\n#if defined(DECAL) && defined(DECAL_AFTER_DETAIL)\nvec4 decalColor=texture2D(decalSampler,vDecalUV+uvOffset);\n#include<decalFragment>(surfaceAlbedo,baseColor,GAMMADECAL,_GAMMADECAL_NOTUSED_)\n#endif\n#define CUSTOM_FRAGMENT_UPDATE_DIFFUSE\nvec3 baseAmbientColor=vec3(1.,1.,1.);\n#ifdef AMBIENT\nbaseAmbientColor=texture2D(ambientSampler,vAmbientUV+uvOffset).rgb*vAmbientInfos.y;\n#endif\n#define CUSTOM_FRAGMENT_BEFORE_LIGHTS\n#ifdef SPECULARTERM\nfloat glossiness=vSpecularColor.a;vec3 specularColor=vSpecularColor.rgb;\n#ifdef SPECULAR\nvec4 specularMapColor=texture2D(specularSampler,vSpecularUV+uvOffset);specularColor=specularMapColor.rgb;\n#ifdef GLOSSINESS\nglossiness=glossiness*specularMapColor.a;\n#endif\n#endif\n#else\nfloat glossiness=0.;\n#endif\nvec3 diffuseBase=vec3(0.,0.,0.);lightingInfo info;\n#ifdef SPECULARTERM\nvec3 specularBase=vec3(0.,0.,0.);\n#endif\nfloat shadow=1.;float aggShadow=0.;float numLights=0.;\n#ifdef LIGHTMAP\nvec4 lightmapColor=texture2D(lightmapSampler,vLightmapUV+uvOffset);\n#ifdef RGBDLIGHTMAP\nlightmapColor.rgb=fromRGBD(lightmapColor);\n#endif\nlightmapColor.rgb*=vLightmapInfos.y;\n#endif\n#include<lightFragment>[0..maxSimultaneousLights]\naggShadow=aggShadow/numLights;vec4 refractionColor=vec4(0.,0.,0.,1.);\n#ifdef REFRACTION\nvec3 refractionVector=normalize(refract(-viewDirectionW,normalW,vRefractionInfos.y));\n#ifdef REFRACTIONMAP_3D\n#ifdef USE_LOCAL_REFRACTIONMAP_CUBIC\nrefractionVector=parallaxCorrectNormal(vPositionW,refractionVector,vRefractionSize,vRefractionPosition);\n#endif\nrefractionVector.y=refractionVector.y*vRefractionInfos.w;vec4 refractionLookup=textureCube(refractionCubeSampler,refractionVector);if (dot(refractionVector,viewDirectionW)<1.0) {refractionColor=refractionLookup;}\n#else\nvec3 vRefractionUVW=vec3(refractionMatrix*(view*vec4(vPositionW+refractionVector*vRefractionInfos.z,1.0)));vec2 refractionCoords=vRefractionUVW.xy/vRefractionUVW.z;refractionCoords.y=1.0-refractionCoords.y;refractionColor=texture2D(refraction2DSampler,refractionCoords);\n#endif\n#ifdef RGBDREFRACTION\nrefractionColor.rgb=fromRGBD(refractionColor);\n#endif\n#ifdef IS_REFRACTION_LINEAR\nrefractionColor.rgb=toGammaSpace(refractionColor.rgb);\n#endif\nrefractionColor.rgb*=vRefractionInfos.x;\n#endif\nvec4 reflectionColor=vec4(0.,0.,0.,1.);\n#ifdef REFLECTION\nvec3 vReflectionUVW=computeReflectionCoords(vec4(vPositionW,1.0),normalW);\n#ifdef REFLECTIONMAP_OPPOSITEZ\nvReflectionUVW.z*=-1.0;\n#endif\n#ifdef REFLECTIONMAP_3D\n#ifdef ROUGHNESS\nfloat bias=vReflectionInfos.y;\n#ifdef SPECULARTERM\n#ifdef SPECULAR\n#ifdef GLOSSINESS\nbias*=(1.0-specularMapColor.a);\n#endif\n#endif\n#endif\nreflectionColor=textureCube(reflectionCubeSampler,vReflectionUVW,bias);\n#else\nreflectionColor=textureCube(reflectionCubeSampler,vReflectionUVW);\n#endif\n#else\nvec2 coords=vReflectionUVW.xy;\n#ifdef REFLECTIONMAP_PROJECTION\ncoords/=vReflectionUVW.z;\n#endif\ncoords.y=1.0-coords.y;reflectionColor=texture2D(reflection2DSampler,coords);\n#endif\n#ifdef RGBDREFLECTION\nreflectionColor.rgb=fromRGBD(reflectionColor);\n#endif\n#ifdef IS_REFLECTION_LINEAR\nreflectionColor.rgb=toGammaSpace(reflectionColor.rgb);\n#endif\nreflectionColor.rgb*=vReflectionInfos.x;\n#ifdef REFLECTIONFRESNEL\nfloat reflectionFresnelTerm=computeFresnelTerm(viewDirectionW,normalW,reflectionRightColor.a,reflectionLeftColor.a);\n#ifdef REFLECTIONFRESNELFROMSPECULAR\n#ifdef SPECULARTERM\nreflectionColor.rgb*=specularColor.rgb*(1.0-reflectionFresnelTerm)+reflectionFresnelTerm*reflectionRightColor.rgb;\n#else\nreflectionColor.rgb*=reflectionLeftColor.rgb*(1.0-reflectionFresnelTerm)+reflectionFresnelTerm*reflectionRightColor.rgb;\n#endif\n#else\nreflectionColor.rgb*=reflectionLeftColor.rgb*(1.0-reflectionFresnelTerm)+reflectionFresnelTerm*reflectionRightColor.rgb;\n#endif\n#endif\n#endif\n#ifdef REFRACTIONFRESNEL\nfloat refractionFresnelTerm=computeFresnelTerm(viewDirectionW,normalW,refractionRightColor.a,refractionLeftColor.a);refractionColor.rgb*=refractionLeftColor.rgb*(1.0-refractionFresnelTerm)+refractionFresnelTerm*refractionRightColor.rgb;\n#endif\n#ifdef OPACITY\nvec4 opacityMap=texture2D(opacitySampler,vOpacityUV+uvOffset);\n#ifdef OPACITYRGB\nopacityMap.rgb=opacityMap.rgb*vec3(0.3,0.59,0.11);alpha*=(opacityMap.x+opacityMap.y+opacityMap.z)* vOpacityInfos.y;\n#else\nalpha*=opacityMap.a*vOpacityInfos.y;\n#endif\n#endif\n#if defined(VERTEXALPHA) || defined(INSTANCESCOLOR) && defined(INSTANCES)\nalpha*=vColor.a;\n#endif\n#ifdef OPACITYFRESNEL\nfloat opacityFresnelTerm=computeFresnelTerm(viewDirectionW,normalW,opacityParts.z,opacityParts.w);alpha+=opacityParts.x*(1.0-opacityFresnelTerm)+opacityFresnelTerm*opacityParts.y;\n#endif\n#ifdef ALPHATEST\n#ifdef ALPHATEST_AFTERALLALPHACOMPUTATIONS\nif (alpha<alphaCutOff)\ndiscard;\n#endif\n#ifndef ALPHABLEND\nalpha=1.0;\n#endif\n#endif\nvec3 emissiveColor=vEmissiveColor;\n#ifdef EMISSIVE\nemissiveColor+=texture2D(emissiveSampler,vEmissiveUV+uvOffset).rgb*vEmissiveInfos.y;\n#endif\n#ifdef EMISSIVEFRESNEL\nfloat emissiveFresnelTerm=computeFresnelTerm(viewDirectionW,normalW,emissiveRightColor.a,emissiveLeftColor.a);emissiveColor*=emissiveLeftColor.rgb*(1.0-emissiveFresnelTerm)+emissiveFresnelTerm*emissiveRightColor.rgb;\n#endif\n#ifdef DIFFUSEFRESNEL\nfloat diffuseFresnelTerm=computeFresnelTerm(viewDirectionW,normalW,diffuseRightColor.a,diffuseLeftColor.a);diffuseBase*=diffuseLeftColor.rgb*(1.0-diffuseFresnelTerm)+diffuseFresnelTerm*diffuseRightColor.rgb;\n#endif\n#ifdef EMISSIVEASILLUMINATION\nvec3 finalDiffuse=clamp(diffuseBase*diffuseColor+vAmbientColor,0.0,1.0)*baseColor.rgb;\n#else\n#ifdef LINKEMISSIVEWITHDIFFUSE\nvec3 finalDiffuse=clamp((diffuseBase+emissiveColor)*diffuseColor+vAmbientColor,0.0,1.0)*baseColor.rgb;\n#else\nvec3 finalDiffuse=clamp(diffuseBase*diffuseColor+emissiveColor+vAmbientColor,0.0,1.0)*baseColor.rgb;\n#endif\n#endif\n#ifdef SPECULARTERM\nvec3 finalSpecular=specularBase*specularColor;\n#ifdef SPECULAROVERALPHA\nalpha=clamp(alpha+dot(finalSpecular,vec3(0.3,0.59,0.11)),0.,1.);\n#endif\n#else\nvec3 finalSpecular=vec3(0.0);\n#endif\n#ifdef REFLECTIONOVERALPHA\nalpha=clamp(alpha+dot(reflectionColor.rgb,vec3(0.3,0.59,0.11)),0.,1.);\n#endif\n#ifdef EMISSIVEASILLUMINATION\nvec4 color=vec4(clamp(finalDiffuse*baseAmbientColor+finalSpecular+reflectionColor.rgb+emissiveColor+refractionColor.rgb,0.0,1.0),alpha);\n#else\nvec4 color=vec4(finalDiffuse*baseAmbientColor+finalSpecular+reflectionColor.rgb+refractionColor.rgb,alpha);\n#endif\n#ifdef LIGHTMAP\n#ifndef LIGHTMAPEXCLUDED\n#ifdef USELIGHTMAPASSHADOWMAP\ncolor.rgb*=lightmapColor.rgb;\n#else\ncolor.rgb+=lightmapColor.rgb;\n#endif\n#endif\n#endif\n#define CUSTOM_FRAGMENT_BEFORE_FOG\ncolor.rgb=max(color.rgb,0.);\n#include<logDepthFragment>\n#include<fogFragment>\n#ifdef IMAGEPROCESSINGPOSTPROCESS\ncolor.rgb=toLinearSpace(color.rgb);\n#else\n#ifdef IMAGEPROCESSING\ncolor.rgb=toLinearSpace(color.rgb);color=applyImageProcessing(color);\n#endif\n#endif\ncolor.a*=visibility;\n#ifdef PREMULTIPLYALPHA\ncolor.rgb*=color.a;\n#endif\n#define CUSTOM_FRAGMENT_BEFORE_FRAGCOLOR\n#ifdef PREPASS\nfloat writeGeometryInfo=color.a>0.4 ? 1.0 : 0.0;gl_FragData[0]=color; \n#ifdef PREPASS_POSITION\ngl_FragData[PREPASS_POSITION_INDEX]=vec4(vPositionW,writeGeometryInfo);\n#endif\n#ifdef PREPASS_LOCAL_POSITION\ngl_FragData[PREPASS_LOCAL_POSITION_INDEX] =\nvec4(vPosition*0.5+0.5,writeGeometryInfo);\n#endif\n#if defined(PREPASS_VELOCITY)\nvec2 a=(vCurrentPosition.xy/vCurrentPosition.w)*0.5+0.5;vec2 b=(vPreviousPosition.xy/vPreviousPosition.w)*0.5+0.5;vec2 velocity=abs(a-b);velocity=vec2(pow(velocity.x,1.0/3.0),pow(velocity.y,1.0/3.0)) *\nsign(a-b)*0.5 +\n0.5;gl_FragData[PREPASS_VELOCITY_INDEX] =\nvec4(velocity,0.0,writeGeometryInfo);\n#elif defined(PREPASS_VELOCITY_LINEAR)\nvec2 velocity=vec2(0.5)*((vPreviousPosition.xy/vPreviousPosition.w) -\n(vCurrentPosition.xy/vCurrentPosition.w));gl_FragData[PREPASS_VELOCITY_LINEAR_INDEX] =\nvec4(velocity,0.0,writeGeometryInfo);\n#endif\n#ifdef PREPASS_IRRADIANCE\ngl_FragData[PREPASS_IRRADIANCE_INDEX] =\nvec4(0.0,0.0,0.0,\nwriteGeometryInfo); \n#endif\n#ifdef PREPASS_DEPTH\ngl_FragData[PREPASS_DEPTH_INDEX] =\nvec4(vViewPos.z,0.0,0.0,writeGeometryInfo); \n#endif\n#ifdef PREPASS_NDC_DEPTH\ngl_FragData[PREPASS_NDC_DEPTH_INDEX]=vec4(\ngl_FragCoord.z,0.0,0.0,writeGeometryInfo); \n#endif\n#ifdef PREPASS_NORMAL\n#ifdef PREPASS_NORMAL_WORLDSPACE\ngl_FragData[PREPASS_NORMAL_INDEX] =\nvec4(normalW,writeGeometryInfo); \n#else\ngl_FragData[PREPASS_NORMAL_INDEX] =\nvec4(normalize((view*vec4(normalW,0.0)).rgb),\nwriteGeometryInfo); \n#endif\n#endif\n#ifdef PREPASS_WORLD_NORMAL\ngl_FragData[PREPASS_WORLD_NORMAL_INDEX] =\nvec4(normalW*0.5+0.5,writeGeometryInfo); \n#endif\n#ifdef PREPASS_ALBEDO_SQRT\ngl_FragData[PREPASS_ALBEDO_SQRT_INDEX]=vec4(0.0,0.0,0.0,writeGeometryInfo); \n#endif\n#ifdef PREPASS_REFLECTIVITY\n#if defined(SPECULARTERM)\n#if defined(SPECULAR)\ngl_FragData[PREPASS_REFLECTIVITY_INDEX]=vec4(toLinearSpace(specularMapColor))*writeGeometryInfo; \n#else\ngl_FragData[PREPASS_REFLECTIVITY_INDEX]=vec4(toLinearSpace(specularColor),1.0)*writeGeometryInfo;\n#endif\n#else\ngl_FragData[PREPASS_REFLECTIVITY_INDEX]=vec4(0.0,0.0,0.0,1.0)*writeGeometryInfo;\n#endif\n#endif\n#endif\n#if !defined(PREPASS) || defined(WEBGL2)\ngl_FragColor=color;\n#endif\n#include<oitFragment>\n#if ORDER_INDEPENDENT_TRANSPARENCY\nif (fragDepth==nearestDepth) {frontColor.rgb+=color.rgb*color.a*alphaMultiplier;frontColor.a=1.0-alphaMultiplier*(1.0-color.a);} else {backColor+=color;}\n#endif\n#define CUSTOM_FRAGMENT_MAIN_END\n}\n";e.ShadersStore[n]=i;const o={name:n,shader:i};export{o as defaultPixelShader};
|
|
2
|
+
//# sourceMappingURL=default.fragment-C5qVdkwU.esm.min.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"default.fragment-C5qVdkwU.esm.min.js","sources":["../../../../../dev/core/dist/Shaders/ShadersInclude/defaultFragmentDeclaration.js","../../../../../dev/core/dist/Shaders/ShadersInclude/lightsFragmentFunctions.js","../../../../../dev/core/dist/Shaders/ShadersInclude/fresnelFunction.js","../../../../../dev/core/dist/Shaders/default.fragment.js"],"sourcesContent":["// Do not edit.\nimport { ShaderStore } from \"../../Engines/shaderStore\";\nimport \"./decalFragmentDeclaration\";\nconst name = \"defaultFragmentDeclaration\";\nconst shader = `uniform vec4 vEyePosition;uniform vec4 vDiffuseColor;\n#ifdef SPECULARTERM\nuniform vec4 vSpecularColor;\n#endif\nuniform vec3 vEmissiveColor;uniform vec3 vAmbientColor;uniform float visibility;\n#ifdef DIFFUSE\nuniform vec2 vDiffuseInfos;\n#endif\n#ifdef AMBIENT\nuniform vec2 vAmbientInfos;\n#endif\n#ifdef OPACITY \nuniform vec2 vOpacityInfos;\n#endif\n#ifdef EMISSIVE\nuniform vec2 vEmissiveInfos;\n#endif\n#ifdef LIGHTMAP\nuniform vec2 vLightmapInfos;\n#endif\n#ifdef BUMP\nuniform vec3 vBumpInfos;uniform vec2 vTangentSpaceParams;\n#endif\n#ifdef ALPHATEST\nuniform float alphaCutOff;\n#endif\n#if defined(REFLECTIONMAP_SPHERICAL) || defined(REFLECTIONMAP_PROJECTION) || defined(REFRACTION) || defined(PREPASS)\nuniform mat4 view;\n#endif\n#ifdef REFRACTION\nuniform vec4 vRefractionInfos;\n#ifndef REFRACTIONMAP_3D\nuniform mat4 refractionMatrix;\n#endif\n#ifdef REFRACTIONFRESNEL\nuniform vec4 refractionLeftColor;uniform vec4 refractionRightColor;\n#endif\n#if defined(USE_LOCAL_REFRACTIONMAP_CUBIC) && defined(REFRACTIONMAP_3D)\nuniform vec3 vRefractionPosition;uniform vec3 vRefractionSize; \n#endif\n#endif\n#if defined(SPECULAR) && defined(SPECULARTERM)\nuniform vec2 vSpecularInfos;\n#endif\n#ifdef DIFFUSEFRESNEL\nuniform vec4 diffuseLeftColor;uniform vec4 diffuseRightColor;\n#endif\n#ifdef OPACITYFRESNEL\nuniform vec4 opacityParts;\n#endif\n#ifdef EMISSIVEFRESNEL\nuniform vec4 emissiveLeftColor;uniform vec4 emissiveRightColor;\n#endif\n#ifdef REFLECTION\nuniform vec2 vReflectionInfos;\n#if defined(REFLECTIONMAP_PLANAR) || defined(REFLECTIONMAP_CUBIC) || defined(REFLECTIONMAP_PROJECTION) || defined(REFLECTIONMAP_EQUIRECTANGULAR) || defined(REFLECTIONMAP_SPHERICAL) || defined(REFLECTIONMAP_SKYBOX)\nuniform mat4 reflectionMatrix;\n#endif\n#ifndef REFLECTIONMAP_SKYBOX\n#if defined(USE_LOCAL_REFLECTIONMAP_CUBIC) && defined(REFLECTIONMAP_CUBIC)\nuniform vec3 vReflectionPosition;uniform vec3 vReflectionSize; \n#endif\n#endif\n#ifdef REFLECTIONFRESNEL\nuniform vec4 reflectionLeftColor;uniform vec4 reflectionRightColor;\n#endif\n#endif\n#ifdef DETAIL\nuniform vec4 vDetailInfos;\n#endif\n#include<decalFragmentDeclaration>\n#define ADDITIONAL_FRAGMENT_DECLARATION\n`;\n// Sideeffect\nShaderStore.IncludesShadersStore[name] = shader;\n/** @internal */\nexport const defaultFragmentDeclaration = { name, shader };\n//# sourceMappingURL=defaultFragmentDeclaration.js.map","// Do not edit.\nimport { ShaderStore } from \"../../Engines/shaderStore\";\nconst name = \"lightsFragmentFunctions\";\nconst shader = `struct lightingInfo\n{vec3 diffuse;\n#ifdef SPECULARTERM\nvec3 specular;\n#endif\n#ifdef NDOTL\nfloat ndl;\n#endif\n};lightingInfo computeLighting(vec3 viewDirectionW,vec3 vNormal,vec4 lightData,vec3 diffuseColor,vec3 specularColor,float range,float glossiness) {lightingInfo result;vec3 lightVectorW;float attenuation=1.0;if (lightData.w==0.)\n{vec3 direction=lightData.xyz-vPositionW;attenuation=max(0.,1.0-length(direction)/range);lightVectorW=normalize(direction);}\nelse\n{lightVectorW=normalize(-lightData.xyz);}\nfloat ndl=max(0.,dot(vNormal,lightVectorW));\n#ifdef NDOTL\nresult.ndl=ndl;\n#endif\nresult.diffuse=ndl*diffuseColor*attenuation;\n#ifdef SPECULARTERM\nvec3 angleW=normalize(viewDirectionW+lightVectorW);float specComp=max(0.,dot(vNormal,angleW));specComp=pow(specComp,max(1.,glossiness));result.specular=specComp*specularColor*attenuation;\n#endif\nreturn result;}\nlightingInfo computeSpotLighting(vec3 viewDirectionW,vec3 vNormal,vec4 lightData,vec4 lightDirection,vec3 diffuseColor,vec3 specularColor,float range,float glossiness) {lightingInfo result;vec3 direction=lightData.xyz-vPositionW;vec3 lightVectorW=normalize(direction);float attenuation=max(0.,1.0-length(direction)/range);float cosAngle=max(0.,dot(lightDirection.xyz,-lightVectorW));if (cosAngle>=lightDirection.w)\n{cosAngle=max(0.,pow(cosAngle,lightData.w));attenuation*=cosAngle;float ndl=max(0.,dot(vNormal,lightVectorW));\n#ifdef NDOTL\nresult.ndl=ndl;\n#endif\nresult.diffuse=ndl*diffuseColor*attenuation;\n#ifdef SPECULARTERM\nvec3 angleW=normalize(viewDirectionW+lightVectorW);float specComp=max(0.,dot(vNormal,angleW));specComp=pow(specComp,max(1.,glossiness));result.specular=specComp*specularColor*attenuation;\n#endif\nreturn result;}\nresult.diffuse=vec3(0.);\n#ifdef SPECULARTERM\nresult.specular=vec3(0.);\n#endif\n#ifdef NDOTL\nresult.ndl=0.;\n#endif\nreturn result;}\nlightingInfo computeHemisphericLighting(vec3 viewDirectionW,vec3 vNormal,vec4 lightData,vec3 diffuseColor,vec3 specularColor,vec3 groundColor,float glossiness) {lightingInfo result;float ndl=dot(vNormal,lightData.xyz)*0.5+0.5;\n#ifdef NDOTL\nresult.ndl=ndl;\n#endif\nresult.diffuse=mix(groundColor,diffuseColor,ndl);\n#ifdef SPECULARTERM\nvec3 angleW=normalize(viewDirectionW+lightData.xyz);float specComp=max(0.,dot(vNormal,angleW));specComp=pow(specComp,max(1.,glossiness));result.specular=specComp*specularColor;\n#endif\nreturn result;}\n#define inline\nvec3 computeProjectionTextureDiffuseLighting(sampler2D projectionLightSampler,mat4 textureProjectionMatrix,vec3 posW){vec4 strq=textureProjectionMatrix*vec4(posW,1.0);strq/=strq.w;vec3 textureColor=texture2D(projectionLightSampler,strq.xy).rgb;return textureColor;}`;\n// Sideeffect\nShaderStore.IncludesShadersStore[name] = shader;\n/** @internal */\nexport const lightsFragmentFunctions = { name, shader };\n//# sourceMappingURL=lightsFragmentFunctions.js.map","// Do not edit.\nimport { ShaderStore } from \"../../Engines/shaderStore\";\nconst name = \"fresnelFunction\";\nconst shader = `#ifdef FRESNEL\nfloat computeFresnelTerm(vec3 viewDirection,vec3 worldNormal,float bias,float power)\n{float fresnelTerm=pow(bias+abs(dot(viewDirection,worldNormal)),power);return clamp(fresnelTerm,0.,1.);}\n#endif\n`;\n// Sideeffect\nShaderStore.IncludesShadersStore[name] = shader;\n/** @internal */\nexport const fresnelFunction = { name, shader };\n//# sourceMappingURL=fresnelFunction.js.map","// Do not edit.\nimport { ShaderStore } from \"../Engines/shaderStore\";\nimport \"./ShadersInclude/defaultFragmentDeclaration\";\nimport \"./ShadersInclude/defaultUboDeclaration\";\nimport \"./ShadersInclude/prePassDeclaration\";\nimport \"./ShadersInclude/oitDeclaration\";\nimport \"./ShadersInclude/mainUVVaryingDeclaration\";\nimport \"./ShadersInclude/helperFunctions\";\nimport \"./ShadersInclude/lightFragmentDeclaration\";\nimport \"./ShadersInclude/lightUboDeclaration\";\nimport \"./ShadersInclude/lightsFragmentFunctions\";\nimport \"./ShadersInclude/shadowsFragmentFunctions\";\nimport \"./ShadersInclude/samplerFragmentDeclaration\";\nimport \"./ShadersInclude/fresnelFunction\";\nimport \"./ShadersInclude/reflectionFunction\";\nimport \"./ShadersInclude/imageProcessingDeclaration\";\nimport \"./ShadersInclude/imageProcessingFunctions\";\nimport \"./ShadersInclude/bumpFragmentMainFunctions\";\nimport \"./ShadersInclude/bumpFragmentFunctions\";\nimport \"./ShadersInclude/clipPlaneFragmentDeclaration\";\nimport \"./ShadersInclude/logDepthDeclaration\";\nimport \"./ShadersInclude/fogFragmentDeclaration\";\nimport \"./ShadersInclude/clipPlaneFragment\";\nimport \"./ShadersInclude/bumpFragment\";\nimport \"./ShadersInclude/decalFragment\";\nimport \"./ShadersInclude/depthPrePass\";\nimport \"./ShadersInclude/lightFragment\";\nimport \"./ShadersInclude/logDepthFragment\";\nimport \"./ShadersInclude/fogFragment\";\nimport \"./ShadersInclude/oitFragment\";\nconst name = \"defaultPixelShader\";\nconst shader = `#include<__decl__defaultFragment>\n#if defined(BUMP) || !defined(NORMAL)\n#extension GL_OES_standard_derivatives : enable\n#endif\n#include<prePassDeclaration>[SCENE_MRT_COUNT]\n#include<oitDeclaration>\n#define CUSTOM_FRAGMENT_BEGIN\n#ifdef LOGARITHMICDEPTH\n#extension GL_EXT_frag_depth : enable\n#endif\nvarying vec3 vPositionW;\n#ifdef NORMAL\nvarying vec3 vNormalW;\n#endif\n#if defined(VERTEXCOLOR) || defined(INSTANCESCOLOR) && defined(INSTANCES)\nvarying vec4 vColor;\n#endif\n#include<mainUVVaryingDeclaration>[1..7]\n#include<helperFunctions>\n#include<__decl__lightFragment>[0..maxSimultaneousLights]\n#include<lightsFragmentFunctions>\n#include<shadowsFragmentFunctions>\n#include<samplerFragmentDeclaration>(_DEFINENAME_,DIFFUSE,_VARYINGNAME_,Diffuse,_SAMPLERNAME_,diffuse)\n#include<samplerFragmentDeclaration>(_DEFINENAME_,AMBIENT,_VARYINGNAME_,Ambient,_SAMPLERNAME_,ambient)\n#include<samplerFragmentDeclaration>(_DEFINENAME_,OPACITY,_VARYINGNAME_,Opacity,_SAMPLERNAME_,opacity)\n#include<samplerFragmentDeclaration>(_DEFINENAME_,EMISSIVE,_VARYINGNAME_,Emissive,_SAMPLERNAME_,emissive)\n#include<samplerFragmentDeclaration>(_DEFINENAME_,LIGHTMAP,_VARYINGNAME_,Lightmap,_SAMPLERNAME_,lightmap)\n#include<samplerFragmentDeclaration>(_DEFINENAME_,DECAL,_VARYINGNAME_,Decal,_SAMPLERNAME_,decal)\n#ifdef REFRACTION\n#ifdef REFRACTIONMAP_3D\nuniform samplerCube refractionCubeSampler;\n#else\nuniform sampler2D refraction2DSampler;\n#endif\n#endif\n#if defined(SPECULARTERM)\n#include<samplerFragmentDeclaration>(_DEFINENAME_,SPECULAR,_VARYINGNAME_,Specular,_SAMPLERNAME_,specular)\n#endif\n#include<fresnelFunction>\n#ifdef REFLECTION\n#ifdef REFLECTIONMAP_3D\nuniform samplerCube reflectionCubeSampler;\n#else\nuniform sampler2D reflection2DSampler;\n#endif\n#ifdef REFLECTIONMAP_SKYBOX\nvarying vec3 vPositionUVW;\n#else\n#if defined(REFLECTIONMAP_EQUIRECTANGULAR_FIXED) || defined(REFLECTIONMAP_MIRROREDEQUIRECTANGULAR_FIXED)\nvarying vec3 vDirectionW;\n#endif\n#endif\n#include<reflectionFunction>\n#endif\n#include<imageProcessingDeclaration>\n#include<imageProcessingFunctions>\n#include<bumpFragmentMainFunctions>\n#include<bumpFragmentFunctions>\n#include<clipPlaneFragmentDeclaration>\n#include<logDepthDeclaration>\n#include<fogFragmentDeclaration>\n#define CUSTOM_FRAGMENT_DEFINITIONS\nvoid main(void) {\n#define CUSTOM_FRAGMENT_MAIN_BEGIN\n#include<clipPlaneFragment>\nvec3 viewDirectionW=normalize(vEyePosition.xyz-vPositionW);vec4 baseColor=vec4(1.,1.,1.,1.);vec3 diffuseColor=vDiffuseColor.rgb;float alpha=vDiffuseColor.a;\n#ifdef NORMAL\nvec3 normalW=normalize(vNormalW);\n#else\nvec3 normalW=normalize(-cross(dFdx(vPositionW),dFdy(vPositionW)));\n#endif\n#include<bumpFragment>\n#ifdef TWOSIDEDLIGHTING\nnormalW=gl_FrontFacing ? normalW : -normalW;\n#endif\n#ifdef DIFFUSE\nbaseColor=texture2D(diffuseSampler,vDiffuseUV+uvOffset);\n#if defined(ALPHATEST) && !defined(ALPHATEST_AFTERALLALPHACOMPUTATIONS)\nif (baseColor.a<alphaCutOff)\ndiscard;\n#endif\n#ifdef ALPHAFROMDIFFUSE\nalpha*=baseColor.a;\n#endif\n#define CUSTOM_FRAGMENT_UPDATE_ALPHA\nbaseColor.rgb*=vDiffuseInfos.y;\n#endif\n#if defined(DECAL) && !defined(DECAL_AFTER_DETAIL)\nvec4 decalColor=texture2D(decalSampler,vDecalUV+uvOffset);\n#include<decalFragment>(surfaceAlbedo,baseColor,GAMMADECAL,_GAMMADECAL_NOTUSED_)\n#endif\n#include<depthPrePass>\n#if defined(VERTEXCOLOR) || defined(INSTANCESCOLOR) && defined(INSTANCES)\nbaseColor.rgb*=vColor.rgb;\n#endif\n#ifdef DETAIL\nbaseColor.rgb=baseColor.rgb*2.0*mix(0.5,detailColor.r,vDetailInfos.y);\n#endif\n#if defined(DECAL) && defined(DECAL_AFTER_DETAIL)\nvec4 decalColor=texture2D(decalSampler,vDecalUV+uvOffset);\n#include<decalFragment>(surfaceAlbedo,baseColor,GAMMADECAL,_GAMMADECAL_NOTUSED_)\n#endif\n#define CUSTOM_FRAGMENT_UPDATE_DIFFUSE\nvec3 baseAmbientColor=vec3(1.,1.,1.);\n#ifdef AMBIENT\nbaseAmbientColor=texture2D(ambientSampler,vAmbientUV+uvOffset).rgb*vAmbientInfos.y;\n#endif\n#define CUSTOM_FRAGMENT_BEFORE_LIGHTS\n#ifdef SPECULARTERM\nfloat glossiness=vSpecularColor.a;vec3 specularColor=vSpecularColor.rgb;\n#ifdef SPECULAR\nvec4 specularMapColor=texture2D(specularSampler,vSpecularUV+uvOffset);specularColor=specularMapColor.rgb;\n#ifdef GLOSSINESS\nglossiness=glossiness*specularMapColor.a;\n#endif\n#endif\n#else\nfloat glossiness=0.;\n#endif\nvec3 diffuseBase=vec3(0.,0.,0.);lightingInfo info;\n#ifdef SPECULARTERM\nvec3 specularBase=vec3(0.,0.,0.);\n#endif\nfloat shadow=1.;float aggShadow=0.;float numLights=0.;\n#ifdef LIGHTMAP\nvec4 lightmapColor=texture2D(lightmapSampler,vLightmapUV+uvOffset);\n#ifdef RGBDLIGHTMAP\nlightmapColor.rgb=fromRGBD(lightmapColor);\n#endif\nlightmapColor.rgb*=vLightmapInfos.y;\n#endif\n#include<lightFragment>[0..maxSimultaneousLights]\naggShadow=aggShadow/numLights;vec4 refractionColor=vec4(0.,0.,0.,1.);\n#ifdef REFRACTION\nvec3 refractionVector=normalize(refract(-viewDirectionW,normalW,vRefractionInfos.y));\n#ifdef REFRACTIONMAP_3D\n#ifdef USE_LOCAL_REFRACTIONMAP_CUBIC\nrefractionVector=parallaxCorrectNormal(vPositionW,refractionVector,vRefractionSize,vRefractionPosition);\n#endif\nrefractionVector.y=refractionVector.y*vRefractionInfos.w;vec4 refractionLookup=textureCube(refractionCubeSampler,refractionVector);if (dot(refractionVector,viewDirectionW)<1.0) {refractionColor=refractionLookup;}\n#else\nvec3 vRefractionUVW=vec3(refractionMatrix*(view*vec4(vPositionW+refractionVector*vRefractionInfos.z,1.0)));vec2 refractionCoords=vRefractionUVW.xy/vRefractionUVW.z;refractionCoords.y=1.0-refractionCoords.y;refractionColor=texture2D(refraction2DSampler,refractionCoords);\n#endif\n#ifdef RGBDREFRACTION\nrefractionColor.rgb=fromRGBD(refractionColor);\n#endif\n#ifdef IS_REFRACTION_LINEAR\nrefractionColor.rgb=toGammaSpace(refractionColor.rgb);\n#endif\nrefractionColor.rgb*=vRefractionInfos.x;\n#endif\nvec4 reflectionColor=vec4(0.,0.,0.,1.);\n#ifdef REFLECTION\nvec3 vReflectionUVW=computeReflectionCoords(vec4(vPositionW,1.0),normalW);\n#ifdef REFLECTIONMAP_OPPOSITEZ\nvReflectionUVW.z*=-1.0;\n#endif\n#ifdef REFLECTIONMAP_3D\n#ifdef ROUGHNESS\nfloat bias=vReflectionInfos.y;\n#ifdef SPECULARTERM\n#ifdef SPECULAR\n#ifdef GLOSSINESS\nbias*=(1.0-specularMapColor.a);\n#endif\n#endif\n#endif\nreflectionColor=textureCube(reflectionCubeSampler,vReflectionUVW,bias);\n#else\nreflectionColor=textureCube(reflectionCubeSampler,vReflectionUVW);\n#endif\n#else\nvec2 coords=vReflectionUVW.xy;\n#ifdef REFLECTIONMAP_PROJECTION\ncoords/=vReflectionUVW.z;\n#endif\ncoords.y=1.0-coords.y;reflectionColor=texture2D(reflection2DSampler,coords);\n#endif\n#ifdef RGBDREFLECTION\nreflectionColor.rgb=fromRGBD(reflectionColor);\n#endif\n#ifdef IS_REFLECTION_LINEAR\nreflectionColor.rgb=toGammaSpace(reflectionColor.rgb);\n#endif\nreflectionColor.rgb*=vReflectionInfos.x;\n#ifdef REFLECTIONFRESNEL\nfloat reflectionFresnelTerm=computeFresnelTerm(viewDirectionW,normalW,reflectionRightColor.a,reflectionLeftColor.a);\n#ifdef REFLECTIONFRESNELFROMSPECULAR\n#ifdef SPECULARTERM\nreflectionColor.rgb*=specularColor.rgb*(1.0-reflectionFresnelTerm)+reflectionFresnelTerm*reflectionRightColor.rgb;\n#else\nreflectionColor.rgb*=reflectionLeftColor.rgb*(1.0-reflectionFresnelTerm)+reflectionFresnelTerm*reflectionRightColor.rgb;\n#endif\n#else\nreflectionColor.rgb*=reflectionLeftColor.rgb*(1.0-reflectionFresnelTerm)+reflectionFresnelTerm*reflectionRightColor.rgb;\n#endif\n#endif\n#endif\n#ifdef REFRACTIONFRESNEL\nfloat refractionFresnelTerm=computeFresnelTerm(viewDirectionW,normalW,refractionRightColor.a,refractionLeftColor.a);refractionColor.rgb*=refractionLeftColor.rgb*(1.0-refractionFresnelTerm)+refractionFresnelTerm*refractionRightColor.rgb;\n#endif\n#ifdef OPACITY\nvec4 opacityMap=texture2D(opacitySampler,vOpacityUV+uvOffset);\n#ifdef OPACITYRGB\nopacityMap.rgb=opacityMap.rgb*vec3(0.3,0.59,0.11);alpha*=(opacityMap.x+opacityMap.y+opacityMap.z)* vOpacityInfos.y;\n#else\nalpha*=opacityMap.a*vOpacityInfos.y;\n#endif\n#endif\n#if defined(VERTEXALPHA) || defined(INSTANCESCOLOR) && defined(INSTANCES)\nalpha*=vColor.a;\n#endif\n#ifdef OPACITYFRESNEL\nfloat opacityFresnelTerm=computeFresnelTerm(viewDirectionW,normalW,opacityParts.z,opacityParts.w);alpha+=opacityParts.x*(1.0-opacityFresnelTerm)+opacityFresnelTerm*opacityParts.y;\n#endif\n#ifdef ALPHATEST\n#ifdef ALPHATEST_AFTERALLALPHACOMPUTATIONS\nif (alpha<alphaCutOff)\ndiscard;\n#endif\n#ifndef ALPHABLEND\nalpha=1.0;\n#endif\n#endif\nvec3 emissiveColor=vEmissiveColor;\n#ifdef EMISSIVE\nemissiveColor+=texture2D(emissiveSampler,vEmissiveUV+uvOffset).rgb*vEmissiveInfos.y;\n#endif\n#ifdef EMISSIVEFRESNEL\nfloat emissiveFresnelTerm=computeFresnelTerm(viewDirectionW,normalW,emissiveRightColor.a,emissiveLeftColor.a);emissiveColor*=emissiveLeftColor.rgb*(1.0-emissiveFresnelTerm)+emissiveFresnelTerm*emissiveRightColor.rgb;\n#endif\n#ifdef DIFFUSEFRESNEL\nfloat diffuseFresnelTerm=computeFresnelTerm(viewDirectionW,normalW,diffuseRightColor.a,diffuseLeftColor.a);diffuseBase*=diffuseLeftColor.rgb*(1.0-diffuseFresnelTerm)+diffuseFresnelTerm*diffuseRightColor.rgb;\n#endif\n#ifdef EMISSIVEASILLUMINATION\nvec3 finalDiffuse=clamp(diffuseBase*diffuseColor+vAmbientColor,0.0,1.0)*baseColor.rgb;\n#else\n#ifdef LINKEMISSIVEWITHDIFFUSE\nvec3 finalDiffuse=clamp((diffuseBase+emissiveColor)*diffuseColor+vAmbientColor,0.0,1.0)*baseColor.rgb;\n#else\nvec3 finalDiffuse=clamp(diffuseBase*diffuseColor+emissiveColor+vAmbientColor,0.0,1.0)*baseColor.rgb;\n#endif\n#endif\n#ifdef SPECULARTERM\nvec3 finalSpecular=specularBase*specularColor;\n#ifdef SPECULAROVERALPHA\nalpha=clamp(alpha+dot(finalSpecular,vec3(0.3,0.59,0.11)),0.,1.);\n#endif\n#else\nvec3 finalSpecular=vec3(0.0);\n#endif\n#ifdef REFLECTIONOVERALPHA\nalpha=clamp(alpha+dot(reflectionColor.rgb,vec3(0.3,0.59,0.11)),0.,1.);\n#endif\n#ifdef EMISSIVEASILLUMINATION\nvec4 color=vec4(clamp(finalDiffuse*baseAmbientColor+finalSpecular+reflectionColor.rgb+emissiveColor+refractionColor.rgb,0.0,1.0),alpha);\n#else\nvec4 color=vec4(finalDiffuse*baseAmbientColor+finalSpecular+reflectionColor.rgb+refractionColor.rgb,alpha);\n#endif\n#ifdef LIGHTMAP\n#ifndef LIGHTMAPEXCLUDED\n#ifdef USELIGHTMAPASSHADOWMAP\ncolor.rgb*=lightmapColor.rgb;\n#else\ncolor.rgb+=lightmapColor.rgb;\n#endif\n#endif\n#endif\n#define CUSTOM_FRAGMENT_BEFORE_FOG\ncolor.rgb=max(color.rgb,0.);\n#include<logDepthFragment>\n#include<fogFragment>\n#ifdef IMAGEPROCESSINGPOSTPROCESS\ncolor.rgb=toLinearSpace(color.rgb);\n#else\n#ifdef IMAGEPROCESSING\ncolor.rgb=toLinearSpace(color.rgb);color=applyImageProcessing(color);\n#endif\n#endif\ncolor.a*=visibility;\n#ifdef PREMULTIPLYALPHA\ncolor.rgb*=color.a;\n#endif\n#define CUSTOM_FRAGMENT_BEFORE_FRAGCOLOR\n#ifdef PREPASS\nfloat writeGeometryInfo=color.a>0.4 ? 1.0 : 0.0;gl_FragData[0]=color; \n#ifdef PREPASS_POSITION\ngl_FragData[PREPASS_POSITION_INDEX]=vec4(vPositionW,writeGeometryInfo);\n#endif\n#ifdef PREPASS_LOCAL_POSITION\ngl_FragData[PREPASS_LOCAL_POSITION_INDEX] =\nvec4(vPosition*0.5+0.5,writeGeometryInfo);\n#endif\n#if defined(PREPASS_VELOCITY)\nvec2 a=(vCurrentPosition.xy/vCurrentPosition.w)*0.5+0.5;vec2 b=(vPreviousPosition.xy/vPreviousPosition.w)*0.5+0.5;vec2 velocity=abs(a-b);velocity=vec2(pow(velocity.x,1.0/3.0),pow(velocity.y,1.0/3.0)) *\nsign(a-b)*0.5 +\n0.5;gl_FragData[PREPASS_VELOCITY_INDEX] =\nvec4(velocity,0.0,writeGeometryInfo);\n#elif defined(PREPASS_VELOCITY_LINEAR)\nvec2 velocity=vec2(0.5)*((vPreviousPosition.xy/vPreviousPosition.w) -\n(vCurrentPosition.xy/vCurrentPosition.w));gl_FragData[PREPASS_VELOCITY_LINEAR_INDEX] =\nvec4(velocity,0.0,writeGeometryInfo);\n#endif\n#ifdef PREPASS_IRRADIANCE\ngl_FragData[PREPASS_IRRADIANCE_INDEX] =\nvec4(0.0,0.0,0.0,\nwriteGeometryInfo); \n#endif\n#ifdef PREPASS_DEPTH\ngl_FragData[PREPASS_DEPTH_INDEX] =\nvec4(vViewPos.z,0.0,0.0,writeGeometryInfo); \n#endif\n#ifdef PREPASS_NDC_DEPTH\ngl_FragData[PREPASS_NDC_DEPTH_INDEX]=vec4(\ngl_FragCoord.z,0.0,0.0,writeGeometryInfo); \n#endif\n#ifdef PREPASS_NORMAL\n#ifdef PREPASS_NORMAL_WORLDSPACE\ngl_FragData[PREPASS_NORMAL_INDEX] =\nvec4(normalW,writeGeometryInfo); \n#else\ngl_FragData[PREPASS_NORMAL_INDEX] =\nvec4(normalize((view*vec4(normalW,0.0)).rgb),\nwriteGeometryInfo); \n#endif\n#endif\n#ifdef PREPASS_WORLD_NORMAL\ngl_FragData[PREPASS_WORLD_NORMAL_INDEX] =\nvec4(normalW*0.5+0.5,writeGeometryInfo); \n#endif\n#ifdef PREPASS_ALBEDO_SQRT\ngl_FragData[PREPASS_ALBEDO_SQRT_INDEX]=vec4(0.0,0.0,0.0,writeGeometryInfo); \n#endif\n#ifdef PREPASS_REFLECTIVITY\n#if defined(SPECULARTERM)\n#if defined(SPECULAR)\ngl_FragData[PREPASS_REFLECTIVITY_INDEX]=vec4(toLinearSpace(specularMapColor))*writeGeometryInfo; \n#else\ngl_FragData[PREPASS_REFLECTIVITY_INDEX]=vec4(toLinearSpace(specularColor),1.0)*writeGeometryInfo;\n#endif\n#else\ngl_FragData[PREPASS_REFLECTIVITY_INDEX]=vec4(0.0,0.0,0.0,1.0)*writeGeometryInfo;\n#endif\n#endif\n#endif\n#if !defined(PREPASS) || defined(WEBGL2)\ngl_FragColor=color;\n#endif\n#include<oitFragment>\n#if ORDER_INDEPENDENT_TRANSPARENCY\nif (fragDepth==nearestDepth) {frontColor.rgb+=color.rgb*color.a*alphaMultiplier;frontColor.a=1.0-alphaMultiplier*(1.0-color.a);} else {backColor+=color;}\n#endif\n#define CUSTOM_FRAGMENT_MAIN_END\n}\n`;\n// Sideeffect\nShaderStore.ShadersStore[name] = shader;\n/** @internal */\nexport const defaultPixelShader = { name, shader };\n//# sourceMappingURL=default.fragment.js.map"],"names":["ShaderStore","IncludesShadersStore","name","shader","ShadersStore","defaultPixelShader"],"mappings":"+UA8EAA,EAAYC,qBAAyB,2BA1EtB,+oECkDfD,EAAYC,qBAAyB,wBAnDtB,yoFCMfD,EAAYC,qBAAyB,gBANtB,2NC2Bf,MAAMC,EAAO,qBACPC,EAAS,mzZAoWfH,EAAYI,aAAaF,GAAQC,EAErB,MAACE,EAAqB,CAAEH,OAAMC"}
|