@rings-webgpu/core 1.0.2 → 1.0.4
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/rings.es.js +462 -209
- package/dist/rings.es.js.map +3 -3
- package/dist/rings.es.max.js +2744 -598
- package/dist/rings.umd.js +460 -207
- package/dist/rings.umd.js.map +3 -3
- package/dist/rings.umd.max.js +2771 -597
- package/package.json +2 -1
- package/dist/package.json +0 -54
- package/dist/packages/wasm-matrix/WasmMatrix.d.ts +0 -26
- package/dist/packages/wasm-matrix/WasmMatrix.js +0 -88
- package/dist/src/Engine3D.d.ts +0 -107
- package/dist/src/Engine3D.js +0 -471
- package/dist/src/assets/Fonts.d.ts +0 -20
- package/dist/src/assets/Fonts.js +0 -24
- package/dist/src/assets/Res.d.ts +0 -72
- package/dist/src/assets/Res.js +0 -299
- package/dist/src/assets/shader/ShaderLib.d.ts +0 -5
- package/dist/src/assets/shader/ShaderLib.js +0 -128
- package/dist/src/assets/shader/anim/SkeletonAnimation_shader.d.ts +0 -3
- package/dist/src/assets/shader/anim/SkeletonAnimation_shader.js +0 -51
- package/dist/src/assets/shader/cluster/ClusterBoundsSource_cs.d.ts +0 -1
- package/dist/src/assets/shader/cluster/ClusterBoundsSource_cs.js +0 -88
- package/dist/src/assets/shader/cluster/ClusterLighting_cs.d.ts +0 -1
- package/dist/src/assets/shader/cluster/ClusterLighting_cs.js +0 -127
- package/dist/src/assets/shader/compute/BRDFLUT.d.ts +0 -1
- package/dist/src/assets/shader/compute/BRDFLUT.js +0 -90
- package/dist/src/assets/shader/compute/BloomEffect_cs.d.ts +0 -4
- package/dist/src/assets/shader/compute/BloomEffect_cs.js +0 -173
- package/dist/src/assets/shader/compute/BlurEffectCreator_cs.d.ts +0 -2
- package/dist/src/assets/shader/compute/BlurEffectCreator_cs.js +0 -84
- package/dist/src/assets/shader/compute/DDGIIrradiance_Cs.d.ts +0 -4
- package/dist/src/assets/shader/compute/DDGIIrradiance_Cs.js +0 -307
- package/dist/src/assets/shader/compute/DDGILighting_CSShader.d.ts +0 -4
- package/dist/src/assets/shader/compute/DDGILighting_CSShader.js +0 -285
- package/dist/src/assets/shader/compute/DepthOfView_cs.d.ts +0 -4
- package/dist/src/assets/shader/compute/DepthOfView_cs.js +0 -90
- package/dist/src/assets/shader/compute/ErpImage2CubeMapCreateCube_cs.d.ts +0 -1
- package/dist/src/assets/shader/compute/ErpImage2CubeMapCreateCube_cs.js +0 -64
- package/dist/src/assets/shader/compute/ErpImage2CubeMapRgbe2rgba_cs.d.ts +0 -1
- package/dist/src/assets/shader/compute/ErpImage2CubeMapRgbe2rgba_cs.js +0 -34
- package/dist/src/assets/shader/compute/GTAO_cs.d.ts +0 -4
- package/dist/src/assets/shader/compute/GTAO_cs.js +0 -133
- package/dist/src/assets/shader/compute/GodRay_cs.d.ts +0 -1
- package/dist/src/assets/shader/compute/GodRay_cs.js +0 -214
- package/dist/src/assets/shader/compute/IBLEnvMapCreator_cs.d.ts +0 -1
- package/dist/src/assets/shader/compute/IBLEnvMapCreator_cs.js +0 -164
- package/dist/src/assets/shader/compute/MergeRGBA_cs.d.ts +0 -1
- package/dist/src/assets/shader/compute/MergeRGBA_cs.js +0 -27
- package/dist/src/assets/shader/compute/MultiBouncePass_cs.d.ts +0 -4
- package/dist/src/assets/shader/compute/MultiBouncePass_cs.js +0 -169
- package/dist/src/assets/shader/compute/OutLineBlendColor_cs.d.ts +0 -1
- package/dist/src/assets/shader/compute/OutLineBlendColor_cs.js +0 -49
- package/dist/src/assets/shader/compute/OutlineCalcOutline_cs.d.ts +0 -1
- package/dist/src/assets/shader/compute/OutlineCalcOutline_cs.js +0 -95
- package/dist/src/assets/shader/compute/Outline_cs.d.ts +0 -1
- package/dist/src/assets/shader/compute/Outline_cs.js +0 -116
- package/dist/src/assets/shader/compute/Picker_cs.d.ts +0 -1
- package/dist/src/assets/shader/compute/Picker_cs.js +0 -40
- package/dist/src/assets/shader/compute/PreFilteredEnvironment_cs copy.d.ts +0 -1
- package/dist/src/assets/shader/compute/PreFilteredEnvironment_cs copy.js +0 -162
- package/dist/src/assets/shader/compute/PreFilteredEnvironment_cs.d.ts +0 -4
- package/dist/src/assets/shader/compute/PreFilteredEnvironment_cs.js +0 -201
- package/dist/src/assets/shader/compute/PreIntegratedLut.d.ts +0 -1
- package/dist/src/assets/shader/compute/PreIntegratedLut.js +0 -46
- package/dist/src/assets/shader/compute/SSAO_cs.d.ts +0 -1
- package/dist/src/assets/shader/compute/SSAO_cs.js +0 -82
- package/dist/src/assets/shader/compute/SSGI2_cs.d.ts +0 -7
- package/dist/src/assets/shader/compute/SSGI2_cs.js +0 -169
- package/dist/src/assets/shader/compute/SSR_BlendColor_cs.d.ts +0 -4
- package/dist/src/assets/shader/compute/SSR_BlendColor_cs.js +0 -53
- package/dist/src/assets/shader/compute/SSR_IS_cs.d.ts +0 -1
- package/dist/src/assets/shader/compute/SSR_IS_cs.js +0 -76
- package/dist/src/assets/shader/compute/SSR_RayTrace_cs.d.ts +0 -1
- package/dist/src/assets/shader/compute/SSR_RayTrace_cs.js +0 -289
- package/dist/src/assets/shader/compute/TAACopyTex_cs.d.ts +0 -4
- package/dist/src/assets/shader/compute/TAACopyTex_cs.js +0 -22
- package/dist/src/assets/shader/compute/TAASharpTex_cs.d.ts +0 -1
- package/dist/src/assets/shader/compute/TAASharpTex_cs.js +0 -42
- package/dist/src/assets/shader/compute/TAA_cs.d.ts +0 -4
- package/dist/src/assets/shader/compute/TAA_cs.js +0 -152
- package/dist/src/assets/shader/compute/utils/Combine_cs.d.ts +0 -4
- package/dist/src/assets/shader/compute/utils/Combine_cs.js +0 -47
- package/dist/src/assets/shader/compute/utils/Denoising_cs.d.ts +0 -4
- package/dist/src/assets/shader/compute/utils/Denoising_cs.js +0 -28
- package/dist/src/assets/shader/compute/utils/TestComputeLoadBuffer.d.ts +0 -1
- package/dist/src/assets/shader/compute/utils/TestComputeLoadBuffer.js +0 -128
- package/dist/src/assets/shader/compute/utils/TextureCompress.d.ts +0 -2
- package/dist/src/assets/shader/compute/utils/TextureCompress.js +0 -131
- package/dist/src/assets/shader/compute/utils/tw.d.ts +0 -4
- package/dist/src/assets/shader/compute/utils/tw.js +0 -43
- package/dist/src/assets/shader/core/base/Common_frag.d.ts +0 -1
- package/dist/src/assets/shader/core/base/Common_frag.js +0 -62
- package/dist/src/assets/shader/core/base/Common_vert.d.ts +0 -1
- package/dist/src/assets/shader/core/base/Common_vert.js +0 -12
- package/dist/src/assets/shader/core/common/BrdfLut_frag.d.ts +0 -1
- package/dist/src/assets/shader/core/common/BrdfLut_frag.js +0 -6
- package/dist/src/assets/shader/core/common/EnvMap_frag.d.ts +0 -1
- package/dist/src/assets/shader/core/common/EnvMap_frag.js +0 -10
- package/dist/src/assets/shader/core/common/GBufferStand.d.ts +0 -1
- package/dist/src/assets/shader/core/common/GBufferStand.js +0 -171
- package/dist/src/assets/shader/core/common/GlobalUniform.d.ts +0 -4
- package/dist/src/assets/shader/core/common/GlobalUniform.js +0 -117
- package/dist/src/assets/shader/core/common/InstanceUniform.d.ts +0 -1
- package/dist/src/assets/shader/core/common/InstanceUniform.js +0 -9
- package/dist/src/assets/shader/core/common/SHCommon_frag.d.ts +0 -1
- package/dist/src/assets/shader/core/common/SHCommon_frag.js +0 -82
- package/dist/src/assets/shader/core/common/WorldMatrixUniform.d.ts +0 -1
- package/dist/src/assets/shader/core/common/WorldMatrixUniform.js +0 -8
- package/dist/src/assets/shader/core/inline/Inline_vert.d.ts +0 -1
- package/dist/src/assets/shader/core/inline/Inline_vert.js +0 -59
- package/dist/src/assets/shader/core/pass/CastShadow_pass.d.ts +0 -4
- package/dist/src/assets/shader/core/pass/CastShadow_pass.js +0 -284
- package/dist/src/assets/shader/core/pass/FrustumCulling_cs.d.ts +0 -4
- package/dist/src/assets/shader/core/pass/FrustumCulling_cs.js +0 -91
- package/dist/src/assets/shader/core/pass/GBuffer_pass.d.ts +0 -1
- package/dist/src/assets/shader/core/pass/GBuffer_pass.js +0 -72
- package/dist/src/assets/shader/core/pass/SkyGBuffer_pass.d.ts +0 -1
- package/dist/src/assets/shader/core/pass/SkyGBuffer_pass.js +0 -34
- package/dist/src/assets/shader/core/pass/ZPassShader_cs.d.ts +0 -1
- package/dist/src/assets/shader/core/pass/ZPassShader_cs.js +0 -14
- package/dist/src/assets/shader/core/pass/ZPassShader_fs.d.ts +0 -1
- package/dist/src/assets/shader/core/pass/ZPassShader_fs.js +0 -15
- package/dist/src/assets/shader/core/pass/ZPassShader_vs.d.ts +0 -1
- package/dist/src/assets/shader/core/pass/ZPassShader_vs.js +0 -83
- package/dist/src/assets/shader/core/struct/ClusterLight.d.ts +0 -4
- package/dist/src/assets/shader/core/struct/ClusterLight.js +0 -98
- package/dist/src/assets/shader/core/struct/ColorPassFragmentOutput.d.ts +0 -1
- package/dist/src/assets/shader/core/struct/ColorPassFragmentOutput.js +0 -16
- package/dist/src/assets/shader/core/struct/FragmentOutput.d.ts +0 -1
- package/dist/src/assets/shader/core/struct/FragmentOutput.js +0 -18
- package/dist/src/assets/shader/core/struct/FragmentVarying.d.ts +0 -1
- package/dist/src/assets/shader/core/struct/FragmentVarying.js +0 -23
- package/dist/src/assets/shader/core/struct/ShadingInput.d.ts +0 -1
- package/dist/src/assets/shader/core/struct/ShadingInput.js +0 -21
- package/dist/src/assets/shader/core/struct/VertexAttributeIndexShader.d.ts +0 -1
- package/dist/src/assets/shader/core/struct/VertexAttributeIndexShader.js +0 -100
- package/dist/src/assets/shader/core/struct/VertexAttributes.d.ts +0 -1
- package/dist/src/assets/shader/core/struct/VertexAttributes.js +0 -160
- package/dist/src/assets/shader/env/ReflectionCG.d.ts +0 -1
- package/dist/src/assets/shader/env/ReflectionCG.js +0 -86
- package/dist/src/assets/shader/glsl/Quad_glsl.d.ts +0 -2
- package/dist/src/assets/shader/glsl/Quad_glsl.js +0 -55
- package/dist/src/assets/shader/lighting/BRDF_frag.d.ts +0 -4
- package/dist/src/assets/shader/lighting/BRDF_frag.js +0 -461
- package/dist/src/assets/shader/lighting/BsDF_frag.d.ts +0 -4
- package/dist/src/assets/shader/lighting/BsDF_frag.js +0 -139
- package/dist/src/assets/shader/lighting/BxDF_frag.d.ts +0 -4
- package/dist/src/assets/shader/lighting/BxDF_frag.js +0 -210
- package/dist/src/assets/shader/lighting/Hair_frag.d.ts +0 -1
- package/dist/src/assets/shader/lighting/Hair_frag.js +0 -277
- package/dist/src/assets/shader/lighting/IESProfiles_frag.d.ts +0 -1
- package/dist/src/assets/shader/lighting/IESProfiles_frag.js +0 -33
- package/dist/src/assets/shader/lighting/IrradianceVolumeData_frag.d.ts +0 -1
- package/dist/src/assets/shader/lighting/IrradianceVolumeData_frag.js +0 -40
- package/dist/src/assets/shader/lighting/Irradiance_frag.d.ts +0 -4
- package/dist/src/assets/shader/lighting/Irradiance_frag.js +0 -270
- package/dist/src/assets/shader/lighting/LightingFunction_frag.d.ts +0 -1
- package/dist/src/assets/shader/lighting/LightingFunction_frag.js +0 -203
- package/dist/src/assets/shader/lighting/UnLit_frag.d.ts +0 -1
- package/dist/src/assets/shader/lighting/UnLit_frag.js +0 -30
- package/dist/src/assets/shader/materials/ColorLitShader.d.ts +0 -1
- package/dist/src/assets/shader/materials/ColorLitShader.js +0 -22
- package/dist/src/assets/shader/materials/GIProbeShader.d.ts +0 -1
- package/dist/src/assets/shader/materials/GIProbeShader.js +0 -34
- package/dist/src/assets/shader/materials/GlassShader.d.ts +0 -1
- package/dist/src/assets/shader/materials/GlassShader.js +0 -26
- package/dist/src/assets/shader/materials/Hair_shader.d.ts +0 -2
- package/dist/src/assets/shader/materials/Hair_shader.js +0 -210
- package/dist/src/assets/shader/materials/Lambert_shader.d.ts +0 -1
- package/dist/src/assets/shader/materials/Lambert_shader.js +0 -56
- package/dist/src/assets/shader/materials/Lit_shader.d.ts +0 -1
- package/dist/src/assets/shader/materials/Lit_shader.js +0 -21
- package/dist/src/assets/shader/materials/OutlinePass.d.ts +0 -1
- package/dist/src/assets/shader/materials/OutlinePass.js +0 -73
- package/dist/src/assets/shader/materials/PBRLItShader.d.ts +0 -4
- package/dist/src/assets/shader/materials/PBRLItShader.js +0 -155
- package/dist/src/assets/shader/materials/PBRLitSSSShader.d.ts +0 -4
- package/dist/src/assets/shader/materials/PBRLitSSSShader.js +0 -192
- package/dist/src/assets/shader/materials/ReflectionShader_shader.d.ts +0 -1
- package/dist/src/assets/shader/materials/ReflectionShader_shader.js +0 -63
- package/dist/src/assets/shader/materials/UnLit.d.ts +0 -4
- package/dist/src/assets/shader/materials/UnLit.js +0 -41
- package/dist/src/assets/shader/materials/UnLitTextureArray.d.ts +0 -1
- package/dist/src/assets/shader/materials/UnLitTextureArray.js +0 -100
- package/dist/src/assets/shader/materials/program/BxdfDebug_frag.d.ts +0 -4
- package/dist/src/assets/shader/materials/program/BxdfDebug_frag.js +0 -180
- package/dist/src/assets/shader/materials/program/Clearcoat_frag.d.ts +0 -1
- package/dist/src/assets/shader/materials/program/Clearcoat_frag.js +0 -38
- package/dist/src/assets/shader/materials/program/ClusterDebug_frag.d.ts +0 -1
- package/dist/src/assets/shader/materials/program/ClusterDebug_frag.js +0 -40
- package/dist/src/assets/shader/materials/program/NormalMap_frag.d.ts +0 -4
- package/dist/src/assets/shader/materials/program/NormalMap_frag.js +0 -65
- package/dist/src/assets/shader/materials/program/ShadowMapping_frag.d.ts +0 -1
- package/dist/src/assets/shader/materials/program/ShadowMapping_frag.js +0 -210
- package/dist/src/assets/shader/materials/uniforms/PhysicMaterialUniform_frag.d.ts +0 -1
- package/dist/src/assets/shader/materials/uniforms/PhysicMaterialUniform_frag.js +0 -37
- package/dist/src/assets/shader/materials/uniforms/UnLitMaterialUniform_frag.d.ts +0 -1
- package/dist/src/assets/shader/materials/uniforms/UnLitMaterialUniform_frag.js +0 -14
- package/dist/src/assets/shader/materials/uniforms/VideoUniform_frag.d.ts +0 -1
- package/dist/src/assets/shader/materials/uniforms/VideoUniform_frag.js +0 -12
- package/dist/src/assets/shader/math/FastMathShader.d.ts +0 -1
- package/dist/src/assets/shader/math/FastMathShader.js +0 -91
- package/dist/src/assets/shader/math/MathShader.d.ts +0 -4
- package/dist/src/assets/shader/math/MathShader.js +0 -558
- package/dist/src/assets/shader/math/MatrixShader.d.ts +0 -1
- package/dist/src/assets/shader/math/MatrixShader.js +0 -104
- package/dist/src/assets/shader/post/FXAAShader.d.ts +0 -1
- package/dist/src/assets/shader/post/FXAAShader.js +0 -79
- package/dist/src/assets/shader/post/GlobalFog_shader.d.ts +0 -4
- package/dist/src/assets/shader/post/GlobalFog_shader.js +0 -191
- package/dist/src/assets/shader/quad/Quad_shader.d.ts +0 -24
- package/dist/src/assets/shader/quad/Quad_shader.js +0 -210
- package/dist/src/assets/shader/sky/AtmosphericScatteringSky_shader.d.ts +0 -6
- package/dist/src/assets/shader/sky/AtmosphericScatteringSky_shader.js +0 -312
- package/dist/src/assets/shader/sky/CubeSky_Shader.d.ts +0 -7
- package/dist/src/assets/shader/sky/CubeSky_Shader.js +0 -122
- package/dist/src/assets/shader/utils/BitUtil.d.ts +0 -1
- package/dist/src/assets/shader/utils/BitUtil.js +0 -108
- package/dist/src/assets/shader/utils/ColorUtil.d.ts +0 -1
- package/dist/src/assets/shader/utils/ColorUtil.js +0 -144
- package/dist/src/assets/shader/utils/GenerayRandomDir.d.ts +0 -1
- package/dist/src/assets/shader/utils/GenerayRandomDir.js +0 -22
- package/dist/src/components/AtmosphericComponent.d.ts +0 -28
- package/dist/src/components/AtmosphericComponent.js +0 -141
- package/dist/src/components/BillboardComponent.d.ts +0 -13
- package/dist/src/components/BillboardComponent.js +0 -30
- package/dist/src/components/ColliderComponent.d.ts +0 -15
- package/dist/src/components/ColliderComponent.js +0 -39
- package/dist/src/components/ComponentBase.d.ts +0 -43
- package/dist/src/components/ComponentBase.js +0 -141
- package/dist/src/components/IComponent.d.ts +0 -27
- package/dist/src/components/IComponent.js +0 -1
- package/dist/src/components/SkeletonAnimationComponent.d.ts +0 -52
- package/dist/src/components/SkeletonAnimationComponent.js +0 -225
- package/dist/src/components/Transform.d.ts +0 -119
- package/dist/src/components/Transform.js +0 -523
- package/dist/src/components/anim/AnimatorComponent.d.ts +0 -67
- package/dist/src/components/anim/AnimatorComponent.js +0 -411
- package/dist/src/components/anim/OAnimationEvent.d.ts +0 -6
- package/dist/src/components/anim/OAnimationEvent.js +0 -8
- package/dist/src/components/anim/curveAnim/AnimationMonitor.d.ts +0 -29
- package/dist/src/components/anim/curveAnim/AnimationMonitor.js +0 -159
- package/dist/src/components/anim/curveAnim/AttributeAnimCurve.d.ts +0 -8
- package/dist/src/components/anim/curveAnim/AttributeAnimCurve.js +0 -15
- package/dist/src/components/anim/curveAnim/PropertyAnimClip.d.ts +0 -29
- package/dist/src/components/anim/curveAnim/PropertyAnimClip.js +0 -54
- package/dist/src/components/anim/curveAnim/PropertyAnimation.d.ts +0 -31
- package/dist/src/components/anim/curveAnim/PropertyAnimation.js +0 -107
- package/dist/src/components/anim/curveAnim/PropertyAnimationEvent.d.ts +0 -14
- package/dist/src/components/anim/curveAnim/PropertyAnimationEvent.js +0 -11
- package/dist/src/components/anim/curveAnim/PropertyHelp.d.ts +0 -13
- package/dist/src/components/anim/curveAnim/PropertyHelp.js +0 -96
- package/dist/src/components/anim/morphAnim/MorphTargetBlender.d.ts +0 -18
- package/dist/src/components/anim/morphAnim/MorphTargetBlender.js +0 -81
- package/dist/src/components/anim/morphAnim/MorphTargetData.d.ts +0 -52
- package/dist/src/components/anim/morphAnim/MorphTargetData.js +0 -183
- package/dist/src/components/anim/morphAnim/MorphTargetFrame.d.ts +0 -68
- package/dist/src/components/anim/morphAnim/MorphTargetFrame.js +0 -4
- package/dist/src/components/anim/morphAnim/MorphTargetKey.d.ts +0 -58
- package/dist/src/components/anim/morphAnim/MorphTargetKey.js +0 -55
- package/dist/src/components/anim/morphAnim/MorphTarget_shader.d.ts +0 -8
- package/dist/src/components/anim/morphAnim/MorphTarget_shader.js +0 -101
- package/dist/src/components/anim/skeletonAnim/Joint.d.ts +0 -12
- package/dist/src/components/anim/skeletonAnim/Joint.js +0 -14
- package/dist/src/components/anim/skeletonAnim/JointPose.d.ts +0 -6
- package/dist/src/components/anim/skeletonAnim/JointPose.js +0 -7
- package/dist/src/components/anim/skeletonAnim/Skeleton.d.ts +0 -10
- package/dist/src/components/anim/skeletonAnim/Skeleton.js +0 -26
- package/dist/src/components/anim/skeletonAnim/SkeletonAnimationClip.d.ts +0 -22
- package/dist/src/components/anim/skeletonAnim/SkeletonAnimationClip.js +0 -70
- package/dist/src/components/anim/skeletonAnim/SkeletonAnimationClipState.d.ts +0 -21
- package/dist/src/components/anim/skeletonAnim/SkeletonAnimationClipState.js +0 -80
- package/dist/src/components/anim/skeletonAnim/SkeletonAnimationCompute.d.ts +0 -6
- package/dist/src/components/anim/skeletonAnim/SkeletonAnimationCompute.js +0 -27
- package/dist/src/components/anim/skeletonAnim/SkeletonPose.d.ts +0 -16
- package/dist/src/components/anim/skeletonAnim/SkeletonPose.js +0 -79
- package/dist/src/components/anim/skeletonAnim/buffer/SkeletonBlendComputeArgs.d.ts +0 -23
- package/dist/src/components/anim/skeletonAnim/buffer/SkeletonBlendComputeArgs.js +0 -61
- package/dist/src/components/anim/skeletonAnim/buffer/SkeletonTransformComputeArgs.d.ts +0 -23
- package/dist/src/components/anim/skeletonAnim/buffer/SkeletonTransformComputeArgs.js +0 -59
- package/dist/src/components/controller/CameraControllerBase.d.ts +0 -17
- package/dist/src/components/controller/CameraControllerBase.js +0 -33
- package/dist/src/components/controller/FirstPersonCameraController.d.ts +0 -15
- package/dist/src/components/controller/FirstPersonCameraController.js +0 -52
- package/dist/src/components/controller/FlyCameraController.d.ts +0 -36
- package/dist/src/components/controller/FlyCameraController.js +0 -180
- package/dist/src/components/controller/HoverCameraController.d.ts +0 -52
- package/dist/src/components/controller/HoverCameraController.js +0 -183
- package/dist/src/components/controller/OrbitController.d.ts +0 -170
- package/dist/src/components/controller/OrbitController.js +0 -339
- package/dist/src/components/controller/ThirdPersonCameraController.d.ts +0 -16
- package/dist/src/components/controller/ThirdPersonCameraController.js +0 -51
- package/dist/src/components/gui/GUIConfig.d.ts +0 -23
- package/dist/src/components/gui/GUIConfig.js +0 -26
- package/dist/src/components/gui/GUIExtension.d.ts +0 -5
- package/dist/src/components/gui/GUIExtension.js +0 -61
- package/dist/src/components/gui/GUIPick.d.ts +0 -36
- package/dist/src/components/gui/GUIPick.js +0 -178
- package/dist/src/components/gui/GUIPickHelper.d.ts +0 -25
- package/dist/src/components/gui/GUIPickHelper.js +0 -119
- package/dist/src/components/gui/core/GUIAtlasTexture.d.ts +0 -16
- package/dist/src/components/gui/core/GUIAtlasTexture.js +0 -22
- package/dist/src/components/gui/core/GUICanvas.d.ts +0 -21
- package/dist/src/components/gui/core/GUICanvas.js +0 -35
- package/dist/src/components/gui/core/GUIDefine.d.ts +0 -7
- package/dist/src/components/gui/core/GUIDefine.js +0 -8
- package/dist/src/components/gui/core/GUIGeometry.d.ts +0 -36
- package/dist/src/components/gui/core/GUIGeometry.js +0 -215
- package/dist/src/components/gui/core/GUIGeometryRebuild.d.ts +0 -21
- package/dist/src/components/gui/core/GUIGeometryRebuild.js +0 -105
- package/dist/src/components/gui/core/GUIMaterial.d.ts +0 -29
- package/dist/src/components/gui/core/GUIMaterial.js +0 -111
- package/dist/src/components/gui/core/GUIQuad.d.ts +0 -52
- package/dist/src/components/gui/core/GUIQuad.js +0 -154
- package/dist/src/components/gui/core/GUIRenderer.d.ts +0 -15
- package/dist/src/components/gui/core/GUIRenderer.js +0 -42
- package/dist/src/components/gui/core/GUIShader.d.ts +0 -8
- package/dist/src/components/gui/core/GUIShader.js +0 -267
- package/dist/src/components/gui/core/GUISprite.d.ts +0 -19
- package/dist/src/components/gui/core/GUISprite.js +0 -19
- package/dist/src/components/gui/core/GUITexture.d.ts +0 -12
- package/dist/src/components/gui/core/GUITexture.js +0 -25
- package/dist/src/components/gui/uiComponents/IUIInteractive.d.ts +0 -25
- package/dist/src/components/gui/uiComponents/IUIInteractive.js +0 -7
- package/dist/src/components/gui/uiComponents/TextFieldLayout.d.ts +0 -34
- package/dist/src/components/gui/uiComponents/TextFieldLayout.js +0 -265
- package/dist/src/components/gui/uiComponents/UIButton.d.ts +0 -45
- package/dist/src/components/gui/uiComponents/UIButton.js +0 -140
- package/dist/src/components/gui/uiComponents/UIComponentBase.d.ts +0 -15
- package/dist/src/components/gui/uiComponents/UIComponentBase.js +0 -33
- package/dist/src/components/gui/uiComponents/UIImage.d.ts +0 -21
- package/dist/src/components/gui/uiComponents/UIImage.js +0 -72
- package/dist/src/components/gui/uiComponents/UIImageGroup.d.ts +0 -31
- package/dist/src/components/gui/uiComponents/UIImageGroup.js +0 -87
- package/dist/src/components/gui/uiComponents/UIInteractive.d.ts +0 -25
- package/dist/src/components/gui/uiComponents/UIInteractive.js +0 -50
- package/dist/src/components/gui/uiComponents/UIPanel.d.ts +0 -38
- package/dist/src/components/gui/uiComponents/UIPanel.js +0 -173
- package/dist/src/components/gui/uiComponents/UIRenderAble.d.ts +0 -27
- package/dist/src/components/gui/uiComponents/UIRenderAble.js +0 -106
- package/dist/src/components/gui/uiComponents/UIShadow.d.ts +0 -31
- package/dist/src/components/gui/uiComponents/UIShadow.js +0 -117
- package/dist/src/components/gui/uiComponents/UITextField.d.ts +0 -36
- package/dist/src/components/gui/uiComponents/UITextField.js +0 -122
- package/dist/src/components/gui/uiComponents/UITransform.d.ts +0 -60
- package/dist/src/components/gui/uiComponents/UITransform.js +0 -243
- package/dist/src/components/gui/uiComponents/ViewPanel.d.ts +0 -9
- package/dist/src/components/gui/uiComponents/ViewPanel.js +0 -13
- package/dist/src/components/gui/uiComponents/WorldPanel.d.ts +0 -13
- package/dist/src/components/gui/uiComponents/WorldPanel.js +0 -34
- package/dist/src/components/lights/DirectLight.d.ts +0 -13
- package/dist/src/components/lights/DirectLight.js +0 -52
- package/dist/src/components/lights/GILighting.d.ts +0 -6
- package/dist/src/components/lights/GILighting.js +0 -15
- package/dist/src/components/lights/IESProfiles.d.ts +0 -14
- package/dist/src/components/lights/IESProfiles.js +0 -33
- package/dist/src/components/lights/ILight.d.ts +0 -12
- package/dist/src/components/lights/ILight.js +0 -1
- package/dist/src/components/lights/Light.d.ts +0 -32
- package/dist/src/components/lights/Light.js +0 -90
- package/dist/src/components/lights/LightBase.d.ts +0 -127
- package/dist/src/components/lights/LightBase.js +0 -238
- package/dist/src/components/lights/LightData.d.ts +0 -29
- package/dist/src/components/lights/LightData.js +0 -33
- package/dist/src/components/lights/PointLight.d.ts +0 -19
- package/dist/src/components/lights/PointLight.js +0 -67
- package/dist/src/components/lights/SpotLight.d.ts +0 -21
- package/dist/src/components/lights/SpotLight.js +0 -79
- package/dist/src/components/post/PostProcessingComponent.d.ts +0 -16
- package/dist/src/components/post/PostProcessingComponent.js +0 -52
- package/dist/src/components/renderer/GlobalIlluminationComponent.d.ts +0 -22
- package/dist/src/components/renderer/GlobalIlluminationComponent.js +0 -118
- package/dist/src/components/renderer/InstanceDrawComponent.d.ts +0 -19
- package/dist/src/components/renderer/InstanceDrawComponent.js +0 -120
- package/dist/src/components/renderer/MeshFilter.d.ts +0 -9
- package/dist/src/components/renderer/MeshFilter.js +0 -37
- package/dist/src/components/renderer/MeshRenderer.d.ts +0 -51
- package/dist/src/components/renderer/MeshRenderer.js +0 -156
- package/dist/src/components/renderer/Reflection.d.ts +0 -15
- package/dist/src/components/renderer/Reflection.js +0 -33
- package/dist/src/components/renderer/RenderNode.d.ts +0 -85
- package/dist/src/components/renderer/RenderNode.js +0 -518
- package/dist/src/components/renderer/SkinnedMeshRenderer.d.ts +0 -26
- package/dist/src/components/renderer/SkinnedMeshRenderer.js +0 -111
- package/dist/src/components/renderer/SkinnedMeshRenderer2.d.ts +0 -37
- package/dist/src/components/renderer/SkinnedMeshRenderer2.js +0 -138
- package/dist/src/components/renderer/SkyRenderer.d.ts +0 -36
- package/dist/src/components/renderer/SkyRenderer.js +0 -94
- package/dist/src/components/renderer/SphereReflection.d.ts +0 -12
- package/dist/src/components/renderer/SphereReflection.js +0 -45
- package/dist/src/components/shape/BoxColliderShape.d.ts +0 -9
- package/dist/src/components/shape/BoxColliderShape.js +0 -28
- package/dist/src/components/shape/CapsuleColliderShape.d.ts +0 -6
- package/dist/src/components/shape/CapsuleColliderShape.js +0 -9
- package/dist/src/components/shape/ColliderShape.d.ts +0 -35
- package/dist/src/components/shape/ColliderShape.js +0 -49
- package/dist/src/components/shape/MeshColliderShape.d.ts +0 -8
- package/dist/src/components/shape/MeshColliderShape.js +0 -55
- package/dist/src/components/shape/SphereColliderShape.d.ts +0 -26
- package/dist/src/components/shape/SphereColliderShape.js +0 -47
- package/dist/src/core/Camera3D.d.ts +0 -308
- package/dist/src/core/Camera3D.js +0 -534
- package/dist/src/core/CameraType.d.ts +0 -5
- package/dist/src/core/CameraType.js +0 -6
- package/dist/src/core/CubeCamera.d.ts +0 -18
- package/dist/src/core/CubeCamera.js +0 -67
- package/dist/src/core/PointShadowCubeCamera.d.ts +0 -13
- package/dist/src/core/PointShadowCubeCamera.js +0 -59
- package/dist/src/core/Scene3D.d.ts +0 -66
- package/dist/src/core/Scene3D.js +0 -88
- package/dist/src/core/View3D.d.ts +0 -85
- package/dist/src/core/View3D.js +0 -113
- package/dist/src/core/ViewQuad.d.ts +0 -19
- package/dist/src/core/ViewQuad.js +0 -84
- package/dist/src/core/bound/BoundingBox.d.ts +0 -34
- package/dist/src/core/bound/BoundingBox.js +0 -155
- package/dist/src/core/bound/BoundingSphere.d.ts +0 -34
- package/dist/src/core/bound/BoundingSphere.js +0 -71
- package/dist/src/core/bound/Frustum.d.ts +0 -17
- package/dist/src/core/bound/Frustum.js +0 -184
- package/dist/src/core/bound/IBound.d.ts +0 -19
- package/dist/src/core/bound/IBound.js +0 -1
- package/dist/src/core/csm/CSM.d.ts +0 -3
- package/dist/src/core/csm/CSM.js +0 -3
- package/dist/src/core/csm/FrustumCSM.d.ts +0 -32
- package/dist/src/core/csm/FrustumCSM.js +0 -106
- package/dist/src/core/entities/Entity.d.ts +0 -43
- package/dist/src/core/entities/Entity.js +0 -200
- package/dist/src/core/entities/InstancedMesh.d.ts +0 -11
- package/dist/src/core/entities/InstancedMesh.js +0 -32
- package/dist/src/core/entities/Object3D.d.ts +0 -66
- package/dist/src/core/entities/Object3D.js +0 -284
- package/dist/src/core/geometry/ExtrudeGeometry.d.ts +0 -31
- package/dist/src/core/geometry/ExtrudeGeometry.js +0 -156
- package/dist/src/core/geometry/GeometryBase.d.ts +0 -70
- package/dist/src/core/geometry/GeometryBase.js +0 -248
- package/dist/src/core/geometry/GeometryIndicesBuffer.d.ts +0 -15
- package/dist/src/core/geometry/GeometryIndicesBuffer.js +0 -33
- package/dist/src/core/geometry/GeometryVertexBuffer.d.ts +0 -23
- package/dist/src/core/geometry/GeometryVertexBuffer.js +0 -243
- package/dist/src/core/geometry/GeometryVertexType.d.ts +0 -5
- package/dist/src/core/geometry/GeometryVertexType.js +0 -6
- package/dist/src/core/geometry/VertexAttribute.d.ts +0 -15
- package/dist/src/core/geometry/VertexAttribute.js +0 -4
- package/dist/src/core/geometry/VertexAttributeData.d.ts +0 -5
- package/dist/src/core/geometry/VertexAttributeData.js +0 -1
- package/dist/src/core/geometry/VertexAttributeName.d.ts +0 -23
- package/dist/src/core/geometry/VertexAttributeName.js +0 -24
- package/dist/src/core/geometry/VertexAttributeSize.d.ts +0 -11
- package/dist/src/core/geometry/VertexAttributeSize.js +0 -12
- package/dist/src/core/geometry/VertexAttributeStride.d.ts +0 -15
- package/dist/src/core/geometry/VertexAttributeStride.js +0 -16
- package/dist/src/core/geometry/VertexFormat.d.ts +0 -1
- package/dist/src/core/geometry/VertexFormat.js +0 -8
- package/dist/src/core/pool/ObjectPool.d.ts +0 -11
- package/dist/src/core/pool/ObjectPool.js +0 -33
- package/dist/src/core/pool/memory/MemoryDO.d.ts +0 -14
- package/dist/src/core/pool/memory/MemoryDO.js +0 -48
- package/dist/src/core/pool/memory/MemoryInfo.d.ts +0 -83
- package/dist/src/core/pool/memory/MemoryInfo.js +0 -316
- package/dist/src/core/tree/kdTree/IKDTreeUserData.d.ts +0 -10
- package/dist/src/core/tree/kdTree/IKDTreeUserData.js +0 -9
- package/dist/src/core/tree/kdTree/KDTreeEntity.d.ts +0 -27
- package/dist/src/core/tree/kdTree/KDTreeEntity.js +0 -48
- package/dist/src/core/tree/kdTree/KDTreeNode.d.ts +0 -68
- package/dist/src/core/tree/kdTree/KDTreeNode.js +0 -257
- package/dist/src/core/tree/kdTree/KDTreeSpace.d.ts +0 -26
- package/dist/src/core/tree/kdTree/KDTreeSpace.js +0 -66
- package/dist/src/core/tree/octree/Octree.d.ts +0 -28
- package/dist/src/core/tree/octree/Octree.js +0 -133
- package/dist/src/core/tree/octree/OctreeEntity.d.ts +0 -11
- package/dist/src/core/tree/octree/OctreeEntity.js +0 -25
- package/dist/src/core/tree/quad/IQuadNode.d.ts +0 -9
- package/dist/src/core/tree/quad/IQuadNode.js +0 -1
- package/dist/src/core/tree/quad/QuadAABB.d.ts +0 -26
- package/dist/src/core/tree/quad/QuadAABB.js +0 -116
- package/dist/src/core/tree/quad/QuadRoot.d.ts +0 -14
- package/dist/src/core/tree/quad/QuadRoot.js +0 -67
- package/dist/src/core/tree/quad/QuadTree.d.ts +0 -22
- package/dist/src/core/tree/quad/QuadTree.js +0 -250
- package/dist/src/core/tree/quad/QuadTreeCell.d.ts +0 -23
- package/dist/src/core/tree/quad/QuadTreeCell.js +0 -36
- package/dist/src/event/CEvent.d.ts +0 -27
- package/dist/src/event/CEvent.js +0 -19
- package/dist/src/event/CEventDispatcher.d.ts +0 -13
- package/dist/src/event/CEventDispatcher.js +0 -129
- package/dist/src/event/CEventListener.d.ts +0 -13
- package/dist/src/event/CEventListener.js +0 -26
- package/dist/src/event/CResizeEvent.d.ts +0 -4
- package/dist/src/event/CResizeEvent.js +0 -4
- package/dist/src/event/KeyCode.d.ts +0 -110
- package/dist/src/event/KeyCode.js +0 -111
- package/dist/src/event/MouseCode.d.ts +0 -5
- package/dist/src/event/MouseCode.js +0 -6
- package/dist/src/event/eventConst/KeyEvent.d.ts +0 -6
- package/dist/src/event/eventConst/KeyEvent.js +0 -9
- package/dist/src/event/eventConst/LoaderEvent.d.ts +0 -5
- package/dist/src/event/eventConst/LoaderEvent.js +0 -5
- package/dist/src/event/eventConst/Object3DEvent.d.ts +0 -7
- package/dist/src/event/eventConst/Object3DEvent.js +0 -7
- package/dist/src/event/eventConst/PointerEvent3D.d.ts +0 -63
- package/dist/src/event/eventConst/PointerEvent3D.js +0 -54
- package/dist/src/event/eventConst/UIEvent.d.ts +0 -6
- package/dist/src/event/eventConst/UIEvent.js +0 -6
- package/dist/src/gfx/generate/BrdfLUTGenerate.d.ts +0 -7
- package/dist/src/gfx/generate/BrdfLUTGenerate.js +0 -20
- package/dist/src/gfx/generate/PassGenerate.d.ts +0 -9
- package/dist/src/gfx/generate/PassGenerate.js +0 -181
- package/dist/src/gfx/generate/convert/BlurEffectCreator.d.ts +0 -7
- package/dist/src/gfx/generate/convert/BlurEffectCreator.js +0 -79
- package/dist/src/gfx/generate/convert/ErpImage2CubeMap.d.ts +0 -9
- package/dist/src/gfx/generate/convert/ErpImage2CubeMap.js +0 -144
- package/dist/src/gfx/generate/convert/IBLEnvMapCreator.d.ts +0 -12
- package/dist/src/gfx/generate/convert/IBLEnvMapCreator.js +0 -109
- package/dist/src/gfx/generate/convert/MergeRGBACreator.d.ts +0 -5
- package/dist/src/gfx/generate/convert/MergeRGBACreator.js +0 -32
- package/dist/src/gfx/generate/convert/TextureCubeStdCreator.d.ts +0 -9
- package/dist/src/gfx/generate/convert/TextureCubeStdCreator.js +0 -117
- package/dist/src/gfx/generate/convert/TextureCubeUtils.d.ts +0 -12
- package/dist/src/gfx/generate/convert/TextureCubeUtils.js +0 -47
- package/dist/src/gfx/generate/convert/TextureScaleCompute.d.ts +0 -6
- package/dist/src/gfx/generate/convert/TextureScaleCompute.js +0 -18
- package/dist/src/gfx/graphics/webGpu/CanvasConfig.d.ts +0 -7
- package/dist/src/gfx/graphics/webGpu/CanvasConfig.js +0 -1
- package/dist/src/gfx/graphics/webGpu/Context3D.d.ts +0 -20
- package/dist/src/gfx/graphics/webGpu/Context3D.js +0 -112
- package/dist/src/gfx/graphics/webGpu/PipelinePool.d.ts +0 -5
- package/dist/src/gfx/graphics/webGpu/PipelinePool.js +0 -15
- package/dist/src/gfx/graphics/webGpu/WebGPUConst.d.ts +0 -154
- package/dist/src/gfx/graphics/webGpu/WebGPUConst.js +0 -154
- package/dist/src/gfx/graphics/webGpu/compute/PreIntegratedLutCompute.d.ts +0 -8
- package/dist/src/gfx/graphics/webGpu/compute/PreIntegratedLutCompute.js +0 -23
- package/dist/src/gfx/graphics/webGpu/compute/RenderShaderCompute.d.ts +0 -12
- package/dist/src/gfx/graphics/webGpu/compute/RenderShaderCompute.js +0 -19
- package/dist/src/gfx/graphics/webGpu/core/bindGroups/GlobalBindGroup.d.ts +0 -18
- package/dist/src/gfx/graphics/webGpu/core/bindGroups/GlobalBindGroup.js +0 -64
- package/dist/src/gfx/graphics/webGpu/core/bindGroups/GlobalBindGroupLayout.d.ts +0 -4
- package/dist/src/gfx/graphics/webGpu/core/bindGroups/GlobalBindGroupLayout.js +0 -29
- package/dist/src/gfx/graphics/webGpu/core/bindGroups/GlobalUniformGroup.d.ts +0 -25
- package/dist/src/gfx/graphics/webGpu/core/bindGroups/GlobalUniformGroup.js +0 -179
- package/dist/src/gfx/graphics/webGpu/core/bindGroups/MatrixBindGroup.d.ts +0 -11
- package/dist/src/gfx/graphics/webGpu/core/bindGroups/MatrixBindGroup.js +0 -22
- package/dist/src/gfx/graphics/webGpu/core/bindGroups/groups/LightEntries.d.ts +0 -11
- package/dist/src/gfx/graphics/webGpu/core/bindGroups/groups/LightEntries.js +0 -48
- package/dist/src/gfx/graphics/webGpu/core/bindGroups/groups/ProbeEntries.d.ts +0 -10
- package/dist/src/gfx/graphics/webGpu/core/bindGroups/groups/ProbeEntries.js +0 -41
- package/dist/src/gfx/graphics/webGpu/core/bindGroups/groups/ReflectionEntries.d.ts +0 -12
- package/dist/src/gfx/graphics/webGpu/core/bindGroups/groups/ReflectionEntries.js +0 -21
- package/dist/src/gfx/graphics/webGpu/core/buffer/ArrayBufferData.d.ts +0 -1
- package/dist/src/gfx/graphics/webGpu/core/buffer/ArrayBufferData.js +0 -1
- package/dist/src/gfx/graphics/webGpu/core/buffer/ComputeGPUBuffer.d.ts +0 -4
- package/dist/src/gfx/graphics/webGpu/core/buffer/ComputeGPUBuffer.js +0 -11
- package/dist/src/gfx/graphics/webGpu/core/buffer/GPUBufferBase.d.ts +0 -84
- package/dist/src/gfx/graphics/webGpu/core/buffer/GPUBufferBase.js +0 -493
- package/dist/src/gfx/graphics/webGpu/core/buffer/GPUBufferType.d.ts +0 -9
- package/dist/src/gfx/graphics/webGpu/core/buffer/GPUBufferType.js +0 -10
- package/dist/src/gfx/graphics/webGpu/core/buffer/IndicesGPUBuffer.d.ts +0 -14
- package/dist/src/gfx/graphics/webGpu/core/buffer/IndicesGPUBuffer.js +0 -44
- package/dist/src/gfx/graphics/webGpu/core/buffer/MaterialDataUniformGPUBuffer.d.ts +0 -10
- package/dist/src/gfx/graphics/webGpu/core/buffer/MaterialDataUniformGPUBuffer.js +0 -46
- package/dist/src/gfx/graphics/webGpu/core/buffer/MatrixGPUBuffer.d.ts +0 -8
- package/dist/src/gfx/graphics/webGpu/core/buffer/MatrixGPUBuffer.js +0 -57
- package/dist/src/gfx/graphics/webGpu/core/buffer/StorageGPUBuffer.d.ts +0 -11
- package/dist/src/gfx/graphics/webGpu/core/buffer/StorageGPUBuffer.js +0 -16
- package/dist/src/gfx/graphics/webGpu/core/buffer/StructStorageGPUBuffer.d.ts +0 -7
- package/dist/src/gfx/graphics/webGpu/core/buffer/StructStorageGPUBuffer.js +0 -9
- package/dist/src/gfx/graphics/webGpu/core/buffer/UniformGPUBuffer.d.ts +0 -11
- package/dist/src/gfx/graphics/webGpu/core/buffer/UniformGPUBuffer.js +0 -17
- package/dist/src/gfx/graphics/webGpu/core/buffer/VertexGPUBuffer.d.ts +0 -7
- package/dist/src/gfx/graphics/webGpu/core/buffer/VertexGPUBuffer.js +0 -29
- package/dist/src/gfx/graphics/webGpu/core/texture/ITexture.d.ts +0 -18
- package/dist/src/gfx/graphics/webGpu/core/texture/ITexture.js +0 -1
- package/dist/src/gfx/graphics/webGpu/core/texture/Texture.d.ts +0 -79
- package/dist/src/gfx/graphics/webGpu/core/texture/Texture.js +0 -307
- package/dist/src/gfx/graphics/webGpu/core/texture/TextureCube.d.ts +0 -11
- package/dist/src/gfx/graphics/webGpu/core/texture/TextureCube.js +0 -51
- package/dist/src/gfx/graphics/webGpu/core/texture/TextureMipmapCompute.d.ts +0 -9
- package/dist/src/gfx/graphics/webGpu/core/texture/TextureMipmapCompute.js +0 -134
- package/dist/src/gfx/graphics/webGpu/core/texture/TextureMipmapGenerator.d.ts +0 -9
- package/dist/src/gfx/graphics/webGpu/core/texture/TextureMipmapGenerator.js +0 -163
- package/dist/src/gfx/graphics/webGpu/core/uniforms/UniformNode.d.ts +0 -34
- package/dist/src/gfx/graphics/webGpu/core/uniforms/UniformNode.js +0 -176
- package/dist/src/gfx/graphics/webGpu/descriptor/RTDescriptor.d.ts +0 -5
- package/dist/src/gfx/graphics/webGpu/descriptor/RTDescriptor.js +0 -7
- package/dist/src/gfx/graphics/webGpu/descriptor/WebGPUDescriptorCreator.d.ts +0 -8
- package/dist/src/gfx/graphics/webGpu/descriptor/WebGPUDescriptorCreator.js +0 -174
- package/dist/src/gfx/graphics/webGpu/shader/ComputeShader.d.ts +0 -28
- package/dist/src/gfx/graphics/webGpu/shader/ComputeShader.js +0 -219
- package/dist/src/gfx/graphics/webGpu/shader/RenderShaderPass.d.ts +0 -206
- package/dist/src/gfx/graphics/webGpu/shader/RenderShaderPass.js +0 -888
- package/dist/src/gfx/graphics/webGpu/shader/Shader.d.ts +0 -53
- package/dist/src/gfx/graphics/webGpu/shader/Shader.js +0 -205
- package/dist/src/gfx/graphics/webGpu/shader/ShaderPassBase.d.ts +0 -60
- package/dist/src/gfx/graphics/webGpu/shader/ShaderPassBase.js +0 -150
- package/dist/src/gfx/graphics/webGpu/shader/ShaderStage.d.ts +0 -5
- package/dist/src/gfx/graphics/webGpu/shader/ShaderStage.js +0 -6
- package/dist/src/gfx/graphics/webGpu/shader/converter/GLSLLexer.d.ts +0 -16
- package/dist/src/gfx/graphics/webGpu/shader/converter/GLSLLexer.js +0 -422
- package/dist/src/gfx/graphics/webGpu/shader/converter/GLSLLexerToken.d.ts +0 -174
- package/dist/src/gfx/graphics/webGpu/shader/converter/GLSLLexerToken.js +0 -388
- package/dist/src/gfx/graphics/webGpu/shader/converter/GLSLPreprocessor.d.ts +0 -10
- package/dist/src/gfx/graphics/webGpu/shader/converter/GLSLPreprocessor.js +0 -198
- package/dist/src/gfx/graphics/webGpu/shader/converter/GLSLSyntax.d.ts +0 -14
- package/dist/src/gfx/graphics/webGpu/shader/converter/GLSLSyntax.js +0 -106
- package/dist/src/gfx/graphics/webGpu/shader/converter/Reader.d.ts +0 -30
- package/dist/src/gfx/graphics/webGpu/shader/converter/Reader.js +0 -136
- package/dist/src/gfx/graphics/webGpu/shader/converter/ShaderConverter.d.ts +0 -47
- package/dist/src/gfx/graphics/webGpu/shader/converter/ShaderConverter.js +0 -69
- package/dist/src/gfx/graphics/webGpu/shader/converter/StatementNode.d.ts +0 -309
- package/dist/src/gfx/graphics/webGpu/shader/converter/StatementNode.js +0 -1804
- package/dist/src/gfx/graphics/webGpu/shader/converter/WGSLTranslator.d.ts +0 -50
- package/dist/src/gfx/graphics/webGpu/shader/converter/WGSLTranslator.js +0 -272
- package/dist/src/gfx/graphics/webGpu/shader/util/MorePassParser.d.ts +0 -25
- package/dist/src/gfx/graphics/webGpu/shader/util/MorePassParser.js +0 -134
- package/dist/src/gfx/graphics/webGpu/shader/util/Preprocessor.d.ts +0 -28
- package/dist/src/gfx/graphics/webGpu/shader/util/Preprocessor.js +0 -304
- package/dist/src/gfx/graphics/webGpu/shader/util/ShaderUtil.d.ts +0 -23
- package/dist/src/gfx/graphics/webGpu/shader/util/ShaderUtil.js +0 -6
- package/dist/src/gfx/graphics/webGpu/shader/value/ConstValue.d.ts +0 -1
- package/dist/src/gfx/graphics/webGpu/shader/value/ConstValue.js +0 -1
- package/dist/src/gfx/graphics/webGpu/shader/value/DefineValue.d.ts +0 -4
- package/dist/src/gfx/graphics/webGpu/shader/value/DefineValue.js +0 -1
- package/dist/src/gfx/graphics/webGpu/shader/value/ShaderReflectionInfo.d.ts +0 -57
- package/dist/src/gfx/graphics/webGpu/shader/value/ShaderReflectionInfo.js +0 -421
- package/dist/src/gfx/graphics/webGpu/shader/value/ShaderState.d.ts +0 -30
- package/dist/src/gfx/graphics/webGpu/shader/value/ShaderState.js +0 -113
- package/dist/src/gfx/graphics/webGpu/shader/value/ShaderValue.d.ts +0 -32
- package/dist/src/gfx/graphics/webGpu/shader/value/ShaderValue.js +0 -1
- package/dist/src/gfx/graphics/webGpu/shader/value/UniformValue.d.ts +0 -13
- package/dist/src/gfx/graphics/webGpu/shader/value/UniformValue.js +0 -9
- package/dist/src/gfx/renderJob/GPUContext.d.ts +0 -32
- package/dist/src/gfx/renderJob/GPUContext.js +0 -152
- package/dist/src/gfx/renderJob/collect/CollectInfo.d.ts +0 -7
- package/dist/src/gfx/renderJob/collect/CollectInfo.js +0 -10
- package/dist/src/gfx/renderJob/collect/ComponentCollect.d.ts +0 -29
- package/dist/src/gfx/renderJob/collect/ComponentCollect.js +0 -134
- package/dist/src/gfx/renderJob/collect/EntityBatchCollect.d.ts +0 -7
- package/dist/src/gfx/renderJob/collect/EntityBatchCollect.js +0 -24
- package/dist/src/gfx/renderJob/collect/EntityCollect.d.ts +0 -48
- package/dist/src/gfx/renderJob/collect/EntityCollect.js +0 -260
- package/dist/src/gfx/renderJob/collect/RenderGroup.d.ts +0 -7
- package/dist/src/gfx/renderJob/collect/RenderGroup.js +0 -1
- package/dist/src/gfx/renderJob/collect/RenderShaderCollect.d.ts +0 -9
- package/dist/src/gfx/renderJob/collect/RenderShaderCollect.js +0 -51
- package/dist/src/gfx/renderJob/collect/ShadowLightsCollect.d.ts +0 -20
- package/dist/src/gfx/renderJob/collect/ShadowLightsCollect.js +0 -182
- package/dist/src/gfx/renderJob/config/RTResourceConfig.d.ts +0 -10
- package/dist/src/gfx/renderJob/config/RTResourceConfig.js +0 -10
- package/dist/src/gfx/renderJob/config/RenderLayer.d.ts +0 -11
- package/dist/src/gfx/renderJob/config/RenderLayer.js +0 -20
- package/dist/src/gfx/renderJob/frame/GBufferFrame.d.ts +0 -19
- package/dist/src/gfx/renderJob/frame/GBufferFrame.js +0 -74
- package/dist/src/gfx/renderJob/frame/ProbeGBufferFrame.d.ts +0 -5
- package/dist/src/gfx/renderJob/frame/ProbeGBufferFrame.js +0 -37
- package/dist/src/gfx/renderJob/frame/RTFrame.d.ts +0 -17
- package/dist/src/gfx/renderJob/frame/RTFrame.js +0 -34
- package/dist/src/gfx/renderJob/frame/RTResourceMap.d.ts +0 -13
- package/dist/src/gfx/renderJob/frame/RTResourceMap.js +0 -71
- package/dist/src/gfx/renderJob/jobs/ForwardRenderJob.d.ts +0 -7
- package/dist/src/gfx/renderJob/jobs/ForwardRenderJob.js +0 -45
- package/dist/src/gfx/renderJob/jobs/RenderMap.d.ts +0 -12
- package/dist/src/gfx/renderJob/jobs/RenderMap.js +0 -29
- package/dist/src/gfx/renderJob/jobs/RendererJob.d.ts +0 -43
- package/dist/src/gfx/renderJob/jobs/RendererJob.js +0 -123
- package/dist/src/gfx/renderJob/occlusion/OcclusionSystem.d.ts +0 -16
- package/dist/src/gfx/renderJob/occlusion/OcclusionSystem.js +0 -30
- package/dist/src/gfx/renderJob/passRenderer/RenderContext.d.ts +0 -20
- package/dist/src/gfx/renderJob/passRenderer/RenderContext.js +0 -68
- package/dist/src/gfx/renderJob/passRenderer/RendererBase.d.ts +0 -40
- package/dist/src/gfx/renderJob/passRenderer/RendererBase.js +0 -155
- package/dist/src/gfx/renderJob/passRenderer/cluster/ClusterConfig.d.ts +0 -5
- package/dist/src/gfx/renderJob/passRenderer/cluster/ClusterConfig.js +0 -5
- package/dist/src/gfx/renderJob/passRenderer/cluster/ClusterLightingBuffer.d.ts +0 -10
- package/dist/src/gfx/renderJob/passRenderer/cluster/ClusterLightingBuffer.js +0 -29
- package/dist/src/gfx/renderJob/passRenderer/cluster/ClusterLightingRender.d.ts +0 -20
- package/dist/src/gfx/renderJob/passRenderer/cluster/ClusterLightingRender.js +0 -74
- package/dist/src/gfx/renderJob/passRenderer/color/ColorPassRenderer.d.ts +0 -12
- package/dist/src/gfx/renderJob/passRenderer/color/ColorPassRenderer.js +0 -97
- package/dist/src/gfx/renderJob/passRenderer/color/GUIPassRenderer.d.ts +0 -13
- package/dist/src/gfx/renderJob/passRenderer/color/GUIPassRenderer.js +0 -79
- package/dist/src/gfx/renderJob/passRenderer/cubeRenderer/ReflectionRenderer.d.ts +0 -36
- package/dist/src/gfx/renderJob/passRenderer/cubeRenderer/ReflectionRenderer.js +0 -172
- package/dist/src/gfx/renderJob/passRenderer/ddgi/DDGIIrradianceComputePass.d.ts +0 -18
- package/dist/src/gfx/renderJob/passRenderer/ddgi/DDGIIrradianceComputePass.js +0 -52
- package/dist/src/gfx/renderJob/passRenderer/ddgi/DDGIIrradianceGPUBufferReader.d.ts +0 -22
- package/dist/src/gfx/renderJob/passRenderer/ddgi/DDGIIrradianceGPUBufferReader.js +0 -68
- package/dist/src/gfx/renderJob/passRenderer/ddgi/DDGIIrradianceVolume.d.ts +0 -32
- package/dist/src/gfx/renderJob/passRenderer/ddgi/DDGIIrradianceVolume.js +0 -113
- package/dist/src/gfx/renderJob/passRenderer/ddgi/DDGILightingPass.d.ts +0 -17
- package/dist/src/gfx/renderJob/passRenderer/ddgi/DDGILightingPass.js +0 -47
- package/dist/src/gfx/renderJob/passRenderer/ddgi/DDGIMultiBouncePass.d.ts +0 -13
- package/dist/src/gfx/renderJob/passRenderer/ddgi/DDGIMultiBouncePass.js +0 -40
- package/dist/src/gfx/renderJob/passRenderer/ddgi/DDGIProbeRenderer.d.ts +0 -46
- package/dist/src/gfx/renderJob/passRenderer/ddgi/DDGIProbeRenderer.js +0 -292
- package/dist/src/gfx/renderJob/passRenderer/ddgi/Probe.d.ts +0 -6
- package/dist/src/gfx/renderJob/passRenderer/ddgi/Probe.js +0 -8
- package/dist/src/gfx/renderJob/passRenderer/post/PostRenderer.d.ts +0 -19
- package/dist/src/gfx/renderJob/passRenderer/post/PostRenderer.js +0 -61
- package/dist/src/gfx/renderJob/passRenderer/preDepth/PreDepthPassRenderer.d.ts +0 -16
- package/dist/src/gfx/renderJob/passRenderer/preDepth/PreDepthPassRenderer.js +0 -80
- package/dist/src/gfx/renderJob/passRenderer/preDepth/ZCullingCompute.d.ts +0 -12
- package/dist/src/gfx/renderJob/passRenderer/preDepth/ZCullingCompute.js +0 -26
- package/dist/src/gfx/renderJob/passRenderer/shadow/PointLightShadowRenderer.d.ts +0 -32
- package/dist/src/gfx/renderJob/passRenderer/shadow/PointLightShadowRenderer.js +0 -193
- package/dist/src/gfx/renderJob/passRenderer/shadow/ShadowMapPassRenderer.d.ts +0 -27
- package/dist/src/gfx/renderJob/passRenderer/shadow/ShadowMapPassRenderer.js +0 -224
- package/dist/src/gfx/renderJob/passRenderer/state/PassType.d.ts +0 -13
- package/dist/src/gfx/renderJob/passRenderer/state/PassType.js +0 -14
- package/dist/src/gfx/renderJob/passRenderer/state/RendererMask.d.ts +0 -18
- package/dist/src/gfx/renderJob/passRenderer/state/RendererMask.js +0 -27
- package/dist/src/gfx/renderJob/passRenderer/state/RendererPassState.d.ts +0 -27
- package/dist/src/gfx/renderJob/passRenderer/state/RendererPassState.js +0 -24
- package/dist/src/gfx/renderJob/post/BloomPost.d.ts +0 -45
- package/dist/src/gfx/renderJob/post/BloomPost.js +0 -245
- package/dist/src/gfx/renderJob/post/DepthOfFieldPost.d.ts +0 -56
- package/dist/src/gfx/renderJob/post/DepthOfFieldPost.js +0 -146
- package/dist/src/gfx/renderJob/post/FXAAPost.d.ts +0 -18
- package/dist/src/gfx/renderJob/post/FXAAPost.js +0 -34
- package/dist/src/gfx/renderJob/post/GBufferPost.d.ts +0 -35
- package/dist/src/gfx/renderJob/post/GBufferPost.js +0 -107
- package/dist/src/gfx/renderJob/post/GTAOPost.d.ts +0 -67
- package/dist/src/gfx/renderJob/post/GTAOPost.js +0 -167
- package/dist/src/gfx/renderJob/post/GlobalFog.d.ts +0 -69
- package/dist/src/gfx/renderJob/post/GlobalFog.js +0 -208
- package/dist/src/gfx/renderJob/post/GodRayPost.d.ts +0 -56
- package/dist/src/gfx/renderJob/post/GodRayPost.js +0 -126
- package/dist/src/gfx/renderJob/post/OutlinePost.d.ts +0 -93
- package/dist/src/gfx/renderJob/post/OutlinePost.js +0 -212
- package/dist/src/gfx/renderJob/post/PostBase.d.ts +0 -35
- package/dist/src/gfx/renderJob/post/PostBase.js +0 -78
- package/dist/src/gfx/renderJob/post/SSGIPost.d.ts +0 -67
- package/dist/src/gfx/renderJob/post/SSGIPost.js +0 -210
- package/dist/src/gfx/renderJob/post/SSRPost.d.ts +0 -76
- package/dist/src/gfx/renderJob/post/SSRPost.js +0 -238
- package/dist/src/gfx/renderJob/post/TAAPost.d.ts +0 -40
- package/dist/src/gfx/renderJob/post/TAAPost.js +0 -183
- package/dist/src/index.d.ts +0 -571
- package/dist/src/index.js +0 -571
- package/dist/src/io/InputSystem.d.ts +0 -49
- package/dist/src/io/InputSystem.js +0 -382
- package/dist/src/io/OutlineManager.d.ts +0 -11
- package/dist/src/io/OutlineManager.js +0 -39
- package/dist/src/io/OutlinePostData.d.ts +0 -22
- package/dist/src/io/OutlinePostData.js +0 -54
- package/dist/src/io/PickFire.d.ts +0 -32
- package/dist/src/io/PickFire.js +0 -195
- package/dist/src/io/PickResult.d.ts +0 -59
- package/dist/src/io/PickResult.js +0 -29
- package/dist/src/io/RayCastMeshDetail.d.ts +0 -32
- package/dist/src/io/RayCastMeshDetail.js +0 -119
- package/dist/src/io/TouchData.d.ts +0 -12
- package/dist/src/io/TouchData.js +0 -13
- package/dist/src/io/picker/PickCompute.d.ts +0 -14
- package/dist/src/io/picker/PickCompute.js +0 -53
- package/dist/src/loader/FileLoader.d.ts +0 -7
- package/dist/src/loader/FileLoader.js +0 -70
- package/dist/src/loader/LoaderBase.d.ts +0 -30
- package/dist/src/loader/LoaderBase.js +0 -156
- package/dist/src/loader/LoaderFunctions.d.ts +0 -7
- package/dist/src/loader/LoaderFunctions.js +0 -1
- package/dist/src/loader/LoaderManager.d.ts +0 -36
- package/dist/src/loader/LoaderManager.js +0 -83
- package/dist/src/loader/parser/AtlasParser.d.ts +0 -10
- package/dist/src/loader/parser/AtlasParser.js +0 -31
- package/dist/src/loader/parser/B3DMParser.d.ts +0 -24
- package/dist/src/loader/parser/B3DMParser.js +0 -108
- package/dist/src/loader/parser/FontParser.d.ts +0 -54
- package/dist/src/loader/parser/FontParser.js +0 -171
- package/dist/src/loader/parser/I3DMParser.d.ts +0 -7
- package/dist/src/loader/parser/I3DMParser.js +0 -17
- package/dist/src/loader/parser/OBJParser.d.ts +0 -72
- package/dist/src/loader/parser/OBJParser.js +0 -289
- package/dist/src/loader/parser/ParserBase.d.ts +0 -18
- package/dist/src/loader/parser/ParserBase.js +0 -17
- package/dist/src/loader/parser/ParserFormat.d.ts +0 -5
- package/dist/src/loader/parser/ParserFormat.js +0 -6
- package/dist/src/loader/parser/RGBEParser.d.ts +0 -40
- package/dist/src/loader/parser/RGBEParser.js +0 -248
- package/dist/src/loader/parser/b3dm/B3DMLoader.d.ts +0 -10
- package/dist/src/loader/parser/b3dm/B3DMLoader.js +0 -56
- package/dist/src/loader/parser/b3dm/B3DMLoaderBase.d.ts +0 -9
- package/dist/src/loader/parser/b3dm/B3DMLoaderBase.js +0 -31
- package/dist/src/loader/parser/b3dm/FeatureTable.d.ts +0 -14
- package/dist/src/loader/parser/b3dm/FeatureTable.js +0 -104
- package/dist/src/loader/parser/b3dm/arrayToString.d.ts +0 -1
- package/dist/src/loader/parser/b3dm/arrayToString.js +0 -4
- package/dist/src/loader/parser/b3dm/readMagicBytes.d.ts +0 -1
- package/dist/src/loader/parser/b3dm/readMagicBytes.js +0 -17
- package/dist/src/loader/parser/gis/GeoJsonParser.d.ts +0 -29
- package/dist/src/loader/parser/gis/GeoJsonParser.js +0 -15
- package/dist/src/loader/parser/gis/GeoJsonUtil.d.ts +0 -5
- package/dist/src/loader/parser/gis/GeoJsonUtil.js +0 -30
- package/dist/src/loader/parser/gltf/GLBParser.d.ts +0 -21
- package/dist/src/loader/parser/gltf/GLBParser.js +0 -133
- package/dist/src/loader/parser/gltf/GLTFInfo.d.ts +0 -137
- package/dist/src/loader/parser/gltf/GLTFInfo.js +0 -20
- package/dist/src/loader/parser/gltf/GLTFMaterial.d.ts +0 -24
- package/dist/src/loader/parser/gltf/GLTFMaterial.js +0 -2
- package/dist/src/loader/parser/gltf/GLTFParser.d.ts +0 -45
- package/dist/src/loader/parser/gltf/GLTFParser.js +0 -153
- package/dist/src/loader/parser/gltf/GLTFSubParser.d.ts +0 -47
- package/dist/src/loader/parser/gltf/GLTFSubParser.js +0 -366
- package/dist/src/loader/parser/gltf/GLTFSubParserCamera.d.ts +0 -7
- package/dist/src/loader/parser/gltf/GLTFSubParserCamera.js +0 -41
- package/dist/src/loader/parser/gltf/GLTFSubParserConverter.d.ts +0 -17
- package/dist/src/loader/parser/gltf/GLTFSubParserConverter.js +0 -416
- package/dist/src/loader/parser/gltf/GLTFSubParserMaterial.d.ts +0 -10
- package/dist/src/loader/parser/gltf/GLTFSubParserMaterial.js +0 -182
- package/dist/src/loader/parser/gltf/GLTFSubParserMesh.d.ts +0 -11
- package/dist/src/loader/parser/gltf/GLTFSubParserMesh.js +0 -170
- package/dist/src/loader/parser/gltf/GLTFSubParserSkeleton.d.ts +0 -15
- package/dist/src/loader/parser/gltf/GLTFSubParserSkeleton.js +0 -313
- package/dist/src/loader/parser/gltf/GLTFSubParserSkin.d.ts +0 -10
- package/dist/src/loader/parser/gltf/GLTFSubParserSkin.js +0 -66
- package/dist/src/loader/parser/gltf/GLTFType.d.ts +0 -22
- package/dist/src/loader/parser/gltf/GLTFType.js +0 -21
- package/dist/src/loader/parser/gltf/TypeArray.d.ts +0 -4
- package/dist/src/loader/parser/gltf/TypeArray.js +0 -98
- package/dist/src/loader/parser/gltf/extends/KHR_draco_mesh_compression.d.ts +0 -9
- package/dist/src/loader/parser/gltf/extends/KHR_draco_mesh_compression.js +0 -157
- package/dist/src/loader/parser/gltf/extends/KHR_lights_punctual.d.ts +0 -2
- package/dist/src/loader/parser/gltf/extends/KHR_lights_punctual.js +0 -2
- package/dist/src/loader/parser/gltf/extends/KHR_materials_clearcoat.d.ts +0 -7
- package/dist/src/loader/parser/gltf/extends/KHR_materials_clearcoat.js +0 -26
- package/dist/src/loader/parser/gltf/extends/KHR_materials_emissive_strength.d.ts +0 -3
- package/dist/src/loader/parser/gltf/extends/KHR_materials_emissive_strength.js +0 -17
- package/dist/src/loader/parser/gltf/extends/KHR_materials_ior.d.ts +0 -2
- package/dist/src/loader/parser/gltf/extends/KHR_materials_ior.js +0 -2
- package/dist/src/loader/parser/gltf/extends/KHR_materials_unlit.d.ts +0 -3
- package/dist/src/loader/parser/gltf/extends/KHR_materials_unlit.js +0 -12
- package/dist/src/loader/parser/i3dm/I3DMLoader.d.ts +0 -17
- package/dist/src/loader/parser/i3dm/I3DMLoader.js +0 -97
- package/dist/src/loader/parser/i3dm/I3DMLoaderBase.d.ts +0 -9
- package/dist/src/loader/parser/i3dm/I3DMLoaderBase.js +0 -40
- package/dist/src/loader/parser/prefab/PrefabAvatarParser.d.ts +0 -9
- package/dist/src/loader/parser/prefab/PrefabAvatarParser.js +0 -38
- package/dist/src/loader/parser/prefab/PrefabMaterialParser.d.ts +0 -9
- package/dist/src/loader/parser/prefab/PrefabMaterialParser.js +0 -115
- package/dist/src/loader/parser/prefab/PrefabMeshParser.d.ts +0 -10
- package/dist/src/loader/parser/prefab/PrefabMeshParser.js +0 -133
- package/dist/src/loader/parser/prefab/PrefabParser.d.ts +0 -16
- package/dist/src/loader/parser/prefab/PrefabParser.js +0 -72
- package/dist/src/loader/parser/prefab/PrefabStringUtil.d.ts +0 -12
- package/dist/src/loader/parser/prefab/PrefabStringUtil.js +0 -41
- package/dist/src/loader/parser/prefab/PrefabTextureParser.d.ts +0 -10
- package/dist/src/loader/parser/prefab/PrefabTextureParser.js +0 -32
- package/dist/src/loader/parser/prefab/mats/MaterialUtilities.d.ts +0 -8
- package/dist/src/loader/parser/prefab/mats/MaterialUtilities.js +0 -138
- package/dist/src/loader/parser/prefab/mats/shader/LitSSSShader.d.ts +0 -24
- package/dist/src/loader/parser/prefab/mats/shader/LitSSSShader.js +0 -139
- package/dist/src/loader/parser/prefab/mats/shader/LitShader.d.ts +0 -19
- package/dist/src/loader/parser/prefab/mats/shader/LitShader.js +0 -117
- package/dist/src/loader/parser/prefab/mats/shader/QuadShader.d.ts +0 -4
- package/dist/src/loader/parser/prefab/mats/shader/QuadShader.js +0 -39
- package/dist/src/loader/parser/prefab/mats/shader/ReflectionShader.d.ts +0 -19
- package/dist/src/loader/parser/prefab/mats/shader/ReflectionShader.js +0 -79
- package/dist/src/loader/parser/prefab/mats/shader/SkyShader.d.ts +0 -4
- package/dist/src/loader/parser/prefab/mats/shader/SkyShader.js +0 -35
- package/dist/src/loader/parser/prefab/mats/shader/StandShader.d.ts +0 -220
- package/dist/src/loader/parser/prefab/mats/shader/StandShader.js +0 -420
- package/dist/src/loader/parser/prefab/mats/shader/UnLitShader.d.ts +0 -19
- package/dist/src/loader/parser/prefab/mats/shader/UnLitShader.js +0 -95
- package/dist/src/loader/parser/prefab/mats/shader/UnLitTexArrayShader.d.ts +0 -19
- package/dist/src/loader/parser/prefab/mats/shader/UnLitTexArrayShader.js +0 -100
- package/dist/src/loader/parser/prefab/prefabData/BlendShapeData.d.ts +0 -11
- package/dist/src/loader/parser/prefab/prefabData/BlendShapeData.js +0 -19
- package/dist/src/loader/parser/prefab/prefabData/BlendShapePropertyData.d.ts +0 -9
- package/dist/src/loader/parser/prefab/prefabData/BlendShapePropertyData.js +0 -17
- package/dist/src/loader/parser/prefab/prefabData/KVData.d.ts +0 -9
- package/dist/src/loader/parser/prefab/prefabData/KVData.js +0 -12
- package/dist/src/loader/parser/prefab/prefabData/PrefabAvatarData.d.ts +0 -9
- package/dist/src/loader/parser/prefab/prefabData/PrefabAvatarData.js +0 -15
- package/dist/src/loader/parser/prefab/prefabData/PrefabBoneData.d.ts +0 -16
- package/dist/src/loader/parser/prefab/prefabData/PrefabBoneData.js +0 -14
- package/dist/src/loader/parser/prefab/prefabData/PrefabMeshData.d.ts +0 -19
- package/dist/src/loader/parser/prefab/prefabData/PrefabMeshData.js +0 -2
- package/dist/src/loader/parser/prefab/prefabData/PrefabNode.d.ts +0 -19
- package/dist/src/loader/parser/prefab/prefabData/PrefabNode.js +0 -40
- package/dist/src/loader/parser/prefab/prefabData/PrefabTextureData.d.ts +0 -14
- package/dist/src/loader/parser/prefab/prefabData/PrefabTextureData.js +0 -2
- package/dist/src/loader/parser/prefab/prefabData/ValueParser.d.ts +0 -16
- package/dist/src/loader/parser/prefab/prefabData/ValueParser.js +0 -117
- package/dist/src/loader/parser/prefab/prefabData/ValueType.d.ts +0 -35
- package/dist/src/loader/parser/prefab/prefabData/ValueType.js +0 -36
- package/dist/src/loader/parser/tileRenderer/TileSet.d.ts +0 -45
- package/dist/src/loader/parser/tileRenderer/TileSet.js +0 -10
- package/dist/src/loader/parser/tileRenderer/TilesRenderer.d.ts +0 -12
- package/dist/src/loader/parser/tileRenderer/TilesRenderer.js +0 -88
- package/dist/src/materials/BlendMode.d.ts +0 -58
- package/dist/src/materials/BlendMode.js +0 -132
- package/dist/src/materials/ColorLitMaterial.d.ts +0 -14
- package/dist/src/materials/ColorLitMaterial.js +0 -45
- package/dist/src/materials/GIProbeMaterial.d.ts +0 -15
- package/dist/src/materials/GIProbeMaterial.js +0 -42
- package/dist/src/materials/LambertMaterial.d.ts +0 -39
- package/dist/src/materials/LambertMaterial.js +0 -71
- package/dist/src/materials/LitMaterial.d.ts +0 -49
- package/dist/src/materials/LitMaterial.js +0 -170
- package/dist/src/materials/Material.d.ts +0 -88
- package/dist/src/materials/Material.js +0 -194
- package/dist/src/materials/MaterialRegister.d.ts +0 -9
- package/dist/src/materials/MaterialRegister.js +0 -1
- package/dist/src/materials/ReflectionMaterial.d.ts +0 -13
- package/dist/src/materials/ReflectionMaterial.js +0 -29
- package/dist/src/materials/SkyMaterial.d.ts +0 -23
- package/dist/src/materials/SkyMaterial.js +0 -56
- package/dist/src/materials/UnLitMaterial.d.ts +0 -33
- package/dist/src/materials/UnLitMaterial.js +0 -45
- package/dist/src/materials/UnLitTexArrayMaterial.d.ts +0 -20
- package/dist/src/materials/UnLitTexArrayMaterial.js +0 -32
- package/dist/src/materials/multiPass/CastPointShadowMaterialPass.d.ts +0 -4
- package/dist/src/materials/multiPass/CastPointShadowMaterialPass.js +0 -16
- package/dist/src/materials/multiPass/CastShadowMaterialPass.d.ts +0 -4
- package/dist/src/materials/multiPass/CastShadowMaterialPass.js +0 -16
- package/dist/src/materials/multiPass/DepthMaterialPass.d.ts +0 -4
- package/dist/src/materials/multiPass/DepthMaterialPass.js +0 -11
- package/dist/src/materials/multiPass/GBufferPass.d.ts +0 -5
- package/dist/src/materials/multiPass/GBufferPass.js +0 -19
- package/dist/src/materials/multiPass/SkyGBufferPass.d.ts +0 -4
- package/dist/src/materials/multiPass/SkyGBufferPass.js +0 -18
- package/dist/src/math/AnimationCurve.d.ts +0 -42
- package/dist/src/math/AnimationCurve.js +0 -191
- package/dist/src/math/AnimationCurveClip.d.ts +0 -15
- package/dist/src/math/AnimationCurveClip.js +0 -46
- package/dist/src/math/AnimationCurveT.d.ts +0 -24
- package/dist/src/math/AnimationCurveT.js +0 -105
- package/dist/src/math/BiMap.d.ts +0 -9
- package/dist/src/math/BiMap.js +0 -37
- package/dist/src/math/Color.d.ts +0 -249
- package/dist/src/math/Color.js +0 -381
- package/dist/src/math/ColorGradient.d.ts +0 -6
- package/dist/src/math/ColorGradient.js +0 -14
- package/dist/src/math/CubicBezierCurve.d.ts +0 -47
- package/dist/src/math/CubicBezierCurve.js +0 -100
- package/dist/src/math/CubicBezierPath.d.ts +0 -37
- package/dist/src/math/CubicBezierPath.js +0 -234
- package/dist/src/math/HaltonSeq.d.ts +0 -13
- package/dist/src/math/HaltonSeq.js +0 -45
- package/dist/src/math/Line.d.ts +0 -39
- package/dist/src/math/Line.js +0 -240
- package/dist/src/math/MathUtil.d.ts +0 -86
- package/dist/src/math/MathUtil.js +0 -480
- package/dist/src/math/Matrix3.d.ts +0 -183
- package/dist/src/math/Matrix3.js +0 -511
- package/dist/src/math/Matrix4.d.ts +0 -557
- package/dist/src/math/Matrix4.js +0 -2571
- package/dist/src/math/OrderMap.d.ts +0 -11
- package/dist/src/math/OrderMap.js +0 -56
- package/dist/src/math/Orientation3D.d.ts +0 -5
- package/dist/src/math/Orientation3D.js +0 -5
- package/dist/src/math/ParticleMath.d.ts +0 -22
- package/dist/src/math/ParticleMath.js +0 -26
- package/dist/src/math/ParticleSystemCurves.d.ts +0 -85
- package/dist/src/math/ParticleSystemCurves.js +0 -184
- package/dist/src/math/Plane3D.d.ts +0 -173
- package/dist/src/math/Plane3D.js +0 -191
- package/dist/src/math/PlaneClassification.d.ts +0 -32
- package/dist/src/math/PlaneClassification.js +0 -32
- package/dist/src/math/PolynomialCurve.d.ts +0 -43
- package/dist/src/math/PolynomialCurve.js +0 -236
- package/dist/src/math/Polynomials.d.ts +0 -12
- package/dist/src/math/Polynomials.js +0 -73
- package/dist/src/math/Quaternion.d.ts +0 -42
- package/dist/src/math/Quaternion.js +0 -406
- package/dist/src/math/Rand.d.ts +0 -15
- package/dist/src/math/Rand.js +0 -48
- package/dist/src/math/Random.d.ts +0 -67
- package/dist/src/math/Random.js +0 -543
- package/dist/src/math/Ray.d.ts +0 -41
- package/dist/src/math/Ray.js +0 -304
- package/dist/src/math/Rect.d.ts +0 -21
- package/dist/src/math/Rect.js +0 -108
- package/dist/src/math/TimeInterpolator.d.ts +0 -179
- package/dist/src/math/TimeInterpolator.js +0 -334
- package/dist/src/math/Triangle.d.ts +0 -33
- package/dist/src/math/Triangle.js +0 -113
- package/dist/src/math/UV.d.ts +0 -10
- package/dist/src/math/UV.js +0 -21
- package/dist/src/math/Vector2.d.ts +0 -38
- package/dist/src/math/Vector2.js +0 -166
- package/dist/src/math/Vector3.d.ts +0 -107
- package/dist/src/math/Vector3.js +0 -561
- package/dist/src/math/Vector4.d.ts +0 -34
- package/dist/src/math/Vector4.js +0 -77
- package/dist/src/math/enum/FrameCache.d.ts +0 -6
- package/dist/src/math/enum/FrameCache.js +0 -5
- package/dist/src/math/enum/Keyframe.d.ts +0 -14
- package/dist/src/math/enum/Keyframe.js +0 -27
- package/dist/src/math/enum/T/KeyframeT.d.ts +0 -18
- package/dist/src/math/enum/T/KeyframeT.js +0 -113
- package/dist/src/math/enum/T/ValueOp.d.ts +0 -4
- package/dist/src/math/enum/T/ValueOp.js +0 -32
- package/dist/src/math/enum/WrapTimeMode.d.ts +0 -5
- package/dist/src/math/enum/WrapTimeMode.js +0 -6
- package/dist/src/math/navigation/DoubleArray.d.ts +0 -11
- package/dist/src/math/navigation/DoubleArray.js +0 -44
- package/dist/src/math/navigation/Navi3DAstar.d.ts +0 -16
- package/dist/src/math/navigation/Navi3DAstar.js +0 -82
- package/dist/src/math/navigation/Navi3DConst.d.ts +0 -5
- package/dist/src/math/navigation/Navi3DConst.js +0 -8
- package/dist/src/math/navigation/Navi3DEdge.d.ts +0 -33
- package/dist/src/math/navigation/Navi3DEdge.js +0 -109
- package/dist/src/math/navigation/Navi3DFunnel.d.ts +0 -19
- package/dist/src/math/navigation/Navi3DFunnel.js +0 -254
- package/dist/src/math/navigation/Navi3DMaskType.d.ts +0 -3
- package/dist/src/math/navigation/Navi3DMaskType.js +0 -3
- package/dist/src/math/navigation/Navi3DMesh.d.ts +0 -27
- package/dist/src/math/navigation/Navi3DMesh.js +0 -122
- package/dist/src/math/navigation/Navi3DPoint.d.ts +0 -13
- package/dist/src/math/navigation/Navi3DPoint.js +0 -27
- package/dist/src/math/navigation/Navi3DPoint2D.d.ts +0 -10
- package/dist/src/math/navigation/Navi3DPoint2D.js +0 -26
- package/dist/src/math/navigation/Navi3DPointFat.d.ts +0 -11
- package/dist/src/math/navigation/Navi3DPointFat.js +0 -24
- package/dist/src/math/navigation/Navi3DRouter.d.ts +0 -29
- package/dist/src/math/navigation/Navi3DRouter.js +0 -173
- package/dist/src/math/navigation/Navi3DTriangle.d.ts +0 -44
- package/dist/src/math/navigation/Navi3DTriangle.js +0 -167
- package/dist/src/setting/EngineSetting.d.ts +0 -23
- package/dist/src/setting/EngineSetting.js +0 -1
- package/dist/src/setting/GlobalIlluminationSetting.d.ts +0 -115
- package/dist/src/setting/GlobalIlluminationSetting.js +0 -1
- package/dist/src/setting/LightSetting.d.ts +0 -3
- package/dist/src/setting/LightSetting.js +0 -1
- package/dist/src/setting/LoaderSetting.d.ts +0 -3
- package/dist/src/setting/LoaderSetting.js +0 -1
- package/dist/src/setting/MaterialSetting.d.ts +0 -5
- package/dist/src/setting/MaterialSetting.js +0 -1
- package/dist/src/setting/OcclusionQuerySetting.d.ts +0 -12
- package/dist/src/setting/OcclusionQuerySetting.js +0 -1
- package/dist/src/setting/PickSetting.d.ts +0 -5
- package/dist/src/setting/PickSetting.js +0 -1
- package/dist/src/setting/ReflectionSetting.d.ts +0 -7
- package/dist/src/setting/ReflectionSetting.js +0 -1
- package/dist/src/setting/RenderSetting.d.ts +0 -51
- package/dist/src/setting/RenderSetting.js +0 -1
- package/dist/src/setting/ShadowSetting.d.ts +0 -17
- package/dist/src/setting/ShadowSetting.js +0 -1
- package/dist/src/setting/SkySetting.d.ts +0 -8
- package/dist/src/setting/SkySetting.js +0 -1
- package/dist/src/setting/post/BloomSetting.d.ts +0 -11
- package/dist/src/setting/post/BloomSetting.js +0 -1
- package/dist/src/setting/post/DepthOfViewSetting.d.ts +0 -7
- package/dist/src/setting/post/DepthOfViewSetting.js +0 -1
- package/dist/src/setting/post/GTAOSetting.d.ts +0 -11
- package/dist/src/setting/post/GTAOSetting.js +0 -1
- package/dist/src/setting/post/GlobalFogSetting.d.ts +0 -19
- package/dist/src/setting/post/GlobalFogSetting.js +0 -1
- package/dist/src/setting/post/GodRaySetting.d.ts +0 -7
- package/dist/src/setting/post/GodRaySetting.js +0 -1
- package/dist/src/setting/post/OutlineSetting.d.ts +0 -10
- package/dist/src/setting/post/OutlineSetting.js +0 -1
- package/dist/src/setting/post/SSRSetting.d.ts +0 -12
- package/dist/src/setting/post/SSRSetting.js +0 -1
- package/dist/src/setting/post/TAASetting.d.ts +0 -9
- package/dist/src/setting/post/TAASetting.js +0 -1
- package/dist/src/shape/BoxGeometry.d.ts +0 -28
- package/dist/src/shape/BoxGeometry.js +0 -184
- package/dist/src/shape/CylinderGeometry.d.ts +0 -60
- package/dist/src/shape/CylinderGeometry.js +0 -171
- package/dist/src/shape/PlaneGeometry.d.ts +0 -11
- package/dist/src/shape/PlaneGeometry.js +0 -105
- package/dist/src/shape/SphereGeometry.d.ts +0 -25
- package/dist/src/shape/SphereGeometry.js +0 -102
- package/dist/src/shape/TorusGeometry.d.ts +0 -33
- package/dist/src/shape/TorusGeometry.js +0 -88
- package/dist/src/shape/TrailGeometry.d.ts +0 -18
- package/dist/src/shape/TrailGeometry.js +0 -68
- package/dist/src/shape/TriGeometry.d.ts +0 -13
- package/dist/src/shape/TriGeometry.js +0 -47
- package/dist/src/textures/AtmosphericScatteringSky.d.ts +0 -42
- package/dist/src/textures/AtmosphericScatteringSky.js +0 -97
- package/dist/src/textures/BitmapTexture2D.d.ts +0 -12
- package/dist/src/textures/BitmapTexture2D.js +0 -94
- package/dist/src/textures/BitmapTexture2DArray.d.ts +0 -15
- package/dist/src/textures/BitmapTexture2DArray.js +0 -87
- package/dist/src/textures/BitmapTextureCube.d.ts +0 -14
- package/dist/src/textures/BitmapTextureCube.js +0 -181
- package/dist/src/textures/Depth2DTextureArray.d.ts +0 -9
- package/dist/src/textures/Depth2DTextureArray.js +0 -43
- package/dist/src/textures/DepthCubeArrayTexture.d.ts +0 -9
- package/dist/src/textures/DepthCubeArrayTexture.js +0 -46
- package/dist/src/textures/Float16ArrayTexture.d.ts +0 -28
- package/dist/src/textures/Float16ArrayTexture.js +0 -84
- package/dist/src/textures/Float32ArrayTexture.d.ts +0 -5
- package/dist/src/textures/Float32ArrayTexture.js +0 -61
- package/dist/src/textures/HDRTexture.d.ts +0 -7
- package/dist/src/textures/HDRTexture.js +0 -52
- package/dist/src/textures/HDRTextureCube.d.ts +0 -16
- package/dist/src/textures/HDRTextureCube.js +0 -50
- package/dist/src/textures/LDRTextureCube.d.ts +0 -13
- package/dist/src/textures/LDRTextureCube.js +0 -49
- package/dist/src/textures/RenderTexture.d.ts +0 -12
- package/dist/src/textures/RenderTexture.js +0 -140
- package/dist/src/textures/SolidColorSky.d.ts +0 -11
- package/dist/src/textures/SolidColorSky.js +0 -29
- package/dist/src/textures/TextureCubeFaceData.d.ts +0 -19
- package/dist/src/textures/TextureCubeFaceData.js +0 -55
- package/dist/src/textures/Uint8ArrayTexture.d.ts +0 -6
- package/dist/src/textures/Uint8ArrayTexture.js +0 -63
- package/dist/src/textures/VirtualTexture.d.ts +0 -29
- package/dist/src/textures/VirtualTexture.js +0 -152
- package/dist/src/util/AxisObject.d.ts +0 -11
- package/dist/src/util/AxisObject.js +0 -52
- package/dist/src/util/BoundUtil.d.ts +0 -12
- package/dist/src/util/BoundUtil.js +0 -73
- package/dist/src/util/BytesArray.d.ts +0 -49
- package/dist/src/util/BytesArray.js +0 -257
- package/dist/src/util/CameraUtil.d.ts +0 -10
- package/dist/src/util/CameraUtil.js +0 -62
- package/dist/src/util/Convert.d.ts +0 -1
- package/dist/src/util/Convert.js +0 -24
- package/dist/src/util/GeometryUtil.d.ts +0 -12
- package/dist/src/util/GeometryUtil.js +0 -55
- package/dist/src/util/Global.d.ts +0 -15
- package/dist/src/util/Global.js +0 -57
- package/dist/src/util/GridObject.d.ts +0 -12
- package/dist/src/util/GridObject.js +0 -94
- package/dist/src/util/KelvinUtil.d.ts +0 -40
- package/dist/src/util/KelvinUtil.js +0 -79
- package/dist/src/util/Object3DUtil.d.ts +0 -25
- package/dist/src/util/Object3DUtil.js +0 -121
- package/dist/src/util/ProfilerUtil.d.ts +0 -49
- package/dist/src/util/ProfilerUtil.js +0 -141
- package/dist/src/util/Reference.d.ts +0 -37
- package/dist/src/util/Reference.js +0 -67
- package/dist/src/util/SerializeDecoration.d.ts +0 -9
- package/dist/src/util/SerializeDecoration.js +0 -95
- package/dist/src/util/StringUtil.d.ts +0 -23
- package/dist/src/util/StringUtil.js +0 -250
- package/dist/src/util/Time.d.ts +0 -9
- package/dist/src/util/Time.js +0 -14
- package/dist/src/util/Vector3Ex.d.ts +0 -16
- package/dist/src/util/Vector3Ex.js +0 -84
- package/dist/src/util/ZSorterUtil.d.ts +0 -13
- package/dist/src/util/ZSorterUtil.js +0 -51
- package/dist/src/util/struct/Struct.d.ts +0 -17
- package/dist/src/util/struct/Struct.js +0 -101
- package/dist/src/util/transformUtil/Object3DTransformTools.d.ts +0 -37
- package/dist/src/util/transformUtil/Object3DTransformTools.js +0 -136
- package/dist/src/util/transformUtil/RotationControlComponents.d.ts +0 -21
- package/dist/src/util/transformUtil/RotationControlComponents.js +0 -198
- package/dist/src/util/transformUtil/ScaleControlComponents.d.ts +0 -11
- package/dist/src/util/transformUtil/ScaleControlComponents.js +0 -132
- package/dist/src/util/transformUtil/TransformAxisEnum.d.ts +0 -11
- package/dist/src/util/transformUtil/TransformAxisEnum.js +0 -12
- package/dist/src/util/transformUtil/TransformControllerBaseComponent.d.ts +0 -48
- package/dist/src/util/transformUtil/TransformControllerBaseComponent.js +0 -283
- package/dist/src/util/transformUtil/TransformMode.d.ts +0 -6
- package/dist/src/util/transformUtil/TransformMode.js +0 -7
- package/dist/src/util/transformUtil/TransformSpaceMode.d.ts +0 -4
- package/dist/src/util/transformUtil/TransformSpaceMode.js +0 -5
- package/dist/src/util/transformUtil/TranslationControlComponents.d.ts +0 -12
- package/dist/src/util/transformUtil/TranslationControlComponents.js +0 -164
package/dist/rings.es.max.js
CHANGED
|
@@ -2088,11 +2088,7 @@ function RegisterComponent(cls, key, p1, p2, p3) {
|
|
|
2088
2088
|
if (!dic) {
|
|
2089
2089
|
dic = window["__Component__"] = {};
|
|
2090
2090
|
}
|
|
2091
|
-
|
|
2092
|
-
dic[key] = cls;
|
|
2093
|
-
} else {
|
|
2094
|
-
dic[cls.name] = cls;
|
|
2095
|
-
}
|
|
2091
|
+
dic[key] = cls;
|
|
2096
2092
|
}
|
|
2097
2093
|
function GetComponentClass(name) {
|
|
2098
2094
|
let coms = window["__Component__"];
|
|
@@ -2106,11 +2102,7 @@ function RegisterShader(cls, key, p1, p2, p3) {
|
|
|
2106
2102
|
if (!dic) {
|
|
2107
2103
|
dic = window["__shader__"] = {};
|
|
2108
2104
|
}
|
|
2109
|
-
|
|
2110
|
-
dic[key] = cls;
|
|
2111
|
-
} else {
|
|
2112
|
-
dic[cls.name] = cls;
|
|
2113
|
-
}
|
|
2105
|
+
dic[key] = cls;
|
|
2114
2106
|
}
|
|
2115
2107
|
function GetShader(name) {
|
|
2116
2108
|
let coms = window["__shader__"];
|
|
@@ -2121,7 +2113,7 @@ function GetShader(name) {
|
|
|
2121
2113
|
}
|
|
2122
2114
|
|
|
2123
2115
|
var __defProp$2 = Object.defineProperty;
|
|
2124
|
-
var __decorateClass$
|
|
2116
|
+
var __decorateClass$j = (decorators, target, key, kind) => {
|
|
2125
2117
|
var result = void 0 ;
|
|
2126
2118
|
for (var i = decorators.length - 1, decorator; i >= 0; i--)
|
|
2127
2119
|
if (decorator = decorators[i])
|
|
@@ -2132,6 +2124,10 @@ var __decorateClass$i = (decorators, target, key, kind) => {
|
|
|
2132
2124
|
const _Struct = class _Struct {
|
|
2133
2125
|
__refection;
|
|
2134
2126
|
__size = 0;
|
|
2127
|
+
/**
|
|
2128
|
+
* get reflection name
|
|
2129
|
+
* @returns
|
|
2130
|
+
*/
|
|
2135
2131
|
getValueType() {
|
|
2136
2132
|
if (!this.__refection) {
|
|
2137
2133
|
let self = this;
|
|
@@ -2149,6 +2145,11 @@ const _Struct = class _Struct {
|
|
|
2149
2145
|
}
|
|
2150
2146
|
return this.__refection;
|
|
2151
2147
|
}
|
|
2148
|
+
/**
|
|
2149
|
+
* get any type value memory size
|
|
2150
|
+
* @param value any type value
|
|
2151
|
+
* @returns
|
|
2152
|
+
*/
|
|
2152
2153
|
static getValueSize(value) {
|
|
2153
2154
|
let type = value.constructor.name;
|
|
2154
2155
|
switch (type) {
|
|
@@ -2195,6 +2196,10 @@ const _Struct = class _Struct {
|
|
|
2195
2196
|
}
|
|
2196
2197
|
return struct;
|
|
2197
2198
|
}
|
|
2199
|
+
/**
|
|
2200
|
+
* get any struct memory size
|
|
2201
|
+
* @returns
|
|
2202
|
+
*/
|
|
2198
2203
|
static GetSize(c) {
|
|
2199
2204
|
let struct = this.Get(c);
|
|
2200
2205
|
if (struct.__size == 0) {
|
|
@@ -2211,10 +2216,10 @@ const _Struct = class _Struct {
|
|
|
2211
2216
|
return struct.__size;
|
|
2212
2217
|
}
|
|
2213
2218
|
};
|
|
2214
|
-
__decorateClass$
|
|
2219
|
+
__decorateClass$j([
|
|
2215
2220
|
NonSerialize
|
|
2216
2221
|
], _Struct.prototype, "__refection");
|
|
2217
|
-
__decorateClass$
|
|
2222
|
+
__decorateClass$j([
|
|
2218
2223
|
NonSerialize
|
|
2219
2224
|
], _Struct.prototype, "__size");
|
|
2220
2225
|
let Struct = _Struct;
|
|
@@ -11821,6 +11826,21 @@ class Matrix4 {
|
|
|
11821
11826
|
target.transformDir(fromDirection, toDirection);
|
|
11822
11827
|
return target;
|
|
11823
11828
|
}
|
|
11829
|
+
/**
|
|
11830
|
+
* Create a matrix from an array of 16 numbers
|
|
11831
|
+
* @param array Array of 16 numbers
|
|
11832
|
+
* @returns Matrix4 result
|
|
11833
|
+
*/
|
|
11834
|
+
static fromArray(array) {
|
|
11835
|
+
if (array.length !== 16) {
|
|
11836
|
+
throw new Error("Array must contain exactly 16 elements");
|
|
11837
|
+
}
|
|
11838
|
+
const matrix = new Matrix4();
|
|
11839
|
+
for (let i = 0; i < 16; i++) {
|
|
11840
|
+
matrix.rawData[i] = array[i];
|
|
11841
|
+
}
|
|
11842
|
+
return matrix;
|
|
11843
|
+
}
|
|
11824
11844
|
/**
|
|
11825
11845
|
* Generate a matrix (rotate degrees with x,y,z as the center axis)
|
|
11826
11846
|
* @param x x on the central axis
|
|
@@ -16470,9 +16490,9 @@ class Entity extends CEventDispatcher {
|
|
|
16470
16490
|
}
|
|
16471
16491
|
}
|
|
16472
16492
|
|
|
16473
|
-
var __getOwnPropDesc$
|
|
16474
|
-
var __decorateClass$
|
|
16475
|
-
var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$
|
|
16493
|
+
var __getOwnPropDesc$i = Object.getOwnPropertyDescriptor;
|
|
16494
|
+
var __decorateClass$i = (decorators, target, key, kind) => {
|
|
16495
|
+
var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$i(target, key) : target;
|
|
16476
16496
|
for (var i = decorators.length - 1, decorator; i >= 0; i--)
|
|
16477
16497
|
if (decorator = decorators[i])
|
|
16478
16498
|
result = (decorator(result)) || result;
|
|
@@ -16737,7 +16757,7 @@ let Object3D = class extends Entity {
|
|
|
16737
16757
|
super.destroy(force);
|
|
16738
16758
|
}
|
|
16739
16759
|
};
|
|
16740
|
-
Object3D = __decorateClass$
|
|
16760
|
+
Object3D = __decorateClass$i([
|
|
16741
16761
|
DecorateObject3D
|
|
16742
16762
|
], Object3D);
|
|
16743
16763
|
function DecorateObject3D(ctor, _) {
|
|
@@ -22389,7 +22409,7 @@ class Reference {
|
|
|
22389
22409
|
}
|
|
22390
22410
|
/**
|
|
22391
22411
|
* current instance attached from parent instance
|
|
22392
|
-
* @param ref reference current
|
|
22412
|
+
* @param ref reference current
|
|
22393
22413
|
* @param target reference parent
|
|
22394
22414
|
*/
|
|
22395
22415
|
attached(ref, target) {
|
|
@@ -22401,7 +22421,7 @@ class Reference {
|
|
|
22401
22421
|
}
|
|
22402
22422
|
/**
|
|
22403
22423
|
* current instance detached from parent instance
|
|
22404
|
-
* @param ref reference current
|
|
22424
|
+
* @param ref reference current
|
|
22405
22425
|
* @param target reference parent
|
|
22406
22426
|
*/
|
|
22407
22427
|
detached(ref, target) {
|
|
@@ -22411,7 +22431,7 @@ class Reference {
|
|
|
22411
22431
|
}
|
|
22412
22432
|
}
|
|
22413
22433
|
/**
|
|
22414
|
-
* current instance has reference
|
|
22434
|
+
* current instance has reference
|
|
22415
22435
|
*/
|
|
22416
22436
|
hasReference(ref) {
|
|
22417
22437
|
let refMap = this.reference.get(ref);
|
|
@@ -22422,8 +22442,8 @@ class Reference {
|
|
|
22422
22442
|
}
|
|
22423
22443
|
/**
|
|
22424
22444
|
* get current instance reference count
|
|
22425
|
-
* @param ref
|
|
22426
|
-
* @returns
|
|
22445
|
+
* @param ref
|
|
22446
|
+
* @returns
|
|
22427
22447
|
*/
|
|
22428
22448
|
getReferenceCount(ref) {
|
|
22429
22449
|
let refMap = this.reference.get(ref);
|
|
@@ -22433,10 +22453,10 @@ class Reference {
|
|
|
22433
22453
|
return 0;
|
|
22434
22454
|
}
|
|
22435
22455
|
/**
|
|
22436
|
-
|
|
22437
|
-
|
|
22438
|
-
|
|
22439
|
-
|
|
22456
|
+
* get current instance reference from where
|
|
22457
|
+
* @param ref
|
|
22458
|
+
* @returns
|
|
22459
|
+
*/
|
|
22440
22460
|
getReference(ref) {
|
|
22441
22461
|
let refMap = this.reference.get(ref);
|
|
22442
22462
|
if (refMap) {
|
|
@@ -23515,9 +23535,9 @@ class OctreeEntity {
|
|
|
23515
23535
|
}
|
|
23516
23536
|
|
|
23517
23537
|
var __defProp$1 = Object.defineProperty;
|
|
23518
|
-
var __getOwnPropDesc$
|
|
23519
|
-
var __decorateClass$
|
|
23520
|
-
var result = __getOwnPropDesc$
|
|
23538
|
+
var __getOwnPropDesc$h = Object.getOwnPropertyDescriptor;
|
|
23539
|
+
var __decorateClass$h = (decorators, target, key, kind) => {
|
|
23540
|
+
var result = __getOwnPropDesc$h(target, key) ;
|
|
23521
23541
|
for (var i = decorators.length - 1, decorator; i >= 0; i--)
|
|
23522
23542
|
if (decorator = decorators[i])
|
|
23523
23543
|
result = (decorator(target, key, result) ) || result;
|
|
@@ -24102,20 +24122,20 @@ class RenderNode extends ComponentBase {
|
|
|
24102
24122
|
this._combineShaderRefection = void 0;
|
|
24103
24123
|
}
|
|
24104
24124
|
}
|
|
24105
|
-
__decorateClass$
|
|
24125
|
+
__decorateClass$h([
|
|
24106
24126
|
EditorInspector
|
|
24107
24127
|
], RenderNode.prototype, "materials");
|
|
24108
|
-
__decorateClass$
|
|
24128
|
+
__decorateClass$h([
|
|
24109
24129
|
EditorInspector
|
|
24110
24130
|
], RenderNode.prototype, "castShadow");
|
|
24111
|
-
__decorateClass$
|
|
24131
|
+
__decorateClass$h([
|
|
24112
24132
|
EditorInspector
|
|
24113
24133
|
], RenderNode.prototype, "castGI");
|
|
24114
24134
|
|
|
24115
24135
|
var __defProp = Object.defineProperty;
|
|
24116
|
-
var __getOwnPropDesc$
|
|
24117
|
-
var __decorateClass$
|
|
24118
|
-
var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$
|
|
24136
|
+
var __getOwnPropDesc$g = Object.getOwnPropertyDescriptor;
|
|
24137
|
+
var __decorateClass$g = (decorators, target, key, kind) => {
|
|
24138
|
+
var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$g(target, key) : target;
|
|
24119
24139
|
for (var i = decorators.length - 1, decorator; i >= 0; i--)
|
|
24120
24140
|
if (decorator = decorators[i])
|
|
24121
24141
|
result = (kind ? decorator(target, key, result) : decorator(result)) || result;
|
|
@@ -24224,13 +24244,13 @@ let MeshRenderer = class extends RenderNode {
|
|
|
24224
24244
|
super.destroy(force);
|
|
24225
24245
|
}
|
|
24226
24246
|
};
|
|
24227
|
-
__decorateClass$
|
|
24247
|
+
__decorateClass$g([
|
|
24228
24248
|
EditorInspector
|
|
24229
24249
|
], MeshRenderer.prototype, "geometry", 1);
|
|
24230
|
-
__decorateClass$
|
|
24250
|
+
__decorateClass$g([
|
|
24231
24251
|
EditorInspector
|
|
24232
24252
|
], MeshRenderer.prototype, "material", 1);
|
|
24233
|
-
MeshRenderer = __decorateClass$
|
|
24253
|
+
MeshRenderer = __decorateClass$g([
|
|
24234
24254
|
RegisterComponent(MeshRenderer, "MeshRenderer")
|
|
24235
24255
|
], MeshRenderer);
|
|
24236
24256
|
|
|
@@ -25068,8 +25088,7 @@ class GeometryIndicesBuffer {
|
|
|
25068
25088
|
this.indicesGPUBuffer = new IndicesGPUBuffer(indicesData.data);
|
|
25069
25089
|
}
|
|
25070
25090
|
upload(data) {
|
|
25071
|
-
|
|
25072
|
-
this.indicesGPUBuffer.indicesNode.setArrayBuffer(0, buffer);
|
|
25091
|
+
this.indicesGPUBuffer.indicesNode.setArrayBuffer(0, data);
|
|
25073
25092
|
this.indicesGPUBuffer.apply();
|
|
25074
25093
|
}
|
|
25075
25094
|
compute() {
|
|
@@ -25082,6 +25101,22 @@ class GeometryIndicesBuffer {
|
|
|
25082
25101
|
this.indicesGPUBuffer.destroy();
|
|
25083
25102
|
this.indicesGPUBuffer = null;
|
|
25084
25103
|
}
|
|
25104
|
+
/**
|
|
25105
|
+
* Get indices from geometry data
|
|
25106
|
+
* Get position attribute from geometry data
|
|
25107
|
+
* Get normal attribute from geometry data
|
|
25108
|
+
* Get tangent attribute from geometry data
|
|
25109
|
+
* Get uv0 attribute from geometry data
|
|
25110
|
+
* Get uv1 attribute from geometry data
|
|
25111
|
+
* Get uv2 attribute from geometry data
|
|
25112
|
+
*
|
|
25113
|
+
* Change position data to GPUBuffer and apply
|
|
25114
|
+
* Change normal data to GPUBuffer and apply
|
|
25115
|
+
* Change tangent data to GPUBuffer and apply
|
|
25116
|
+
* Change uv0 data to GPUBuffer and apply
|
|
25117
|
+
* Change uv1 data to GPUBuffer and apply
|
|
25118
|
+
* Change uv2 data to GPUBuffer and apply
|
|
25119
|
+
*/
|
|
25085
25120
|
}
|
|
25086
25121
|
|
|
25087
25122
|
class SubGeometry {
|
|
@@ -25864,9 +25899,9 @@ class Shader {
|
|
|
25864
25899
|
}
|
|
25865
25900
|
}
|
|
25866
25901
|
|
|
25867
|
-
var __getOwnPropDesc$
|
|
25868
|
-
var __decorateClass$
|
|
25869
|
-
var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$
|
|
25902
|
+
var __getOwnPropDesc$f = Object.getOwnPropertyDescriptor;
|
|
25903
|
+
var __decorateClass$f = (decorators, target, key, kind) => {
|
|
25904
|
+
var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$f(target, key) : target;
|
|
25870
25905
|
for (var i = decorators.length - 1, decorator; i >= 0; i--)
|
|
25871
25906
|
if (decorator = decorators[i])
|
|
25872
25907
|
result = (decorator(result)) || result;
|
|
@@ -25890,8 +25925,8 @@ let QuadShader = class extends Shader {
|
|
|
25890
25925
|
this.setUniformFloat(`height`, 100);
|
|
25891
25926
|
}
|
|
25892
25927
|
};
|
|
25893
|
-
QuadShader = __decorateClass$
|
|
25894
|
-
RegisterShader
|
|
25928
|
+
QuadShader = __decorateClass$f([
|
|
25929
|
+
RegisterShader(QuadShader, "QuadShader")
|
|
25895
25930
|
], QuadShader);
|
|
25896
25931
|
|
|
25897
25932
|
class ViewQuad extends Object3D {
|
|
@@ -31300,6 +31335,7 @@ class FileLoader extends LoaderBase {
|
|
|
31300
31335
|
parser.userData = userData;
|
|
31301
31336
|
parser.baseUrl = this.baseUrl;
|
|
31302
31337
|
parser.initUrl = url;
|
|
31338
|
+
parser.loaderFunctions = loaderFunctions;
|
|
31303
31339
|
await parser.parseBuffer(data);
|
|
31304
31340
|
if (parser.verification()) {
|
|
31305
31341
|
succ(parser);
|
|
@@ -33163,9 +33199,9 @@ class LightBase extends ComponentBase {
|
|
|
33163
33199
|
}
|
|
33164
33200
|
}
|
|
33165
33201
|
|
|
33166
|
-
var __getOwnPropDesc$
|
|
33167
|
-
var __decorateClass$
|
|
33168
|
-
var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$
|
|
33202
|
+
var __getOwnPropDesc$e = Object.getOwnPropertyDescriptor;
|
|
33203
|
+
var __decorateClass$e = (decorators, target, key, kind) => {
|
|
33204
|
+
var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$e(target, key) : target;
|
|
33169
33205
|
for (var i = decorators.length - 1, decorator; i >= 0; i--)
|
|
33170
33206
|
if (decorator = decorators[i])
|
|
33171
33207
|
result = (decorator(result)) || result;
|
|
@@ -33207,13 +33243,13 @@ let DirectLight = class extends LightBase {
|
|
|
33207
33243
|
debug() {
|
|
33208
33244
|
}
|
|
33209
33245
|
};
|
|
33210
|
-
DirectLight = __decorateClass$
|
|
33246
|
+
DirectLight = __decorateClass$e([
|
|
33211
33247
|
RegisterComponent(DirectLight, "DirectLight")
|
|
33212
33248
|
], DirectLight);
|
|
33213
33249
|
|
|
33214
|
-
var __getOwnPropDesc$
|
|
33215
|
-
var __decorateClass$
|
|
33216
|
-
var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$
|
|
33250
|
+
var __getOwnPropDesc$d = Object.getOwnPropertyDescriptor;
|
|
33251
|
+
var __decorateClass$d = (decorators, target, key, kind) => {
|
|
33252
|
+
var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$d(target, key) : target;
|
|
33217
33253
|
for (var i = decorators.length - 1, decorator; i >= 0; i--)
|
|
33218
33254
|
if (decorator = decorators[i])
|
|
33219
33255
|
result = (decorator(result)) || result;
|
|
@@ -33271,13 +33307,13 @@ let PointLight = class extends LightBase {
|
|
|
33271
33307
|
debugDraw(show) {
|
|
33272
33308
|
}
|
|
33273
33309
|
};
|
|
33274
|
-
PointLight = __decorateClass$
|
|
33310
|
+
PointLight = __decorateClass$d([
|
|
33275
33311
|
RegisterComponent(PointLight, "PointLight")
|
|
33276
33312
|
], PointLight);
|
|
33277
33313
|
|
|
33278
|
-
var __getOwnPropDesc$
|
|
33279
|
-
var __decorateClass$
|
|
33280
|
-
var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$
|
|
33314
|
+
var __getOwnPropDesc$c = Object.getOwnPropertyDescriptor;
|
|
33315
|
+
var __decorateClass$c = (decorators, target, key, kind) => {
|
|
33316
|
+
var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$c(target, key) : target;
|
|
33281
33317
|
for (var i = decorators.length - 1, decorator; i >= 0; i--)
|
|
33282
33318
|
if (decorator = decorators[i])
|
|
33283
33319
|
result = (decorator(result)) || result;
|
|
@@ -33342,7 +33378,7 @@ let SpotLight = class extends LightBase {
|
|
|
33342
33378
|
debugDraw(show) {
|
|
33343
33379
|
}
|
|
33344
33380
|
};
|
|
33345
|
-
SpotLight = __decorateClass$
|
|
33381
|
+
SpotLight = __decorateClass$c([
|
|
33346
33382
|
RegisterComponent(SpotLight, "SpotLight")
|
|
33347
33383
|
], SpotLight);
|
|
33348
33384
|
|
|
@@ -37987,6 +38023,826 @@ class AtlasParser extends ParserBase {
|
|
|
37987
38023
|
}
|
|
37988
38024
|
}
|
|
37989
38025
|
|
|
38026
|
+
// DEFLATE is a complex format; to read this code, you should probably check the RFC first:
|
|
38027
|
+
// https://tools.ietf.org/html/rfc1951
|
|
38028
|
+
// You may also wish to take a look at the guide I made about this program:
|
|
38029
|
+
// https://gist.github.com/101arrowz/253f31eb5abc3d9275ab943003ffecad
|
|
38030
|
+
// Some of the following code is similar to that of UZIP.js:
|
|
38031
|
+
// https://github.com/photopea/UZIP.js
|
|
38032
|
+
// However, the vast majority of the codebase has diverged from UZIP.js to increase performance and reduce bundle size.
|
|
38033
|
+
// Sometimes 0 will appear where -1 would be more appropriate. This is because using a uint
|
|
38034
|
+
// is better for memory in most engines (I *think*).
|
|
38035
|
+
|
|
38036
|
+
// aliases for shorter compressed code (most minifers don't do this)
|
|
38037
|
+
var u8 = Uint8Array, u16 = Uint16Array, i32 = Int32Array;
|
|
38038
|
+
// fixed length extra bits
|
|
38039
|
+
var fleb = new u8([0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3, 4, 4, 4, 4, 5, 5, 5, 5, 0, /* unused */ 0, 0, /* impossible */ 0]);
|
|
38040
|
+
// fixed distance extra bits
|
|
38041
|
+
var fdeb = new u8([0, 0, 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 8, 9, 9, 10, 10, 11, 11, 12, 12, 13, 13, /* unused */ 0, 0]);
|
|
38042
|
+
// code length index map
|
|
38043
|
+
var clim = new u8([16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15]);
|
|
38044
|
+
// get base, reverse index map from extra bits
|
|
38045
|
+
var freb = function (eb, start) {
|
|
38046
|
+
var b = new u16(31);
|
|
38047
|
+
for (var i = 0; i < 31; ++i) {
|
|
38048
|
+
b[i] = start += 1 << eb[i - 1];
|
|
38049
|
+
}
|
|
38050
|
+
// numbers here are at max 18 bits
|
|
38051
|
+
var r = new i32(b[30]);
|
|
38052
|
+
for (var i = 1; i < 30; ++i) {
|
|
38053
|
+
for (var j = b[i]; j < b[i + 1]; ++j) {
|
|
38054
|
+
r[j] = ((j - b[i]) << 5) | i;
|
|
38055
|
+
}
|
|
38056
|
+
}
|
|
38057
|
+
return { b: b, r: r };
|
|
38058
|
+
};
|
|
38059
|
+
var _a = freb(fleb, 2), fl = _a.b, revfl = _a.r;
|
|
38060
|
+
// we can ignore the fact that the other numbers are wrong; they never happen anyway
|
|
38061
|
+
fl[28] = 258, revfl[258] = 28;
|
|
38062
|
+
var _b = freb(fdeb, 0), fd = _b.b;
|
|
38063
|
+
// map of value to reverse (assuming 16 bits)
|
|
38064
|
+
var rev = new u16(32768);
|
|
38065
|
+
for (var i = 0; i < 32768; ++i) {
|
|
38066
|
+
// reverse table algorithm from SO
|
|
38067
|
+
var x = ((i & 0xAAAA) >> 1) | ((i & 0x5555) << 1);
|
|
38068
|
+
x = ((x & 0xCCCC) >> 2) | ((x & 0x3333) << 2);
|
|
38069
|
+
x = ((x & 0xF0F0) >> 4) | ((x & 0x0F0F) << 4);
|
|
38070
|
+
rev[i] = (((x & 0xFF00) >> 8) | ((x & 0x00FF) << 8)) >> 1;
|
|
38071
|
+
}
|
|
38072
|
+
// create huffman tree from u8 "map": index -> code length for code index
|
|
38073
|
+
// mb (max bits) must be at most 15
|
|
38074
|
+
// TODO: optimize/split up?
|
|
38075
|
+
var hMap = (function (cd, mb, r) {
|
|
38076
|
+
var s = cd.length;
|
|
38077
|
+
// index
|
|
38078
|
+
var i = 0;
|
|
38079
|
+
// u16 "map": index -> # of codes with bit length = index
|
|
38080
|
+
var l = new u16(mb);
|
|
38081
|
+
// length of cd must be 288 (total # of codes)
|
|
38082
|
+
for (; i < s; ++i) {
|
|
38083
|
+
if (cd[i])
|
|
38084
|
+
++l[cd[i] - 1];
|
|
38085
|
+
}
|
|
38086
|
+
// u16 "map": index -> minimum code for bit length = index
|
|
38087
|
+
var le = new u16(mb);
|
|
38088
|
+
for (i = 1; i < mb; ++i) {
|
|
38089
|
+
le[i] = (le[i - 1] + l[i - 1]) << 1;
|
|
38090
|
+
}
|
|
38091
|
+
var co;
|
|
38092
|
+
if (r) {
|
|
38093
|
+
// u16 "map": index -> number of actual bits, symbol for code
|
|
38094
|
+
co = new u16(1 << mb);
|
|
38095
|
+
// bits to remove for reverser
|
|
38096
|
+
var rvb = 15 - mb;
|
|
38097
|
+
for (i = 0; i < s; ++i) {
|
|
38098
|
+
// ignore 0 lengths
|
|
38099
|
+
if (cd[i]) {
|
|
38100
|
+
// num encoding both symbol and bits read
|
|
38101
|
+
var sv = (i << 4) | cd[i];
|
|
38102
|
+
// free bits
|
|
38103
|
+
var r_1 = mb - cd[i];
|
|
38104
|
+
// start value
|
|
38105
|
+
var v = le[cd[i] - 1]++ << r_1;
|
|
38106
|
+
// m is end value
|
|
38107
|
+
for (var m = v | ((1 << r_1) - 1); v <= m; ++v) {
|
|
38108
|
+
// every 16 bit value starting with the code yields the same result
|
|
38109
|
+
co[rev[v] >> rvb] = sv;
|
|
38110
|
+
}
|
|
38111
|
+
}
|
|
38112
|
+
}
|
|
38113
|
+
}
|
|
38114
|
+
else {
|
|
38115
|
+
co = new u16(s);
|
|
38116
|
+
for (i = 0; i < s; ++i) {
|
|
38117
|
+
if (cd[i]) {
|
|
38118
|
+
co[i] = rev[le[cd[i] - 1]++] >> (15 - cd[i]);
|
|
38119
|
+
}
|
|
38120
|
+
}
|
|
38121
|
+
}
|
|
38122
|
+
return co;
|
|
38123
|
+
});
|
|
38124
|
+
// fixed length tree
|
|
38125
|
+
var flt = new u8(288);
|
|
38126
|
+
for (var i = 0; i < 144; ++i)
|
|
38127
|
+
flt[i] = 8;
|
|
38128
|
+
for (var i = 144; i < 256; ++i)
|
|
38129
|
+
flt[i] = 9;
|
|
38130
|
+
for (var i = 256; i < 280; ++i)
|
|
38131
|
+
flt[i] = 7;
|
|
38132
|
+
for (var i = 280; i < 288; ++i)
|
|
38133
|
+
flt[i] = 8;
|
|
38134
|
+
// fixed distance tree
|
|
38135
|
+
var fdt = new u8(32);
|
|
38136
|
+
for (var i = 0; i < 32; ++i)
|
|
38137
|
+
fdt[i] = 5;
|
|
38138
|
+
// fixed length map
|
|
38139
|
+
var flrm = /*#__PURE__*/ hMap(flt, 9, 1);
|
|
38140
|
+
// fixed distance map
|
|
38141
|
+
var fdrm = /*#__PURE__*/ hMap(fdt, 5, 1);
|
|
38142
|
+
// find max of array
|
|
38143
|
+
var max = function (a) {
|
|
38144
|
+
var m = a[0];
|
|
38145
|
+
for (var i = 1; i < a.length; ++i) {
|
|
38146
|
+
if (a[i] > m)
|
|
38147
|
+
m = a[i];
|
|
38148
|
+
}
|
|
38149
|
+
return m;
|
|
38150
|
+
};
|
|
38151
|
+
// read d, starting at bit p and mask with m
|
|
38152
|
+
var bits = function (d, p, m) {
|
|
38153
|
+
var o = (p / 8) | 0;
|
|
38154
|
+
return ((d[o] | (d[o + 1] << 8)) >> (p & 7)) & m;
|
|
38155
|
+
};
|
|
38156
|
+
// read d, starting at bit p continuing for at least 16 bits
|
|
38157
|
+
var bits16 = function (d, p) {
|
|
38158
|
+
var o = (p / 8) | 0;
|
|
38159
|
+
return ((d[o] | (d[o + 1] << 8) | (d[o + 2] << 16)) >> (p & 7));
|
|
38160
|
+
};
|
|
38161
|
+
// get end of byte
|
|
38162
|
+
var shft = function (p) { return ((p + 7) / 8) | 0; };
|
|
38163
|
+
// typed array slice - allows garbage collector to free original reference,
|
|
38164
|
+
// while being more compatible than .slice
|
|
38165
|
+
var slc = function (v, s, e) {
|
|
38166
|
+
if (s == null || s < 0)
|
|
38167
|
+
s = 0;
|
|
38168
|
+
if (e == null || e > v.length)
|
|
38169
|
+
e = v.length;
|
|
38170
|
+
// can't use .constructor in case user-supplied
|
|
38171
|
+
return new u8(v.subarray(s, e));
|
|
38172
|
+
};
|
|
38173
|
+
// error codes
|
|
38174
|
+
var ec = [
|
|
38175
|
+
'unexpected EOF',
|
|
38176
|
+
'invalid block type',
|
|
38177
|
+
'invalid length/literal',
|
|
38178
|
+
'invalid distance',
|
|
38179
|
+
'stream finished',
|
|
38180
|
+
'no stream handler',
|
|
38181
|
+
,
|
|
38182
|
+
'no callback',
|
|
38183
|
+
'invalid UTF-8 data',
|
|
38184
|
+
'extra field too long',
|
|
38185
|
+
'date not in range 1980-2099',
|
|
38186
|
+
'filename too long',
|
|
38187
|
+
'stream finishing',
|
|
38188
|
+
'invalid zip data'
|
|
38189
|
+
// determined by unknown compression method
|
|
38190
|
+
];
|
|
38191
|
+
var err = function (ind, msg, nt) {
|
|
38192
|
+
var e = new Error(msg || ec[ind]);
|
|
38193
|
+
e.code = ind;
|
|
38194
|
+
if (Error.captureStackTrace)
|
|
38195
|
+
Error.captureStackTrace(e, err);
|
|
38196
|
+
if (!nt)
|
|
38197
|
+
throw e;
|
|
38198
|
+
return e;
|
|
38199
|
+
};
|
|
38200
|
+
// expands raw DEFLATE data
|
|
38201
|
+
var inflt = function (dat, st, buf, dict) {
|
|
38202
|
+
// source length dict length
|
|
38203
|
+
var sl = dat.length, dl = dict ? dict.length : 0;
|
|
38204
|
+
if (!sl || st.f && !st.l)
|
|
38205
|
+
return buf || new u8(0);
|
|
38206
|
+
var noBuf = !buf;
|
|
38207
|
+
// have to estimate size
|
|
38208
|
+
var resize = noBuf || st.i != 2;
|
|
38209
|
+
// no state
|
|
38210
|
+
var noSt = st.i;
|
|
38211
|
+
// Assumes roughly 33% compression ratio average
|
|
38212
|
+
if (noBuf)
|
|
38213
|
+
buf = new u8(sl * 3);
|
|
38214
|
+
// ensure buffer can fit at least l elements
|
|
38215
|
+
var cbuf = function (l) {
|
|
38216
|
+
var bl = buf.length;
|
|
38217
|
+
// need to increase size to fit
|
|
38218
|
+
if (l > bl) {
|
|
38219
|
+
// Double or set to necessary, whichever is greater
|
|
38220
|
+
var nbuf = new u8(Math.max(bl * 2, l));
|
|
38221
|
+
nbuf.set(buf);
|
|
38222
|
+
buf = nbuf;
|
|
38223
|
+
}
|
|
38224
|
+
};
|
|
38225
|
+
// last chunk bitpos bytes
|
|
38226
|
+
var final = st.f || 0, pos = st.p || 0, bt = st.b || 0, lm = st.l, dm = st.d, lbt = st.m, dbt = st.n;
|
|
38227
|
+
// total bits
|
|
38228
|
+
var tbts = sl * 8;
|
|
38229
|
+
do {
|
|
38230
|
+
if (!lm) {
|
|
38231
|
+
// BFINAL - this is only 1 when last chunk is next
|
|
38232
|
+
final = bits(dat, pos, 1);
|
|
38233
|
+
// type: 0 = no compression, 1 = fixed huffman, 2 = dynamic huffman
|
|
38234
|
+
var type = bits(dat, pos + 1, 3);
|
|
38235
|
+
pos += 3;
|
|
38236
|
+
if (!type) {
|
|
38237
|
+
// go to end of byte boundary
|
|
38238
|
+
var s = shft(pos) + 4, l = dat[s - 4] | (dat[s - 3] << 8), t = s + l;
|
|
38239
|
+
if (t > sl) {
|
|
38240
|
+
if (noSt)
|
|
38241
|
+
err(0);
|
|
38242
|
+
break;
|
|
38243
|
+
}
|
|
38244
|
+
// ensure size
|
|
38245
|
+
if (resize)
|
|
38246
|
+
cbuf(bt + l);
|
|
38247
|
+
// Copy over uncompressed data
|
|
38248
|
+
buf.set(dat.subarray(s, t), bt);
|
|
38249
|
+
// Get new bitpos, update byte count
|
|
38250
|
+
st.b = bt += l, st.p = pos = t * 8, st.f = final;
|
|
38251
|
+
continue;
|
|
38252
|
+
}
|
|
38253
|
+
else if (type == 1)
|
|
38254
|
+
lm = flrm, dm = fdrm, lbt = 9, dbt = 5;
|
|
38255
|
+
else if (type == 2) {
|
|
38256
|
+
// literal lengths
|
|
38257
|
+
var hLit = bits(dat, pos, 31) + 257, hcLen = bits(dat, pos + 10, 15) + 4;
|
|
38258
|
+
var tl = hLit + bits(dat, pos + 5, 31) + 1;
|
|
38259
|
+
pos += 14;
|
|
38260
|
+
// length+distance tree
|
|
38261
|
+
var ldt = new u8(tl);
|
|
38262
|
+
// code length tree
|
|
38263
|
+
var clt = new u8(19);
|
|
38264
|
+
for (var i = 0; i < hcLen; ++i) {
|
|
38265
|
+
// use index map to get real code
|
|
38266
|
+
clt[clim[i]] = bits(dat, pos + i * 3, 7);
|
|
38267
|
+
}
|
|
38268
|
+
pos += hcLen * 3;
|
|
38269
|
+
// code lengths bits
|
|
38270
|
+
var clb = max(clt), clbmsk = (1 << clb) - 1;
|
|
38271
|
+
// code lengths map
|
|
38272
|
+
var clm = hMap(clt, clb, 1);
|
|
38273
|
+
for (var i = 0; i < tl;) {
|
|
38274
|
+
var r = clm[bits(dat, pos, clbmsk)];
|
|
38275
|
+
// bits read
|
|
38276
|
+
pos += r & 15;
|
|
38277
|
+
// symbol
|
|
38278
|
+
var s = r >> 4;
|
|
38279
|
+
// code length to copy
|
|
38280
|
+
if (s < 16) {
|
|
38281
|
+
ldt[i++] = s;
|
|
38282
|
+
}
|
|
38283
|
+
else {
|
|
38284
|
+
// copy count
|
|
38285
|
+
var c = 0, n = 0;
|
|
38286
|
+
if (s == 16)
|
|
38287
|
+
n = 3 + bits(dat, pos, 3), pos += 2, c = ldt[i - 1];
|
|
38288
|
+
else if (s == 17)
|
|
38289
|
+
n = 3 + bits(dat, pos, 7), pos += 3;
|
|
38290
|
+
else if (s == 18)
|
|
38291
|
+
n = 11 + bits(dat, pos, 127), pos += 7;
|
|
38292
|
+
while (n--)
|
|
38293
|
+
ldt[i++] = c;
|
|
38294
|
+
}
|
|
38295
|
+
}
|
|
38296
|
+
// length tree distance tree
|
|
38297
|
+
var lt = ldt.subarray(0, hLit), dt = ldt.subarray(hLit);
|
|
38298
|
+
// max length bits
|
|
38299
|
+
lbt = max(lt);
|
|
38300
|
+
// max dist bits
|
|
38301
|
+
dbt = max(dt);
|
|
38302
|
+
lm = hMap(lt, lbt, 1);
|
|
38303
|
+
dm = hMap(dt, dbt, 1);
|
|
38304
|
+
}
|
|
38305
|
+
else
|
|
38306
|
+
err(1);
|
|
38307
|
+
if (pos > tbts) {
|
|
38308
|
+
if (noSt)
|
|
38309
|
+
err(0);
|
|
38310
|
+
break;
|
|
38311
|
+
}
|
|
38312
|
+
}
|
|
38313
|
+
// Make sure the buffer can hold this + the largest possible addition
|
|
38314
|
+
// Maximum chunk size (practically, theoretically infinite) is 2^17
|
|
38315
|
+
if (resize)
|
|
38316
|
+
cbuf(bt + 131072);
|
|
38317
|
+
var lms = (1 << lbt) - 1, dms = (1 << dbt) - 1;
|
|
38318
|
+
var lpos = pos;
|
|
38319
|
+
for (;; lpos = pos) {
|
|
38320
|
+
// bits read, code
|
|
38321
|
+
var c = lm[bits16(dat, pos) & lms], sym = c >> 4;
|
|
38322
|
+
pos += c & 15;
|
|
38323
|
+
if (pos > tbts) {
|
|
38324
|
+
if (noSt)
|
|
38325
|
+
err(0);
|
|
38326
|
+
break;
|
|
38327
|
+
}
|
|
38328
|
+
if (!c)
|
|
38329
|
+
err(2);
|
|
38330
|
+
if (sym < 256)
|
|
38331
|
+
buf[bt++] = sym;
|
|
38332
|
+
else if (sym == 256) {
|
|
38333
|
+
lpos = pos, lm = null;
|
|
38334
|
+
break;
|
|
38335
|
+
}
|
|
38336
|
+
else {
|
|
38337
|
+
var add = sym - 254;
|
|
38338
|
+
// no extra bits needed if less
|
|
38339
|
+
if (sym > 264) {
|
|
38340
|
+
// index
|
|
38341
|
+
var i = sym - 257, b = fleb[i];
|
|
38342
|
+
add = bits(dat, pos, (1 << b) - 1) + fl[i];
|
|
38343
|
+
pos += b;
|
|
38344
|
+
}
|
|
38345
|
+
// dist
|
|
38346
|
+
var d = dm[bits16(dat, pos) & dms], dsym = d >> 4;
|
|
38347
|
+
if (!d)
|
|
38348
|
+
err(3);
|
|
38349
|
+
pos += d & 15;
|
|
38350
|
+
var dt = fd[dsym];
|
|
38351
|
+
if (dsym > 3) {
|
|
38352
|
+
var b = fdeb[dsym];
|
|
38353
|
+
dt += bits16(dat, pos) & (1 << b) - 1, pos += b;
|
|
38354
|
+
}
|
|
38355
|
+
if (pos > tbts) {
|
|
38356
|
+
if (noSt)
|
|
38357
|
+
err(0);
|
|
38358
|
+
break;
|
|
38359
|
+
}
|
|
38360
|
+
if (resize)
|
|
38361
|
+
cbuf(bt + 131072);
|
|
38362
|
+
var end = bt + add;
|
|
38363
|
+
if (bt < dt) {
|
|
38364
|
+
var shift = dl - dt, dend = Math.min(dt, end);
|
|
38365
|
+
if (shift + bt < 0)
|
|
38366
|
+
err(3);
|
|
38367
|
+
for (; bt < dend; ++bt)
|
|
38368
|
+
buf[bt] = dict[shift + bt];
|
|
38369
|
+
}
|
|
38370
|
+
for (; bt < end; ++bt)
|
|
38371
|
+
buf[bt] = buf[bt - dt];
|
|
38372
|
+
}
|
|
38373
|
+
}
|
|
38374
|
+
st.l = lm, st.p = lpos, st.b = bt, st.f = final;
|
|
38375
|
+
if (lm)
|
|
38376
|
+
final = 1, st.m = lbt, st.d = dm, st.n = dbt;
|
|
38377
|
+
} while (!final);
|
|
38378
|
+
// don't reallocate for streams or user buffers
|
|
38379
|
+
return bt != buf.length && noBuf ? slc(buf, 0, bt) : buf.subarray(0, bt);
|
|
38380
|
+
};
|
|
38381
|
+
// empty
|
|
38382
|
+
var et = /*#__PURE__*/ new u8(0);
|
|
38383
|
+
// read 2 bytes
|
|
38384
|
+
var b2 = function (d, b) { return d[b] | (d[b + 1] << 8); };
|
|
38385
|
+
// read 4 bytes
|
|
38386
|
+
var b4 = function (d, b) { return (d[b] | (d[b + 1] << 8) | (d[b + 2] << 16) | (d[b + 3] << 24)) >>> 0; };
|
|
38387
|
+
var b8 = function (d, b) { return b4(d, b) + (b4(d, b + 4) * 4294967296); };
|
|
38388
|
+
/**
|
|
38389
|
+
* Expands DEFLATE data with no wrapper
|
|
38390
|
+
* @param data The data to decompress
|
|
38391
|
+
* @param opts The decompression options
|
|
38392
|
+
* @returns The decompressed version of the data
|
|
38393
|
+
*/
|
|
38394
|
+
function inflateSync(data, opts) {
|
|
38395
|
+
return inflt(data, { i: 2 }, opts && opts.out, opts && opts.dictionary);
|
|
38396
|
+
}
|
|
38397
|
+
// text decoder
|
|
38398
|
+
var td = typeof TextDecoder != 'undefined' && /*#__PURE__*/ new TextDecoder();
|
|
38399
|
+
// text decoder stream
|
|
38400
|
+
var tds = 0;
|
|
38401
|
+
try {
|
|
38402
|
+
td.decode(et, { stream: true });
|
|
38403
|
+
tds = 1;
|
|
38404
|
+
}
|
|
38405
|
+
catch (e) { }
|
|
38406
|
+
// decode UTF8
|
|
38407
|
+
var dutf8 = function (d) {
|
|
38408
|
+
for (var r = '', i = 0;;) {
|
|
38409
|
+
var c = d[i++];
|
|
38410
|
+
var eb = (c > 127) + (c > 223) + (c > 239);
|
|
38411
|
+
if (i + eb > d.length)
|
|
38412
|
+
return { s: r, r: slc(d, i - 1) };
|
|
38413
|
+
if (!eb)
|
|
38414
|
+
r += String.fromCharCode(c);
|
|
38415
|
+
else if (eb == 3) {
|
|
38416
|
+
c = ((c & 15) << 18 | (d[i++] & 63) << 12 | (d[i++] & 63) << 6 | (d[i++] & 63)) - 65536,
|
|
38417
|
+
r += String.fromCharCode(55296 | (c >> 10), 56320 | (c & 1023));
|
|
38418
|
+
}
|
|
38419
|
+
else if (eb & 1)
|
|
38420
|
+
r += String.fromCharCode((c & 31) << 6 | (d[i++] & 63));
|
|
38421
|
+
else
|
|
38422
|
+
r += String.fromCharCode((c & 15) << 12 | (d[i++] & 63) << 6 | (d[i++] & 63));
|
|
38423
|
+
}
|
|
38424
|
+
};
|
|
38425
|
+
/**
|
|
38426
|
+
* Converts a Uint8Array to a string
|
|
38427
|
+
* @param dat The data to decode to string
|
|
38428
|
+
* @param latin1 Whether or not to interpret the data as Latin-1. This should
|
|
38429
|
+
* not need to be true unless encoding to binary string.
|
|
38430
|
+
* @returns The original UTF-8/Latin-1 string
|
|
38431
|
+
*/
|
|
38432
|
+
function strFromU8(dat, latin1) {
|
|
38433
|
+
if (latin1) {
|
|
38434
|
+
var r = '';
|
|
38435
|
+
for (var i = 0; i < dat.length; i += 16384)
|
|
38436
|
+
r += String.fromCharCode.apply(null, dat.subarray(i, i + 16384));
|
|
38437
|
+
return r;
|
|
38438
|
+
}
|
|
38439
|
+
else if (td) {
|
|
38440
|
+
return td.decode(dat);
|
|
38441
|
+
}
|
|
38442
|
+
else {
|
|
38443
|
+
var _a = dutf8(dat), s = _a.s, r = _a.r;
|
|
38444
|
+
if (r.length)
|
|
38445
|
+
err(8);
|
|
38446
|
+
return s;
|
|
38447
|
+
}
|
|
38448
|
+
}
|
|
38449
|
+
// skip local zip header
|
|
38450
|
+
var slzh = function (d, b) { return b + 30 + b2(d, b + 26) + b2(d, b + 28); };
|
|
38451
|
+
// read zip header
|
|
38452
|
+
var zh = function (d, b, z) {
|
|
38453
|
+
var fnl = b2(d, b + 28), fn = strFromU8(d.subarray(b + 46, b + 46 + fnl), !(b2(d, b + 8) & 2048)), es = b + 46 + fnl, bs = b4(d, b + 20);
|
|
38454
|
+
var _a = z && bs == 4294967295 ? z64e(d, es) : [bs, b4(d, b + 24), b4(d, b + 42)], sc = _a[0], su = _a[1], off = _a[2];
|
|
38455
|
+
return [b2(d, b + 10), sc, su, fn, es + b2(d, b + 30) + b2(d, b + 32), off];
|
|
38456
|
+
};
|
|
38457
|
+
// read zip64 extra field
|
|
38458
|
+
var z64e = function (d, b) {
|
|
38459
|
+
for (; b2(d, b) != 1; b += 4 + b2(d, b + 2))
|
|
38460
|
+
;
|
|
38461
|
+
return [b8(d, b + 12), b8(d, b + 4), b8(d, b + 20)];
|
|
38462
|
+
};
|
|
38463
|
+
/**
|
|
38464
|
+
* Synchronously decompresses a ZIP archive. Prefer using `unzip` for better
|
|
38465
|
+
* performance with more than one file.
|
|
38466
|
+
* @param data The raw compressed ZIP file
|
|
38467
|
+
* @param opts The ZIP extraction options
|
|
38468
|
+
* @returns The decompressed files
|
|
38469
|
+
*/
|
|
38470
|
+
function unzipSync(data, opts) {
|
|
38471
|
+
var files = {};
|
|
38472
|
+
var e = data.length - 22;
|
|
38473
|
+
for (; b4(data, e) != 0x6054B50; --e) {
|
|
38474
|
+
if (!e || data.length - e > 65558)
|
|
38475
|
+
err(13);
|
|
38476
|
+
}
|
|
38477
|
+
var c = b2(data, e + 8);
|
|
38478
|
+
if (!c)
|
|
38479
|
+
return {};
|
|
38480
|
+
var o = b4(data, e + 16);
|
|
38481
|
+
var z = o == 4294967295 || c == 65535;
|
|
38482
|
+
if (z) {
|
|
38483
|
+
var ze = b4(data, e - 12);
|
|
38484
|
+
z = b4(data, ze) == 0x6064B50;
|
|
38485
|
+
if (z) {
|
|
38486
|
+
c = b4(data, ze + 32);
|
|
38487
|
+
o = b4(data, ze + 48);
|
|
38488
|
+
}
|
|
38489
|
+
}
|
|
38490
|
+
for (var i = 0; i < c; ++i) {
|
|
38491
|
+
var _a = zh(data, o, z), c_2 = _a[0], sc = _a[1], su = _a[2], fn = _a[3], no = _a[4], off = _a[5], b = slzh(data, off);
|
|
38492
|
+
o = no;
|
|
38493
|
+
{
|
|
38494
|
+
if (!c_2)
|
|
38495
|
+
files[fn] = slc(data, b, b + sc);
|
|
38496
|
+
else if (c_2 == 8)
|
|
38497
|
+
files[fn] = inflateSync(data.subarray(b, b + sc), { out: new u8(su) });
|
|
38498
|
+
else
|
|
38499
|
+
err(14, 'unknown compression type ' + c_2);
|
|
38500
|
+
}
|
|
38501
|
+
}
|
|
38502
|
+
return files;
|
|
38503
|
+
}
|
|
38504
|
+
|
|
38505
|
+
class UnLitMaterial extends Material {
|
|
38506
|
+
/**
|
|
38507
|
+
* @constructor
|
|
38508
|
+
*/
|
|
38509
|
+
constructor() {
|
|
38510
|
+
super();
|
|
38511
|
+
this.shader = new UnLitShader();
|
|
38512
|
+
this.baseMap = Engine3D.res.whiteTexture;
|
|
38513
|
+
}
|
|
38514
|
+
set baseMap(texture) {
|
|
38515
|
+
this.shader.setTexture(`baseMap`, texture);
|
|
38516
|
+
}
|
|
38517
|
+
get baseMap() {
|
|
38518
|
+
return this.shader.getTexture(`baseMap`);
|
|
38519
|
+
}
|
|
38520
|
+
/**
|
|
38521
|
+
* set base color (tint color)
|
|
38522
|
+
*/
|
|
38523
|
+
set baseColor(color) {
|
|
38524
|
+
this.shader.setUniformColor(`baseColor`, color);
|
|
38525
|
+
}
|
|
38526
|
+
/**
|
|
38527
|
+
* get base color (tint color)
|
|
38528
|
+
*/
|
|
38529
|
+
get baseColor() {
|
|
38530
|
+
return this.shader.getUniformColor("baseColor");
|
|
38531
|
+
}
|
|
38532
|
+
/**
|
|
38533
|
+
* set environment texture, usually referring to cubemap
|
|
38534
|
+
*/
|
|
38535
|
+
set envMap(texture) {
|
|
38536
|
+
}
|
|
38537
|
+
/**
|
|
38538
|
+
* @internal
|
|
38539
|
+
* set shadow map
|
|
38540
|
+
*/
|
|
38541
|
+
set shadowMap(texture) {
|
|
38542
|
+
}
|
|
38543
|
+
}
|
|
38544
|
+
|
|
38545
|
+
class SphereGeometry extends GeometryBase {
|
|
38546
|
+
shape_vertices = [];
|
|
38547
|
+
shape_indices = [];
|
|
38548
|
+
radius;
|
|
38549
|
+
widthSegments;
|
|
38550
|
+
heightSegments;
|
|
38551
|
+
phiStart;
|
|
38552
|
+
phiLength;
|
|
38553
|
+
thetaStart;
|
|
38554
|
+
thetaLength;
|
|
38555
|
+
/**
|
|
38556
|
+
* 球体几何体
|
|
38557
|
+
* @constructor
|
|
38558
|
+
* @param radius 球体半径
|
|
38559
|
+
* @param widthSegments 定义水平分段数
|
|
38560
|
+
* @param heightSegments 定义垂直分段数
|
|
38561
|
+
* @param phiStart 球体赤道线起始点的弧度
|
|
38562
|
+
* @param phiLength 球体赤道线的弧长
|
|
38563
|
+
* @param thetaStart 球体经线起始点的弧度
|
|
38564
|
+
* @param thetaLength 球体经线的弧长
|
|
38565
|
+
*/
|
|
38566
|
+
constructor(radius, widthSegments, heightSegments, phiStart, phiLength, thetaStart, thetaLength) {
|
|
38567
|
+
super();
|
|
38568
|
+
this.radius = radius;
|
|
38569
|
+
this.widthSegments = widthSegments;
|
|
38570
|
+
this.heightSegments = heightSegments;
|
|
38571
|
+
this.phiStart = phiStart;
|
|
38572
|
+
this.phiLength = phiLength;
|
|
38573
|
+
this.thetaStart = thetaStart;
|
|
38574
|
+
this.thetaLength = thetaLength;
|
|
38575
|
+
this.buildGeometry();
|
|
38576
|
+
}
|
|
38577
|
+
buildGeometry() {
|
|
38578
|
+
var i, j, triIndex = 0;
|
|
38579
|
+
let _segmentsH = this.heightSegments;
|
|
38580
|
+
let _segmentsW = this.widthSegments;
|
|
38581
|
+
let _radius = this.radius;
|
|
38582
|
+
var vertexCount = (_segmentsH + 1) * (_segmentsW + 1);
|
|
38583
|
+
let position_arr = new Float32Array(vertexCount * 3);
|
|
38584
|
+
let normal_arr = new Float32Array(vertexCount * 3);
|
|
38585
|
+
let uv_arr = new Float32Array(vertexCount * 2);
|
|
38586
|
+
let indice_arr = new Uint16Array(_segmentsW * _segmentsH * 2 * 3);
|
|
38587
|
+
let pi = 0;
|
|
38588
|
+
let ni = 0;
|
|
38589
|
+
let ui = 0;
|
|
38590
|
+
for (j = 0; j <= _segmentsH; ++j) {
|
|
38591
|
+
var horAngle = Math.PI * j / _segmentsH;
|
|
38592
|
+
var y = _radius * Math.cos(horAngle);
|
|
38593
|
+
var ringRadius = _radius * Math.sin(horAngle);
|
|
38594
|
+
for (i = 0; i <= _segmentsW; ++i) {
|
|
38595
|
+
var verAngle = 2 * Math.PI * i / _segmentsW;
|
|
38596
|
+
var x = ringRadius * Math.cos(verAngle);
|
|
38597
|
+
var z = ringRadius * Math.sin(verAngle);
|
|
38598
|
+
var normLen = 1 / Math.sqrt(x * x + y * y + z * z);
|
|
38599
|
+
position_arr[pi++] = x;
|
|
38600
|
+
position_arr[pi++] = y;
|
|
38601
|
+
position_arr[pi++] = z;
|
|
38602
|
+
normal_arr[ni++] = x * normLen;
|
|
38603
|
+
normal_arr[ni++] = y * normLen;
|
|
38604
|
+
normal_arr[ni++] = z * normLen;
|
|
38605
|
+
uv_arr[ui++] = i / _segmentsW;
|
|
38606
|
+
uv_arr[ui++] = j / _segmentsH;
|
|
38607
|
+
if (i > 0 && j > 0) {
|
|
38608
|
+
var a = (_segmentsW + 1) * j + i;
|
|
38609
|
+
var b = (_segmentsW + 1) * j + i - 1;
|
|
38610
|
+
var c = (_segmentsW + 1) * (j - 1) + i - 1;
|
|
38611
|
+
var d = (_segmentsW + 1) * (j - 1) + i;
|
|
38612
|
+
if (j == _segmentsH) {
|
|
38613
|
+
indice_arr[triIndex++] = a;
|
|
38614
|
+
indice_arr[triIndex++] = c;
|
|
38615
|
+
indice_arr[triIndex++] = d;
|
|
38616
|
+
} else if (j == 1) {
|
|
38617
|
+
indice_arr[triIndex++] = a;
|
|
38618
|
+
indice_arr[triIndex++] = b;
|
|
38619
|
+
indice_arr[triIndex++] = c;
|
|
38620
|
+
} else {
|
|
38621
|
+
indice_arr[triIndex++] = a;
|
|
38622
|
+
indice_arr[triIndex++] = b;
|
|
38623
|
+
indice_arr[triIndex++] = c;
|
|
38624
|
+
indice_arr[triIndex++] = a;
|
|
38625
|
+
indice_arr[triIndex++] = c;
|
|
38626
|
+
indice_arr[triIndex++] = d;
|
|
38627
|
+
}
|
|
38628
|
+
}
|
|
38629
|
+
}
|
|
38630
|
+
}
|
|
38631
|
+
this.setIndices(indice_arr);
|
|
38632
|
+
this.setAttribute(VertexAttributeName.position, position_arr);
|
|
38633
|
+
this.setAttribute(VertexAttributeName.normal, normal_arr);
|
|
38634
|
+
this.setAttribute(VertexAttributeName.uv, uv_arr);
|
|
38635
|
+
this.setAttribute(VertexAttributeName.TEXCOORD_1, uv_arr);
|
|
38636
|
+
this.addSubGeometry({
|
|
38637
|
+
indexStart: 0,
|
|
38638
|
+
indexCount: indice_arr.length,
|
|
38639
|
+
vertexStart: 0,
|
|
38640
|
+
vertexCount: 0,
|
|
38641
|
+
firstStart: 0,
|
|
38642
|
+
index: 0,
|
|
38643
|
+
topology: 0
|
|
38644
|
+
});
|
|
38645
|
+
this.bounds = new BoundingBox(
|
|
38646
|
+
Vector3.ZERO,
|
|
38647
|
+
new Vector3(this.radius * 2, this.radius * 2, this.radius * 2)
|
|
38648
|
+
);
|
|
38649
|
+
}
|
|
38650
|
+
}
|
|
38651
|
+
|
|
38652
|
+
class WayPoint3D extends Object3D {
|
|
38653
|
+
static register3DRepresentation = null;
|
|
38654
|
+
positionIndex = -1;
|
|
38655
|
+
positionValid = false;
|
|
38656
|
+
marker;
|
|
38657
|
+
constructor(placemark) {
|
|
38658
|
+
super();
|
|
38659
|
+
this.parsePlacemark(placemark);
|
|
38660
|
+
this.setup3DRepresentation();
|
|
38661
|
+
}
|
|
38662
|
+
parsePlacemark(placemark) {
|
|
38663
|
+
if (!placemark.slamPositionInfo) {
|
|
38664
|
+
console.warn("WayPoint3D: slamPositionInfo is not found");
|
|
38665
|
+
return;
|
|
38666
|
+
}
|
|
38667
|
+
const slamPosition = placemark.slamPositionInfo.slamPosition.split(",").map(Number);
|
|
38668
|
+
this.localPosition = new Vector3(slamPosition[0], slamPosition[1], slamPosition[2]);
|
|
38669
|
+
this.positionIndex = Number(placemark.slamPositionInfo.slamPositionIndex);
|
|
38670
|
+
this.positionValid = placemark.slamPositionInfo.slamPositionValid === "1";
|
|
38671
|
+
}
|
|
38672
|
+
setup3DRepresentation() {
|
|
38673
|
+
if (this.marker) {
|
|
38674
|
+
this.removeChild(this.marker);
|
|
38675
|
+
this.marker = null;
|
|
38676
|
+
}
|
|
38677
|
+
if (WayPoint3D.register3DRepresentation) {
|
|
38678
|
+
this.marker = WayPoint3D.register3DRepresentation(this);
|
|
38679
|
+
if (this.marker) {
|
|
38680
|
+
this.addChild(this.marker);
|
|
38681
|
+
}
|
|
38682
|
+
} else {
|
|
38683
|
+
this.marker = new Object3D();
|
|
38684
|
+
const markerRenderer = this.marker.addComponent(MeshRenderer);
|
|
38685
|
+
markerRenderer.geometry = new SphereGeometry(0.1, 32, 16);
|
|
38686
|
+
markerRenderer.material = new LitMaterial();
|
|
38687
|
+
markerRenderer.material.baseColor = this.positionValid ? new Color(0, 1, 0, 1) : new Color(1, 0, 0, 1);
|
|
38688
|
+
this.addChild(this.marker);
|
|
38689
|
+
this.marker.name = "WayPoint3DMarker";
|
|
38690
|
+
}
|
|
38691
|
+
}
|
|
38692
|
+
}
|
|
38693
|
+
|
|
38694
|
+
class WayLines3D extends Object3D {
|
|
38695
|
+
static register3DRepresentation = null;
|
|
38696
|
+
line;
|
|
38697
|
+
constructor(wayLineFile) {
|
|
38698
|
+
super();
|
|
38699
|
+
this.parseWayLineFile(wayLineFile);
|
|
38700
|
+
this.setup3DRepresentation();
|
|
38701
|
+
}
|
|
38702
|
+
parseWayLineFile(wayLineFile) {
|
|
38703
|
+
for (const placemark of wayLineFile.Folder.Placemark) {
|
|
38704
|
+
const wayPoint3D = new WayPoint3D(placemark);
|
|
38705
|
+
this.addChild(wayPoint3D);
|
|
38706
|
+
}
|
|
38707
|
+
this.entityChildren = this.entityChildren.sort((a, b) => {
|
|
38708
|
+
return a.positionIndex - b.positionIndex;
|
|
38709
|
+
});
|
|
38710
|
+
}
|
|
38711
|
+
setup3DRepresentation() {
|
|
38712
|
+
if (this.line) {
|
|
38713
|
+
this.removeChild(this.line);
|
|
38714
|
+
this.line = null;
|
|
38715
|
+
}
|
|
38716
|
+
if (WayLines3D.register3DRepresentation) {
|
|
38717
|
+
this.line = WayLines3D.register3DRepresentation(this);
|
|
38718
|
+
if (this.line) {
|
|
38719
|
+
this.addChild(this.line);
|
|
38720
|
+
}
|
|
38721
|
+
} else {
|
|
38722
|
+
this.line = this.createMultiLine(this.entityChildren.map((child) => child.localPosition), new Color(1, 1, 1, 1));
|
|
38723
|
+
this.addChild(this.line);
|
|
38724
|
+
this.line.name = "WayLines3DLine";
|
|
38725
|
+
}
|
|
38726
|
+
}
|
|
38727
|
+
createMultiLine(positions, color) {
|
|
38728
|
+
if (positions.length < 2) {
|
|
38729
|
+
return null;
|
|
38730
|
+
}
|
|
38731
|
+
const lineGeometry = new GeometryBase();
|
|
38732
|
+
const vertices = new Float32Array(positions.length * 3);
|
|
38733
|
+
for (let i = 0; i < positions.length; i++) {
|
|
38734
|
+
vertices[i * 3] = positions[i].x;
|
|
38735
|
+
vertices[i * 3 + 1] = positions[i].y;
|
|
38736
|
+
vertices[i * 3 + 2] = positions[i].z;
|
|
38737
|
+
}
|
|
38738
|
+
const indices = new Uint16Array((positions.length - 1) * 2);
|
|
38739
|
+
for (let i = 0; i < positions.length - 1; i++) {
|
|
38740
|
+
indices[i * 2] = i;
|
|
38741
|
+
indices[i * 2 + 1] = i + 1;
|
|
38742
|
+
}
|
|
38743
|
+
lineGeometry.setIndices(indices);
|
|
38744
|
+
lineGeometry.setAttribute(VertexAttributeName.position, vertices);
|
|
38745
|
+
lineGeometry.addSubGeometry({
|
|
38746
|
+
indexStart: 0,
|
|
38747
|
+
indexCount: indices.length,
|
|
38748
|
+
vertexStart: 0,
|
|
38749
|
+
vertexCount: 0,
|
|
38750
|
+
firstStart: 0,
|
|
38751
|
+
index: 0,
|
|
38752
|
+
topology: 0
|
|
38753
|
+
});
|
|
38754
|
+
const lineObject = new Object3D();
|
|
38755
|
+
const lineRenderer = lineObject.addComponent(MeshRenderer);
|
|
38756
|
+
const material = new UnLitMaterial();
|
|
38757
|
+
material.topology = "line-list";
|
|
38758
|
+
material.baseColor = color;
|
|
38759
|
+
material.blendMode = BlendMode.ADD;
|
|
38760
|
+
material.castReflection = false;
|
|
38761
|
+
lineRenderer.geometry = lineGeometry;
|
|
38762
|
+
lineRenderer.material = material;
|
|
38763
|
+
return lineObject;
|
|
38764
|
+
}
|
|
38765
|
+
}
|
|
38766
|
+
|
|
38767
|
+
class KMZParser extends ParserBase {
|
|
38768
|
+
static format = ParserFormat.BIN;
|
|
38769
|
+
parseBuffer(buffer) {
|
|
38770
|
+
try {
|
|
38771
|
+
const kmzObj = {
|
|
38772
|
+
template: null,
|
|
38773
|
+
waylines: null
|
|
38774
|
+
};
|
|
38775
|
+
const zip = unzipSync(new Uint8Array(buffer));
|
|
38776
|
+
for (const path in zip) {
|
|
38777
|
+
const fileData = zip[path];
|
|
38778
|
+
const domParser = new DOMParser();
|
|
38779
|
+
const xmlDoc = domParser.parseFromString(strFromU8(fileData), "application/xml");
|
|
38780
|
+
const obj = {};
|
|
38781
|
+
this.parseNode(xmlDoc, obj);
|
|
38782
|
+
const objName = path.replace("wpmz/", "").split(".")[0];
|
|
38783
|
+
Object.assign(kmzObj, {
|
|
38784
|
+
[objName]: obj["#document"].kml.Document
|
|
38785
|
+
});
|
|
38786
|
+
}
|
|
38787
|
+
const wayline3D = new WayLines3D(kmzObj.waylines);
|
|
38788
|
+
this.data = wayline3D;
|
|
38789
|
+
} catch (error) {
|
|
38790
|
+
this.parserError(`KMZ parsing failed: ${error}`, -1);
|
|
38791
|
+
}
|
|
38792
|
+
}
|
|
38793
|
+
parseNode(xml, obj) {
|
|
38794
|
+
const arrayLikeName = ["Placemark", "actionGroup", "action"];
|
|
38795
|
+
const attr = xml.nodeName.replace("wpml:", "");
|
|
38796
|
+
if (!xml.childNodes.length) {
|
|
38797
|
+
obj[attr] = void 0;
|
|
38798
|
+
} else {
|
|
38799
|
+
let textValue = null;
|
|
38800
|
+
let hasElementChildren = false;
|
|
38801
|
+
for (let i = 0; i < xml.childNodes.length; ++i) {
|
|
38802
|
+
const childNode = xml.childNodes[i];
|
|
38803
|
+
if (childNode.nodeType == Node.TEXT_NODE) {
|
|
38804
|
+
const text = childNode.nodeValue?.trim();
|
|
38805
|
+
if (text && text.length > 0) {
|
|
38806
|
+
textValue = text;
|
|
38807
|
+
}
|
|
38808
|
+
} else if (childNode.nodeType == Node.ELEMENT_NODE) {
|
|
38809
|
+
hasElementChildren = true;
|
|
38810
|
+
}
|
|
38811
|
+
}
|
|
38812
|
+
if (textValue && !hasElementChildren) {
|
|
38813
|
+
obj[attr] = textValue;
|
|
38814
|
+
} else if (hasElementChildren) {
|
|
38815
|
+
if (arrayLikeName.includes(attr)) {
|
|
38816
|
+
if (obj[attr]?.length) {
|
|
38817
|
+
obj[attr].push({});
|
|
38818
|
+
} else {
|
|
38819
|
+
obj[attr] = [{}];
|
|
38820
|
+
}
|
|
38821
|
+
} else {
|
|
38822
|
+
obj[attr] = {};
|
|
38823
|
+
}
|
|
38824
|
+
for (let i = 0; i < xml.childNodes.length; ++i) {
|
|
38825
|
+
const childNode = xml.childNodes[i];
|
|
38826
|
+
if (childNode.nodeType == Node.ELEMENT_NODE) {
|
|
38827
|
+
this.parseNode(
|
|
38828
|
+
childNode,
|
|
38829
|
+
!Array.isArray(obj[attr]) ? obj[attr] : obj[attr].at(-1)
|
|
38830
|
+
);
|
|
38831
|
+
}
|
|
38832
|
+
}
|
|
38833
|
+
} else {
|
|
38834
|
+
obj[attr] = void 0;
|
|
38835
|
+
}
|
|
38836
|
+
}
|
|
38837
|
+
}
|
|
38838
|
+
verification() {
|
|
38839
|
+
if (this.data) {
|
|
38840
|
+
return true;
|
|
38841
|
+
}
|
|
38842
|
+
throw new Error("verify failed.");
|
|
38843
|
+
}
|
|
38844
|
+
}
|
|
38845
|
+
|
|
37990
38846
|
class Res {
|
|
37991
38847
|
_texturePool;
|
|
37992
38848
|
_materialPool;
|
|
@@ -38216,6 +39072,11 @@ class Res {
|
|
|
38216
39072
|
let parser = await loader.load(url, AtlasParser, loaderFunctions, url);
|
|
38217
39073
|
return parser.data;
|
|
38218
39074
|
}
|
|
39075
|
+
async loadKMZ(url, loaderFunctions) {
|
|
39076
|
+
let loader = new FileLoader();
|
|
39077
|
+
let parser = await loader.load(url, KMZParser, loaderFunctions);
|
|
39078
|
+
return parser.data;
|
|
39079
|
+
}
|
|
38219
39080
|
normalTexture;
|
|
38220
39081
|
maskTexture;
|
|
38221
39082
|
whiteTexture;
|
|
@@ -38409,7 +39270,7 @@ class PostProcessingComponent extends ComponentBase {
|
|
|
38409
39270
|
}
|
|
38410
39271
|
}
|
|
38411
39272
|
|
|
38412
|
-
const version = "1.0.
|
|
39273
|
+
const version = "1.0.4";
|
|
38413
39274
|
|
|
38414
39275
|
class Engine3D {
|
|
38415
39276
|
/**
|
|
@@ -41718,6 +42579,267 @@ let GIProbeShader = (
|
|
|
41718
42579
|
`
|
|
41719
42580
|
);
|
|
41720
42581
|
|
|
42582
|
+
const GSplat_VS = (
|
|
42583
|
+
/* wgsl */
|
|
42584
|
+
`
|
|
42585
|
+
#include "GlobalUniform"
|
|
42586
|
+
|
|
42587
|
+
struct VSOut {
|
|
42588
|
+
@location(auto) vColor : vec4f,
|
|
42589
|
+
@location(auto) vTexCoord : vec2f,
|
|
42590
|
+
@builtin(position) member : vec4f
|
|
42591
|
+
};
|
|
42592
|
+
|
|
42593
|
+
// ===== SPLAT CORE VS (from PlayCanvas shader-generator-gsplat.js) =====
|
|
42594
|
+
|
|
42595
|
+
// Uniforms (mapped to WebGPU bindings)
|
|
42596
|
+
// matrix_model, matrix_view, matrix_projection -> GlobalUniform + MaterialUniform
|
|
42597
|
+
// viewport -> calculated from globalUniform.windowWidth/Height
|
|
42598
|
+
// tex_params -> materialUniform.tex_params
|
|
42599
|
+
|
|
42600
|
+
@group(1) @binding(0) var splatColor : texture_2d<f32>;
|
|
42601
|
+
@group(1) @binding(1) var transformA : texture_2d<u32>;
|
|
42602
|
+
@group(1) @binding(2) var transformB : texture_2d<f32>;
|
|
42603
|
+
@group(1) @binding(4) var splatOrder : texture_2d<u32>;
|
|
42604
|
+
|
|
42605
|
+
struct MaterialUniform {
|
|
42606
|
+
tex_params: vec4f, // numSplats, textureWidth, validCount, visBoost
|
|
42607
|
+
modelMatrix: mat4x4<f32>,
|
|
42608
|
+
};
|
|
42609
|
+
@group(1) @binding(3) var<uniform> materialUniform : MaterialUniform;
|
|
42610
|
+
|
|
42611
|
+
// Global variables (like PlayCanvas)
|
|
42612
|
+
var<private> orderId: u32;
|
|
42613
|
+
var<private> splatId: u32;
|
|
42614
|
+
var<private> splatUV: vec2<i32>;
|
|
42615
|
+
var<private> tA: vec4<u32>;
|
|
42616
|
+
|
|
42617
|
+
// Helper: decode 16-bit half float
|
|
42618
|
+
fn unpackHalf(h: u32) -> f32 {
|
|
42619
|
+
let s = (h >> 15u) & 0x1u;
|
|
42620
|
+
let e = (h >> 10u) & 0x1fu;
|
|
42621
|
+
let m = h & 0x3ffu;
|
|
42622
|
+
let sign = select(1.0, -1.0, s == 1u);
|
|
42623
|
+
if (e == 0u) {
|
|
42624
|
+
if (m == 0u) { return 0.0; }
|
|
42625
|
+
return sign * (f32(m) * exp2(-24.0));
|
|
42626
|
+
} else if (e == 31u) {
|
|
42627
|
+
return sign * 65504.0;
|
|
42628
|
+
} else {
|
|
42629
|
+
return sign * (1.0 + f32(m) / 1024.0) * exp2(f32(i32(e) - 15));
|
|
42630
|
+
}
|
|
42631
|
+
}
|
|
42632
|
+
|
|
42633
|
+
// === calcSplatUV() - returns bool ===
|
|
42634
|
+
fn calcSplatUV(instance_id: u32) -> bool {
|
|
42635
|
+
let numSplats = u32(materialUniform.tex_params.x);
|
|
42636
|
+
let textureWidth = u32(materialUniform.tex_params.y);
|
|
42637
|
+
|
|
42638
|
+
// calculate splat index
|
|
42639
|
+
orderId = instance_id;
|
|
42640
|
+
|
|
42641
|
+
if (orderId >= numSplats) {
|
|
42642
|
+
return false;
|
|
42643
|
+
}
|
|
42644
|
+
|
|
42645
|
+
let orderUV = vec2<i32>(
|
|
42646
|
+
i32(orderId % textureWidth),
|
|
42647
|
+
i32(orderId / textureWidth)
|
|
42648
|
+
);
|
|
42649
|
+
|
|
42650
|
+
// calculate splatUV
|
|
42651
|
+
splatId = textureLoad(splatOrder, orderUV, 0).r;
|
|
42652
|
+
splatUV = vec2<i32>(
|
|
42653
|
+
i32(splatId % textureWidth),
|
|
42654
|
+
i32(splatId / textureWidth)
|
|
42655
|
+
);
|
|
42656
|
+
|
|
42657
|
+
return true;
|
|
42658
|
+
}
|
|
42659
|
+
|
|
42660
|
+
// === getCenter() - returns vec3 ===
|
|
42661
|
+
fn getCenter() -> vec3f {
|
|
42662
|
+
tA = textureLoad(transformA, splatUV, 0);
|
|
42663
|
+
return vec3f(bitcast<f32>(tA.x), bitcast<f32>(tA.y), bitcast<f32>(tA.z));
|
|
42664
|
+
}
|
|
42665
|
+
|
|
42666
|
+
// Struct to return covA and covB
|
|
42667
|
+
struct CovarianceData {
|
|
42668
|
+
covA: vec3f,
|
|
42669
|
+
covB: vec3f,
|
|
42670
|
+
};
|
|
42671
|
+
|
|
42672
|
+
// === getCovariance() - returns struct ===
|
|
42673
|
+
fn getCovariance() -> CovarianceData {
|
|
42674
|
+
let tB = textureLoad(transformB, splatUV, 0);
|
|
42675
|
+
|
|
42676
|
+
// unpackHalf2x16 equivalent
|
|
42677
|
+
let h1 = tA.w & 0xFFFFu;
|
|
42678
|
+
let h2 = (tA.w >> 16u) & 0xFFFFu;
|
|
42679
|
+
let tCx = unpackHalf(h1);
|
|
42680
|
+
let tCy = unpackHalf(h2);
|
|
42681
|
+
|
|
42682
|
+
var result: CovarianceData;
|
|
42683
|
+
result.covA = tB.xyz;
|
|
42684
|
+
result.covB = vec3f(tCx, tCy, tB.w);
|
|
42685
|
+
|
|
42686
|
+
return result;
|
|
42687
|
+
}
|
|
42688
|
+
|
|
42689
|
+
// === calcV1V2() - returns vec4 ===
|
|
42690
|
+
fn calcV1V2(splat_cam: vec3f, covA: vec3f, covB: vec3f, W: mat3x3f, viewport: vec2f, projMat: mat4x4f) -> vec4f {
|
|
42691
|
+
let Vrk = mat3x3f(
|
|
42692
|
+
vec3f(covA.x, covA.y, covA.z),
|
|
42693
|
+
vec3f(covA.y, covB.x, covB.y),
|
|
42694
|
+
vec3f(covA.z, covB.y, covB.z)
|
|
42695
|
+
);
|
|
42696
|
+
|
|
42697
|
+
let focal = viewport.x * abs(projMat[0][0]);
|
|
42698
|
+
|
|
42699
|
+
let J1 = focal / abs(splat_cam.z);
|
|
42700
|
+
let J2 = -J1 / abs(splat_cam.z) * splat_cam.xy;
|
|
42701
|
+
let J = mat3x3f(
|
|
42702
|
+
vec3f(J1, 0.0, J2.x),
|
|
42703
|
+
vec3f(0.0, J1, J2.y),
|
|
42704
|
+
vec3f(0.0, 0.0, 0.0)
|
|
42705
|
+
);
|
|
42706
|
+
|
|
42707
|
+
let T = W * J;
|
|
42708
|
+
let cov = transpose(T) * Vrk * T;
|
|
42709
|
+
|
|
42710
|
+
let diagonal1 = cov[0][0] + 0.3;
|
|
42711
|
+
let offDiagonal = cov[0][1];
|
|
42712
|
+
let diagonal2 = cov[1][1] + 0.3;
|
|
42713
|
+
|
|
42714
|
+
let mid = 0.5 * (diagonal1 + diagonal2);
|
|
42715
|
+
let radius = length(vec2f((diagonal1 - diagonal2) / 2.0, offDiagonal));
|
|
42716
|
+
let lambda1 = mid + radius;
|
|
42717
|
+
let lambda2 = max(mid - radius, 0.1);
|
|
42718
|
+
let diagonalVector = normalize(vec2f(offDiagonal, lambda1 - diagonal1));
|
|
42719
|
+
|
|
42720
|
+
let v1 = min(sqrt(2.0 * lambda1), 1024.0) * diagonalVector;
|
|
42721
|
+
let v2 = min(sqrt(2.0 * lambda2), 1024.0) * vec2f(diagonalVector.y, -diagonalVector.x);
|
|
42722
|
+
|
|
42723
|
+
return vec4f(v1, v2);
|
|
42724
|
+
}
|
|
42725
|
+
|
|
42726
|
+
// ===== SPLAT MAIN VS (from PlayCanvas gsplat-material.js) =====
|
|
42727
|
+
|
|
42728
|
+
@vertex
|
|
42729
|
+
fn VertMain(
|
|
42730
|
+
@builtin(vertex_index) vid : u32,
|
|
42731
|
+
@builtin(instance_index) iid : u32
|
|
42732
|
+
) -> VSOut {
|
|
42733
|
+
var o: VSOut;
|
|
42734
|
+
let discardVec = vec4f(0.0, 0.0, 2.0, 1.0);
|
|
42735
|
+
|
|
42736
|
+
// Vertex position array (PlayCanvas uses attribute vec3 with x,y in [-1,1])
|
|
42737
|
+
let vertex_position = array<vec2f, 4>(
|
|
42738
|
+
vec2f(-2.0, -2.0),
|
|
42739
|
+
vec2f( 2.0, -2.0),
|
|
42740
|
+
vec2f(-2.0, 2.0),
|
|
42741
|
+
vec2f( 2.0, 2.0)
|
|
42742
|
+
);
|
|
42743
|
+
let vertex_pos = vertex_position[vid & 3u];
|
|
42744
|
+
|
|
42745
|
+
// calculate splat uv
|
|
42746
|
+
if (!calcSplatUV(iid)) {
|
|
42747
|
+
o.member = discardVec;
|
|
42748
|
+
o.vColor = vec4f(0.0);
|
|
42749
|
+
o.vTexCoord = vec2f(0.0);
|
|
42750
|
+
return o;
|
|
42751
|
+
}
|
|
42752
|
+
|
|
42753
|
+
// get center
|
|
42754
|
+
let center = getCenter();
|
|
42755
|
+
|
|
42756
|
+
// handle transforms
|
|
42757
|
+
let matrix_view = globalUniform.viewMat;
|
|
42758
|
+
let matrix_projection = globalUniform.projMat;
|
|
42759
|
+
let matrix_model = materialUniform.modelMatrix;
|
|
42760
|
+
|
|
42761
|
+
let model_view = matrix_view * matrix_model;
|
|
42762
|
+
let splat_cam = model_view * vec4f(center, 1.0);
|
|
42763
|
+
let splat_proj = matrix_projection * splat_cam;
|
|
42764
|
+
|
|
42765
|
+
// cull behind camera (WebGPU: NDC z in [0,1], cull if z/w < 0)
|
|
42766
|
+
if (splat_proj.z < 0.0) {
|
|
42767
|
+
o.member = discardVec;
|
|
42768
|
+
o.vColor = vec4f(0.0);
|
|
42769
|
+
o.vTexCoord = vec2f(0.0);
|
|
42770
|
+
return o;
|
|
42771
|
+
}
|
|
42772
|
+
|
|
42773
|
+
// get covariance
|
|
42774
|
+
let cov_data = getCovariance();
|
|
42775
|
+
|
|
42776
|
+
let viewport = vec2f(globalUniform.windowWidth, globalUniform.windowHeight);
|
|
42777
|
+
let v1v2 = calcV1V2(splat_cam.xyz, cov_data.covA, cov_data.covB, transpose(mat3x3f(model_view[0].xyz, model_view[1].xyz, model_view[2].xyz)), viewport, matrix_projection);
|
|
42778
|
+
|
|
42779
|
+
// get color
|
|
42780
|
+
let color = textureLoad(splatColor, splatUV, 0);
|
|
42781
|
+
|
|
42782
|
+
// calculate scale based on alpha
|
|
42783
|
+
let scale = min(1.0, sqrt(-log(1.0 / 255.0 / color.a)) / 2.0);
|
|
42784
|
+
|
|
42785
|
+
// apply visBoost (size multiplier)
|
|
42786
|
+
let visBoost = materialUniform.tex_params.w;
|
|
42787
|
+
var v1v2_scaled = v1v2 * scale * visBoost;
|
|
42788
|
+
|
|
42789
|
+
// early out tiny splats
|
|
42790
|
+
if (dot(v1v2_scaled.xy, v1v2_scaled.xy) < 4.0 && dot(v1v2_scaled.zw, v1v2_scaled.zw) < 4.0) {
|
|
42791
|
+
o.member = discardVec;
|
|
42792
|
+
o.vColor = vec4f(0.0);
|
|
42793
|
+
o.vTexCoord = vec2f(0.0);
|
|
42794
|
+
return o;
|
|
42795
|
+
}
|
|
42796
|
+
|
|
42797
|
+
// gl_Position = splat_proj + vec4((vertex_position.x * v1v2.xy + vertex_position.y * v1v2.zw) / viewport * splat_proj.w, 0, 0);
|
|
42798
|
+
o.member = splat_proj + vec4f((vertex_pos.x * v1v2_scaled.xy + vertex_pos.y * v1v2_scaled.zw) / viewport * splat_proj.w, 0.0, 0.0);
|
|
42799
|
+
|
|
42800
|
+
// texCoord = vertex_position.xy * scale / 2.0;
|
|
42801
|
+
o.vTexCoord = vertex_pos * scale / 2.0;
|
|
42802
|
+
|
|
42803
|
+
o.vColor = color;
|
|
42804
|
+
|
|
42805
|
+
return o;
|
|
42806
|
+
}
|
|
42807
|
+
`
|
|
42808
|
+
);
|
|
42809
|
+
const GSplat_FS = (
|
|
42810
|
+
/* wgsl */
|
|
42811
|
+
`
|
|
42812
|
+
#include "FragmentOutput"
|
|
42813
|
+
|
|
42814
|
+
// === evalSplat() - like PlayCanvas splatCoreFS ===
|
|
42815
|
+
fn evalSplat(texCoord: vec2f, color: vec4f) -> vec4f {
|
|
42816
|
+
let A = dot(texCoord, texCoord);
|
|
42817
|
+
if (A > 1.0) {
|
|
42818
|
+
discard;
|
|
42819
|
+
}
|
|
42820
|
+
|
|
42821
|
+
let B = exp(-A * 4.0) * color.a;
|
|
42822
|
+
if (B < 1.0 / 255.0) {
|
|
42823
|
+
discard;
|
|
42824
|
+
}
|
|
42825
|
+
|
|
42826
|
+
// TONEMAP_ENABLED branch not implemented (would call toneMap() and gammaCorrectOutput())
|
|
42827
|
+
return vec4f(color.rgb, B);
|
|
42828
|
+
}
|
|
42829
|
+
|
|
42830
|
+
// === main() - like PlayCanvas splatMainFS ===
|
|
42831
|
+
@fragment
|
|
42832
|
+
fn FragMain(@location(auto) vColor: vec4f, @location(auto) vTexCoord: vec2f) -> FragmentOutput {
|
|
42833
|
+
let result = evalSplat(vTexCoord, vColor);
|
|
42834
|
+
|
|
42835
|
+
var o: FragmentOutput;
|
|
42836
|
+
o.color = result;
|
|
42837
|
+
o.gBuffer = vec4f(0.0);
|
|
42838
|
+
return o;
|
|
42839
|
+
}
|
|
42840
|
+
`
|
|
42841
|
+
);
|
|
42842
|
+
|
|
41721
42843
|
let GlassShader = (
|
|
41722
42844
|
/*wgsl */
|
|
41723
42845
|
`
|
|
@@ -42858,14 +43980,16 @@ class AtmosphericScatteringSky extends LDRTextureCube {
|
|
|
42858
43980
|
_internalTexture;
|
|
42859
43981
|
_cubeSize;
|
|
42860
43982
|
setting;
|
|
43983
|
+
/**
|
|
43984
|
+
* @constructor
|
|
43985
|
+
* @param setting AtmosphericScatteringSkySetting
|
|
43986
|
+
* @returns
|
|
43987
|
+
*/
|
|
42861
43988
|
constructor(setting) {
|
|
42862
43989
|
super();
|
|
42863
43990
|
this.setting = setting;
|
|
42864
43991
|
this._cubeSize = setting.defaultTextureCubeSize;
|
|
42865
|
-
this._internalTexture = new AtmosphericTexture2D(
|
|
42866
|
-
setting.defaultTexture2DSize,
|
|
42867
|
-
setting.defaultTexture2DSize * 0.5
|
|
42868
|
-
);
|
|
43992
|
+
this._internalTexture = new AtmosphericTexture2D(setting.defaultTexture2DSize, setting.defaultTexture2DSize * 0.5);
|
|
42869
43993
|
this._internalTexture.update(this.setting);
|
|
42870
43994
|
this.createFromTexture(this._cubeSize, this._internalTexture);
|
|
42871
43995
|
return this;
|
|
@@ -42873,6 +43997,10 @@ class AtmosphericScatteringSky extends LDRTextureCube {
|
|
|
42873
43997
|
get texture2D() {
|
|
42874
43998
|
return this._internalTexture;
|
|
42875
43999
|
}
|
|
44000
|
+
/**
|
|
44001
|
+
* @internal
|
|
44002
|
+
* @returns
|
|
44003
|
+
*/
|
|
42876
44004
|
apply() {
|
|
42877
44005
|
this._internalTexture.update(this.setting);
|
|
42878
44006
|
this._faceData.uploadErpTexture(this._internalTexture);
|
|
@@ -42883,13 +44011,7 @@ class AtmosphericTexture2D extends VirtualTexture {
|
|
|
42883
44011
|
_computeShader;
|
|
42884
44012
|
_uniformBuffer;
|
|
42885
44013
|
constructor(width, height) {
|
|
42886
|
-
super(
|
|
42887
|
-
width,
|
|
42888
|
-
height,
|
|
42889
|
-
GPUTextureFormat.rgba16float,
|
|
42890
|
-
false,
|
|
42891
|
-
GPUTextureUsage.STORAGE_BINDING | GPUTextureUsage.TEXTURE_BINDING
|
|
42892
|
-
);
|
|
44014
|
+
super(width, height, GPUTextureFormat.rgba16float, false, GPUTextureUsage.STORAGE_BINDING | GPUTextureUsage.TEXTURE_BINDING);
|
|
42893
44015
|
this.initCompute(width, height);
|
|
42894
44016
|
}
|
|
42895
44017
|
initCompute(w, h) {
|
|
@@ -42922,9 +44044,9 @@ class AtmosphericTexture2D extends VirtualTexture {
|
|
|
42922
44044
|
}
|
|
42923
44045
|
}
|
|
42924
44046
|
|
|
42925
|
-
var __getOwnPropDesc$
|
|
42926
|
-
var __decorateClass$
|
|
42927
|
-
var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$
|
|
44047
|
+
var __getOwnPropDesc$b = Object.getOwnPropertyDescriptor;
|
|
44048
|
+
var __decorateClass$b = (decorators, target, key, kind) => {
|
|
44049
|
+
var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$b(target, key) : target;
|
|
42928
44050
|
for (var i = decorators.length - 1, decorator; i >= 0; i--)
|
|
42929
44051
|
if (decorator = decorators[i])
|
|
42930
44052
|
result = (decorator(result)) || result;
|
|
@@ -42948,8 +44070,8 @@ let SkyShader = class extends Shader {
|
|
|
42948
44070
|
shaderState.depthCompare = GPUCompareFunction.less;
|
|
42949
44071
|
}
|
|
42950
44072
|
};
|
|
42951
|
-
SkyShader = __decorateClass$
|
|
42952
|
-
RegisterShader
|
|
44073
|
+
SkyShader = __decorateClass$b([
|
|
44074
|
+
RegisterShader(SkyShader, "SkyShader")
|
|
42953
44075
|
], SkyShader);
|
|
42954
44076
|
|
|
42955
44077
|
class SkyMaterial extends Material {
|
|
@@ -42993,113 +44115,6 @@ class SkyMaterial extends Material {
|
|
|
42993
44115
|
}
|
|
42994
44116
|
}
|
|
42995
44117
|
|
|
42996
|
-
class SphereGeometry extends GeometryBase {
|
|
42997
|
-
shape_vertices = [];
|
|
42998
|
-
shape_indices = [];
|
|
42999
|
-
radius;
|
|
43000
|
-
widthSegments;
|
|
43001
|
-
heightSegments;
|
|
43002
|
-
phiStart;
|
|
43003
|
-
phiLength;
|
|
43004
|
-
thetaStart;
|
|
43005
|
-
thetaLength;
|
|
43006
|
-
/**
|
|
43007
|
-
* 球体几何体
|
|
43008
|
-
* @constructor
|
|
43009
|
-
* @param radius 球体半径
|
|
43010
|
-
* @param widthSegments 定义水平分段数
|
|
43011
|
-
* @param heightSegments 定义垂直分段数
|
|
43012
|
-
* @param phiStart 球体赤道线起始点的弧度
|
|
43013
|
-
* @param phiLength 球体赤道线的弧长
|
|
43014
|
-
* @param thetaStart 球体经线起始点的弧度
|
|
43015
|
-
* @param thetaLength 球体经线的弧长
|
|
43016
|
-
*/
|
|
43017
|
-
constructor(radius, widthSegments, heightSegments, phiStart, phiLength, thetaStart, thetaLength) {
|
|
43018
|
-
super();
|
|
43019
|
-
this.radius = radius;
|
|
43020
|
-
this.widthSegments = widthSegments;
|
|
43021
|
-
this.heightSegments = heightSegments;
|
|
43022
|
-
this.phiStart = phiStart;
|
|
43023
|
-
this.phiLength = phiLength;
|
|
43024
|
-
this.thetaStart = thetaStart;
|
|
43025
|
-
this.thetaLength = thetaLength;
|
|
43026
|
-
this.buildGeometry();
|
|
43027
|
-
}
|
|
43028
|
-
buildGeometry() {
|
|
43029
|
-
var i, j, triIndex = 0;
|
|
43030
|
-
let _segmentsH = this.heightSegments;
|
|
43031
|
-
let _segmentsW = this.widthSegments;
|
|
43032
|
-
let _radius = this.radius;
|
|
43033
|
-
var vertexCount = (_segmentsH + 1) * (_segmentsW + 1);
|
|
43034
|
-
let position_arr = new Float32Array(vertexCount * 3);
|
|
43035
|
-
let normal_arr = new Float32Array(vertexCount * 3);
|
|
43036
|
-
let uv_arr = new Float32Array(vertexCount * 2);
|
|
43037
|
-
let indice_arr = new Uint16Array(_segmentsW * _segmentsH * 2 * 3);
|
|
43038
|
-
let pi = 0;
|
|
43039
|
-
let ni = 0;
|
|
43040
|
-
let ui = 0;
|
|
43041
|
-
for (j = 0; j <= _segmentsH; ++j) {
|
|
43042
|
-
var horAngle = Math.PI * j / _segmentsH;
|
|
43043
|
-
var y = _radius * Math.cos(horAngle);
|
|
43044
|
-
var ringRadius = _radius * Math.sin(horAngle);
|
|
43045
|
-
for (i = 0; i <= _segmentsW; ++i) {
|
|
43046
|
-
var verAngle = 2 * Math.PI * i / _segmentsW;
|
|
43047
|
-
var x = ringRadius * Math.cos(verAngle);
|
|
43048
|
-
var z = ringRadius * Math.sin(verAngle);
|
|
43049
|
-
var normLen = 1 / Math.sqrt(x * x + y * y + z * z);
|
|
43050
|
-
position_arr[pi++] = x;
|
|
43051
|
-
position_arr[pi++] = y;
|
|
43052
|
-
position_arr[pi++] = z;
|
|
43053
|
-
normal_arr[ni++] = x * normLen;
|
|
43054
|
-
normal_arr[ni++] = y * normLen;
|
|
43055
|
-
normal_arr[ni++] = z * normLen;
|
|
43056
|
-
uv_arr[ui++] = i / _segmentsW;
|
|
43057
|
-
uv_arr[ui++] = j / _segmentsH;
|
|
43058
|
-
if (i > 0 && j > 0) {
|
|
43059
|
-
var a = (_segmentsW + 1) * j + i;
|
|
43060
|
-
var b = (_segmentsW + 1) * j + i - 1;
|
|
43061
|
-
var c = (_segmentsW + 1) * (j - 1) + i - 1;
|
|
43062
|
-
var d = (_segmentsW + 1) * (j - 1) + i;
|
|
43063
|
-
if (j == _segmentsH) {
|
|
43064
|
-
indice_arr[triIndex++] = a;
|
|
43065
|
-
indice_arr[triIndex++] = c;
|
|
43066
|
-
indice_arr[triIndex++] = d;
|
|
43067
|
-
} else if (j == 1) {
|
|
43068
|
-
indice_arr[triIndex++] = a;
|
|
43069
|
-
indice_arr[triIndex++] = b;
|
|
43070
|
-
indice_arr[triIndex++] = c;
|
|
43071
|
-
} else {
|
|
43072
|
-
indice_arr[triIndex++] = a;
|
|
43073
|
-
indice_arr[triIndex++] = b;
|
|
43074
|
-
indice_arr[triIndex++] = c;
|
|
43075
|
-
indice_arr[triIndex++] = a;
|
|
43076
|
-
indice_arr[triIndex++] = c;
|
|
43077
|
-
indice_arr[triIndex++] = d;
|
|
43078
|
-
}
|
|
43079
|
-
}
|
|
43080
|
-
}
|
|
43081
|
-
}
|
|
43082
|
-
this.setIndices(indice_arr);
|
|
43083
|
-
this.setAttribute(VertexAttributeName.position, position_arr);
|
|
43084
|
-
this.setAttribute(VertexAttributeName.normal, normal_arr);
|
|
43085
|
-
this.setAttribute(VertexAttributeName.uv, uv_arr);
|
|
43086
|
-
this.setAttribute(VertexAttributeName.TEXCOORD_1, uv_arr);
|
|
43087
|
-
this.addSubGeometry({
|
|
43088
|
-
indexStart: 0,
|
|
43089
|
-
indexCount: indice_arr.length,
|
|
43090
|
-
vertexStart: 0,
|
|
43091
|
-
vertexCount: 0,
|
|
43092
|
-
firstStart: 0,
|
|
43093
|
-
index: 0,
|
|
43094
|
-
topology: 0
|
|
43095
|
-
});
|
|
43096
|
-
this.bounds = new BoundingBox(
|
|
43097
|
-
Vector3.ZERO,
|
|
43098
|
-
new Vector3(this.radius * 2, this.radius * 2, this.radius * 2)
|
|
43099
|
-
);
|
|
43100
|
-
}
|
|
43101
|
-
}
|
|
43102
|
-
|
|
43103
44118
|
class Reflection extends RenderNode {
|
|
43104
44119
|
gid = 0;
|
|
43105
44120
|
needUpdate = true;
|
|
@@ -43853,9 +44868,9 @@ class SkeletonAnimationClipState {
|
|
|
43853
44868
|
}
|
|
43854
44869
|
}
|
|
43855
44870
|
|
|
43856
|
-
var __getOwnPropDesc$
|
|
43857
|
-
var __decorateClass$
|
|
43858
|
-
var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$
|
|
44871
|
+
var __getOwnPropDesc$a = Object.getOwnPropertyDescriptor;
|
|
44872
|
+
var __decorateClass$a = (decorators, target, key, kind) => {
|
|
44873
|
+
var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$a(target, key) : target;
|
|
43859
44874
|
for (var i = decorators.length - 1, decorator; i >= 0; i--)
|
|
43860
44875
|
if (decorator = decorators[i])
|
|
43861
44876
|
result = (decorator(result)) || result;
|
|
@@ -44059,7 +45074,7 @@ let SkeletonAnimationComponent = class extends ComponentBase {
|
|
|
44059
45074
|
this._currentClipState.weight = 1;
|
|
44060
45075
|
}
|
|
44061
45076
|
};
|
|
44062
|
-
SkeletonAnimationComponent = __decorateClass$
|
|
45077
|
+
SkeletonAnimationComponent = __decorateClass$a([
|
|
44063
45078
|
RegisterComponent(SkeletonAnimationComponent, "SkeletonAnimationComponent")
|
|
44064
45079
|
], SkeletonAnimationComponent);
|
|
44065
45080
|
class SkeletonAnimationCrossFadeState {
|
|
@@ -44095,9 +45110,9 @@ class SkeletonAnimationCrossFadeState {
|
|
|
44095
45110
|
}
|
|
44096
45111
|
}
|
|
44097
45112
|
|
|
44098
|
-
var __getOwnPropDesc$
|
|
44099
|
-
var __decorateClass$
|
|
44100
|
-
var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$
|
|
45113
|
+
var __getOwnPropDesc$9 = Object.getOwnPropertyDescriptor;
|
|
45114
|
+
var __decorateClass$9 = (decorators, target, key, kind) => {
|
|
45115
|
+
var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$9(target, key) : target;
|
|
44101
45116
|
for (var i = decorators.length - 1, decorator; i >= 0; i--)
|
|
44102
45117
|
if (decorator = decorators[i])
|
|
44103
45118
|
result = (decorator(result)) || result;
|
|
@@ -44508,7 +45523,7 @@ let AnimatorComponent = class extends ComponentBase {
|
|
|
44508
45523
|
return dst;
|
|
44509
45524
|
}
|
|
44510
45525
|
};
|
|
44511
|
-
AnimatorComponent = __decorateClass$
|
|
45526
|
+
AnimatorComponent = __decorateClass$9([
|
|
44512
45527
|
RegisterComponent(AnimatorComponent, "AnimatorComponent")
|
|
44513
45528
|
], AnimatorComponent);
|
|
44514
45529
|
class PropertyAnimationClipState {
|
|
@@ -45265,9 +46280,9 @@ class PropertyAnimation extends ComponentBase {
|
|
|
45265
46280
|
}
|
|
45266
46281
|
}
|
|
45267
46282
|
|
|
45268
|
-
var __getOwnPropDesc$
|
|
45269
|
-
var __decorateClass$
|
|
45270
|
-
var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$
|
|
46283
|
+
var __getOwnPropDesc$8 = Object.getOwnPropertyDescriptor;
|
|
46284
|
+
var __decorateClass$8 = (decorators, target, key, kind) => {
|
|
46285
|
+
var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$8(target, key) : target;
|
|
45271
46286
|
for (var i = decorators.length - 1, decorator; i >= 0; i--)
|
|
45272
46287
|
if (decorator = decorators[i])
|
|
45273
46288
|
result = (decorator(result)) || result;
|
|
@@ -45416,7 +46431,7 @@ let SkinnedMeshRenderer2 = class extends MeshRenderer {
|
|
|
45416
46431
|
super.nodeUpdate(view, passType, renderPassState, clusterLightingBuffer);
|
|
45417
46432
|
}
|
|
45418
46433
|
};
|
|
45419
|
-
SkinnedMeshRenderer2 = __decorateClass$
|
|
46434
|
+
SkinnedMeshRenderer2 = __decorateClass$8([
|
|
45420
46435
|
RegisterComponent(SkinnedMeshRenderer2, "SkinnedMeshRenderer2")
|
|
45421
46436
|
], SkinnedMeshRenderer2);
|
|
45422
46437
|
|
|
@@ -50546,9 +51561,9 @@ class UITextField extends UIRenderAble {
|
|
|
50546
51561
|
}
|
|
50547
51562
|
}
|
|
50548
51563
|
|
|
50549
|
-
var __getOwnPropDesc$
|
|
50550
|
-
var __decorateClass$
|
|
50551
|
-
var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$
|
|
51564
|
+
var __getOwnPropDesc$7 = Object.getOwnPropertyDescriptor;
|
|
51565
|
+
var __decorateClass$7 = (decorators, target, key, kind) => {
|
|
51566
|
+
var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$7(target, key) : target;
|
|
50552
51567
|
for (var i = decorators.length - 1, decorator; i >= 0; i--)
|
|
50553
51568
|
if (decorator = decorators[i])
|
|
50554
51569
|
result = (decorator(result)) || result;
|
|
@@ -50625,10 +51640,802 @@ let Light = class extends LightBase {
|
|
|
50625
51640
|
debugDraw(show) {
|
|
50626
51641
|
}
|
|
50627
51642
|
};
|
|
50628
|
-
Light = __decorateClass$
|
|
51643
|
+
Light = __decorateClass$7([
|
|
50629
51644
|
RegisterComponent(Light, "Light")
|
|
50630
51645
|
], Light);
|
|
50631
51646
|
|
|
51647
|
+
class GSplatMaterial extends Material {
|
|
51648
|
+
constructor() {
|
|
51649
|
+
super();
|
|
51650
|
+
ShaderLib.register("gsplat_vs_dc", GSplat_VS);
|
|
51651
|
+
ShaderLib.register("gsplat_fs_dc", GSplat_FS);
|
|
51652
|
+
const pass = new RenderShaderPass("gsplat_vs_dc", "gsplat_fs_dc");
|
|
51653
|
+
pass.passType = PassType.COLOR;
|
|
51654
|
+
pass.setShaderEntry("VertMain", "FragMain");
|
|
51655
|
+
pass.topology = GPUPrimitiveTopology.triangle_strip;
|
|
51656
|
+
pass.depthWriteEnabled = false;
|
|
51657
|
+
pass.cullMode = "none";
|
|
51658
|
+
pass.shaderState.transparent = true;
|
|
51659
|
+
pass.shaderState.blendMode = BlendMode.NORMAL;
|
|
51660
|
+
pass.shaderState.writeMasks = [15, 15];
|
|
51661
|
+
const shader = new Shader();
|
|
51662
|
+
shader.addRenderPass(pass);
|
|
51663
|
+
this.shader = shader;
|
|
51664
|
+
}
|
|
51665
|
+
setSplatTextures(splatColor, transformA, transformB, texParams, splatOrder) {
|
|
51666
|
+
const pass = this.shader.getDefaultColorShader();
|
|
51667
|
+
pass.setTexture("splatColor", splatColor);
|
|
51668
|
+
pass.setTexture("transformA", transformA);
|
|
51669
|
+
pass.setTexture("transformB", transformB);
|
|
51670
|
+
pass.setUniformArray("tex_params", texParams);
|
|
51671
|
+
if (splatOrder) {
|
|
51672
|
+
pass.setTexture("splatOrder", splatOrder);
|
|
51673
|
+
}
|
|
51674
|
+
}
|
|
51675
|
+
/**
|
|
51676
|
+
* Set the model matrix for transforming splats to world space
|
|
51677
|
+
*/
|
|
51678
|
+
setTransformMatrix(matrix) {
|
|
51679
|
+
const pass = this.shader.getDefaultColorShader();
|
|
51680
|
+
pass.setUniform("modelMatrix", matrix.rawData);
|
|
51681
|
+
}
|
|
51682
|
+
}
|
|
51683
|
+
|
|
51684
|
+
class Uint32ArrayTexture extends Texture {
|
|
51685
|
+
_dataBuffer;
|
|
51686
|
+
create(width, height, data) {
|
|
51687
|
+
let device = webGPUContext.device;
|
|
51688
|
+
const bytesPerRow = width * 4 * 4;
|
|
51689
|
+
this.format = GPUTextureFormat.rgba32uint;
|
|
51690
|
+
const mipmapCount = 1;
|
|
51691
|
+
this.createTextureDescriptor(width, height, mipmapCount, this.format);
|
|
51692
|
+
const textureDataBuffer = this._dataBuffer = device.createBuffer({
|
|
51693
|
+
size: data.byteLength,
|
|
51694
|
+
usage: GPUBufferUsage.COPY_DST | GPUBufferUsage.COPY_SRC
|
|
51695
|
+
});
|
|
51696
|
+
device.queue.writeBuffer(textureDataBuffer, 0, data.buffer);
|
|
51697
|
+
const encoder = device.createCommandEncoder();
|
|
51698
|
+
encoder.copyBufferToTexture(
|
|
51699
|
+
{ buffer: textureDataBuffer, bytesPerRow },
|
|
51700
|
+
{ texture: this.getGPUTexture() },
|
|
51701
|
+
{ width, height, depthOrArrayLayers: 1 }
|
|
51702
|
+
);
|
|
51703
|
+
device.queue.submit([encoder.finish()]);
|
|
51704
|
+
this.samplerBindingLayout.type = `non-filtering`;
|
|
51705
|
+
this.textureBindingLayout.sampleType = `uint`;
|
|
51706
|
+
this.gpuSampler = device.createSampler({});
|
|
51707
|
+
return this;
|
|
51708
|
+
}
|
|
51709
|
+
updateTexture(width, height, data) {
|
|
51710
|
+
let device = webGPUContext.device;
|
|
51711
|
+
const bytesPerRow = width * 4 * 4;
|
|
51712
|
+
const staging = device.createBuffer({
|
|
51713
|
+
size: data.byteLength,
|
|
51714
|
+
usage: GPUBufferUsage.COPY_DST | GPUBufferUsage.COPY_SRC
|
|
51715
|
+
});
|
|
51716
|
+
device.queue.writeBuffer(staging, 0, data.buffer);
|
|
51717
|
+
const encoder = device.createCommandEncoder();
|
|
51718
|
+
encoder.copyBufferToTexture(
|
|
51719
|
+
{ buffer: staging, bytesPerRow },
|
|
51720
|
+
{ texture: this.getGPUTexture() },
|
|
51721
|
+
{ width, height, depthOrArrayLayers: 1 }
|
|
51722
|
+
);
|
|
51723
|
+
device.queue.submit([encoder.finish()]);
|
|
51724
|
+
}
|
|
51725
|
+
}
|
|
51726
|
+
|
|
51727
|
+
class Float16ArrayTexture extends Texture {
|
|
51728
|
+
uint16Array;
|
|
51729
|
+
floatArray;
|
|
51730
|
+
_dataBuffer;
|
|
51731
|
+
/**
|
|
51732
|
+
* 使用数字数组填充纹理,格式为[红0, 绿0, 蓝0, 透明度0, 红1, 绿1, 蓝1, 透明度1...]
|
|
51733
|
+
* @param width 纹理宽度
|
|
51734
|
+
* @param height 纹理高度
|
|
51735
|
+
* @param numbers 每个像素的颜色值数组
|
|
51736
|
+
* @param useMipmap 是否生成Mipmap
|
|
51737
|
+
* @returns 返回纹理实例
|
|
51738
|
+
*/
|
|
51739
|
+
create(width, height, numbers = null, mipmap = true) {
|
|
51740
|
+
if (numbers == null) {
|
|
51741
|
+
numbers = [];
|
|
51742
|
+
for (let i = 0, c = width * height * 4; i < c; i++) {
|
|
51743
|
+
numbers[i] = 0;
|
|
51744
|
+
}
|
|
51745
|
+
}
|
|
51746
|
+
this.updateTexture(width, height, numbers, mipmap);
|
|
51747
|
+
return this;
|
|
51748
|
+
}
|
|
51749
|
+
/**
|
|
51750
|
+
* 更新纹理内容
|
|
51751
|
+
* @param width 纹理宽度
|
|
51752
|
+
* @param height 纹理高度
|
|
51753
|
+
* @param numbers 像素数据数组
|
|
51754
|
+
* @param mipmap 是否生成Mipmap
|
|
51755
|
+
*/
|
|
51756
|
+
updateTexture(width, height, numbers, mipmap = true) {
|
|
51757
|
+
if (width != this.width || height != this.height) {
|
|
51758
|
+
this._dataBuffer && this._dataBuffer.destroy();
|
|
51759
|
+
this._dataBuffer = null;
|
|
51760
|
+
this.gpuTexture && this.gpuTexture.destroy();
|
|
51761
|
+
this.gpuTexture = null;
|
|
51762
|
+
}
|
|
51763
|
+
this.floatArray = numbers;
|
|
51764
|
+
let device = webGPUContext.device;
|
|
51765
|
+
const bytesPerRow = width * 4 * 2;
|
|
51766
|
+
this.format = GPUTextureFormat.rgba16float;
|
|
51767
|
+
this.mipmapCount = Math.floor(mipmap ? Math.log2(width) : 1);
|
|
51768
|
+
this.createTextureDescriptor(width, height, this.mipmapCount, this.format);
|
|
51769
|
+
if (!this.uint16Array || this.uint16Array.length != numbers.length) {
|
|
51770
|
+
this.uint16Array = new Uint16Array(numbers.length);
|
|
51771
|
+
}
|
|
51772
|
+
let uint16Array = this.uint16Array;
|
|
51773
|
+
for (let i = 0, c = uint16Array.length; i < c; i++) {
|
|
51774
|
+
uint16Array[i] = toHalfFloat(numbers[i]);
|
|
51775
|
+
}
|
|
51776
|
+
const textureDataBuffer = this._dataBuffer = device.createBuffer({
|
|
51777
|
+
size: uint16Array.byteLength,
|
|
51778
|
+
usage: GPUBufferUsage.COPY_DST | GPUBufferUsage.COPY_SRC
|
|
51779
|
+
});
|
|
51780
|
+
device.queue.writeBuffer(textureDataBuffer, 0, uint16Array);
|
|
51781
|
+
const commandEncoder = GPUContext.beginCommandEncoder();
|
|
51782
|
+
commandEncoder.copyBufferToTexture(
|
|
51783
|
+
{
|
|
51784
|
+
buffer: textureDataBuffer,
|
|
51785
|
+
bytesPerRow
|
|
51786
|
+
},
|
|
51787
|
+
{
|
|
51788
|
+
texture: this.getGPUTexture()
|
|
51789
|
+
},
|
|
51790
|
+
{
|
|
51791
|
+
width,
|
|
51792
|
+
height,
|
|
51793
|
+
depthOrArrayLayers: 1
|
|
51794
|
+
}
|
|
51795
|
+
);
|
|
51796
|
+
if (!this.useMipmap) {
|
|
51797
|
+
this.samplerBindingLayout.type = `filtering`;
|
|
51798
|
+
this.textureBindingLayout.sampleType = `float`;
|
|
51799
|
+
}
|
|
51800
|
+
GPUContext.endCommandEncoder(commandEncoder);
|
|
51801
|
+
this.gpuSampler = device.createSampler(this);
|
|
51802
|
+
this.gpuTexture = this.getGPUTexture();
|
|
51803
|
+
if (this.mipmapCount > 1) TextureMipmapGenerator.webGPUGenerateMipmap(this);
|
|
51804
|
+
}
|
|
51805
|
+
}
|
|
51806
|
+
|
|
51807
|
+
var __getOwnPropDesc$6 = Object.getOwnPropertyDescriptor;
|
|
51808
|
+
var __decorateClass$6 = (decorators, target, key, kind) => {
|
|
51809
|
+
var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc$6(target, key) : target;
|
|
51810
|
+
for (var i = decorators.length - 1, decorator; i >= 0; i--)
|
|
51811
|
+
if (decorator = decorators[i])
|
|
51812
|
+
result = (decorator(result)) || result;
|
|
51813
|
+
return result;
|
|
51814
|
+
};
|
|
51815
|
+
let GSplatRenderer = class extends RenderNode {
|
|
51816
|
+
// Splat count and texture dimensions
|
|
51817
|
+
count = 0;
|
|
51818
|
+
size = new Vector2();
|
|
51819
|
+
// GPU textures for splat data
|
|
51820
|
+
splatColor;
|
|
51821
|
+
transformA;
|
|
51822
|
+
transformB;
|
|
51823
|
+
texParams;
|
|
51824
|
+
// [numSplats, texWidth, validCount, visBoost]
|
|
51825
|
+
splatOrder;
|
|
51826
|
+
// Material and geometry
|
|
51827
|
+
gsplatMaterial;
|
|
51828
|
+
// CPU-side data for sorting
|
|
51829
|
+
_positions;
|
|
51830
|
+
// xyz per splat (local space)
|
|
51831
|
+
_worldPositions;
|
|
51832
|
+
// xyz per splat (world space, cached)
|
|
51833
|
+
_orderData;
|
|
51834
|
+
// RGBA32U backing: size.x * size.y * 4
|
|
51835
|
+
// Web Worker for sorting
|
|
51836
|
+
_sortWorker;
|
|
51837
|
+
_lastSentTime = 0;
|
|
51838
|
+
_minIntervalMs = 0;
|
|
51839
|
+
// No throttle for immediate sorting
|
|
51840
|
+
_centersSent = false;
|
|
51841
|
+
_lastViewMatrixHash = 0;
|
|
51842
|
+
// Mapping support (optional subset rendering)
|
|
51843
|
+
_mapping = null;
|
|
51844
|
+
_fullCount = 0;
|
|
51845
|
+
// Original total count
|
|
51846
|
+
constructor() {
|
|
51847
|
+
super();
|
|
51848
|
+
}
|
|
51849
|
+
/**
|
|
51850
|
+
* Initialize from Gaussian Splat asset
|
|
51851
|
+
*/
|
|
51852
|
+
initAsset(asset) {
|
|
51853
|
+
this.count = asset.count;
|
|
51854
|
+
this._fullCount = asset.count;
|
|
51855
|
+
this.size = this.evalTextureSize(asset.count);
|
|
51856
|
+
this.buildColor(asset);
|
|
51857
|
+
this.buildTransform(asset);
|
|
51858
|
+
this.texParams = new Float32Array([this.count, this.size.x, this.count, 1]);
|
|
51859
|
+
this._positions = asset.position;
|
|
51860
|
+
const total = this.size.x * this.size.y;
|
|
51861
|
+
this._orderData = new Uint32Array(total * 4);
|
|
51862
|
+
for (let i = 0; i < total; i++) {
|
|
51863
|
+
const src = i < this.count ? i : this.count > 0 ? this.count - 1 : 0;
|
|
51864
|
+
const base = i * 4;
|
|
51865
|
+
this._orderData[base + 0] = src;
|
|
51866
|
+
this._orderData[base + 1] = 0;
|
|
51867
|
+
this._orderData[base + 2] = 0;
|
|
51868
|
+
this._orderData[base + 3] = 0;
|
|
51869
|
+
}
|
|
51870
|
+
this.splatOrder = new Uint32ArrayTexture().create(this.size.x, this.size.y, this._orderData);
|
|
51871
|
+
this.splatOrder.name = "splatOrder";
|
|
51872
|
+
this.splatOrder.minFilter = "nearest";
|
|
51873
|
+
this.splatOrder.magFilter = "nearest";
|
|
51874
|
+
this.splatOrder.addressModeU = "clamp-to-edge";
|
|
51875
|
+
this.splatOrder.addressModeV = "clamp-to-edge";
|
|
51876
|
+
this.gsplatMaterial = new GSplatMaterial();
|
|
51877
|
+
this.geometry = new PlaneGeometry(1, 1, 1, 1);
|
|
51878
|
+
this.materials = [this.gsplatMaterial];
|
|
51879
|
+
}
|
|
51880
|
+
/**
|
|
51881
|
+
* Update splat sorting before rendering
|
|
51882
|
+
* This runs every frame to ensure correct depth ordering for alpha blending
|
|
51883
|
+
*/
|
|
51884
|
+
onBeforeUpdate(view) {
|
|
51885
|
+
if (this.count > 0 && view?.camera?.viewMatrix) {
|
|
51886
|
+
this.scheduleOrder(view.camera.viewMatrix);
|
|
51887
|
+
}
|
|
51888
|
+
}
|
|
51889
|
+
/**
|
|
51890
|
+
* Set rendering subset mapping
|
|
51891
|
+
* Pass null/undefined to cancel mapping
|
|
51892
|
+
*/
|
|
51893
|
+
setMapping(mapping) {
|
|
51894
|
+
this._mapping = mapping && mapping.length > 0 ? mapping : null;
|
|
51895
|
+
this.count = this._mapping ? this._mapping.length : this._fullCount;
|
|
51896
|
+
this.texParams[0] = this.count;
|
|
51897
|
+
this.texParams[2] = Math.min(this.texParams[0], this.count);
|
|
51898
|
+
const total = this.size.x * this.size.y;
|
|
51899
|
+
for (let i = 0; i < total; i++) {
|
|
51900
|
+
const src = i < this.count ? i : this.count > 0 ? this.count - 1 : 0;
|
|
51901
|
+
const base = i * 4;
|
|
51902
|
+
this._orderData[base + 0] = src;
|
|
51903
|
+
this._orderData[base + 1] = 0;
|
|
51904
|
+
this._orderData[base + 2] = 0;
|
|
51905
|
+
this._orderData[base + 3] = 0;
|
|
51906
|
+
}
|
|
51907
|
+
this.splatOrder.updateTexture(this.size.x, this.size.y, this._orderData);
|
|
51908
|
+
if (this._sortWorker) {
|
|
51909
|
+
const worldPos = this._worldPositions || this._positions;
|
|
51910
|
+
const centers = this._mapping ? new Float32Array(this._mapping.length * 3) : new Float32Array(worldPos);
|
|
51911
|
+
if (this._mapping) {
|
|
51912
|
+
for (let i = 0; i < this._mapping.length; ++i) {
|
|
51913
|
+
const src = this._mapping[i] * 3;
|
|
51914
|
+
const dst = i * 3;
|
|
51915
|
+
centers[dst + 0] = worldPos[src + 0];
|
|
51916
|
+
centers[dst + 1] = worldPos[src + 1];
|
|
51917
|
+
centers[dst + 2] = worldPos[src + 2];
|
|
51918
|
+
}
|
|
51919
|
+
}
|
|
51920
|
+
this._sortWorker.postMessage(
|
|
51921
|
+
{
|
|
51922
|
+
type: "centers",
|
|
51923
|
+
centers: centers.buffer,
|
|
51924
|
+
mapping: this._mapping ? this._mapping : null
|
|
51925
|
+
},
|
|
51926
|
+
[centers.buffer]
|
|
51927
|
+
);
|
|
51928
|
+
this._centersSent = true;
|
|
51929
|
+
} else {
|
|
51930
|
+
this._centersSent = false;
|
|
51931
|
+
}
|
|
51932
|
+
}
|
|
51933
|
+
/**
|
|
51934
|
+
* Set visibility boost factor (material uniform tex_params.w)
|
|
51935
|
+
*/
|
|
51936
|
+
setVisBoost(v) {
|
|
51937
|
+
this.texParams[3] = Math.max(0, v);
|
|
51938
|
+
}
|
|
51939
|
+
/**
|
|
51940
|
+
* Set sort throttle interval (milliseconds)
|
|
51941
|
+
*/
|
|
51942
|
+
setSortThrottle(ms) {
|
|
51943
|
+
this._minIntervalMs = Math.max(0, ms | 0);
|
|
51944
|
+
}
|
|
51945
|
+
/**
|
|
51946
|
+
* Calculate texture size for given splat count
|
|
51947
|
+
*/
|
|
51948
|
+
evalTextureSize(count) {
|
|
51949
|
+
let w = Math.ceil(Math.sqrt(count));
|
|
51950
|
+
const align = 64;
|
|
51951
|
+
w = Math.ceil(w / align) * align;
|
|
51952
|
+
const h = Math.ceil(count / w);
|
|
51953
|
+
return new Vector2(w, h);
|
|
51954
|
+
}
|
|
51955
|
+
/**
|
|
51956
|
+
* Build color texture from asset
|
|
51957
|
+
*/
|
|
51958
|
+
buildColor(asset) {
|
|
51959
|
+
const w = this.size.x | 0;
|
|
51960
|
+
const h = this.size.y | 0;
|
|
51961
|
+
const data = new Uint8Array(w * h * 4);
|
|
51962
|
+
const SH_C0 = 0.28209479177387814;
|
|
51963
|
+
const count = asset.count;
|
|
51964
|
+
const coeffs = asset.sh?.coeffs;
|
|
51965
|
+
const coeffsPerColor = coeffs ? coeffs.length / (3 * count) : 1;
|
|
51966
|
+
for (let i = 0; i < count; i++) {
|
|
51967
|
+
let r = 0.5, g = 0.5, b = 0.5;
|
|
51968
|
+
if (coeffs && coeffsPerColor >= 1) {
|
|
51969
|
+
const baseIndex = i * coeffsPerColor * 3;
|
|
51970
|
+
r = 0.5 + coeffs[baseIndex + 0] * SH_C0;
|
|
51971
|
+
g = 0.5 + coeffs[baseIndex + coeffsPerColor + 0] * SH_C0;
|
|
51972
|
+
b = 0.5 + coeffs[baseIndex + 2 * coeffsPerColor + 0] * SH_C0;
|
|
51973
|
+
}
|
|
51974
|
+
const a = asset.opacity ? 1 / (1 + Math.exp(-asset.opacity[i])) : 1;
|
|
51975
|
+
const idx = i * 4;
|
|
51976
|
+
data[idx + 0] = Math.max(0, Math.min(255, Math.floor(r * 255)));
|
|
51977
|
+
data[idx + 1] = Math.max(0, Math.min(255, Math.floor(g * 255)));
|
|
51978
|
+
data[idx + 2] = Math.max(0, Math.min(255, Math.floor(b * 255)));
|
|
51979
|
+
data[idx + 3] = Math.max(0, Math.min(255, Math.floor(a * 255)));
|
|
51980
|
+
}
|
|
51981
|
+
this.splatColor = new Uint8ArrayTexture().create(w, h, data, false);
|
|
51982
|
+
this.splatColor.name = "splatColor";
|
|
51983
|
+
this.splatColor.minFilter = "nearest";
|
|
51984
|
+
this.splatColor.magFilter = "nearest";
|
|
51985
|
+
this.splatColor.mipmapFilter = "nearest";
|
|
51986
|
+
this.splatColor.addressModeU = "clamp-to-edge";
|
|
51987
|
+
this.splatColor.addressModeV = "clamp-to-edge";
|
|
51988
|
+
}
|
|
51989
|
+
/**
|
|
51990
|
+
* Build transform textures from asset
|
|
51991
|
+
*/
|
|
51992
|
+
buildTransform(asset) {
|
|
51993
|
+
const w = this.size.x | 0;
|
|
51994
|
+
const h = this.size.y | 0;
|
|
51995
|
+
const count = asset.count;
|
|
51996
|
+
const tA = new Uint32Array(w * h * 4);
|
|
51997
|
+
const tB = new Array(w * h * 4).fill(0);
|
|
51998
|
+
const fb = new ArrayBuffer(4);
|
|
51999
|
+
const f32 = new Float32Array(fb);
|
|
52000
|
+
const u32 = new Uint32Array(fb);
|
|
52001
|
+
const setFloatBits = (v) => {
|
|
52002
|
+
f32[0] = v;
|
|
52003
|
+
return u32[0];
|
|
52004
|
+
};
|
|
52005
|
+
const pos = asset.position;
|
|
52006
|
+
const rot = asset.rotation;
|
|
52007
|
+
const scl = asset.scale;
|
|
52008
|
+
let maxScale = 0;
|
|
52009
|
+
let minScale = Infinity;
|
|
52010
|
+
let maxCov = 0;
|
|
52011
|
+
for (let i = 0; i < count; i++) {
|
|
52012
|
+
const idx = i * 4;
|
|
52013
|
+
const x = pos[i * 3 + 0];
|
|
52014
|
+
const y = pos[i * 3 + 1];
|
|
52015
|
+
const z = pos[i * 3 + 2];
|
|
52016
|
+
tA[idx + 0] = setFloatBits(x);
|
|
52017
|
+
tA[idx + 1] = setFloatBits(y);
|
|
52018
|
+
tA[idx + 2] = setFloatBits(z);
|
|
52019
|
+
let qx = 0, qy = 0, qz = 0, qw = 1;
|
|
52020
|
+
if (rot) {
|
|
52021
|
+
qx = rot[i * 4 + 0];
|
|
52022
|
+
qy = rot[i * 4 + 1];
|
|
52023
|
+
qz = rot[i * 4 + 2];
|
|
52024
|
+
qw = rot[i * 4 + 3];
|
|
52025
|
+
const inv = 1 / Math.hypot(qx, qy, qz, qw);
|
|
52026
|
+
qx *= inv;
|
|
52027
|
+
qy *= inv;
|
|
52028
|
+
qz *= inv;
|
|
52029
|
+
qw *= inv;
|
|
52030
|
+
}
|
|
52031
|
+
let sx = 1, sy = 1, sz = 1;
|
|
52032
|
+
if (scl) {
|
|
52033
|
+
sx = Math.exp(scl[i * 3 + 0]);
|
|
52034
|
+
sy = Math.exp(scl[i * 3 + 1]);
|
|
52035
|
+
sz = Math.exp(scl[i * 3 + 2]);
|
|
52036
|
+
maxScale = Math.max(maxScale, sx, sy, sz);
|
|
52037
|
+
minScale = Math.min(minScale, sx, sy, sz);
|
|
52038
|
+
}
|
|
52039
|
+
const xx = qx * qx, yy = qy * qy, zz = qz * qz;
|
|
52040
|
+
const xy = qx * qy, xz = qx * qz, yz = qy * qz;
|
|
52041
|
+
const wx = qw * qx, wy = qw * qy, wz = qw * qz;
|
|
52042
|
+
const m00 = 1 - 2 * (yy + zz);
|
|
52043
|
+
const m01 = 2 * (xy + wz);
|
|
52044
|
+
const m02 = 2 * (xz - wy);
|
|
52045
|
+
const m10 = 2 * (xy - wz);
|
|
52046
|
+
const m11 = 1 - 2 * (xx + zz);
|
|
52047
|
+
const m12 = 2 * (yz + wx);
|
|
52048
|
+
const m20 = 2 * (xz + wy);
|
|
52049
|
+
const m21 = 2 * (yz - wx);
|
|
52050
|
+
const m22 = 1 - 2 * (xx + yy);
|
|
52051
|
+
const r00 = m00 * sx, r01 = m01 * sx, r02 = m02 * sx;
|
|
52052
|
+
const r10 = m10 * sy, r11 = m11 * sy, r12 = m12 * sy;
|
|
52053
|
+
const r20 = m20 * sz, r21 = m21 * sz, r22 = m22 * sz;
|
|
52054
|
+
const cAx = r00 * r00 + r10 * r10 + r20 * r20;
|
|
52055
|
+
const cAy = r00 * r01 + r10 * r11 + r20 * r21;
|
|
52056
|
+
const cAz = r00 * r02 + r10 * r12 + r20 * r22;
|
|
52057
|
+
const cBx = r01 * r01 + r11 * r11 + r21 * r21;
|
|
52058
|
+
const cBy = r01 * r02 + r11 * r12 + r21 * r22;
|
|
52059
|
+
const cBz = r02 * r02 + r12 * r12 + r22 * r22;
|
|
52060
|
+
maxCov = Math.max(
|
|
52061
|
+
maxCov,
|
|
52062
|
+
Math.abs(cAx),
|
|
52063
|
+
Math.abs(cAy),
|
|
52064
|
+
Math.abs(cAz),
|
|
52065
|
+
Math.abs(cBx),
|
|
52066
|
+
Math.abs(cBy),
|
|
52067
|
+
Math.abs(cBz)
|
|
52068
|
+
);
|
|
52069
|
+
const bidx = idx;
|
|
52070
|
+
tB[bidx + 0] = cAx;
|
|
52071
|
+
tB[bidx + 1] = cAy;
|
|
52072
|
+
tB[bidx + 2] = cAz;
|
|
52073
|
+
tB[bidx + 3] = cBz;
|
|
52074
|
+
const hx = toHalfFloat(cBx) & 65535;
|
|
52075
|
+
const hy = toHalfFloat(cBy) & 65535;
|
|
52076
|
+
tA[idx + 3] = hx | hy << 16;
|
|
52077
|
+
}
|
|
52078
|
+
console.group("🔍 GSplat Data Statistics");
|
|
52079
|
+
console.log("Splat count:", count);
|
|
52080
|
+
console.log("Scale range:", minScale.toFixed(4), "~", maxScale.toFixed(4));
|
|
52081
|
+
console.log("Max covariance:", maxCov.toFixed(4));
|
|
52082
|
+
if (maxScale > 50) {
|
|
52083
|
+
console.error("❌ CRITICAL: Scale values are too large! This causes spikes.");
|
|
52084
|
+
console.log("💡 Try reducing visBoost or clamping scale values");
|
|
52085
|
+
} else if (maxScale > 20) {
|
|
52086
|
+
console.warn("⚠️ WARNING: Scale values are large. May cause rendering issues.");
|
|
52087
|
+
} else {
|
|
52088
|
+
console.log("✅ Scale values look normal");
|
|
52089
|
+
}
|
|
52090
|
+
if (maxCov > 100) {
|
|
52091
|
+
console.error("❌ CRITICAL: Covariance values are too large!");
|
|
52092
|
+
} else if (maxCov > 50) {
|
|
52093
|
+
console.warn("⚠️ WARNING: Covariance values are large.");
|
|
52094
|
+
} else {
|
|
52095
|
+
console.log("✅ Covariance values look normal");
|
|
52096
|
+
}
|
|
52097
|
+
console.groupEnd();
|
|
52098
|
+
this.transformA = new Uint32ArrayTexture().create(w, h, tA);
|
|
52099
|
+
this.transformA.name = "transformA";
|
|
52100
|
+
this.transformA.minFilter = "nearest";
|
|
52101
|
+
this.transformA.magFilter = "nearest";
|
|
52102
|
+
this.transformA.addressModeU = "clamp-to-edge";
|
|
52103
|
+
this.transformA.addressModeV = "clamp-to-edge";
|
|
52104
|
+
this.transformB = new Float16ArrayTexture().create(w, h, tB, false);
|
|
52105
|
+
this.transformB.name = "transformB";
|
|
52106
|
+
this.transformB.minFilter = "nearest";
|
|
52107
|
+
this.transformB.magFilter = "nearest";
|
|
52108
|
+
this.transformB.mipmapFilter = "nearest";
|
|
52109
|
+
this.transformB.addressModeU = "clamp-to-edge";
|
|
52110
|
+
this.transformB.addressModeV = "clamp-to-edge";
|
|
52111
|
+
}
|
|
52112
|
+
/**
|
|
52113
|
+
* Update world space positions when transform changes
|
|
52114
|
+
*/
|
|
52115
|
+
updateWorldPositions() {
|
|
52116
|
+
if (!this._positions) return;
|
|
52117
|
+
const worldMatrix = this.object3D.transform.worldMatrix;
|
|
52118
|
+
const localPos = this._positions;
|
|
52119
|
+
const count = this._fullCount;
|
|
52120
|
+
if (!this._worldPositions) {
|
|
52121
|
+
this._worldPositions = new Float32Array(localPos.length);
|
|
52122
|
+
}
|
|
52123
|
+
const m = worldMatrix.rawData;
|
|
52124
|
+
for (let i = 0; i < count; i++) {
|
|
52125
|
+
const idx = i * 3;
|
|
52126
|
+
const x = localPos[idx + 0];
|
|
52127
|
+
const y = localPos[idx + 1];
|
|
52128
|
+
const z = localPos[idx + 2];
|
|
52129
|
+
this._worldPositions[idx + 0] = m[0] * x + m[4] * y + m[8] * z + m[12];
|
|
52130
|
+
this._worldPositions[idx + 1] = m[1] * x + m[5] * y + m[9] * z + m[13];
|
|
52131
|
+
this._worldPositions[idx + 2] = m[2] * x + m[6] * y + m[10] * z + m[14];
|
|
52132
|
+
}
|
|
52133
|
+
this._centersSent = false;
|
|
52134
|
+
}
|
|
52135
|
+
/**
|
|
52136
|
+
* Schedule Web Worker-based sorting task
|
|
52137
|
+
*/
|
|
52138
|
+
scheduleOrder(viewMatrix) {
|
|
52139
|
+
if (this.count === 0) return;
|
|
52140
|
+
const transformChanged = this.object3D.transform.localChange;
|
|
52141
|
+
if (transformChanged || !this._worldPositions) {
|
|
52142
|
+
this.updateWorldPositions();
|
|
52143
|
+
}
|
|
52144
|
+
const r = viewMatrix.rawData;
|
|
52145
|
+
const vx = r[2], vy = r[6], vz = r[10];
|
|
52146
|
+
const px = -(r[0] * r[12] + r[1] * r[13] + r[2] * r[14]);
|
|
52147
|
+
const py = -(r[4] * r[12] + r[5] * r[13] + r[6] * r[14]);
|
|
52148
|
+
const pz = -(r[8] * r[12] + r[9] * r[13] + r[10] * r[14]);
|
|
52149
|
+
const posHash = Math.floor(px * 1e3) ^ Math.floor(py * 1e3) ^ Math.floor(pz * 1e3);
|
|
52150
|
+
const dirHash = Math.floor(vx * 1e3) ^ Math.floor(vy * 1e3) ^ Math.floor(vz * 1e3);
|
|
52151
|
+
const hash = posHash ^ dirHash;
|
|
52152
|
+
if (hash === this._lastViewMatrixHash && !transformChanged) {
|
|
52153
|
+
return;
|
|
52154
|
+
}
|
|
52155
|
+
this._lastViewMatrixHash = hash;
|
|
52156
|
+
const now = performance.now();
|
|
52157
|
+
if (now - this._lastSentTime < this._minIntervalMs) return;
|
|
52158
|
+
this._lastSentTime = now;
|
|
52159
|
+
if (!this._sortWorker) {
|
|
52160
|
+
this._sortWorker = this.createSortWorker();
|
|
52161
|
+
this._sortWorker.onmessage = (ev) => {
|
|
52162
|
+
const newOrder = ev.data.order;
|
|
52163
|
+
const oldOrder = this._orderData.buffer;
|
|
52164
|
+
this._sortWorker.postMessage({
|
|
52165
|
+
order: oldOrder
|
|
52166
|
+
}, [oldOrder]);
|
|
52167
|
+
const indices = new Uint32Array(newOrder);
|
|
52168
|
+
const total = this.size.x * this.size.y;
|
|
52169
|
+
const count = this.count;
|
|
52170
|
+
this._orderData = new Uint32Array(total * 4);
|
|
52171
|
+
for (let i = 0; i < total; i++) {
|
|
52172
|
+
const src = i < count ? indices[i] : count > 0 ? count - 1 : 0;
|
|
52173
|
+
const base = i * 4;
|
|
52174
|
+
this._orderData[base + 0] = src;
|
|
52175
|
+
this._orderData[base + 1] = 0;
|
|
52176
|
+
this._orderData[base + 2] = 0;
|
|
52177
|
+
this._orderData[base + 3] = 0;
|
|
52178
|
+
}
|
|
52179
|
+
this.splatOrder.updateTexture(this.size.x, this.size.y, this._orderData);
|
|
52180
|
+
const valid = Math.max(0, Math.min(this.count, ev.data.count | 0));
|
|
52181
|
+
this.texParams[2] = valid;
|
|
52182
|
+
};
|
|
52183
|
+
const worldPos = this._worldPositions || this._positions;
|
|
52184
|
+
const centers = this._mapping ? new Float32Array(this._mapping.length * 3) : new Float32Array(worldPos);
|
|
52185
|
+
if (this._mapping) {
|
|
52186
|
+
for (let i = 0; i < this._mapping.length; ++i) {
|
|
52187
|
+
const src = this._mapping[i] * 3;
|
|
52188
|
+
const dst = i * 3;
|
|
52189
|
+
centers[dst + 0] = worldPos[src + 0];
|
|
52190
|
+
centers[dst + 1] = worldPos[src + 1];
|
|
52191
|
+
centers[dst + 2] = worldPos[src + 2];
|
|
52192
|
+
}
|
|
52193
|
+
}
|
|
52194
|
+
const orderBuffer = new Uint32Array(this.count);
|
|
52195
|
+
for (let i = 0; i < this.count; i++) {
|
|
52196
|
+
orderBuffer[i] = i;
|
|
52197
|
+
}
|
|
52198
|
+
this._sortWorker.postMessage({
|
|
52199
|
+
order: orderBuffer.buffer,
|
|
52200
|
+
centers: centers.buffer,
|
|
52201
|
+
mapping: this._mapping
|
|
52202
|
+
}, [orderBuffer.buffer, centers.buffer]);
|
|
52203
|
+
this._centersSent = true;
|
|
52204
|
+
}
|
|
52205
|
+
if (!this._centersSent && this._sortWorker) {
|
|
52206
|
+
const worldPos = this._worldPositions || this._positions;
|
|
52207
|
+
const centers = this._mapping ? new Float32Array(this._mapping.length * 3) : new Float32Array(worldPos);
|
|
52208
|
+
if (this._mapping) {
|
|
52209
|
+
for (let i = 0; i < this._mapping.length; ++i) {
|
|
52210
|
+
const src = this._mapping[i] * 3;
|
|
52211
|
+
const dst = i * 3;
|
|
52212
|
+
centers[dst + 0] = worldPos[src + 0];
|
|
52213
|
+
centers[dst + 1] = worldPos[src + 1];
|
|
52214
|
+
centers[dst + 2] = worldPos[src + 2];
|
|
52215
|
+
}
|
|
52216
|
+
}
|
|
52217
|
+
this._sortWorker.postMessage({
|
|
52218
|
+
type: "centers",
|
|
52219
|
+
centers: centers.buffer,
|
|
52220
|
+
mapping: this._mapping ? this._mapping : null
|
|
52221
|
+
}, [centers.buffer]);
|
|
52222
|
+
this._centersSent = true;
|
|
52223
|
+
}
|
|
52224
|
+
this._sortWorker.postMessage({
|
|
52225
|
+
cameraPosition: { x: px, y: py, z: pz },
|
|
52226
|
+
cameraDirection: { x: -vx, y: -vy, z: -vz }
|
|
52227
|
+
});
|
|
52228
|
+
}
|
|
52229
|
+
/**
|
|
52230
|
+
* Create Web Worker for sorting
|
|
52231
|
+
*/
|
|
52232
|
+
createSortWorker() {
|
|
52233
|
+
function SortWorker() {
|
|
52234
|
+
const compareBits = 16;
|
|
52235
|
+
const bucketCount = 2 ** compareBits + 1;
|
|
52236
|
+
let order;
|
|
52237
|
+
let centers;
|
|
52238
|
+
let mapping;
|
|
52239
|
+
let cameraPosition;
|
|
52240
|
+
let cameraDirection;
|
|
52241
|
+
let forceUpdate = false;
|
|
52242
|
+
const lastCameraPosition = { x: 0, y: 0, z: 0 };
|
|
52243
|
+
const lastCameraDirection = { x: 0, y: 0, z: 0 };
|
|
52244
|
+
const boundMin = { x: 0, y: 0, z: 0 };
|
|
52245
|
+
const boundMax = { x: 0, y: 0, z: 0 };
|
|
52246
|
+
let distances;
|
|
52247
|
+
let countBuffer;
|
|
52248
|
+
const binarySearch = (m, n, compare_fn) => {
|
|
52249
|
+
while (m <= n) {
|
|
52250
|
+
const k = n + m >> 1;
|
|
52251
|
+
const cmp = compare_fn(k);
|
|
52252
|
+
if (cmp > 0) {
|
|
52253
|
+
m = k + 1;
|
|
52254
|
+
} else if (cmp < 0) {
|
|
52255
|
+
n = k - 1;
|
|
52256
|
+
} else {
|
|
52257
|
+
return k;
|
|
52258
|
+
}
|
|
52259
|
+
}
|
|
52260
|
+
return ~m;
|
|
52261
|
+
};
|
|
52262
|
+
const update = () => {
|
|
52263
|
+
if (!order || !centers || !cameraPosition || !cameraDirection) return;
|
|
52264
|
+
const px = cameraPosition.x;
|
|
52265
|
+
const py = cameraPosition.y;
|
|
52266
|
+
const pz = cameraPosition.z;
|
|
52267
|
+
const dx = cameraDirection.x;
|
|
52268
|
+
const dy = cameraDirection.y;
|
|
52269
|
+
const dz = cameraDirection.z;
|
|
52270
|
+
const epsilon = 1e-3;
|
|
52271
|
+
if (!forceUpdate && Math.abs(px - lastCameraPosition.x) < epsilon && Math.abs(py - lastCameraPosition.y) < epsilon && Math.abs(pz - lastCameraPosition.z) < epsilon && Math.abs(dx - lastCameraDirection.x) < epsilon && Math.abs(dy - lastCameraDirection.y) < epsilon && Math.abs(dz - lastCameraDirection.z) < epsilon) {
|
|
52272
|
+
return;
|
|
52273
|
+
}
|
|
52274
|
+
forceUpdate = false;
|
|
52275
|
+
lastCameraPosition.x = px;
|
|
52276
|
+
lastCameraPosition.y = py;
|
|
52277
|
+
lastCameraPosition.z = pz;
|
|
52278
|
+
lastCameraDirection.x = dx;
|
|
52279
|
+
lastCameraDirection.y = dy;
|
|
52280
|
+
lastCameraDirection.z = dz;
|
|
52281
|
+
const numVertices = centers.length / 3;
|
|
52282
|
+
if (distances?.length !== numVertices) {
|
|
52283
|
+
distances = new Uint32Array(numVertices);
|
|
52284
|
+
}
|
|
52285
|
+
let minDist;
|
|
52286
|
+
let maxDist;
|
|
52287
|
+
for (let i = 0; i < 8; ++i) {
|
|
52288
|
+
const x = (i & 1 ? boundMin.x : boundMax.x) - px;
|
|
52289
|
+
const y = (i & 2 ? boundMin.y : boundMax.y) - py;
|
|
52290
|
+
const z = (i & 4 ? boundMin.z : boundMax.z) - pz;
|
|
52291
|
+
const d = x * dx + y * dy + z * dz;
|
|
52292
|
+
if (i === 0) {
|
|
52293
|
+
minDist = maxDist = d;
|
|
52294
|
+
} else {
|
|
52295
|
+
minDist = Math.min(minDist, d);
|
|
52296
|
+
maxDist = Math.max(maxDist, d);
|
|
52297
|
+
}
|
|
52298
|
+
}
|
|
52299
|
+
if (!countBuffer) {
|
|
52300
|
+
countBuffer = new Uint32Array(bucketCount);
|
|
52301
|
+
} else {
|
|
52302
|
+
countBuffer.fill(0);
|
|
52303
|
+
}
|
|
52304
|
+
const range = maxDist - minDist;
|
|
52305
|
+
const divider = range < 1e-6 ? 0 : 1 / range * 2 ** compareBits;
|
|
52306
|
+
for (let i = 0; i < numVertices; ++i) {
|
|
52307
|
+
const istride = i * 3;
|
|
52308
|
+
const x = centers[istride + 0] - px;
|
|
52309
|
+
const y = centers[istride + 1] - py;
|
|
52310
|
+
const z = centers[istride + 2] - pz;
|
|
52311
|
+
const d = x * dx + y * dy + z * dz;
|
|
52312
|
+
const sortKey = Math.floor((d - minDist) * divider);
|
|
52313
|
+
distances[i] = sortKey;
|
|
52314
|
+
countBuffer[sortKey]++;
|
|
52315
|
+
}
|
|
52316
|
+
for (let i = 1; i < bucketCount; i++) {
|
|
52317
|
+
countBuffer[i] += countBuffer[i - 1];
|
|
52318
|
+
}
|
|
52319
|
+
for (let i = 0; i < numVertices; i++) {
|
|
52320
|
+
const distance = distances[i];
|
|
52321
|
+
const destIndex = --countBuffer[distance];
|
|
52322
|
+
order[destIndex] = i;
|
|
52323
|
+
}
|
|
52324
|
+
const dist = (i) => distances[order[i]] / divider + minDist;
|
|
52325
|
+
const findZero = () => {
|
|
52326
|
+
const result = binarySearch(0, numVertices - 1, (i) => -dist(i));
|
|
52327
|
+
return Math.min(numVertices, Math.abs(result));
|
|
52328
|
+
};
|
|
52329
|
+
const count = dist(numVertices - 1) >= 0 ? findZero() : numVertices;
|
|
52330
|
+
if (mapping) {
|
|
52331
|
+
for (let i = 0; i < numVertices; ++i) {
|
|
52332
|
+
order[i] = mapping[order[i]];
|
|
52333
|
+
}
|
|
52334
|
+
}
|
|
52335
|
+
self.postMessage({
|
|
52336
|
+
order: order.buffer,
|
|
52337
|
+
count
|
|
52338
|
+
}, [order.buffer]);
|
|
52339
|
+
order = null;
|
|
52340
|
+
};
|
|
52341
|
+
self.onmessage = (message) => {
|
|
52342
|
+
if (message.data.order) {
|
|
52343
|
+
order = new Uint32Array(message.data.order);
|
|
52344
|
+
}
|
|
52345
|
+
if (message.data.centers) {
|
|
52346
|
+
centers = new Float32Array(message.data.centers);
|
|
52347
|
+
boundMin.x = boundMax.x = centers[0];
|
|
52348
|
+
boundMin.y = boundMax.y = centers[1];
|
|
52349
|
+
boundMin.z = boundMax.z = centers[2];
|
|
52350
|
+
const numVertices = centers.length / 3;
|
|
52351
|
+
for (let i = 1; i < numVertices; ++i) {
|
|
52352
|
+
const x = centers[i * 3 + 0];
|
|
52353
|
+
const y = centers[i * 3 + 1];
|
|
52354
|
+
const z = centers[i * 3 + 2];
|
|
52355
|
+
boundMin.x = Math.min(boundMin.x, x);
|
|
52356
|
+
boundMin.y = Math.min(boundMin.y, y);
|
|
52357
|
+
boundMin.z = Math.min(boundMin.z, z);
|
|
52358
|
+
boundMax.x = Math.max(boundMax.x, x);
|
|
52359
|
+
boundMax.y = Math.max(boundMax.y, y);
|
|
52360
|
+
boundMax.z = Math.max(boundMax.z, z);
|
|
52361
|
+
}
|
|
52362
|
+
forceUpdate = true;
|
|
52363
|
+
}
|
|
52364
|
+
if (message.data.hasOwnProperty("mapping")) {
|
|
52365
|
+
mapping = message.data.mapping ? new Uint32Array(message.data.mapping) : null;
|
|
52366
|
+
forceUpdate = true;
|
|
52367
|
+
}
|
|
52368
|
+
if (message.data.cameraPosition) cameraPosition = message.data.cameraPosition;
|
|
52369
|
+
if (message.data.cameraDirection) cameraDirection = message.data.cameraDirection;
|
|
52370
|
+
update();
|
|
52371
|
+
};
|
|
52372
|
+
}
|
|
52373
|
+
const code = `(${SortWorker.toString()})()`;
|
|
52374
|
+
const blob = new Blob([code], { type: "application/javascript" });
|
|
52375
|
+
const url = URL.createObjectURL(blob);
|
|
52376
|
+
return new Worker(url);
|
|
52377
|
+
}
|
|
52378
|
+
/**
|
|
52379
|
+
* Update node before rendering
|
|
52380
|
+
*/
|
|
52381
|
+
nodeUpdate(view, passType, renderPassState, clusterLightingBuffer) {
|
|
52382
|
+
const worldMatrix = this.object3D.transform.worldMatrix;
|
|
52383
|
+
this.gsplatMaterial.setTransformMatrix(worldMatrix);
|
|
52384
|
+
this.gsplatMaterial.setSplatTextures(
|
|
52385
|
+
this.splatColor,
|
|
52386
|
+
this.transformA,
|
|
52387
|
+
this.transformB,
|
|
52388
|
+
this.texParams,
|
|
52389
|
+
this.splatOrder
|
|
52390
|
+
);
|
|
52391
|
+
super.nodeUpdate(view, passType, renderPassState, clusterLightingBuffer);
|
|
52392
|
+
}
|
|
52393
|
+
/**
|
|
52394
|
+
* Render pass
|
|
52395
|
+
*/
|
|
52396
|
+
renderPass2(view, passType, rendererPassState, clusterLightingBuffer, encoder, useBundle = false) {
|
|
52397
|
+
for (let mat of this.materials) {
|
|
52398
|
+
const passes = mat.getPass(passType);
|
|
52399
|
+
if (!passes || passes.length === 0) continue;
|
|
52400
|
+
for (const pass of passes) {
|
|
52401
|
+
if (!pass.pipeline) continue;
|
|
52402
|
+
pass.apply(this.geometry, rendererPassState);
|
|
52403
|
+
GPUContext.bindPipeline(encoder, pass);
|
|
52404
|
+
GPUContext.draw(encoder, 4, this.count, 0, 0);
|
|
52405
|
+
}
|
|
52406
|
+
}
|
|
52407
|
+
}
|
|
52408
|
+
/**
|
|
52409
|
+
* Render pass (fallback)
|
|
52410
|
+
*/
|
|
52411
|
+
renderPass(view, passType, renderContext) {
|
|
52412
|
+
const encoder = renderContext.encoder;
|
|
52413
|
+
for (let mat of this.materials) {
|
|
52414
|
+
const passes = mat.getPass(passType);
|
|
52415
|
+
if (!passes || passes.length === 0) continue;
|
|
52416
|
+
for (const pass of passes) {
|
|
52417
|
+
if (!pass.pipeline) continue;
|
|
52418
|
+
pass.apply(this.geometry, renderContext.rendererPassState || renderContext);
|
|
52419
|
+
GPUContext.bindPipeline(encoder, pass);
|
|
52420
|
+
GPUContext.draw(encoder, 4, this.count, 0, 0);
|
|
52421
|
+
}
|
|
52422
|
+
}
|
|
52423
|
+
}
|
|
52424
|
+
/**
|
|
52425
|
+
* Clean up resources
|
|
52426
|
+
*/
|
|
52427
|
+
destroy(force) {
|
|
52428
|
+
if (this._sortWorker) {
|
|
52429
|
+
this._sortWorker.terminate();
|
|
52430
|
+
this._sortWorker = null;
|
|
52431
|
+
}
|
|
52432
|
+
super.destroy(force);
|
|
52433
|
+
}
|
|
52434
|
+
};
|
|
52435
|
+
GSplatRenderer = __decorateClass$6([
|
|
52436
|
+
RegisterComponent(GSplatRenderer, "GSplatRenderer")
|
|
52437
|
+
], GSplatRenderer);
|
|
52438
|
+
|
|
50632
52439
|
class Probe extends Object3D {
|
|
50633
52440
|
index = 0;
|
|
50634
52441
|
drawCallFrame = -1;
|
|
@@ -55884,6 +57691,298 @@ class LoaderManager extends CEventDispatcher {
|
|
|
55884
57691
|
}
|
|
55885
57692
|
}
|
|
55886
57693
|
|
|
57694
|
+
function computeAABBFromPositions(position) {
|
|
57695
|
+
const min = [Infinity, Infinity, Infinity];
|
|
57696
|
+
const max = [-Infinity, -Infinity, -Infinity];
|
|
57697
|
+
for (let i = 0; i < position.length; i += 3) {
|
|
57698
|
+
const x = position[i + 0];
|
|
57699
|
+
const y = position[i + 1];
|
|
57700
|
+
const z = position[i + 2];
|
|
57701
|
+
if (x < min[0]) min[0] = x;
|
|
57702
|
+
if (y < min[1]) min[1] = y;
|
|
57703
|
+
if (z < min[2]) min[2] = z;
|
|
57704
|
+
if (x > max[0]) max[0] = x;
|
|
57705
|
+
if (y > max[1]) max[1] = y;
|
|
57706
|
+
if (z > max[2]) max[2] = z;
|
|
57707
|
+
}
|
|
57708
|
+
return { min, max };
|
|
57709
|
+
}
|
|
57710
|
+
|
|
57711
|
+
var GSplatFormat = /* @__PURE__ */ ((GSplatFormat2) => {
|
|
57712
|
+
GSplatFormat2["PLY"] = "ply";
|
|
57713
|
+
GSplatFormat2["SPLAT"] = "splat";
|
|
57714
|
+
GSplatFormat2["KSPLAT"] = "ksplat";
|
|
57715
|
+
GSplatFormat2["UNKNOWN"] = "unknown";
|
|
57716
|
+
return GSplatFormat2;
|
|
57717
|
+
})(GSplatFormat || {});
|
|
57718
|
+
function detectGSplatFormat(buffer) {
|
|
57719
|
+
if (buffer.byteLength < 16) {
|
|
57720
|
+
return "unknown" /* UNKNOWN */;
|
|
57721
|
+
}
|
|
57722
|
+
const headerBytes = new Uint8Array(buffer, 0, Math.min(512, buffer.byteLength));
|
|
57723
|
+
const headerText = new TextDecoder("utf-8").decode(headerBytes);
|
|
57724
|
+
if (headerText.startsWith("ply")) {
|
|
57725
|
+
return "ply" /* PLY */;
|
|
57726
|
+
}
|
|
57727
|
+
return "unknown" /* UNKNOWN */;
|
|
57728
|
+
}
|
|
57729
|
+
|
|
57730
|
+
function byteSizeOfType(t) {
|
|
57731
|
+
switch (t) {
|
|
57732
|
+
case "char":
|
|
57733
|
+
case "uchar":
|
|
57734
|
+
case "uint8":
|
|
57735
|
+
case "int8":
|
|
57736
|
+
return 1;
|
|
57737
|
+
case "short":
|
|
57738
|
+
case "ushort":
|
|
57739
|
+
case "int16":
|
|
57740
|
+
case "uint16":
|
|
57741
|
+
return 2;
|
|
57742
|
+
case "int":
|
|
57743
|
+
case "uint":
|
|
57744
|
+
case "int32":
|
|
57745
|
+
case "uint32":
|
|
57746
|
+
case "float":
|
|
57747
|
+
case "float32":
|
|
57748
|
+
return 4;
|
|
57749
|
+
case "double":
|
|
57750
|
+
case "float64":
|
|
57751
|
+
return 8;
|
|
57752
|
+
default:
|
|
57753
|
+
return 4;
|
|
57754
|
+
}
|
|
57755
|
+
}
|
|
57756
|
+
function readByType(view, offset, type) {
|
|
57757
|
+
switch (type) {
|
|
57758
|
+
case "char":
|
|
57759
|
+
case "int8":
|
|
57760
|
+
return view.getInt8(offset);
|
|
57761
|
+
case "uchar":
|
|
57762
|
+
case "uint8":
|
|
57763
|
+
return view.getUint8(offset);
|
|
57764
|
+
case "short":
|
|
57765
|
+
case "int16":
|
|
57766
|
+
return view.getInt16(offset, true);
|
|
57767
|
+
case "ushort":
|
|
57768
|
+
case "uint16":
|
|
57769
|
+
return view.getUint16(offset, true);
|
|
57770
|
+
case "int":
|
|
57771
|
+
case "int32":
|
|
57772
|
+
return view.getInt32(offset, true);
|
|
57773
|
+
case "uint":
|
|
57774
|
+
case "uint32":
|
|
57775
|
+
return view.getUint32(offset, true);
|
|
57776
|
+
case "double":
|
|
57777
|
+
case "float64":
|
|
57778
|
+
return view.getFloat64(offset, true);
|
|
57779
|
+
case "float":
|
|
57780
|
+
case "float32":
|
|
57781
|
+
default:
|
|
57782
|
+
return view.getFloat32(offset, true);
|
|
57783
|
+
}
|
|
57784
|
+
}
|
|
57785
|
+
function inferSHOrder(coeffsPerColor) {
|
|
57786
|
+
const root = Math.round(Math.sqrt(coeffsPerColor));
|
|
57787
|
+
return Math.max(0, root - 1);
|
|
57788
|
+
}
|
|
57789
|
+
|
|
57790
|
+
function parsePlyHeader(buffer) {
|
|
57791
|
+
const ascii = new TextDecoder("utf-8").decode(
|
|
57792
|
+
new Uint8Array(buffer, 0, Math.min(4096, buffer.byteLength))
|
|
57793
|
+
);
|
|
57794
|
+
if (!ascii.startsWith("ply")) {
|
|
57795
|
+
throw new Error("PLY: Unsupported format. Expecting PLY file.");
|
|
57796
|
+
}
|
|
57797
|
+
const headerEnd = ascii.indexOf("end_header\n");
|
|
57798
|
+
if (headerEnd < 0) {
|
|
57799
|
+
throw new Error("PLY: Invalid PLY header");
|
|
57800
|
+
}
|
|
57801
|
+
const headerText = ascii.substring(0, headerEnd + "end_header\n".length);
|
|
57802
|
+
const lines = headerText.split(/\r?\n/);
|
|
57803
|
+
let format = "";
|
|
57804
|
+
let vertexCount = 0;
|
|
57805
|
+
const properties = [];
|
|
57806
|
+
let inVertexElement = false;
|
|
57807
|
+
for (const line of lines) {
|
|
57808
|
+
if (line.startsWith("format ")) {
|
|
57809
|
+
format = line.split(/\s+/)[1];
|
|
57810
|
+
} else if (line.startsWith("element ")) {
|
|
57811
|
+
const toks = line.split(/\s+/);
|
|
57812
|
+
inVertexElement = toks[1] === "vertex";
|
|
57813
|
+
if (inVertexElement) vertexCount = parseInt(toks[2]);
|
|
57814
|
+
} else if (inVertexElement && line.startsWith("property ")) {
|
|
57815
|
+
const toks = line.split(/\s+/);
|
|
57816
|
+
const type = toks[1];
|
|
57817
|
+
const name = toks[2];
|
|
57818
|
+
properties.push({ name, type });
|
|
57819
|
+
}
|
|
57820
|
+
}
|
|
57821
|
+
if (format !== "binary_little_endian") {
|
|
57822
|
+
throw new Error("PLY: Only binary_little_endian PLY is supported");
|
|
57823
|
+
}
|
|
57824
|
+
return {
|
|
57825
|
+
format,
|
|
57826
|
+
vertexCount,
|
|
57827
|
+
properties,
|
|
57828
|
+
headerByteLength: headerText.length
|
|
57829
|
+
};
|
|
57830
|
+
}
|
|
57831
|
+
function parsePlyGaussianSplat(buffer) {
|
|
57832
|
+
const header = parsePlyHeader(buffer);
|
|
57833
|
+
const { vertexCount, properties, headerByteLength } = header;
|
|
57834
|
+
const payload = new DataView(buffer, headerByteLength);
|
|
57835
|
+
const has = (n) => properties.find((p) => p.name === n) != null;
|
|
57836
|
+
const propIndex = (n) => properties.findIndex((p) => p.name === n);
|
|
57837
|
+
const position = new Float32Array(vertexCount * 3);
|
|
57838
|
+
const scale = has("scale_0") ? new Float32Array(vertexCount * 3) : void 0;
|
|
57839
|
+
const rotation = has("rot_0") ? new Float32Array(vertexCount * 4) : void 0;
|
|
57840
|
+
const opacity = has("opacity") ? new Float32Array(vertexCount) : void 0;
|
|
57841
|
+
const dcIdx = [propIndex("f_dc_0"), propIndex("f_dc_1"), propIndex("f_dc_2")];
|
|
57842
|
+
const restIndices = [];
|
|
57843
|
+
for (let i = 0; i < properties.length; i++) {
|
|
57844
|
+
if (properties[i].name.startsWith("f_rest_")) restIndices.push(i);
|
|
57845
|
+
}
|
|
57846
|
+
const hasSH = dcIdx[0] >= 0 && dcIdx[1] >= 0 && dcIdx[2] >= 0;
|
|
57847
|
+
let shCoeffs = void 0;
|
|
57848
|
+
let shOrder = 0;
|
|
57849
|
+
if (hasSH) {
|
|
57850
|
+
const coeffsPerColor = 1 + restIndices.length / 3;
|
|
57851
|
+
shOrder = inferSHOrder(coeffsPerColor);
|
|
57852
|
+
shCoeffs = new Float32Array(vertexCount * coeffsPerColor * 3);
|
|
57853
|
+
}
|
|
57854
|
+
const propOffsets = [];
|
|
57855
|
+
let stride = 0;
|
|
57856
|
+
for (const p of properties) {
|
|
57857
|
+
propOffsets.push(stride);
|
|
57858
|
+
stride += byteSizeOfType(p.type);
|
|
57859
|
+
}
|
|
57860
|
+
let base = 0;
|
|
57861
|
+
for (let v = 0; v < vertexCount; v++) {
|
|
57862
|
+
const vOffset = base;
|
|
57863
|
+
const ix = propIndex("x");
|
|
57864
|
+
const iy = propIndex("y");
|
|
57865
|
+
const iz = propIndex("z");
|
|
57866
|
+
if (ix < 0 || iy < 0 || iz < 0) {
|
|
57867
|
+
throw new Error("PLY: Missing x/y/z for vertex");
|
|
57868
|
+
}
|
|
57869
|
+
position[v * 3 + 0] = readByType(payload, vOffset + propOffsets[ix], properties[ix].type);
|
|
57870
|
+
position[v * 3 + 1] = readByType(payload, vOffset + propOffsets[iy], properties[iy].type);
|
|
57871
|
+
position[v * 3 + 2] = readByType(payload, vOffset + propOffsets[iz], properties[iz].type);
|
|
57872
|
+
if (scale) {
|
|
57873
|
+
const s0 = propIndex("scale_0");
|
|
57874
|
+
const s1 = propIndex("scale_1");
|
|
57875
|
+
const s2 = propIndex("scale_2");
|
|
57876
|
+
scale[v * 3 + 0] = readByType(payload, vOffset + propOffsets[s0], properties[s0].type);
|
|
57877
|
+
scale[v * 3 + 1] = readByType(payload, vOffset + propOffsets[s1], properties[s1].type);
|
|
57878
|
+
scale[v * 3 + 2] = readByType(payload, vOffset + propOffsets[s2], properties[s2].type);
|
|
57879
|
+
}
|
|
57880
|
+
if (rotation) {
|
|
57881
|
+
const r0 = propIndex("rot_0");
|
|
57882
|
+
const r1 = propIndex("rot_1");
|
|
57883
|
+
const r2 = propIndex("rot_2");
|
|
57884
|
+
const r3 = propIndex("rot_3");
|
|
57885
|
+
rotation[v * 4 + 0] = readByType(payload, vOffset + propOffsets[r0], properties[r0].type);
|
|
57886
|
+
rotation[v * 4 + 1] = readByType(payload, vOffset + propOffsets[r1], properties[r1].type);
|
|
57887
|
+
rotation[v * 4 + 2] = readByType(payload, vOffset + propOffsets[r2], properties[r2].type);
|
|
57888
|
+
rotation[v * 4 + 3] = readByType(payload, vOffset + propOffsets[r3], properties[r3].type);
|
|
57889
|
+
}
|
|
57890
|
+
if (opacity) {
|
|
57891
|
+
const oi = propIndex("opacity");
|
|
57892
|
+
opacity[v] = readByType(payload, vOffset + propOffsets[oi], properties[oi].type);
|
|
57893
|
+
}
|
|
57894
|
+
if (hasSH && shCoeffs) {
|
|
57895
|
+
const coeffsPerColor = 1 + restIndices.length / 3;
|
|
57896
|
+
const baseIndex = v * coeffsPerColor * 3;
|
|
57897
|
+
shCoeffs[baseIndex + 0] = readByType(
|
|
57898
|
+
payload,
|
|
57899
|
+
vOffset + propOffsets[dcIdx[0]],
|
|
57900
|
+
properties[dcIdx[0]].type
|
|
57901
|
+
);
|
|
57902
|
+
shCoeffs[baseIndex + coeffsPerColor + 0] = readByType(
|
|
57903
|
+
payload,
|
|
57904
|
+
vOffset + propOffsets[dcIdx[1]],
|
|
57905
|
+
properties[dcIdx[1]].type
|
|
57906
|
+
);
|
|
57907
|
+
shCoeffs[baseIndex + 2 * coeffsPerColor + 0] = readByType(
|
|
57908
|
+
payload,
|
|
57909
|
+
vOffset + propOffsets[dcIdx[2]],
|
|
57910
|
+
properties[dcIdx[2]].type
|
|
57911
|
+
);
|
|
57912
|
+
let rPtr = 1;
|
|
57913
|
+
let gPtr = 1;
|
|
57914
|
+
let bPtr = 1;
|
|
57915
|
+
for (let i = 0; i < restIndices.length; i += 3) {
|
|
57916
|
+
const ri = restIndices[i + 0];
|
|
57917
|
+
const gi = restIndices[i + 1];
|
|
57918
|
+
const bi = restIndices[i + 2];
|
|
57919
|
+
shCoeffs[baseIndex + rPtr] = readByType(
|
|
57920
|
+
payload,
|
|
57921
|
+
vOffset + propOffsets[ri],
|
|
57922
|
+
properties[ri].type
|
|
57923
|
+
);
|
|
57924
|
+
shCoeffs[baseIndex + coeffsPerColor + gPtr] = readByType(
|
|
57925
|
+
payload,
|
|
57926
|
+
vOffset + propOffsets[gi],
|
|
57927
|
+
properties[gi].type
|
|
57928
|
+
);
|
|
57929
|
+
shCoeffs[baseIndex + 2 * coeffsPerColor + bPtr] = readByType(
|
|
57930
|
+
payload,
|
|
57931
|
+
vOffset + propOffsets[bi],
|
|
57932
|
+
properties[bi].type
|
|
57933
|
+
);
|
|
57934
|
+
rPtr++;
|
|
57935
|
+
gPtr++;
|
|
57936
|
+
bPtr++;
|
|
57937
|
+
}
|
|
57938
|
+
}
|
|
57939
|
+
base += stride;
|
|
57940
|
+
}
|
|
57941
|
+
return {
|
|
57942
|
+
vertexCount,
|
|
57943
|
+
position,
|
|
57944
|
+
scale,
|
|
57945
|
+
rotation,
|
|
57946
|
+
opacity,
|
|
57947
|
+
sh: hasSH && shCoeffs ? { order: shOrder, coeffs: shCoeffs } : void 0
|
|
57948
|
+
};
|
|
57949
|
+
}
|
|
57950
|
+
|
|
57951
|
+
class GaussianSplatParser extends ParserBase {
|
|
57952
|
+
static format = ParserFormat.BIN;
|
|
57953
|
+
async parseBuffer(buffer) {
|
|
57954
|
+
const format = detectGSplatFormat(buffer);
|
|
57955
|
+
let asset;
|
|
57956
|
+
switch (format) {
|
|
57957
|
+
case GSplatFormat.PLY: {
|
|
57958
|
+
const plyData = parsePlyGaussianSplat(buffer);
|
|
57959
|
+
asset = {
|
|
57960
|
+
count: plyData.vertexCount,
|
|
57961
|
+
position: plyData.position,
|
|
57962
|
+
rotation: plyData.rotation,
|
|
57963
|
+
scale: plyData.scale,
|
|
57964
|
+
opacity: plyData.opacity,
|
|
57965
|
+
sh: plyData.sh
|
|
57966
|
+
};
|
|
57967
|
+
asset.bbox = computeAABBFromPositions(plyData.position);
|
|
57968
|
+
break;
|
|
57969
|
+
}
|
|
57970
|
+
case GSplatFormat.SPLAT:
|
|
57971
|
+
throw new Error("SPLAT format is not yet supported");
|
|
57972
|
+
case GSplatFormat.KSPLAT:
|
|
57973
|
+
throw new Error("KSPLAT format is not yet supported");
|
|
57974
|
+
case GSplatFormat.UNKNOWN:
|
|
57975
|
+
default:
|
|
57976
|
+
throw new Error("Unknown or unsupported Gaussian Splatting file format");
|
|
57977
|
+
}
|
|
57978
|
+
this.data = asset;
|
|
57979
|
+
return asset;
|
|
57980
|
+
}
|
|
57981
|
+
verification() {
|
|
57982
|
+
return !!this.data && this.data.count > 0;
|
|
57983
|
+
}
|
|
57984
|
+
}
|
|
57985
|
+
|
|
55887
57986
|
var GeoType = /* @__PURE__ */ ((GeoType2) => {
|
|
55888
57987
|
GeoType2["Point"] = "Point";
|
|
55889
57988
|
GeoType2["LineString"] = "LineString";
|
|
@@ -57015,7 +59114,7 @@ let LitSSSShader = class extends Shader {
|
|
|
57015
59114
|
}
|
|
57016
59115
|
};
|
|
57017
59116
|
LitSSSShader = __decorateClass$3([
|
|
57018
|
-
RegisterShader
|
|
59117
|
+
RegisterShader(LitSSSShader, "LitSSSShader")
|
|
57019
59118
|
], LitSSSShader);
|
|
57020
59119
|
|
|
57021
59120
|
var __getOwnPropDesc$2 = Object.getOwnPropertyDescriptor;
|
|
@@ -57117,7 +59216,7 @@ let LitShader = class extends Shader {
|
|
|
57117
59216
|
}
|
|
57118
59217
|
};
|
|
57119
59218
|
LitShader = __decorateClass$2([
|
|
57120
|
-
RegisterShader
|
|
59219
|
+
RegisterShader(LitShader, "LitShader")
|
|
57121
59220
|
], LitShader);
|
|
57122
59221
|
|
|
57123
59222
|
class ComData {
|
|
@@ -57353,7 +59452,7 @@ let UnLitShader = class extends Shader {
|
|
|
57353
59452
|
}
|
|
57354
59453
|
};
|
|
57355
59454
|
UnLitShader = __decorateClass$1([
|
|
57356
|
-
RegisterShader
|
|
59455
|
+
RegisterShader(UnLitShader, "UnLitShader")
|
|
57357
59456
|
], UnLitShader);
|
|
57358
59457
|
|
|
57359
59458
|
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
@@ -57442,7 +59541,7 @@ let UnLitTexArrayShader = class extends Shader {
|
|
|
57442
59541
|
}
|
|
57443
59542
|
};
|
|
57444
59543
|
UnLitTexArrayShader = __decorateClass([
|
|
57445
|
-
RegisterShader
|
|
59544
|
+
RegisterShader(UnLitTexArrayShader, "UnLitTexArrayShader")
|
|
57446
59545
|
], UnLitTexArrayShader);
|
|
57447
59546
|
|
|
57448
59547
|
class TileSet {
|
|
@@ -57675,46 +59774,6 @@ class LambertMaterial extends Material {
|
|
|
57675
59774
|
function registerMaterial(name, cls) {
|
|
57676
59775
|
}
|
|
57677
59776
|
|
|
57678
|
-
class UnLitMaterial extends Material {
|
|
57679
|
-
/**
|
|
57680
|
-
* @constructor
|
|
57681
|
-
*/
|
|
57682
|
-
constructor() {
|
|
57683
|
-
super();
|
|
57684
|
-
this.shader = new UnLitShader();
|
|
57685
|
-
this.baseMap = Engine3D.res.whiteTexture;
|
|
57686
|
-
}
|
|
57687
|
-
set baseMap(texture) {
|
|
57688
|
-
this.shader.setTexture(`baseMap`, texture);
|
|
57689
|
-
}
|
|
57690
|
-
get baseMap() {
|
|
57691
|
-
return this.shader.getTexture(`baseMap`);
|
|
57692
|
-
}
|
|
57693
|
-
/**
|
|
57694
|
-
* set base color (tint color)
|
|
57695
|
-
*/
|
|
57696
|
-
set baseColor(color) {
|
|
57697
|
-
this.shader.setUniformColor(`baseColor`, color);
|
|
57698
|
-
}
|
|
57699
|
-
/**
|
|
57700
|
-
* get base color (tint color)
|
|
57701
|
-
*/
|
|
57702
|
-
get baseColor() {
|
|
57703
|
-
return this.shader.getUniformColor("baseColor");
|
|
57704
|
-
}
|
|
57705
|
-
/**
|
|
57706
|
-
* set environment texture, usually referring to cubemap
|
|
57707
|
-
*/
|
|
57708
|
-
set envMap(texture) {
|
|
57709
|
-
}
|
|
57710
|
-
/**
|
|
57711
|
-
* @internal
|
|
57712
|
-
* set shadow map
|
|
57713
|
-
*/
|
|
57714
|
-
set shadowMap(texture) {
|
|
57715
|
-
}
|
|
57716
|
-
}
|
|
57717
|
-
|
|
57718
59777
|
class UnLitTexArrayMaterial extends Material {
|
|
57719
59778
|
/**
|
|
57720
59779
|
* @constructor
|
|
@@ -58320,6 +60379,449 @@ class OrderMap extends Map {
|
|
|
58320
60379
|
}
|
|
58321
60380
|
}
|
|
58322
60381
|
|
|
60382
|
+
var ParticleSystemRandomnessIds = /* @__PURE__ */ ((ParticleSystemRandomnessIds2) => {
|
|
60383
|
+
ParticleSystemRandomnessIds2[ParticleSystemRandomnessIds2["kParticleSystemClampVelocityCurveId"] = 322376503] = "kParticleSystemClampVelocityCurveId";
|
|
60384
|
+
ParticleSystemRandomnessIds2[ParticleSystemRandomnessIds2["kParticleSystemForceCurveId"] = 306581307] = "kParticleSystemForceCurveId";
|
|
60385
|
+
ParticleSystemRandomnessIds2[ParticleSystemRandomnessIds2["kParticleSystemRotationCurveId"] = 1793934638] = "kParticleSystemRotationCurveId";
|
|
60386
|
+
ParticleSystemRandomnessIds2[ParticleSystemRandomnessIds2["kParticleSystemRotationBySpeedCurveId"] = 3737431713] = "kParticleSystemRotationBySpeedCurveId";
|
|
60387
|
+
ParticleSystemRandomnessIds2[ParticleSystemRandomnessIds2["kParticleSystemStartSpeedCurveId"] = 2527743459] = "kParticleSystemStartSpeedCurveId";
|
|
60388
|
+
ParticleSystemRandomnessIds2[ParticleSystemRandomnessIds2["kParticleSystemSizeCurveId"] = 2368504881] = "kParticleSystemSizeCurveId";
|
|
60389
|
+
ParticleSystemRandomnessIds2[ParticleSystemRandomnessIds2["kParticleSystemSizeBySpeedCurveId"] = 4085612399] = "kParticleSystemSizeBySpeedCurveId";
|
|
60390
|
+
ParticleSystemRandomnessIds2[ParticleSystemRandomnessIds2["kParticleSystemVelocityCurveId"] = 3774601268] = "kParticleSystemVelocityCurveId";
|
|
60391
|
+
ParticleSystemRandomnessIds2[ParticleSystemRandomnessIds2["kParticleSystemUVCurveId"] = 326370691] = "kParticleSystemUVCurveId";
|
|
60392
|
+
ParticleSystemRandomnessIds2[ParticleSystemRandomnessIds2["kParticleSystemColorGradientId"] = 1494990940] = "kParticleSystemColorGradientId";
|
|
60393
|
+
ParticleSystemRandomnessIds2[ParticleSystemRandomnessIds2["kParticleSystemColorByVelocityGradientId"] = 1089181156] = "kParticleSystemColorByVelocityGradientId";
|
|
60394
|
+
ParticleSystemRandomnessIds2[ParticleSystemRandomnessIds2["kParticleSystemMeshSelectionId"] = 3159510623] = "kParticleSystemMeshSelectionId";
|
|
60395
|
+
ParticleSystemRandomnessIds2[ParticleSystemRandomnessIds2["kParticleSystemUVRowSelectionId"] = 2941263940] = "kParticleSystemUVRowSelectionId";
|
|
60396
|
+
return ParticleSystemRandomnessIds2;
|
|
60397
|
+
})(ParticleSystemRandomnessIds || {});
|
|
60398
|
+
const kPI = 3.141592653589793;
|
|
60399
|
+
|
|
60400
|
+
class Polynomials {
|
|
60401
|
+
}
|
|
60402
|
+
function cubicPolynomialRoot(p, q, r) {
|
|
60403
|
+
let rcp3 = 1 / 3;
|
|
60404
|
+
let half = 0.5;
|
|
60405
|
+
let po3 = p * rcp3;
|
|
60406
|
+
let po3_2 = po3 * po3;
|
|
60407
|
+
let po3_3 = po3_2 * po3;
|
|
60408
|
+
let b = po3_3 - po3 * q * half + r * half;
|
|
60409
|
+
let a = -po3_2 + q * rcp3;
|
|
60410
|
+
let a3 = a * a * a;
|
|
60411
|
+
let det = a3 + b * b;
|
|
60412
|
+
if (det >= 0) {
|
|
60413
|
+
let r0 = Math.sqrt(det) - b;
|
|
60414
|
+
r0 = r0 > 0 ? Math.pow(r0, rcp3) : -Math.pow(-r0, rcp3);
|
|
60415
|
+
return -po3 - a / r0 + r0;
|
|
60416
|
+
}
|
|
60417
|
+
let abs = Math.sqrt(-a3);
|
|
60418
|
+
let arg = Math.acos(-b / abs);
|
|
60419
|
+
abs = Math.pow(abs, rcp3);
|
|
60420
|
+
abs = abs - a / abs;
|
|
60421
|
+
arg = -po3 + abs * Math.cos(arg * rcp3);
|
|
60422
|
+
return arg;
|
|
60423
|
+
}
|
|
60424
|
+
function quadraticPolynomialRootsGeneric(a, b, c, out) {
|
|
60425
|
+
let eps = 1e-5;
|
|
60426
|
+
if (Math.abs(a) < eps) {
|
|
60427
|
+
if (Math.abs(b) > eps) {
|
|
60428
|
+
out.r0 = -c / b;
|
|
60429
|
+
return 1;
|
|
60430
|
+
} else {
|
|
60431
|
+
return 0;
|
|
60432
|
+
}
|
|
60433
|
+
}
|
|
60434
|
+
let disc = b * b - 4 * a * c;
|
|
60435
|
+
if (disc < 0) {
|
|
60436
|
+
return 0;
|
|
60437
|
+
}
|
|
60438
|
+
let halfRcpA = 0.5 / a;
|
|
60439
|
+
let sqrtDisc = Math.sqrt(disc);
|
|
60440
|
+
out.r0 = (sqrtDisc - b) * halfRcpA;
|
|
60441
|
+
out.r1 = (-sqrtDisc - b) * halfRcpA;
|
|
60442
|
+
return 2;
|
|
60443
|
+
}
|
|
60444
|
+
function cubicPolynomialRootsGeneric(roots, a, b, c, d) {
|
|
60445
|
+
let numRoots = 0;
|
|
60446
|
+
if (Math.abs(a) >= 1e-4) {
|
|
60447
|
+
let p = b / a;
|
|
60448
|
+
let q = c / a;
|
|
60449
|
+
let r = d / a;
|
|
60450
|
+
roots[0] = cubicPolynomialRoot(p, q, r);
|
|
60451
|
+
numRoots++;
|
|
60452
|
+
let la = a;
|
|
60453
|
+
let lb = b + a * roots[0];
|
|
60454
|
+
let lc = c + b * roots[0] + a * roots[0] * roots[0];
|
|
60455
|
+
numRoots += quadraticPolynomialRootsGeneric(la, lb, lc, {
|
|
60456
|
+
r0: roots[1],
|
|
60457
|
+
r1: roots[2]
|
|
60458
|
+
});
|
|
60459
|
+
} else {
|
|
60460
|
+
numRoots += quadraticPolynomialRootsGeneric(b, c, d, {
|
|
60461
|
+
r0: roots[1],
|
|
60462
|
+
r1: roots[2]
|
|
60463
|
+
});
|
|
60464
|
+
}
|
|
60465
|
+
return numRoots;
|
|
60466
|
+
}
|
|
60467
|
+
|
|
60468
|
+
class Polynomial {
|
|
60469
|
+
coeff = [];
|
|
60470
|
+
static EvalSegment(t, coeff) {
|
|
60471
|
+
return t * (t * (t * coeff[0] + coeff[1]) + coeff[2]) + coeff[3];
|
|
60472
|
+
}
|
|
60473
|
+
}
|
|
60474
|
+
class PolynomialCurve {
|
|
60475
|
+
static kMaxNumSegments = 8;
|
|
60476
|
+
segments = [];
|
|
60477
|
+
integrationCache = [];
|
|
60478
|
+
doubleIntegrationCache = [];
|
|
60479
|
+
times = [];
|
|
60480
|
+
segmentCount;
|
|
60481
|
+
constructor() {
|
|
60482
|
+
this.segments[PolynomialCurve.kMaxNumSegments] = new Polynomial();
|
|
60483
|
+
this.integrationCache[PolynomialCurve.kMaxNumSegments] = 0;
|
|
60484
|
+
this.doubleIntegrationCache[PolynomialCurve.kMaxNumSegments] = 0;
|
|
60485
|
+
this.times[PolynomialCurve.kMaxNumSegments] = 0;
|
|
60486
|
+
}
|
|
60487
|
+
calculateMinMax(minmax, value) {
|
|
60488
|
+
minmax.x = Math.min(minmax.x, value);
|
|
60489
|
+
minmax.y = Math.max(minmax.y, value);
|
|
60490
|
+
}
|
|
60491
|
+
findMinMaxDoubleIntegrated() {
|
|
60492
|
+
let result = Vector2.ZERO.clone();
|
|
60493
|
+
let numSteps = 20;
|
|
60494
|
+
let delta = 1 / numSteps;
|
|
60495
|
+
let acc = delta;
|
|
60496
|
+
for (let i = 0; i < numSteps; i++) {
|
|
60497
|
+
this.calculateMinMax(result, this.evaluateDoubleIntegrated(acc));
|
|
60498
|
+
acc += delta;
|
|
60499
|
+
}
|
|
60500
|
+
return result;
|
|
60501
|
+
}
|
|
60502
|
+
// Find the maximum of the integrated curve (x: min, y: max)
|
|
60503
|
+
findMinMaxIntegrated() {
|
|
60504
|
+
let result = Vector2.ZERO.clone();
|
|
60505
|
+
let start = [];
|
|
60506
|
+
let end = [];
|
|
60507
|
+
for (let i = 0; i < this.segmentCount; i++) {
|
|
60508
|
+
let a = 4 * this.segments[i].coeff[0];
|
|
60509
|
+
let b = 3 * this.segments[i].coeff[1];
|
|
60510
|
+
let c = 2 * this.segments[i].coeff[2];
|
|
60511
|
+
let d = 1 * this.segments[i].coeff[3];
|
|
60512
|
+
let roots = [];
|
|
60513
|
+
let numRoots = cubicPolynomialRootsGeneric(roots, a, b, c, d);
|
|
60514
|
+
for (let r = 0; r < numRoots; r++) {
|
|
60515
|
+
let root = roots[r] + start[i];
|
|
60516
|
+
if (root >= start[i] && root < end[i]) {
|
|
60517
|
+
this.calculateMinMax(result, this.evaluateIntegrated(root));
|
|
60518
|
+
}
|
|
60519
|
+
}
|
|
60520
|
+
this.calculateMinMax(result, this.evaluateIntegrated(end[i]));
|
|
60521
|
+
this.times[i];
|
|
60522
|
+
}
|
|
60523
|
+
return result;
|
|
60524
|
+
}
|
|
60525
|
+
generateIntegrationCache(curve) {
|
|
60526
|
+
curve.integrationCache[0] = 0;
|
|
60527
|
+
let prevTimeValue0 = curve.times[0];
|
|
60528
|
+
let prevTimeValue1 = 0;
|
|
60529
|
+
for (let i = 1; i < curve.segmentCount; i++) {
|
|
60530
|
+
let coeff = curve.segments[i - 1].coeff;
|
|
60531
|
+
integrateSegment(coeff);
|
|
60532
|
+
let time = prevTimeValue0 - prevTimeValue1;
|
|
60533
|
+
curve.integrationCache[i] = curve.integrationCache[i - 1] + Polynomial.EvalSegment(time, coeff) * time;
|
|
60534
|
+
prevTimeValue1 = prevTimeValue0;
|
|
60535
|
+
prevTimeValue0 = curve.times[i];
|
|
60536
|
+
}
|
|
60537
|
+
}
|
|
60538
|
+
generateDoubleIntegrationCache(curve) {
|
|
60539
|
+
let sum = 0;
|
|
60540
|
+
let prevTimeValue = 0;
|
|
60541
|
+
for (let i = 0; i < curve.segmentCount; i++) {
|
|
60542
|
+
curve.doubleIntegrationCache[i] = sum;
|
|
60543
|
+
let time = curve.times[i] - prevTimeValue;
|
|
60544
|
+
time = Math.max(time, 0);
|
|
60545
|
+
sum += Polynomial.EvalSegment(time, curve.segments[i].coeff) * time * time + curve.integrationCache[i] * time;
|
|
60546
|
+
prevTimeValue = curve.times[i];
|
|
60547
|
+
}
|
|
60548
|
+
}
|
|
60549
|
+
// Integrates a velocity curve to be a position curve.
|
|
60550
|
+
// You have to call EvaluateIntegrated to evaluate the curve
|
|
60551
|
+
integrate() {
|
|
60552
|
+
this.generateIntegrationCache(this);
|
|
60553
|
+
for (let i = 0; i < this.segmentCount; i++) {
|
|
60554
|
+
integrateSegment(this.segments[i].coeff);
|
|
60555
|
+
}
|
|
60556
|
+
}
|
|
60557
|
+
// Integrates a velocity curve to be a position curve.
|
|
60558
|
+
// You have to call EvaluateDoubleIntegrated to evaluate the curve
|
|
60559
|
+
doubleIntegrate() {
|
|
60560
|
+
this.generateIntegrationCache(this);
|
|
60561
|
+
for (let i = 0; i < this.segmentCount; i++) {
|
|
60562
|
+
doubleIntegrateSegment(this.segments[i].coeff);
|
|
60563
|
+
}
|
|
60564
|
+
this.generateDoubleIntegrationCache(this);
|
|
60565
|
+
}
|
|
60566
|
+
// Evaluates if it is possible to represent animation curve as PolynomialCurve
|
|
60567
|
+
static isValidCurve(editorCurve) {
|
|
60568
|
+
let keyCount = editorCurve.getKeyCount();
|
|
60569
|
+
let segmentCount = keyCount - 1;
|
|
60570
|
+
if (editorCurve.getKey(0).time != 0) {
|
|
60571
|
+
segmentCount++;
|
|
60572
|
+
}
|
|
60573
|
+
if (editorCurve.getKey(keyCount - 1).time != 1) {
|
|
60574
|
+
segmentCount++;
|
|
60575
|
+
}
|
|
60576
|
+
return segmentCount <= PolynomialCurve.kMaxNumSegments;
|
|
60577
|
+
}
|
|
60578
|
+
evaluateDoubleIntegrated(t) {
|
|
60579
|
+
let prevTimeValue = 0;
|
|
60580
|
+
for (let i = 0; i < this.segmentCount; i++) {
|
|
60581
|
+
if (t <= this.times[i]) {
|
|
60582
|
+
let time = t - prevTimeValue;
|
|
60583
|
+
return this.doubleIntegrationCache[i] + this.integrationCache[i] * time + Polynomial.EvalSegment(time, this.segments[i].coeff) * time * time;
|
|
60584
|
+
}
|
|
60585
|
+
prevTimeValue = this.times[i];
|
|
60586
|
+
}
|
|
60587
|
+
return 1;
|
|
60588
|
+
}
|
|
60589
|
+
// Evaluate integrated Polynomial curve.
|
|
60590
|
+
// Example: position = EvaluateIntegrated (normalizedTime) * startEnergy
|
|
60591
|
+
// Use Integrate function to for example turn a velocity curve into a position curve.
|
|
60592
|
+
// Expects that t is in the 0...1 range.
|
|
60593
|
+
evaluateIntegrated(t) {
|
|
60594
|
+
let prevTimeValue = 0;
|
|
60595
|
+
for (let i = 0; i < this.segmentCount; i++) {
|
|
60596
|
+
if (t <= this.times[i]) {
|
|
60597
|
+
let time = t - prevTimeValue;
|
|
60598
|
+
return this.integrationCache[i] + Polynomial.EvalSegment(time, this.segments[i].coeff) * time;
|
|
60599
|
+
}
|
|
60600
|
+
prevTimeValue = this.times[i];
|
|
60601
|
+
}
|
|
60602
|
+
return 1;
|
|
60603
|
+
}
|
|
60604
|
+
// Evaluate the curve
|
|
60605
|
+
// extects that t is in the 0...1 range
|
|
60606
|
+
evaluate(t) {
|
|
60607
|
+
let prevTimeValue = 0;
|
|
60608
|
+
for (let i = 0; i < this.segmentCount; i++) {
|
|
60609
|
+
if (t <= this.times[i]) {
|
|
60610
|
+
return Polynomial.EvalSegment(
|
|
60611
|
+
t - prevTimeValue,
|
|
60612
|
+
this.segments[i].coeff
|
|
60613
|
+
);
|
|
60614
|
+
}
|
|
60615
|
+
prevTimeValue = this.times[i];
|
|
60616
|
+
}
|
|
60617
|
+
return 1;
|
|
60618
|
+
}
|
|
60619
|
+
buildCurve(editorCurve, scale) {
|
|
60620
|
+
let keyCount = editorCurve.getKeyCount();
|
|
60621
|
+
this.segmentCount = 1;
|
|
60622
|
+
let kMaxTime = 1.01;
|
|
60623
|
+
this.segments.length = 0;
|
|
60624
|
+
this.integrationCache.length = 0;
|
|
60625
|
+
this.doubleIntegrationCache.length = 0;
|
|
60626
|
+
this.times.length = 0;
|
|
60627
|
+
this.times[0] = kMaxTime;
|
|
60628
|
+
if (keyCount == 0) ; else if (keyCount == 1) {
|
|
60629
|
+
this.segments[0] = new Polynomial();
|
|
60630
|
+
this.segments[0].coeff[3] = editorCurve.getKey(0).value * scale;
|
|
60631
|
+
} else {
|
|
60632
|
+
this.segmentCount = keyCount - 1;
|
|
60633
|
+
let segmentOffset = 0;
|
|
60634
|
+
if (editorCurve.getKey(0).time != 0) {
|
|
60635
|
+
this.segments[0].coeff[3] = editorCurve.getKey(0).value;
|
|
60636
|
+
this.times[0] = editorCurve.getKey(0).time;
|
|
60637
|
+
segmentOffset = 1;
|
|
60638
|
+
}
|
|
60639
|
+
for (let i = 0; i < this.segmentCount; i++) {
|
|
60640
|
+
let cache;
|
|
60641
|
+
editorCurve.calculateCacheData(cache, i, i + 1, 0);
|
|
60642
|
+
this.segments[i + segmentOffset].coeff = cache.coeff.concat();
|
|
60643
|
+
this.times[i + segmentOffset] = editorCurve.getKey(i + 1).time;
|
|
60644
|
+
}
|
|
60645
|
+
this.segmentCount += segmentOffset;
|
|
60646
|
+
if (editorCurve.getKey(keyCount - 1).time != 1) {
|
|
60647
|
+
this.segments[this.segmentCount].coeff[3] = editorCurve.getKey(
|
|
60648
|
+
keyCount - 1
|
|
60649
|
+
).value;
|
|
60650
|
+
this.segmentCount++;
|
|
60651
|
+
}
|
|
60652
|
+
this.times[this.segmentCount - 1] = kMaxTime;
|
|
60653
|
+
for (let i = 0; i < this.segmentCount; i++) {
|
|
60654
|
+
this.segments[i].coeff[0] *= scale;
|
|
60655
|
+
this.segments[i].coeff[1] *= scale;
|
|
60656
|
+
this.segments[i].coeff[2] *= scale;
|
|
60657
|
+
this.segments[i].coeff[3] *= scale;
|
|
60658
|
+
}
|
|
60659
|
+
}
|
|
60660
|
+
return true;
|
|
60661
|
+
}
|
|
60662
|
+
}
|
|
60663
|
+
function doubleIntegrateSegment(coeff) {
|
|
60664
|
+
coeff[0] /= 20;
|
|
60665
|
+
coeff[1] /= 12;
|
|
60666
|
+
coeff[2] /= 6;
|
|
60667
|
+
coeff[3] /= 2;
|
|
60668
|
+
}
|
|
60669
|
+
function integrateSegment(coeff) {
|
|
60670
|
+
coeff[0] /= 4;
|
|
60671
|
+
coeff[1] /= 3;
|
|
60672
|
+
coeff[2] /= 2;
|
|
60673
|
+
coeff[3] /= 1;
|
|
60674
|
+
}
|
|
60675
|
+
|
|
60676
|
+
var ParticleSystemCurveEvalMode = /* @__PURE__ */ ((ParticleSystemCurveEvalMode2) => {
|
|
60677
|
+
ParticleSystemCurveEvalMode2[ParticleSystemCurveEvalMode2["kEMScalar"] = 0] = "kEMScalar";
|
|
60678
|
+
ParticleSystemCurveEvalMode2[ParticleSystemCurveEvalMode2["kEMOptimized"] = 1] = "kEMOptimized";
|
|
60679
|
+
ParticleSystemCurveEvalMode2[ParticleSystemCurveEvalMode2["kEMOptimizedMinMax"] = 2] = "kEMOptimizedMinMax";
|
|
60680
|
+
ParticleSystemCurveEvalMode2[ParticleSystemCurveEvalMode2["kEMSlow"] = 3] = "kEMSlow";
|
|
60681
|
+
return ParticleSystemCurveEvalMode2;
|
|
60682
|
+
})(ParticleSystemCurveEvalMode || {});
|
|
60683
|
+
var MinMaxCurveState = /* @__PURE__ */ ((MinMaxCurveState2) => {
|
|
60684
|
+
MinMaxCurveState2[MinMaxCurveState2["kMMCScalar"] = 0] = "kMMCScalar";
|
|
60685
|
+
MinMaxCurveState2[MinMaxCurveState2["kMMCCurve"] = 1] = "kMMCCurve";
|
|
60686
|
+
MinMaxCurveState2[MinMaxCurveState2["kMMCTwoCurves"] = 2] = "kMMCTwoCurves";
|
|
60687
|
+
MinMaxCurveState2[MinMaxCurveState2["kMMCTwoConstants"] = 3] = "kMMCTwoConstants";
|
|
60688
|
+
return MinMaxCurveState2;
|
|
60689
|
+
})(MinMaxCurveState || {});
|
|
60690
|
+
class MinMaxAnimationCurves {
|
|
60691
|
+
// public SupportsProcedural ();
|
|
60692
|
+
max;
|
|
60693
|
+
min;
|
|
60694
|
+
}
|
|
60695
|
+
class MinMaxPolyCurves {
|
|
60696
|
+
max;
|
|
60697
|
+
min;
|
|
60698
|
+
integrate() {
|
|
60699
|
+
this.max.integrate();
|
|
60700
|
+
this.min.integrate();
|
|
60701
|
+
}
|
|
60702
|
+
doubleIntegrate() {
|
|
60703
|
+
this.max.doubleIntegrate();
|
|
60704
|
+
this.min.doubleIntegrate();
|
|
60705
|
+
}
|
|
60706
|
+
findMinMaxIntegrated() {
|
|
60707
|
+
return null;
|
|
60708
|
+
}
|
|
60709
|
+
findMinMaxDoubleIntegrated() {
|
|
60710
|
+
return null;
|
|
60711
|
+
}
|
|
60712
|
+
}
|
|
60713
|
+
class MinMaxCurve {
|
|
60714
|
+
minMaxState;
|
|
60715
|
+
// see enum MinMaxCurveState
|
|
60716
|
+
minCurve;
|
|
60717
|
+
maxCurve;
|
|
60718
|
+
_scalar = 1;
|
|
60719
|
+
// Since scalar is baked into the optimized curve we use the setter function to modify it.
|
|
60720
|
+
_minScalar;
|
|
60721
|
+
constructor(scalarValue = 1) {
|
|
60722
|
+
this._scalar = scalarValue;
|
|
60723
|
+
this.minMaxState = 0 /* kMMCScalar */;
|
|
60724
|
+
this.minCurve = new AnimationCurve();
|
|
60725
|
+
this.maxCurve = new AnimationCurve();
|
|
60726
|
+
}
|
|
60727
|
+
setScalar(value) {
|
|
60728
|
+
this._scalar = value;
|
|
60729
|
+
}
|
|
60730
|
+
getScalar() {
|
|
60731
|
+
return this._scalar;
|
|
60732
|
+
}
|
|
60733
|
+
static evaluateSlow(curve, t, factor) {
|
|
60734
|
+
let v = curve.maxCurve.getValue(t) * curve.getScalar();
|
|
60735
|
+
if (curve.minMaxState == 2 /* kMMCTwoCurves */) {
|
|
60736
|
+
return lerp(curve.minCurve.getValue(t) * curve.getScalar(), v, factor);
|
|
60737
|
+
} else return v;
|
|
60738
|
+
}
|
|
60739
|
+
static evaluate(curve, t, randomValue = 1) {
|
|
60740
|
+
if (curve.minMaxState == 0 /* kMMCScalar */) {
|
|
60741
|
+
return curve.getScalar();
|
|
60742
|
+
}
|
|
60743
|
+
let v = curve.maxCurve.getValue(t) * curve.getScalar();
|
|
60744
|
+
if (curve.minMaxState == 1 /* kMMCCurve */) {
|
|
60745
|
+
return lerp(curve.minCurve.getValue(t) * curve.getScalar(), v, randomValue);
|
|
60746
|
+
}
|
|
60747
|
+
if (curve.minMaxState == 3 /* kMMCTwoConstants */) {
|
|
60748
|
+
return lerp(curve._minScalar, curve._scalar, randomValue);
|
|
60749
|
+
}
|
|
60750
|
+
if (curve.minMaxState == 2 /* kMMCTwoCurves */) {
|
|
60751
|
+
return lerp(curve.minCurve.getValue(t) * curve.getScalar(), v, 1 * Math.random());
|
|
60752
|
+
}
|
|
60753
|
+
return this.evaluateSlow(curve, t, 1);
|
|
60754
|
+
}
|
|
60755
|
+
unSerialized(data) {
|
|
60756
|
+
this.minMaxState = data["minMaxState"];
|
|
60757
|
+
this._scalar = data["scalar"];
|
|
60758
|
+
this._minScalar = data["minScalar"];
|
|
60759
|
+
this.maxCurve.unSerialized(data["maxCurve"]);
|
|
60760
|
+
this.minCurve.unSerialized(data["minCurve"]);
|
|
60761
|
+
}
|
|
60762
|
+
}
|
|
60763
|
+
class ValueSpread {
|
|
60764
|
+
value = 0;
|
|
60765
|
+
mode = 0;
|
|
60766
|
+
spread = 0;
|
|
60767
|
+
speed = new MinMaxCurve();
|
|
60768
|
+
unSerialized(data) {
|
|
60769
|
+
this.value = data["value"];
|
|
60770
|
+
this.mode = data["mode"];
|
|
60771
|
+
this.spread = data["spread"];
|
|
60772
|
+
this.speed.unSerialized(data["speed"]);
|
|
60773
|
+
}
|
|
60774
|
+
}
|
|
60775
|
+
function curvesSupportProcedural(editorCurves, minMaxState) {
|
|
60776
|
+
let isValid = PolynomialCurve.isValidCurve(editorCurves.max);
|
|
60777
|
+
if (minMaxState != 2 /* kMMCTwoCurves */ && minMaxState != 3 /* kMMCTwoConstants */) {
|
|
60778
|
+
return isValid;
|
|
60779
|
+
} else {
|
|
60780
|
+
return isValid && PolynomialCurve.isValidCurve(editorCurves.min);
|
|
60781
|
+
}
|
|
60782
|
+
}
|
|
60783
|
+
function buildCurves(polyCurves, editorCurves, scalar, minMaxState) {
|
|
60784
|
+
polyCurves.max.buildCurve(editorCurves.max, scalar);
|
|
60785
|
+
if (minMaxState != 2 /* kMMCTwoCurves */ && minMaxState != 3 /* kMMCTwoConstants */) {
|
|
60786
|
+
polyCurves.min.buildCurve(editorCurves.max, scalar);
|
|
60787
|
+
} else {
|
|
60788
|
+
polyCurves.min.buildCurve(editorCurves.min, scalar);
|
|
60789
|
+
}
|
|
60790
|
+
}
|
|
60791
|
+
function calculateCurveRangesValue(minMaxValue, curve) {
|
|
60792
|
+
let keyCount = curve.getKeyCount();
|
|
60793
|
+
if (keyCount == 0) {
|
|
60794
|
+
return;
|
|
60795
|
+
}
|
|
60796
|
+
if (keyCount == 1) {
|
|
60797
|
+
calculateMinMax(minMaxValue, curve.getKey(0).value);
|
|
60798
|
+
} else {
|
|
60799
|
+
let segmentCount = keyCount - 1;
|
|
60800
|
+
calculateMinMax(minMaxValue, curve.getKey(0).value);
|
|
60801
|
+
for (let i = 0; i < segmentCount; i++) {
|
|
60802
|
+
let cache = new FrameCache();
|
|
60803
|
+
curve.calculateCacheData(cache, i, i + 1, 0);
|
|
60804
|
+
let a = 3 * cache.coeff[0];
|
|
60805
|
+
let b = 2 * cache.coeff[1];
|
|
60806
|
+
let c = 1 * cache.coeff[2];
|
|
60807
|
+
let start = curve.getKey(i).time;
|
|
60808
|
+
let end = curve.getKey(i + 1).time;
|
|
60809
|
+
let roots = [];
|
|
60810
|
+
let numRoots = quadraticPolynomialRootsGeneric(a, b, c, { r0: roots[0], r1: roots[1] });
|
|
60811
|
+
for (let r = 0; r < numRoots; r++) {
|
|
60812
|
+
if (roots[r] >= 0 && roots[r] + start < end) {
|
|
60813
|
+
calculateMinMax(minMaxValue, Polynomial.EvalSegment(roots[r], cache.coeff));
|
|
60814
|
+
}
|
|
60815
|
+
}
|
|
60816
|
+
calculateMinMax(minMaxValue, Polynomial.EvalSegment(end - start, cache.coeff));
|
|
60817
|
+
}
|
|
60818
|
+
}
|
|
60819
|
+
}
|
|
60820
|
+
function calculateMinMax(minmax, value) {
|
|
60821
|
+
minmax.x = Math.min(minmax.x, value);
|
|
60822
|
+
minmax.y = Math.max(minmax.y, value);
|
|
60823
|
+
}
|
|
60824
|
+
|
|
58323
60825
|
class PlaneClassification {
|
|
58324
60826
|
/**
|
|
58325
60827
|
* @language zh_CN
|
|
@@ -58568,282 +61070,6 @@ class Plane3D {
|
|
|
58568
61070
|
}
|
|
58569
61071
|
}
|
|
58570
61072
|
|
|
58571
|
-
class Polynomials {
|
|
58572
|
-
}
|
|
58573
|
-
function cubicPolynomialRoot(p, q, r) {
|
|
58574
|
-
let rcp3 = 1 / 3;
|
|
58575
|
-
let half = 0.5;
|
|
58576
|
-
let po3 = p * rcp3;
|
|
58577
|
-
let po3_2 = po3 * po3;
|
|
58578
|
-
let po3_3 = po3_2 * po3;
|
|
58579
|
-
let b = po3_3 - po3 * q * half + r * half;
|
|
58580
|
-
let a = -po3_2 + q * rcp3;
|
|
58581
|
-
let a3 = a * a * a;
|
|
58582
|
-
let det = a3 + b * b;
|
|
58583
|
-
if (det >= 0) {
|
|
58584
|
-
let r0 = Math.sqrt(det) - b;
|
|
58585
|
-
r0 = r0 > 0 ? Math.pow(r0, rcp3) : -Math.pow(-r0, rcp3);
|
|
58586
|
-
return -po3 - a / r0 + r0;
|
|
58587
|
-
}
|
|
58588
|
-
let abs = Math.sqrt(-a3);
|
|
58589
|
-
let arg = Math.acos(-b / abs);
|
|
58590
|
-
abs = Math.pow(abs, rcp3);
|
|
58591
|
-
abs = abs - a / abs;
|
|
58592
|
-
arg = -po3 + abs * Math.cos(arg * rcp3);
|
|
58593
|
-
return arg;
|
|
58594
|
-
}
|
|
58595
|
-
function quadraticPolynomialRootsGeneric(a, b, c, out) {
|
|
58596
|
-
let eps = 1e-5;
|
|
58597
|
-
if (Math.abs(a) < eps) {
|
|
58598
|
-
if (Math.abs(b) > eps) {
|
|
58599
|
-
out.r0 = -c / b;
|
|
58600
|
-
return 1;
|
|
58601
|
-
} else {
|
|
58602
|
-
return 0;
|
|
58603
|
-
}
|
|
58604
|
-
}
|
|
58605
|
-
let disc = b * b - 4 * a * c;
|
|
58606
|
-
if (disc < 0) {
|
|
58607
|
-
return 0;
|
|
58608
|
-
}
|
|
58609
|
-
let halfRcpA = 0.5 / a;
|
|
58610
|
-
let sqrtDisc = Math.sqrt(disc);
|
|
58611
|
-
out.r0 = (sqrtDisc - b) * halfRcpA;
|
|
58612
|
-
out.r1 = (-sqrtDisc - b) * halfRcpA;
|
|
58613
|
-
return 2;
|
|
58614
|
-
}
|
|
58615
|
-
function cubicPolynomialRootsGeneric(roots, a, b, c, d) {
|
|
58616
|
-
let numRoots = 0;
|
|
58617
|
-
if (Math.abs(a) >= 1e-4) {
|
|
58618
|
-
let p = b / a;
|
|
58619
|
-
let q = c / a;
|
|
58620
|
-
let r = d / a;
|
|
58621
|
-
roots[0] = cubicPolynomialRoot(p, q, r);
|
|
58622
|
-
numRoots++;
|
|
58623
|
-
let la = a;
|
|
58624
|
-
let lb = b + a * roots[0];
|
|
58625
|
-
let lc = c + b * roots[0] + a * roots[0] * roots[0];
|
|
58626
|
-
numRoots += quadraticPolynomialRootsGeneric(la, lb, lc, {
|
|
58627
|
-
r0: roots[1],
|
|
58628
|
-
r1: roots[2]
|
|
58629
|
-
});
|
|
58630
|
-
} else {
|
|
58631
|
-
numRoots += quadraticPolynomialRootsGeneric(b, c, d, {
|
|
58632
|
-
r0: roots[1],
|
|
58633
|
-
r1: roots[2]
|
|
58634
|
-
});
|
|
58635
|
-
}
|
|
58636
|
-
return numRoots;
|
|
58637
|
-
}
|
|
58638
|
-
|
|
58639
|
-
class Polynomial {
|
|
58640
|
-
coeff = [];
|
|
58641
|
-
static EvalSegment(t, coeff) {
|
|
58642
|
-
return t * (t * (t * coeff[0] + coeff[1]) + coeff[2]) + coeff[3];
|
|
58643
|
-
}
|
|
58644
|
-
}
|
|
58645
|
-
class PolynomialCurve {
|
|
58646
|
-
static kMaxNumSegments = 8;
|
|
58647
|
-
segments = [];
|
|
58648
|
-
integrationCache = [];
|
|
58649
|
-
doubleIntegrationCache = [];
|
|
58650
|
-
times = [];
|
|
58651
|
-
segmentCount;
|
|
58652
|
-
constructor() {
|
|
58653
|
-
this.segments[PolynomialCurve.kMaxNumSegments] = new Polynomial();
|
|
58654
|
-
this.integrationCache[PolynomialCurve.kMaxNumSegments] = 0;
|
|
58655
|
-
this.doubleIntegrationCache[PolynomialCurve.kMaxNumSegments] = 0;
|
|
58656
|
-
this.times[PolynomialCurve.kMaxNumSegments] = 0;
|
|
58657
|
-
}
|
|
58658
|
-
calculateMinMax(minmax, value) {
|
|
58659
|
-
minmax.x = Math.min(minmax.x, value);
|
|
58660
|
-
minmax.y = Math.max(minmax.y, value);
|
|
58661
|
-
}
|
|
58662
|
-
findMinMaxDoubleIntegrated() {
|
|
58663
|
-
let result = Vector2.ZERO.clone();
|
|
58664
|
-
let numSteps = 20;
|
|
58665
|
-
let delta = 1 / numSteps;
|
|
58666
|
-
let acc = delta;
|
|
58667
|
-
for (let i = 0; i < numSteps; i++) {
|
|
58668
|
-
this.calculateMinMax(result, this.evaluateDoubleIntegrated(acc));
|
|
58669
|
-
acc += delta;
|
|
58670
|
-
}
|
|
58671
|
-
return result;
|
|
58672
|
-
}
|
|
58673
|
-
// Find the maximum of the integrated curve (x: min, y: max)
|
|
58674
|
-
findMinMaxIntegrated() {
|
|
58675
|
-
let result = Vector2.ZERO.clone();
|
|
58676
|
-
let start = [];
|
|
58677
|
-
let end = [];
|
|
58678
|
-
for (let i = 0; i < this.segmentCount; i++) {
|
|
58679
|
-
let a = 4 * this.segments[i].coeff[0];
|
|
58680
|
-
let b = 3 * this.segments[i].coeff[1];
|
|
58681
|
-
let c = 2 * this.segments[i].coeff[2];
|
|
58682
|
-
let d = 1 * this.segments[i].coeff[3];
|
|
58683
|
-
let roots = [];
|
|
58684
|
-
let numRoots = cubicPolynomialRootsGeneric(roots, a, b, c, d);
|
|
58685
|
-
for (let r = 0; r < numRoots; r++) {
|
|
58686
|
-
let root = roots[r] + start[i];
|
|
58687
|
-
if (root >= start[i] && root < end[i]) {
|
|
58688
|
-
this.calculateMinMax(result, this.evaluateIntegrated(root));
|
|
58689
|
-
}
|
|
58690
|
-
}
|
|
58691
|
-
this.calculateMinMax(result, this.evaluateIntegrated(end[i]));
|
|
58692
|
-
this.times[i];
|
|
58693
|
-
}
|
|
58694
|
-
return result;
|
|
58695
|
-
}
|
|
58696
|
-
generateIntegrationCache(curve) {
|
|
58697
|
-
curve.integrationCache[0] = 0;
|
|
58698
|
-
let prevTimeValue0 = curve.times[0];
|
|
58699
|
-
let prevTimeValue1 = 0;
|
|
58700
|
-
for (let i = 1; i < curve.segmentCount; i++) {
|
|
58701
|
-
let coeff = curve.segments[i - 1].coeff;
|
|
58702
|
-
integrateSegment(coeff);
|
|
58703
|
-
let time = prevTimeValue0 - prevTimeValue1;
|
|
58704
|
-
curve.integrationCache[i] = curve.integrationCache[i - 1] + Polynomial.EvalSegment(time, coeff) * time;
|
|
58705
|
-
prevTimeValue1 = prevTimeValue0;
|
|
58706
|
-
prevTimeValue0 = curve.times[i];
|
|
58707
|
-
}
|
|
58708
|
-
}
|
|
58709
|
-
generateDoubleIntegrationCache(curve) {
|
|
58710
|
-
let sum = 0;
|
|
58711
|
-
let prevTimeValue = 0;
|
|
58712
|
-
for (let i = 0; i < curve.segmentCount; i++) {
|
|
58713
|
-
curve.doubleIntegrationCache[i] = sum;
|
|
58714
|
-
let time = curve.times[i] - prevTimeValue;
|
|
58715
|
-
time = Math.max(time, 0);
|
|
58716
|
-
sum += Polynomial.EvalSegment(time, curve.segments[i].coeff) * time * time + curve.integrationCache[i] * time;
|
|
58717
|
-
prevTimeValue = curve.times[i];
|
|
58718
|
-
}
|
|
58719
|
-
}
|
|
58720
|
-
// Integrates a velocity curve to be a position curve.
|
|
58721
|
-
// You have to call EvaluateIntegrated to evaluate the curve
|
|
58722
|
-
integrate() {
|
|
58723
|
-
this.generateIntegrationCache(this);
|
|
58724
|
-
for (let i = 0; i < this.segmentCount; i++) {
|
|
58725
|
-
integrateSegment(this.segments[i].coeff);
|
|
58726
|
-
}
|
|
58727
|
-
}
|
|
58728
|
-
// Integrates a velocity curve to be a position curve.
|
|
58729
|
-
// You have to call EvaluateDoubleIntegrated to evaluate the curve
|
|
58730
|
-
doubleIntegrate() {
|
|
58731
|
-
this.generateIntegrationCache(this);
|
|
58732
|
-
for (let i = 0; i < this.segmentCount; i++) {
|
|
58733
|
-
doubleIntegrateSegment(this.segments[i].coeff);
|
|
58734
|
-
}
|
|
58735
|
-
this.generateDoubleIntegrationCache(this);
|
|
58736
|
-
}
|
|
58737
|
-
// Evaluates if it is possible to represent animation curve as PolynomialCurve
|
|
58738
|
-
static isValidCurve(editorCurve) {
|
|
58739
|
-
let keyCount = editorCurve.getKeyCount();
|
|
58740
|
-
let segmentCount = keyCount - 1;
|
|
58741
|
-
if (editorCurve.getKey(0).time != 0) {
|
|
58742
|
-
segmentCount++;
|
|
58743
|
-
}
|
|
58744
|
-
if (editorCurve.getKey(keyCount - 1).time != 1) {
|
|
58745
|
-
segmentCount++;
|
|
58746
|
-
}
|
|
58747
|
-
return segmentCount <= PolynomialCurve.kMaxNumSegments;
|
|
58748
|
-
}
|
|
58749
|
-
evaluateDoubleIntegrated(t) {
|
|
58750
|
-
let prevTimeValue = 0;
|
|
58751
|
-
for (let i = 0; i < this.segmentCount; i++) {
|
|
58752
|
-
if (t <= this.times[i]) {
|
|
58753
|
-
let time = t - prevTimeValue;
|
|
58754
|
-
return this.doubleIntegrationCache[i] + this.integrationCache[i] * time + Polynomial.EvalSegment(time, this.segments[i].coeff) * time * time;
|
|
58755
|
-
}
|
|
58756
|
-
prevTimeValue = this.times[i];
|
|
58757
|
-
}
|
|
58758
|
-
return 1;
|
|
58759
|
-
}
|
|
58760
|
-
// Evaluate integrated Polynomial curve.
|
|
58761
|
-
// Example: position = EvaluateIntegrated (normalizedTime) * startEnergy
|
|
58762
|
-
// Use Integrate function to for example turn a velocity curve into a position curve.
|
|
58763
|
-
// Expects that t is in the 0...1 range.
|
|
58764
|
-
evaluateIntegrated(t) {
|
|
58765
|
-
let prevTimeValue = 0;
|
|
58766
|
-
for (let i = 0; i < this.segmentCount; i++) {
|
|
58767
|
-
if (t <= this.times[i]) {
|
|
58768
|
-
let time = t - prevTimeValue;
|
|
58769
|
-
return this.integrationCache[i] + Polynomial.EvalSegment(time, this.segments[i].coeff) * time;
|
|
58770
|
-
}
|
|
58771
|
-
prevTimeValue = this.times[i];
|
|
58772
|
-
}
|
|
58773
|
-
return 1;
|
|
58774
|
-
}
|
|
58775
|
-
// Evaluate the curve
|
|
58776
|
-
// extects that t is in the 0...1 range
|
|
58777
|
-
evaluate(t) {
|
|
58778
|
-
let prevTimeValue = 0;
|
|
58779
|
-
for (let i = 0; i < this.segmentCount; i++) {
|
|
58780
|
-
if (t <= this.times[i]) {
|
|
58781
|
-
return Polynomial.EvalSegment(
|
|
58782
|
-
t - prevTimeValue,
|
|
58783
|
-
this.segments[i].coeff
|
|
58784
|
-
);
|
|
58785
|
-
}
|
|
58786
|
-
prevTimeValue = this.times[i];
|
|
58787
|
-
}
|
|
58788
|
-
return 1;
|
|
58789
|
-
}
|
|
58790
|
-
buildCurve(editorCurve, scale) {
|
|
58791
|
-
let keyCount = editorCurve.getKeyCount();
|
|
58792
|
-
this.segmentCount = 1;
|
|
58793
|
-
let kMaxTime = 1.01;
|
|
58794
|
-
this.segments.length = 0;
|
|
58795
|
-
this.integrationCache.length = 0;
|
|
58796
|
-
this.doubleIntegrationCache.length = 0;
|
|
58797
|
-
this.times.length = 0;
|
|
58798
|
-
this.times[0] = kMaxTime;
|
|
58799
|
-
if (keyCount == 0) ; else if (keyCount == 1) {
|
|
58800
|
-
this.segments[0] = new Polynomial();
|
|
58801
|
-
this.segments[0].coeff[3] = editorCurve.getKey(0).value * scale;
|
|
58802
|
-
} else {
|
|
58803
|
-
this.segmentCount = keyCount - 1;
|
|
58804
|
-
let segmentOffset = 0;
|
|
58805
|
-
if (editorCurve.getKey(0).time != 0) {
|
|
58806
|
-
this.segments[0].coeff[3] = editorCurve.getKey(0).value;
|
|
58807
|
-
this.times[0] = editorCurve.getKey(0).time;
|
|
58808
|
-
segmentOffset = 1;
|
|
58809
|
-
}
|
|
58810
|
-
for (let i = 0; i < this.segmentCount; i++) {
|
|
58811
|
-
let cache;
|
|
58812
|
-
editorCurve.calculateCacheData(cache, i, i + 1, 0);
|
|
58813
|
-
this.segments[i + segmentOffset].coeff = cache.coeff.concat();
|
|
58814
|
-
this.times[i + segmentOffset] = editorCurve.getKey(i + 1).time;
|
|
58815
|
-
}
|
|
58816
|
-
this.segmentCount += segmentOffset;
|
|
58817
|
-
if (editorCurve.getKey(keyCount - 1).time != 1) {
|
|
58818
|
-
this.segments[this.segmentCount].coeff[3] = editorCurve.getKey(
|
|
58819
|
-
keyCount - 1
|
|
58820
|
-
).value;
|
|
58821
|
-
this.segmentCount++;
|
|
58822
|
-
}
|
|
58823
|
-
this.times[this.segmentCount - 1] = kMaxTime;
|
|
58824
|
-
for (let i = 0; i < this.segmentCount; i++) {
|
|
58825
|
-
this.segments[i].coeff[0] *= scale;
|
|
58826
|
-
this.segments[i].coeff[1] *= scale;
|
|
58827
|
-
this.segments[i].coeff[2] *= scale;
|
|
58828
|
-
this.segments[i].coeff[3] *= scale;
|
|
58829
|
-
}
|
|
58830
|
-
}
|
|
58831
|
-
return true;
|
|
58832
|
-
}
|
|
58833
|
-
}
|
|
58834
|
-
function doubleIntegrateSegment(coeff) {
|
|
58835
|
-
coeff[0] /= 20;
|
|
58836
|
-
coeff[1] /= 12;
|
|
58837
|
-
coeff[2] /= 6;
|
|
58838
|
-
coeff[3] /= 2;
|
|
58839
|
-
}
|
|
58840
|
-
function integrateSegment(coeff) {
|
|
58841
|
-
coeff[0] /= 4;
|
|
58842
|
-
coeff[1] /= 3;
|
|
58843
|
-
coeff[2] /= 2;
|
|
58844
|
-
coeff[3] /= 1;
|
|
58845
|
-
}
|
|
58846
|
-
|
|
58847
61073
|
function uniform_real_distribution(min, max) {
|
|
58848
61074
|
return Math.random() * max + Math.random() * min + (max - min) * Math.random();
|
|
58849
61075
|
}
|
|
@@ -61824,86 +64050,6 @@ class TriGeometry extends GeometryBase {
|
|
|
61824
64050
|
}
|
|
61825
64051
|
}
|
|
61826
64052
|
|
|
61827
|
-
class Float16ArrayTexture extends Texture {
|
|
61828
|
-
uint16Array;
|
|
61829
|
-
floatArray;
|
|
61830
|
-
_dataBuffer;
|
|
61831
|
-
/**
|
|
61832
|
-
* 使用数字数组填充纹理,格式为[红0, 绿0, 蓝0, 透明度0, 红1, 绿1, 蓝1, 透明度1...]
|
|
61833
|
-
* @param width 纹理宽度
|
|
61834
|
-
* @param height 纹理高度
|
|
61835
|
-
* @param numbers 每个像素的颜色值数组
|
|
61836
|
-
* @param useMipmap 是否生成Mipmap
|
|
61837
|
-
* @returns 返回纹理实例
|
|
61838
|
-
*/
|
|
61839
|
-
create(width, height, numbers = null, mipmap = true) {
|
|
61840
|
-
if (numbers == null) {
|
|
61841
|
-
numbers = [];
|
|
61842
|
-
for (let i = 0, c = width * height * 4; i < c; i++) {
|
|
61843
|
-
numbers[i] = 0;
|
|
61844
|
-
}
|
|
61845
|
-
}
|
|
61846
|
-
this.updateTexture(width, height, numbers, mipmap);
|
|
61847
|
-
return this;
|
|
61848
|
-
}
|
|
61849
|
-
/**
|
|
61850
|
-
* 更新纹理内容
|
|
61851
|
-
* @param width 纹理宽度
|
|
61852
|
-
* @param height 纹理高度
|
|
61853
|
-
* @param numbers 像素数据数组
|
|
61854
|
-
* @param mipmap 是否生成Mipmap
|
|
61855
|
-
*/
|
|
61856
|
-
updateTexture(width, height, numbers, mipmap = true) {
|
|
61857
|
-
if (width != this.width || height != this.height) {
|
|
61858
|
-
this._dataBuffer && this._dataBuffer.destroy();
|
|
61859
|
-
this._dataBuffer = null;
|
|
61860
|
-
this.gpuTexture && this.gpuTexture.destroy();
|
|
61861
|
-
this.gpuTexture = null;
|
|
61862
|
-
}
|
|
61863
|
-
this.floatArray = numbers;
|
|
61864
|
-
let device = webGPUContext.device;
|
|
61865
|
-
const bytesPerRow = width * 4 * 2;
|
|
61866
|
-
this.format = GPUTextureFormat.rgba16float;
|
|
61867
|
-
this.mipmapCount = Math.floor(mipmap ? Math.log2(width) : 1);
|
|
61868
|
-
this.createTextureDescriptor(width, height, this.mipmapCount, this.format);
|
|
61869
|
-
if (!this.uint16Array || this.uint16Array.length != numbers.length) {
|
|
61870
|
-
this.uint16Array = new Uint16Array(numbers.length);
|
|
61871
|
-
}
|
|
61872
|
-
let uint16Array = this.uint16Array;
|
|
61873
|
-
for (let i = 0, c = uint16Array.length; i < c; i++) {
|
|
61874
|
-
uint16Array[i] = toHalfFloat(numbers[i]);
|
|
61875
|
-
}
|
|
61876
|
-
const textureDataBuffer = this._dataBuffer = device.createBuffer({
|
|
61877
|
-
size: uint16Array.byteLength,
|
|
61878
|
-
usage: GPUBufferUsage.COPY_DST | GPUBufferUsage.COPY_SRC
|
|
61879
|
-
});
|
|
61880
|
-
device.queue.writeBuffer(textureDataBuffer, 0, uint16Array);
|
|
61881
|
-
const commandEncoder = GPUContext.beginCommandEncoder();
|
|
61882
|
-
commandEncoder.copyBufferToTexture(
|
|
61883
|
-
{
|
|
61884
|
-
buffer: textureDataBuffer,
|
|
61885
|
-
bytesPerRow
|
|
61886
|
-
},
|
|
61887
|
-
{
|
|
61888
|
-
texture: this.getGPUTexture()
|
|
61889
|
-
},
|
|
61890
|
-
{
|
|
61891
|
-
width,
|
|
61892
|
-
height,
|
|
61893
|
-
depthOrArrayLayers: 1
|
|
61894
|
-
}
|
|
61895
|
-
);
|
|
61896
|
-
if (!this.useMipmap) {
|
|
61897
|
-
this.samplerBindingLayout.type = `filtering`;
|
|
61898
|
-
this.textureBindingLayout.sampleType = `float`;
|
|
61899
|
-
}
|
|
61900
|
-
GPUContext.endCommandEncoder(commandEncoder);
|
|
61901
|
-
this.gpuSampler = device.createSampler(this);
|
|
61902
|
-
this.gpuTexture = this.getGPUTexture();
|
|
61903
|
-
if (this.mipmapCount > 1) TextureMipmapGenerator.webGPUGenerateMipmap(this);
|
|
61904
|
-
}
|
|
61905
|
-
}
|
|
61906
|
-
|
|
61907
64053
|
class Float32ArrayTexture extends Texture {
|
|
61908
64054
|
create(width, height, data, filtering = true) {
|
|
61909
64055
|
let device = webGPUContext.device;
|
|
@@ -63343,4 +65489,4 @@ const __viteBrowserExternal = /*#__PURE__*/Object.freeze(/*#__PURE__*/Object.def
|
|
|
63343
65489
|
__proto__: null
|
|
63344
65490
|
}, Symbol.toStringTag, { value: 'Module' }));
|
|
63345
65491
|
|
|
63346
|
-
export { AccelerateDecelerateInterpolator, AccelerateInterpolator, AnimationCurve, AnimationCurveT, AnimationMonitor, AnimatorComponent, AnimatorEventKeyframe, AnticipateInterpolator, AnticipateOvershootInterpolator, ArrayHas, ArrayItemIndex, AtlasParser, AtmosphericComponent, AtmosphericScatteringSky, AtmosphericScatteringSkySetting, AtmosphericScatteringSky_shader, AttributeAnimCurve, AxisObject, B3DMLoader, B3DMLoaderBase, B3DMParseUtil, B3DMParser, BRDFLUT, BRDFLUTGenerate, BRDF_frag, BatchTable, BiMap, BillboardComponent, BillboardType, BitUtil, BitmapTexture2D, BitmapTexture2DArray, BitmapTextureCube, Blend, BlendFactor, BlendMode, BlendShapeData, BlendShapePropertyData, BloomPost, BlurEffectCreatorBlur_cs, BlurEffectCreatorSample_cs, BlurTexture2DBufferCreator, BounceInterpolator, BoundUtil, BoundingBox, BoundingSphere, BoxColliderShape, BoxGeometry, BrdfLut_frag, BsDF_frag, BxDF_frag, BxdfDebug_frag, BytesArray, CEvent, CEventDispatcher, CEventListener, CResizeEvent, CSM, Camera3D, CameraControllerBase, CameraType, CameraUtil, CapsuleColliderShape, CastPointShadowMaterialPass, CastShadowMaterialPass, Clearcoat_frag, ClusterBoundsSource_cs, ClusterConfig, ClusterDebug_frag, ClusterLight, ClusterLightingBuffer, ClusterLightingRender, ClusterLighting_cs, CollectInfo, ColliderComponent, ColliderShape, ColliderShapeType, Color, ColorGradient, ColorLitMaterial, ColorLitShader, ColorPassFragmentOutput, ColorPassRenderer, ColorUtil, ComData, Combine_cs, Common_frag, Common_vert, ComponentBase, ComponentCollect, ComputeGPUBuffer, ComputeShader, Context3D, CubeCamera, CubeMapFaceEnum, CubeSky_Shader, CubicBezierCurve, CubicBezierPath, CubicBezierType, CycleInterpolator, CylinderGeometry, DDGIIrradianceComputePass, DDGIIrradianceGPUBufferReader, DDGIIrradianceVolume, DDGIIrradiance_shader, DDGILightingPass, DDGILighting_shader, DDGIMultiBouncePass, DDGIProbeRenderer, DEGREES_TO_RADIANS, DecelerateInterpolator, Denoising_cs, Depth2DTextureArray, DepthCubeArrayTexture, DepthMaterialPass, DepthOfFieldPost, DepthOfView_cs, DirectLight, DoubleArray, EditorInspector, Engine3D, Entity, EntityBatchCollect, EntityCollect, EnvMap_frag, ErpImage2CubeMap, ErpImage2CubeMapCreateCube_cs, ErpImage2CubeMapRgbe2rgba_cs, ExtrudeGeometry, FASTFLOOR, FXAAPost, FXAAShader, FastMathShader, FeatureTable, FileLoader, FirstPersonCameraController, Float16ArrayTexture, Float32ArrayTexture, FlyCameraController, FontChar, FontInfo, FontPage, FontParser, ForwardRenderJob, FragmentOutput, FragmentVarying, FrameCache, Frustum, FrustumCSM, FrustumCulling_cs, FullQuad_vert_wgsl, GBufferFrame, GBufferPass, GBufferPost, GBufferStand, GBuffer_pass, GILighting, GIProbeMaterial, GIProbeMaterialType, GIProbeShader, GIRenderCompleteEvent, GIRenderStartEvent, GLBChunk, GLBHeader, GLBParser, GLSLLexer, GLSLLexerToken, GLSLPreprocessor, GLSLSyntax, GLTFBinaryExtension, GLTFMaterial, GLTFParser, GLTFSubParser, GLTFSubParserCamera, GLTFSubParserConverter, GLTFSubParserMaterial, GLTFSubParserMesh, GLTFSubParserSkeleton, GLTFSubParserSkin, GLTFType, GLTF_Accessors, GLTF_Info, GLTF_Light, GLTF_Mesh, GLTF_Node, GLTF_Primitives, GLTF_Scene, GPUAddressMode, GPUBlendFactor, GPUBufferBase, GPUBufferType, GPUCompareFunction, GPUContext, GPUCullMode, GPUFilterMode, GPUPrimitiveTopology, GPUTextureFormat, GPUVertexFormat, GPUVertexStepMode, GTAOPost, GTAO_cs, GUIAtlasTexture, GUICanvas, GUIConfig, GUIGeometry, GUIGeometryRebuild, GUIMaterial, GUIPassRenderer, GUIPick, GUIPickHelper, GUIQuad, GUIQuadAttrEnum, GUIRenderer, GUIShader, GUISpace, GUISprite, GUITexture, GenerayRandomDir, GeoJsonParser, GeoJsonUtil, GeoType, GeometryBase, GeometryIndicesBuffer, GeometryUtil, GeometryVertexBuffer, GeometryVertexType, GetComponentClass, GetCountInstanceID, GetRepeat, GetShader, GlassShader, GlobalBindGroup, GlobalBindGroupLayout, GlobalFog, GlobalFog_shader, GlobalIlluminationComponent, GlobalUniform, GlobalUniformGroup, GodRayPost, GodRay_cs, GridObject, HDRTexture, HDRTextureCube, Hair_frag, Hair_shader_op, Hair_shader_tr, HaltonSeq, Horizontal, HoverCameraController, I3DMLoader, I3DMLoaderBase, I3DMParser, IBLEnvMapCreator, IBLEnvMapCreator_cs, IESProfiles, IESProfiles_frag, IKDTreeUserData, ImageType, IndicesGPUBuffer, Inline_vert, InputSystem, InstanceDrawComponent, InstanceUniform, InstancedMesh, Interpolator, InterpolatorEnum, IrradianceDataReaderCompleteEvent, IrradianceVolumeData_frag, Irradiance_frag, IsEditorInspector, IsNonSerialize, Joint, JointPose, JumperInterpolator, KDTreeEntity, KDTreeNode, KDTreeRange, KDTreeSpace, KDTreeUUID, KHR_draco_mesh_compression, KHR_lights_punctual, KHR_materials_clearcoat, KHR_materials_emissive_strength, KHR_materials_ior, KHR_materials_unlit, KV, KelvinUtil, KeyCode, KeyEvent, Keyframe, KeyframeT, LDRTextureCube, LambertMaterial, Lambert_shader, Light, LightBase, LightData, LightEntries, LightType, LightingFunction_frag, Line, LineClassification, LinearInterpolator, LitMaterial, LitSSSShader, LitShader, Lit_shader, LoaderBase, LoaderEvent, LoaderManager, MAX_VALUE, MIN_VALUE, Material, MaterialDataUniformGPUBuffer, MaterialUtilities, MathShader, MathUtil, Matrix3, Matrix4, MatrixBindGroup, MatrixGPUBuffer, MatrixShader, MemoryDO, MemoryInfo, MergeRGBACreator, MergeRGBA_cs, MeshColliderShape, MeshFilter, MeshRenderer, MorePassParser, MorePassShader, MorphTargetBlender, MorphTargetData, MorphTargetFrame, MorphTargetTransformKey, MorphTarget_shader, MouseCode, MultiBouncePass_cs, Navi3DAstar, Navi3DConst, Navi3DEdge, Navi3DFunnel, Navi3DMaskType, Navi3DMesh, Navi3DPoint, Navi3DPoint2D, Navi3DPointFat, Navi3DRouter, Navi3DTriangle, NonSerialize, NormalMap_frag, OAnimationEvent, OBJParser, Object3D, Object3DEvent, Object3DTransformTools, Object3DUtil, ObjectAnimClip, OcclusionSystem, Octree, OctreeEntity, OrbitController, OrderMap, Orientation3D, OutLineBlendColor_cs, OutlineCalcOutline_cs, OutlinePass, OutlinePost, OutlinePostData, OutlinePostManager, OutlinePostSlot, Outline_cs, OvershootInterpolator, PBRLItShader, PBRLitSSSShader, ParserBase, ParserFormat, PassGenerate, PassShader, PassType, PhysicMaterialUniform_frag, PickCompute, PickFire, PickGUIEvent3D, PickResult, Picker_cs, PingPong, PipelinePool, Plane3D, PlaneClassification, PlaneGeometry, PointClassification, PointLight, PointLightShadowRenderer, PointShadowCubeCamera, PointerEvent3D, Polynomial, PolynomialCurve, Polynomials, PoolNode, PostBase, PostProcessingComponent, PostRenderer, PreDepthPassRenderer, PreFilteredEnvironment_cs, PreFilteredEnvironment_cs2, PreIntegratedLut, PreIntegratedLutCompute, PrefabAvatarData, PrefabAvatarParser, PrefabBoneData, PrefabMaterialParser, PrefabMeshData, PrefabMeshParser, PrefabNode, PrefabParser, PrefabStringUtil, PrefabTextureData, PrefabTextureParser, Preprocessor, Probe, ProbeEntries, ProbeGBufferFrame, ProfilerUtil, PropertyAnimClip, PropertyAnimTag, PropertyAnimation, PropertyAnimationClip, PropertyAnimationClipState, PropertyAnimationEvent, PropertyHelp, QuadAABB, QuadGlsl_fs, QuadGlsl_vs, QuadRoot, QuadShader, QuadTree, QuadTreeCell, Quad_depth2dArray_frag_wgsl, Quad_depth2d_frag_wgsl, Quad_depthCube_frag_wgsl, Quad_frag_wgsl, Quad_vert_wgsl, Quaternion, RADIANS_TO_DEGREES, RGBEErrorCode, RGBEHeader, RGBEParser, RTDescriptor, RTFrame, RTResourceConfig, RTResourceMap, Rand, RandomSeed, Ray, RayCastMeshDetail, Reader, Rect, Reference, Reflection, ReflectionCG, ReflectionEntries, ReflectionMaterial, ReflectionRenderer, ReflectionShader, ReflectionShader_shader, RegisterComponent, RegisterShader, RenderContext, RenderLayer, RenderLayerUtil, RenderNode, RenderShaderCollect, RenderShaderCompute, RenderShaderPass, RenderTexture, RendererBase, RendererJob, RendererMap, RendererMask, RendererMaskUtil, RendererPassState, RepeatSE, Res, RotationControlComponents, SHCommon_frag, SN_ArrayConstant, SN_BinaryOperation, SN_Break, SN_CodeBlock, SN_Constant, SN_Continue, SN_Declaration, SN_Discard, SN_DoWhileLoop, SN_Expression, SN_ForLoop, SN_Function, SN_FunctionArgs, SN_FunctionCall, SN_IFBranch, SN_Identifier, SN_IndexOperation, SN_Layout, SN_ParenExpression, SN_Precision, SN_Return, SN_SelectOperation, SN_Struct, SN_TernaryOperation, SN_UnaryOperation, SN_WhileLoop, SSAO_cs, SSGI2_cs, SSGIPost, SSRPost, SSR_BlendColor_cs, SSR_IS_Kernel, SSR_IS_cs, SSR_RayTrace_cs, ScaleControlComponents, Scene3D, Shader, ShaderAttributeInfo, ShaderConverter, ShaderConverterResult, ShaderLib, ShaderPassBase, ShaderReflection, ShaderStage, ShaderState, ShaderUniformInfo, ShaderUtil, ShadingInput, ShadowLightsCollect, ShadowMapPassRenderer, ShadowMapping_frag, Skeleton, SkeletonAnimationClip, SkeletonAnimationClipState, SkeletonAnimationComponent, SkeletonAnimationCompute, SkeletonAnimation_shader, SkeletonBlendComputeArgs, SkeletonPose, SkeletonTransformComputeArgs, SkinnedMeshRenderer, SkinnedMeshRenderer2, SkyGBufferPass, SkyGBuffer_pass, SkyMaterial, SkyRenderer, SkyShader, SolidColorSky, SphereColliderShape, SphereGeometry, SphereReflection, SpotLight, StandShader, StatementNode, StorageGPUBuffer, StringUtil, Struct, StructStorageGPUBuffer, SubGeometry, TAACopyTex_cs, TAAPost, TAASharpTex_cs, TAA_cs, TestComputeLoadBuffer, TextAnchor, TextFieldLayout, TextFieldLine, Texture, TextureCube, TextureCubeFaceData, TextureCubeStdCreator, TextureCubeUtils, TextureMipmapCompute, TextureMipmapGenerator, TextureScaleCompute, ThirdPersonCameraController, TileSet, TileSetChild, TileSetChildContent, TileSetChildContentMetaData, TileSetRoot, TilesRenderer, Time, TokenType, TorusGeometry, TouchData, TrailGeometry, Transform, TransformAxisEnum, TransformControllerBaseComponent, TransformMode, TransformSpaceMode, TranslationControlComponents, TranslatorContext, TriGeometry, Triangle, UIButton, UIButtonTransition, UIComponentBase, UIEvent, UIImage, UIImageGroup, UIInteractive, UIInteractiveStyle, UIPanel, UIRenderAble, UIShadow, UITextField, UITransform, UUID, UV, Uint8ArrayTexture, UnLit, UnLitMaterial, UnLitMaterialUniform_frag, UnLitShader, UnLitTexArrayMaterial, UnLitTexArrayShader, UnLitTextureArray, UnLit_frag, UniformGPUBuffer, UniformNode, UniformType, ValueEnumType, ValueOp, ValueParser, Vector2, Vector3, Vector3Ex, Vector4, VertexAttribute, VertexAttributeIndexShader, VertexAttributeName, VertexAttributeSize, VertexAttributeStride, VertexAttributes_vert, VertexBufferLayout, VertexFormat, VertexGPUBuffer, Vertical, VideoUniform_frag, View3D, ViewPanel, ViewQuad, VirtualTexture, WGSLTranslator, WebGPUDescriptorCreator, WorldMatrixUniform, WorldPanel, WrapMode, WrapTimeMode, ZCullingCompute, ZPassShader_cs, ZPassShader_fs, ZPassShader_vs, ZSorterUtil, append, arrayToString, blendComponent, castPointShadowMap_vert, clamp, clampRepeat, cos, crossProduct, cubicPolynomialRoot, cubicPolynomialRootsGeneric, deg2Rad, directionShadowCastMap_frag, dot, doubleIntegrateSegment, downSample, fastInvSqrt, floorfToIntPos, fonts, generateRandom, generateRandom3, getFloatFromInt, getGLTypeFromTypedArray, getGLTypeFromTypedArrayType, getGlobalRandomSeed, getTypedArray, getTypedArrayTypeFromGLType, grad1, grad2, grad3, grad4, integrateSegment, irradianceDataReader, lerp, lerpByte, lerpColor, lerpVector3, magnitude, makeAloneSprite, makeGUISprite, makeMatrix44, matrixMultiply, matrixRotate, matrixRotateY, mergeFunctions, multiplyMatrices4x4REF, normal_distribution, normalizeFast, normalizeSafe, normalizedToByte, normalizedToWord, outlinePostData, outlinePostManager, perm, post, quadraticPolynomialRootsGeneric, rad2Deg, random01, randomBarycentricCoord, randomPointBetweenEllipsoid, randomPointBetweenSphere, randomPointInsideCube, randomPointInsideEllipsoid, randomPointInsideUnitCircle, randomPointInsideUnitSphere, randomQuaternion, randomQuaternionUniformDistribution, randomSeed, randomUnitVector, randomUnitVector2, rangedRandomFloat, rangedRandomInt, readMagicBytes, registerMaterial, repeat, rotMatrix, rotateVectorByQuat, roundfToIntPos, scale, shadowCastMap_frag, shadowCastMap_vert, simplex, sin, snoise1, snoise2, snoise3, snoise4, sqrMagnitude, sqrtImpl, stencilStateFace, swap, textureCompress, threshold, toHalfFloat, tw, uniform_real_distribution, uniform_real_distribution2, upSample$1 as upSample, webGPUContext, zSorterUtil };
|
|
65492
|
+
export { AccelerateDecelerateInterpolator, AccelerateInterpolator, AnimationCurve, AnimationCurveT, AnimationMonitor, AnimatorComponent, AnimatorEventKeyframe, AnticipateInterpolator, AnticipateOvershootInterpolator, ArrayHas, ArrayItemIndex, AtlasParser, AtmosphericComponent, AtmosphericScatteringSky, AtmosphericScatteringSkySetting, AtmosphericScatteringSky_shader, AttributeAnimCurve, AxisObject, B3DMLoader, B3DMLoaderBase, B3DMParseUtil, B3DMParser, BRDFLUT, BRDFLUTGenerate, BRDF_frag, BatchTable, BiMap, BillboardComponent, BillboardType, BitUtil, BitmapTexture2D, BitmapTexture2DArray, BitmapTextureCube, Blend, BlendFactor, BlendMode, BlendShapeData, BlendShapePropertyData, BloomPost, BlurEffectCreatorBlur_cs, BlurEffectCreatorSample_cs, BlurTexture2DBufferCreator, BounceInterpolator, BoundUtil, BoundingBox, BoundingSphere, BoxColliderShape, BoxGeometry, BrdfLut_frag, BsDF_frag, BxDF_frag, BxdfDebug_frag, BytesArray, CEvent, CEventDispatcher, CEventListener, CResizeEvent, CSM, Camera3D, CameraControllerBase, CameraType, CameraUtil, CapsuleColliderShape, CastPointShadowMaterialPass, CastShadowMaterialPass, Clearcoat_frag, ClusterBoundsSource_cs, ClusterConfig, ClusterDebug_frag, ClusterLight, ClusterLightingBuffer, ClusterLightingRender, ClusterLighting_cs, CollectInfo, ColliderComponent, ColliderShape, ColliderShapeType, Color, ColorGradient, ColorLitMaterial, ColorLitShader, ColorPassFragmentOutput, ColorPassRenderer, ColorUtil, ComData, Combine_cs, Common_frag, Common_vert, ComponentBase, ComponentCollect, ComputeGPUBuffer, ComputeShader, Context3D, CubeCamera, CubeMapFaceEnum, CubeSky_Shader, CubicBezierCurve, CubicBezierPath, CubicBezierType, CycleInterpolator, CylinderGeometry, DDGIIrradianceComputePass, DDGIIrradianceGPUBufferReader, DDGIIrradianceVolume, DDGIIrradiance_shader, DDGILightingPass, DDGILighting_shader, DDGIMultiBouncePass, DDGIProbeRenderer, DEGREES_TO_RADIANS, DecelerateInterpolator, Denoising_cs, Depth2DTextureArray, DepthCubeArrayTexture, DepthMaterialPass, DepthOfFieldPost, DepthOfView_cs, DirectLight, DoubleArray, EditorInspector, Engine3D, Entity, EntityBatchCollect, EntityCollect, EnvMap_frag, ErpImage2CubeMap, ErpImage2CubeMapCreateCube_cs, ErpImage2CubeMapRgbe2rgba_cs, ExtrudeGeometry, FASTFLOOR, FXAAPost, FXAAShader, FastMathShader, FeatureTable, FileLoader, FirstPersonCameraController, Float16ArrayTexture, Float32ArrayTexture, FlyCameraController, FontChar, FontInfo, FontPage, FontParser, ForwardRenderJob, FragmentOutput, FragmentVarying, FrameCache, Frustum, FrustumCSM, FrustumCulling_cs, FullQuad_vert_wgsl, GBufferFrame, GBufferPass, GBufferPost, GBufferStand, GBuffer_pass, GILighting, GIProbeMaterial, GIProbeMaterialType, GIProbeShader, GIRenderCompleteEvent, GIRenderStartEvent, GLBChunk, GLBHeader, GLBParser, GLSLLexer, GLSLLexerToken, GLSLPreprocessor, GLSLSyntax, GLTFBinaryExtension, GLTFMaterial, GLTFParser, GLTFSubParser, GLTFSubParserCamera, GLTFSubParserConverter, GLTFSubParserMaterial, GLTFSubParserMesh, GLTFSubParserSkeleton, GLTFSubParserSkin, GLTFType, GLTF_Accessors, GLTF_Info, GLTF_Light, GLTF_Mesh, GLTF_Node, GLTF_Primitives, GLTF_Scene, GPUAddressMode, GPUBlendFactor, GPUBufferBase, GPUBufferType, GPUCompareFunction, GPUContext, GPUCullMode, GPUFilterMode, GPUPrimitiveTopology, GPUTextureFormat, GPUVertexFormat, GPUVertexStepMode, GSplatFormat, GSplatMaterial, GSplatRenderer, GSplat_FS, GSplat_VS, GTAOPost, GTAO_cs, GUIAtlasTexture, GUICanvas, GUIConfig, GUIGeometry, GUIGeometryRebuild, GUIMaterial, GUIPassRenderer, GUIPick, GUIPickHelper, GUIQuad, GUIQuadAttrEnum, GUIRenderer, GUIShader, GUISpace, GUISprite, GUITexture, GaussianSplatParser, GenerayRandomDir, GeoJsonParser, GeoJsonUtil, GeoType, GeometryBase, GeometryIndicesBuffer, GeometryUtil, GeometryVertexBuffer, GeometryVertexType, GetComponentClass, GetCountInstanceID, GetRepeat, GetShader, GlassShader, GlobalBindGroup, GlobalBindGroupLayout, GlobalFog, GlobalFog_shader, GlobalIlluminationComponent, GlobalUniform, GlobalUniformGroup, GodRayPost, GodRay_cs, GridObject, HDRTexture, HDRTextureCube, Hair_frag, Hair_shader_op, Hair_shader_tr, HaltonSeq, Horizontal, HoverCameraController, I3DMLoader, I3DMLoaderBase, I3DMParser, IBLEnvMapCreator, IBLEnvMapCreator_cs, IESProfiles, IESProfiles_frag, IKDTreeUserData, ImageType, IndicesGPUBuffer, Inline_vert, InputSystem, InstanceDrawComponent, InstanceUniform, InstancedMesh, Interpolator, InterpolatorEnum, IrradianceDataReaderCompleteEvent, IrradianceVolumeData_frag, Irradiance_frag, IsEditorInspector, IsNonSerialize, Joint, JointPose, JumperInterpolator, KDTreeEntity, KDTreeNode, KDTreeRange, KDTreeSpace, KDTreeUUID, KHR_draco_mesh_compression, KHR_lights_punctual, KHR_materials_clearcoat, KHR_materials_emissive_strength, KHR_materials_ior, KHR_materials_unlit, KMZParser, KV, KelvinUtil, KeyCode, KeyEvent, Keyframe, KeyframeT, LDRTextureCube, LambertMaterial, Lambert_shader, Light, LightBase, LightData, LightEntries, LightType, LightingFunction_frag, Line, LineClassification, LinearInterpolator, LitMaterial, LitSSSShader, LitShader, Lit_shader, LoaderBase, LoaderEvent, LoaderManager, MAX_VALUE, MIN_VALUE, Material, MaterialDataUniformGPUBuffer, MaterialUtilities, MathShader, MathUtil, Matrix3, Matrix4, MatrixBindGroup, MatrixGPUBuffer, MatrixShader, MemoryDO, MemoryInfo, MergeRGBACreator, MergeRGBA_cs, MeshColliderShape, MeshFilter, MeshRenderer, MinMaxAnimationCurves, MinMaxCurve, MinMaxCurveState, MinMaxPolyCurves, MorePassParser, MorePassShader, MorphTargetBlender, MorphTargetData, MorphTargetFrame, MorphTargetTransformKey, MorphTarget_shader, MouseCode, MultiBouncePass_cs, Navi3DAstar, Navi3DConst, Navi3DEdge, Navi3DFunnel, Navi3DMaskType, Navi3DMesh, Navi3DPoint, Navi3DPoint2D, Navi3DPointFat, Navi3DRouter, Navi3DTriangle, NonSerialize, NormalMap_frag, OAnimationEvent, OBJParser, Object3D, Object3DEvent, Object3DTransformTools, Object3DUtil, ObjectAnimClip, OcclusionSystem, Octree, OctreeEntity, OrbitController, OrderMap, Orientation3D, OutLineBlendColor_cs, OutlineCalcOutline_cs, OutlinePass, OutlinePost, OutlinePostData, OutlinePostManager, OutlinePostSlot, Outline_cs, OvershootInterpolator, PBRLItShader, PBRLitSSSShader, ParserBase, ParserFormat, ParticleSystemCurveEvalMode, ParticleSystemRandomnessIds, PassGenerate, PassShader, PassType, PhysicMaterialUniform_frag, PickCompute, PickFire, PickGUIEvent3D, PickResult, Picker_cs, PingPong, PipelinePool, Plane3D, PlaneClassification, PlaneGeometry, PointClassification, PointLight, PointLightShadowRenderer, PointShadowCubeCamera, PointerEvent3D, Polynomial, PolynomialCurve, Polynomials, PoolNode, PostBase, PostProcessingComponent, PostRenderer, PreDepthPassRenderer, PreFilteredEnvironment_cs, PreFilteredEnvironment_cs2, PreIntegratedLut, PreIntegratedLutCompute, PrefabAvatarData, PrefabAvatarParser, PrefabBoneData, PrefabMaterialParser, PrefabMeshData, PrefabMeshParser, PrefabNode, PrefabParser, PrefabStringUtil, PrefabTextureData, PrefabTextureParser, Preprocessor, Probe, ProbeEntries, ProbeGBufferFrame, ProfilerUtil, PropertyAnimClip, PropertyAnimTag, PropertyAnimation, PropertyAnimationClip, PropertyAnimationClipState, PropertyAnimationEvent, PropertyHelp, QuadAABB, QuadGlsl_fs, QuadGlsl_vs, QuadRoot, QuadShader, QuadTree, QuadTreeCell, Quad_depth2dArray_frag_wgsl, Quad_depth2d_frag_wgsl, Quad_depthCube_frag_wgsl, Quad_frag_wgsl, Quad_vert_wgsl, Quaternion, RADIANS_TO_DEGREES, RGBEErrorCode, RGBEHeader, RGBEParser, RTDescriptor, RTFrame, RTResourceConfig, RTResourceMap, Rand, RandomSeed, Ray, RayCastMeshDetail, Reader, Rect, Reference, Reflection, ReflectionCG, ReflectionEntries, ReflectionMaterial, ReflectionRenderer, ReflectionShader, ReflectionShader_shader, RegisterComponent, RegisterShader, RenderContext, RenderLayer, RenderLayerUtil, RenderNode, RenderShaderCollect, RenderShaderCompute, RenderShaderPass, RenderTexture, RendererBase, RendererJob, RendererMap, RendererMask, RendererMaskUtil, RendererPassState, RepeatSE, Res, RotationControlComponents, SHCommon_frag, SN_ArrayConstant, SN_BinaryOperation, SN_Break, SN_CodeBlock, SN_Constant, SN_Continue, SN_Declaration, SN_Discard, SN_DoWhileLoop, SN_Expression, SN_ForLoop, SN_Function, SN_FunctionArgs, SN_FunctionCall, SN_IFBranch, SN_Identifier, SN_IndexOperation, SN_Layout, SN_ParenExpression, SN_Precision, SN_Return, SN_SelectOperation, SN_Struct, SN_TernaryOperation, SN_UnaryOperation, SN_WhileLoop, SSAO_cs, SSGI2_cs, SSGIPost, SSRPost, SSR_BlendColor_cs, SSR_IS_Kernel, SSR_IS_cs, SSR_RayTrace_cs, ScaleControlComponents, Scene3D, Shader, ShaderAttributeInfo, ShaderConverter, ShaderConverterResult, ShaderLib, ShaderPassBase, ShaderReflection, ShaderStage, ShaderState, ShaderUniformInfo, ShaderUtil, ShadingInput, ShadowLightsCollect, ShadowMapPassRenderer, ShadowMapping_frag, Skeleton, SkeletonAnimationClip, SkeletonAnimationClipState, SkeletonAnimationComponent, SkeletonAnimationCompute, SkeletonAnimation_shader, SkeletonBlendComputeArgs, SkeletonPose, SkeletonTransformComputeArgs, SkinnedMeshRenderer, SkinnedMeshRenderer2, SkyGBufferPass, SkyGBuffer_pass, SkyMaterial, SkyRenderer, SkyShader, SolidColorSky, SphereColliderShape, SphereGeometry, SphereReflection, SpotLight, StandShader, StatementNode, StorageGPUBuffer, StringUtil, Struct, StructStorageGPUBuffer, SubGeometry, TAACopyTex_cs, TAAPost, TAASharpTex_cs, TAA_cs, TestComputeLoadBuffer, TextAnchor, TextFieldLayout, TextFieldLine, Texture, TextureCube, TextureCubeFaceData, TextureCubeStdCreator, TextureCubeUtils, TextureMipmapCompute, TextureMipmapGenerator, TextureScaleCompute, ThirdPersonCameraController, TileSet, TileSetChild, TileSetChildContent, TileSetChildContentMetaData, TileSetRoot, TilesRenderer, Time, TokenType, TorusGeometry, TouchData, TrailGeometry, Transform, TransformAxisEnum, TransformControllerBaseComponent, TransformMode, TransformSpaceMode, TranslationControlComponents, TranslatorContext, TriGeometry, Triangle, UIButton, UIButtonTransition, UIComponentBase, UIEvent, UIImage, UIImageGroup, UIInteractive, UIInteractiveStyle, UIPanel, UIRenderAble, UIShadow, UITextField, UITransform, UUID, UV, Uint32ArrayTexture, Uint8ArrayTexture, UnLit, UnLitMaterial, UnLitMaterialUniform_frag, UnLitShader, UnLitTexArrayMaterial, UnLitTexArrayShader, UnLitTextureArray, UnLit_frag, UniformGPUBuffer, UniformNode, UniformType, ValueEnumType, ValueOp, ValueParser, ValueSpread, Vector2, Vector3, Vector3Ex, Vector4, VertexAttribute, VertexAttributeIndexShader, VertexAttributeName, VertexAttributeSize, VertexAttributeStride, VertexAttributes_vert, VertexBufferLayout, VertexFormat, VertexGPUBuffer, Vertical, VideoUniform_frag, View3D, ViewPanel, ViewQuad, VirtualTexture, WGSLTranslator, WayLines3D, WayPoint3D, WebGPUDescriptorCreator, WorldMatrixUniform, WorldPanel, WrapMode, WrapTimeMode, ZCullingCompute, ZPassShader_cs, ZPassShader_fs, ZPassShader_vs, ZSorterUtil, append, arrayToString, blendComponent, buildCurves, byteSizeOfType, calculateCurveRangesValue, calculateMinMax, castPointShadowMap_vert, clamp, clampRepeat, computeAABBFromPositions, cos, crossProduct, cubicPolynomialRoot, cubicPolynomialRootsGeneric, curvesSupportProcedural, deg2Rad, detectGSplatFormat, directionShadowCastMap_frag, dot, doubleIntegrateSegment, downSample, fastInvSqrt, floorfToIntPos, fonts, generateRandom, generateRandom3, getFloatFromInt, getGLTypeFromTypedArray, getGLTypeFromTypedArrayType, getGlobalRandomSeed, getTypedArray, getTypedArrayTypeFromGLType, grad1, grad2, grad3, grad4, inferSHOrder, integrateSegment, irradianceDataReader, kPI, lerp, lerpByte, lerpColor, lerpVector3, magnitude, makeAloneSprite, makeGUISprite, makeMatrix44, matrixMultiply, matrixRotate, matrixRotateY, mergeFunctions, multiplyMatrices4x4REF, normal_distribution, normalizeFast, normalizeSafe, normalizedToByte, normalizedToWord, outlinePostData, outlinePostManager, parsePlyGaussianSplat, parsePlyHeader, perm, post, quadraticPolynomialRootsGeneric, rad2Deg, random01, randomBarycentricCoord, randomPointBetweenEllipsoid, randomPointBetweenSphere, randomPointInsideCube, randomPointInsideEllipsoid, randomPointInsideUnitCircle, randomPointInsideUnitSphere, randomQuaternion, randomQuaternionUniformDistribution, randomSeed, randomUnitVector, randomUnitVector2, rangedRandomFloat, rangedRandomInt, readByType, readMagicBytes, registerMaterial, repeat, rotMatrix, rotateVectorByQuat, roundfToIntPos, scale, shadowCastMap_frag, shadowCastMap_vert, simplex, sin, snoise1, snoise2, snoise3, snoise4, sqrMagnitude, sqrtImpl, stencilStateFace, swap, textureCompress, threshold, toHalfFloat, tw, uniform_real_distribution, uniform_real_distribution2, upSample$1 as upSample, webGPUContext, zSorterUtil };
|