@rings-webgpu/core 1.0.1 → 1.0.2
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/package.json +54 -0
- package/dist/packages/wasm-matrix/WasmMatrix.d.ts +26 -0
- package/dist/packages/wasm-matrix/WasmMatrix.js +88 -0
- package/dist/rings.es.js +11195 -0
- package/dist/rings.es.js.map +7 -0
- package/dist/rings.es.max.js +1316 -1043
- package/dist/rings.umd.js +11195 -0
- package/dist/rings.umd.js.map +7 -0
- package/dist/rings.umd.max.js +1317 -1044
- package/dist/src/Engine3D.d.ts +107 -0
- package/dist/src/Engine3D.js +471 -0
- package/dist/src/assets/Fonts.d.ts +20 -0
- package/dist/src/assets/Fonts.js +24 -0
- package/dist/src/assets/Res.d.ts +72 -0
- package/dist/src/assets/Res.js +299 -0
- package/dist/src/assets/shader/ShaderLib.d.ts +5 -0
- package/dist/src/assets/shader/ShaderLib.js +128 -0
- package/dist/src/assets/shader/anim/SkeletonAnimation_shader.d.ts +3 -0
- package/dist/src/assets/shader/anim/SkeletonAnimation_shader.js +51 -0
- package/dist/src/assets/shader/cluster/ClusterBoundsSource_cs.d.ts +1 -0
- package/dist/src/assets/shader/cluster/ClusterBoundsSource_cs.js +88 -0
- package/dist/src/assets/shader/cluster/ClusterLighting_cs.d.ts +1 -0
- package/dist/src/assets/shader/cluster/ClusterLighting_cs.js +127 -0
- package/dist/src/assets/shader/compute/BRDFLUT.d.ts +1 -0
- package/dist/src/assets/shader/compute/BRDFLUT.js +90 -0
- package/dist/src/assets/shader/compute/BloomEffect_cs.d.ts +4 -0
- package/dist/src/assets/shader/compute/BloomEffect_cs.js +173 -0
- package/dist/src/assets/shader/compute/BlurEffectCreator_cs.d.ts +2 -0
- package/dist/src/assets/shader/compute/BlurEffectCreator_cs.js +84 -0
- package/dist/src/assets/shader/compute/DDGIIrradiance_Cs.d.ts +4 -0
- package/dist/src/assets/shader/compute/DDGIIrradiance_Cs.js +307 -0
- package/dist/src/assets/shader/compute/DDGILighting_CSShader.d.ts +4 -0
- package/dist/src/assets/shader/compute/DDGILighting_CSShader.js +285 -0
- package/dist/src/assets/shader/compute/DepthOfView_cs.d.ts +4 -0
- package/dist/src/assets/shader/compute/DepthOfView_cs.js +90 -0
- package/dist/src/assets/shader/compute/ErpImage2CubeMapCreateCube_cs.d.ts +1 -0
- package/dist/src/assets/shader/compute/ErpImage2CubeMapCreateCube_cs.js +64 -0
- package/dist/src/assets/shader/compute/ErpImage2CubeMapRgbe2rgba_cs.d.ts +1 -0
- package/dist/src/assets/shader/compute/ErpImage2CubeMapRgbe2rgba_cs.js +34 -0
- package/dist/src/assets/shader/compute/GTAO_cs.d.ts +4 -0
- package/dist/src/assets/shader/compute/GTAO_cs.js +133 -0
- package/dist/src/assets/shader/compute/GodRay_cs.d.ts +1 -0
- package/dist/src/assets/shader/compute/GodRay_cs.js +214 -0
- package/dist/src/assets/shader/compute/IBLEnvMapCreator_cs.d.ts +1 -0
- package/dist/src/assets/shader/compute/IBLEnvMapCreator_cs.js +164 -0
- package/dist/src/assets/shader/compute/MergeRGBA_cs.d.ts +1 -0
- package/dist/src/assets/shader/compute/MergeRGBA_cs.js +27 -0
- package/dist/src/assets/shader/compute/MultiBouncePass_cs.d.ts +4 -0
- package/dist/src/assets/shader/compute/MultiBouncePass_cs.js +169 -0
- package/dist/src/assets/shader/compute/OutLineBlendColor_cs.d.ts +1 -0
- package/dist/src/assets/shader/compute/OutLineBlendColor_cs.js +49 -0
- package/dist/src/assets/shader/compute/OutlineCalcOutline_cs.d.ts +1 -0
- package/dist/src/assets/shader/compute/OutlineCalcOutline_cs.js +95 -0
- package/dist/src/assets/shader/compute/Outline_cs.d.ts +1 -0
- package/dist/src/assets/shader/compute/Outline_cs.js +116 -0
- package/dist/src/assets/shader/compute/Picker_cs.d.ts +1 -0
- package/dist/src/assets/shader/compute/Picker_cs.js +40 -0
- package/dist/src/assets/shader/compute/PreFilteredEnvironment_cs copy.d.ts +1 -0
- package/dist/src/assets/shader/compute/PreFilteredEnvironment_cs copy.js +162 -0
- package/dist/src/assets/shader/compute/PreFilteredEnvironment_cs.d.ts +4 -0
- package/dist/src/assets/shader/compute/PreFilteredEnvironment_cs.js +201 -0
- package/dist/src/assets/shader/compute/PreIntegratedLut.d.ts +1 -0
- package/dist/src/assets/shader/compute/PreIntegratedLut.js +46 -0
- package/dist/src/assets/shader/compute/SSAO_cs.d.ts +1 -0
- package/dist/src/assets/shader/compute/SSAO_cs.js +82 -0
- package/dist/src/assets/shader/compute/SSGI2_cs.d.ts +7 -0
- package/dist/src/assets/shader/compute/SSGI2_cs.js +169 -0
- package/dist/src/assets/shader/compute/SSR_BlendColor_cs.d.ts +4 -0
- package/dist/src/assets/shader/compute/SSR_BlendColor_cs.js +53 -0
- package/dist/src/assets/shader/compute/SSR_IS_cs.d.ts +1 -0
- package/dist/src/assets/shader/compute/SSR_IS_cs.js +76 -0
- package/dist/src/assets/shader/compute/SSR_RayTrace_cs.d.ts +1 -0
- package/dist/src/assets/shader/compute/SSR_RayTrace_cs.js +289 -0
- package/dist/src/assets/shader/compute/TAACopyTex_cs.d.ts +4 -0
- package/dist/src/assets/shader/compute/TAACopyTex_cs.js +22 -0
- package/dist/src/assets/shader/compute/TAASharpTex_cs.d.ts +1 -0
- package/dist/src/assets/shader/compute/TAASharpTex_cs.js +42 -0
- package/dist/src/assets/shader/compute/TAA_cs.d.ts +4 -0
- package/dist/src/assets/shader/compute/TAA_cs.js +152 -0
- package/dist/src/assets/shader/compute/utils/Combine_cs.d.ts +4 -0
- package/dist/src/assets/shader/compute/utils/Combine_cs.js +47 -0
- package/dist/src/assets/shader/compute/utils/Denoising_cs.d.ts +4 -0
- package/dist/src/assets/shader/compute/utils/Denoising_cs.js +28 -0
- package/dist/src/assets/shader/compute/utils/TestComputeLoadBuffer.d.ts +1 -0
- package/dist/src/assets/shader/compute/utils/TestComputeLoadBuffer.js +128 -0
- package/dist/src/assets/shader/compute/utils/TextureCompress.d.ts +2 -0
- package/dist/src/assets/shader/compute/utils/TextureCompress.js +131 -0
- package/dist/src/assets/shader/compute/utils/tw.d.ts +4 -0
- package/dist/src/assets/shader/compute/utils/tw.js +43 -0
- package/dist/src/assets/shader/core/base/Common_frag.d.ts +1 -0
- package/dist/src/assets/shader/core/base/Common_frag.js +62 -0
- package/dist/src/assets/shader/core/base/Common_vert.d.ts +1 -0
- package/dist/src/assets/shader/core/base/Common_vert.js +12 -0
- package/dist/src/assets/shader/core/common/BrdfLut_frag.d.ts +1 -0
- package/dist/src/assets/shader/core/common/BrdfLut_frag.js +6 -0
- package/dist/src/assets/shader/core/common/EnvMap_frag.d.ts +1 -0
- package/dist/src/assets/shader/core/common/EnvMap_frag.js +10 -0
- package/dist/src/assets/shader/core/common/GBufferStand.d.ts +1 -0
- package/dist/src/assets/shader/core/common/GBufferStand.js +171 -0
- package/dist/src/assets/shader/core/common/GlobalUniform.d.ts +4 -0
- package/dist/src/assets/shader/core/common/GlobalUniform.js +117 -0
- package/dist/src/assets/shader/core/common/InstanceUniform.d.ts +1 -0
- package/dist/src/assets/shader/core/common/InstanceUniform.js +9 -0
- package/dist/src/assets/shader/core/common/SHCommon_frag.d.ts +1 -0
- package/dist/src/assets/shader/core/common/SHCommon_frag.js +82 -0
- package/dist/src/assets/shader/core/common/WorldMatrixUniform.d.ts +1 -0
- package/dist/src/assets/shader/core/common/WorldMatrixUniform.js +8 -0
- package/dist/src/assets/shader/core/inline/Inline_vert.d.ts +1 -0
- package/dist/src/assets/shader/core/inline/Inline_vert.js +59 -0
- package/dist/src/assets/shader/core/pass/CastShadow_pass.d.ts +4 -0
- package/dist/src/assets/shader/core/pass/CastShadow_pass.js +284 -0
- package/dist/src/assets/shader/core/pass/FrustumCulling_cs.d.ts +4 -0
- package/dist/src/assets/shader/core/pass/FrustumCulling_cs.js +91 -0
- package/dist/src/assets/shader/core/pass/GBuffer_pass.d.ts +1 -0
- package/dist/src/assets/shader/core/pass/GBuffer_pass.js +72 -0
- package/dist/src/assets/shader/core/pass/SkyGBuffer_pass.d.ts +1 -0
- package/dist/src/assets/shader/core/pass/SkyGBuffer_pass.js +34 -0
- package/dist/src/assets/shader/core/pass/ZPassShader_cs.d.ts +1 -0
- package/dist/src/assets/shader/core/pass/ZPassShader_cs.js +14 -0
- package/dist/src/assets/shader/core/pass/ZPassShader_fs.d.ts +1 -0
- package/dist/src/assets/shader/core/pass/ZPassShader_fs.js +15 -0
- package/dist/src/assets/shader/core/pass/ZPassShader_vs.d.ts +1 -0
- package/dist/src/assets/shader/core/pass/ZPassShader_vs.js +83 -0
- package/dist/src/assets/shader/core/struct/ClusterLight.d.ts +4 -0
- package/dist/src/assets/shader/core/struct/ClusterLight.js +98 -0
- package/dist/src/assets/shader/core/struct/ColorPassFragmentOutput.d.ts +1 -0
- package/dist/src/assets/shader/core/struct/ColorPassFragmentOutput.js +16 -0
- package/dist/src/assets/shader/core/struct/FragmentOutput.d.ts +1 -0
- package/dist/src/assets/shader/core/struct/FragmentOutput.js +18 -0
- package/dist/src/assets/shader/core/struct/FragmentVarying.d.ts +1 -0
- package/dist/src/assets/shader/core/struct/FragmentVarying.js +23 -0
- package/dist/src/assets/shader/core/struct/ShadingInput.d.ts +1 -0
- package/dist/src/assets/shader/core/struct/ShadingInput.js +21 -0
- package/dist/src/assets/shader/core/struct/VertexAttributeIndexShader.d.ts +1 -0
- package/dist/src/assets/shader/core/struct/VertexAttributeIndexShader.js +100 -0
- package/dist/src/assets/shader/core/struct/VertexAttributes.d.ts +1 -0
- package/dist/src/assets/shader/core/struct/VertexAttributes.js +160 -0
- package/dist/src/assets/shader/env/ReflectionCG.d.ts +1 -0
- package/dist/src/assets/shader/env/ReflectionCG.js +86 -0
- package/dist/src/assets/shader/glsl/Quad_glsl.d.ts +2 -0
- package/dist/src/assets/shader/glsl/Quad_glsl.js +55 -0
- package/dist/src/assets/shader/lighting/BRDF_frag.d.ts +4 -0
- package/dist/src/assets/shader/lighting/BRDF_frag.js +461 -0
- package/dist/src/assets/shader/lighting/BsDF_frag.d.ts +4 -0
- package/dist/src/assets/shader/lighting/BsDF_frag.js +139 -0
- package/dist/src/assets/shader/lighting/BxDF_frag.d.ts +4 -0
- package/dist/src/assets/shader/lighting/BxDF_frag.js +210 -0
- package/dist/src/assets/shader/lighting/Hair_frag.d.ts +1 -0
- package/dist/src/assets/shader/lighting/Hair_frag.js +277 -0
- package/dist/src/assets/shader/lighting/IESProfiles_frag.d.ts +1 -0
- package/dist/src/assets/shader/lighting/IESProfiles_frag.js +33 -0
- package/dist/src/assets/shader/lighting/IrradianceVolumeData_frag.d.ts +1 -0
- package/dist/src/assets/shader/lighting/IrradianceVolumeData_frag.js +40 -0
- package/dist/src/assets/shader/lighting/Irradiance_frag.d.ts +4 -0
- package/dist/src/assets/shader/lighting/Irradiance_frag.js +270 -0
- package/dist/src/assets/shader/lighting/LightingFunction_frag.d.ts +1 -0
- package/dist/src/assets/shader/lighting/LightingFunction_frag.js +203 -0
- package/dist/src/assets/shader/lighting/UnLit_frag.d.ts +1 -0
- package/dist/src/assets/shader/lighting/UnLit_frag.js +30 -0
- package/dist/src/assets/shader/materials/ColorLitShader.d.ts +1 -0
- package/dist/src/assets/shader/materials/ColorLitShader.js +22 -0
- package/dist/src/assets/shader/materials/GIProbeShader.d.ts +1 -0
- package/dist/src/assets/shader/materials/GIProbeShader.js +34 -0
- package/dist/src/assets/shader/materials/GlassShader.d.ts +1 -0
- package/dist/src/assets/shader/materials/GlassShader.js +26 -0
- package/dist/src/assets/shader/materials/Hair_shader.d.ts +2 -0
- package/dist/src/assets/shader/materials/Hair_shader.js +210 -0
- package/dist/src/assets/shader/materials/Lambert_shader.d.ts +1 -0
- package/dist/src/assets/shader/materials/Lambert_shader.js +56 -0
- package/dist/src/assets/shader/materials/Lit_shader.d.ts +1 -0
- package/dist/src/assets/shader/materials/Lit_shader.js +21 -0
- package/dist/src/assets/shader/materials/OutlinePass.d.ts +1 -0
- package/dist/src/assets/shader/materials/OutlinePass.js +73 -0
- package/dist/src/assets/shader/materials/PBRLItShader.d.ts +4 -0
- package/dist/src/assets/shader/materials/PBRLItShader.js +155 -0
- package/dist/src/assets/shader/materials/PBRLitSSSShader.d.ts +4 -0
- package/dist/src/assets/shader/materials/PBRLitSSSShader.js +192 -0
- package/dist/src/assets/shader/materials/ReflectionShader_shader.d.ts +1 -0
- package/dist/src/assets/shader/materials/ReflectionShader_shader.js +63 -0
- package/dist/src/assets/shader/materials/UnLit.d.ts +4 -0
- package/dist/src/assets/shader/materials/UnLit.js +41 -0
- package/dist/src/assets/shader/materials/UnLitTextureArray.d.ts +1 -0
- package/dist/src/assets/shader/materials/UnLitTextureArray.js +100 -0
- package/dist/src/assets/shader/materials/program/BxdfDebug_frag.d.ts +4 -0
- package/dist/src/assets/shader/materials/program/BxdfDebug_frag.js +180 -0
- package/dist/src/assets/shader/materials/program/Clearcoat_frag.d.ts +1 -0
- package/dist/src/assets/shader/materials/program/Clearcoat_frag.js +38 -0
- package/dist/src/assets/shader/materials/program/ClusterDebug_frag.d.ts +1 -0
- package/dist/src/assets/shader/materials/program/ClusterDebug_frag.js +40 -0
- package/dist/src/assets/shader/materials/program/NormalMap_frag.d.ts +4 -0
- package/dist/src/assets/shader/materials/program/NormalMap_frag.js +65 -0
- package/dist/src/assets/shader/materials/program/ShadowMapping_frag.d.ts +1 -0
- package/dist/src/assets/shader/materials/program/ShadowMapping_frag.js +210 -0
- package/dist/src/assets/shader/materials/uniforms/PhysicMaterialUniform_frag.d.ts +1 -0
- package/dist/src/assets/shader/materials/uniforms/PhysicMaterialUniform_frag.js +37 -0
- package/dist/src/assets/shader/materials/uniforms/UnLitMaterialUniform_frag.d.ts +1 -0
- package/dist/src/assets/shader/materials/uniforms/UnLitMaterialUniform_frag.js +14 -0
- package/dist/src/assets/shader/materials/uniforms/VideoUniform_frag.d.ts +1 -0
- package/dist/src/assets/shader/materials/uniforms/VideoUniform_frag.js +12 -0
- package/dist/src/assets/shader/math/FastMathShader.d.ts +1 -0
- package/dist/src/assets/shader/math/FastMathShader.js +91 -0
- package/dist/src/assets/shader/math/MathShader.d.ts +4 -0
- package/dist/src/assets/shader/math/MathShader.js +558 -0
- package/dist/src/assets/shader/math/MatrixShader.d.ts +1 -0
- package/dist/src/assets/shader/math/MatrixShader.js +104 -0
- package/dist/src/assets/shader/post/FXAAShader.d.ts +1 -0
- package/dist/src/assets/shader/post/FXAAShader.js +79 -0
- package/dist/src/assets/shader/post/GlobalFog_shader.d.ts +4 -0
- package/dist/src/assets/shader/post/GlobalFog_shader.js +191 -0
- package/dist/src/assets/shader/quad/Quad_shader.d.ts +24 -0
- package/dist/src/assets/shader/quad/Quad_shader.js +210 -0
- package/dist/src/assets/shader/sky/AtmosphericScatteringSky_shader.d.ts +6 -0
- package/dist/src/assets/shader/sky/AtmosphericScatteringSky_shader.js +312 -0
- package/dist/src/assets/shader/sky/CubeSky_Shader.d.ts +7 -0
- package/dist/src/assets/shader/sky/CubeSky_Shader.js +122 -0
- package/dist/src/assets/shader/utils/BitUtil.d.ts +1 -0
- package/dist/src/assets/shader/utils/BitUtil.js +108 -0
- package/dist/src/assets/shader/utils/ColorUtil.d.ts +1 -0
- package/dist/src/assets/shader/utils/ColorUtil.js +144 -0
- package/dist/src/assets/shader/utils/GenerayRandomDir.d.ts +1 -0
- package/dist/src/assets/shader/utils/GenerayRandomDir.js +22 -0
- package/dist/src/components/AtmosphericComponent.d.ts +28 -0
- package/dist/src/components/AtmosphericComponent.js +141 -0
- package/dist/src/components/BillboardComponent.d.ts +13 -0
- package/dist/src/components/BillboardComponent.js +30 -0
- package/dist/src/components/ColliderComponent.d.ts +15 -0
- package/dist/src/components/ColliderComponent.js +39 -0
- package/dist/src/components/ComponentBase.d.ts +43 -0
- package/dist/src/components/ComponentBase.js +141 -0
- package/dist/src/components/IComponent.d.ts +27 -0
- package/dist/src/components/IComponent.js +1 -0
- package/dist/src/components/SkeletonAnimationComponent.d.ts +52 -0
- package/dist/src/components/SkeletonAnimationComponent.js +225 -0
- package/dist/src/components/Transform.d.ts +119 -0
- package/dist/src/components/Transform.js +523 -0
- package/dist/src/components/anim/AnimatorComponent.d.ts +67 -0
- package/dist/src/components/anim/AnimatorComponent.js +411 -0
- package/dist/src/components/anim/OAnimationEvent.d.ts +6 -0
- package/dist/src/components/anim/OAnimationEvent.js +8 -0
- package/dist/src/components/anim/curveAnim/AnimationMonitor.d.ts +29 -0
- package/dist/src/components/anim/curveAnim/AnimationMonitor.js +159 -0
- package/dist/src/components/anim/curveAnim/AttributeAnimCurve.d.ts +8 -0
- package/dist/src/components/anim/curveAnim/AttributeAnimCurve.js +15 -0
- package/dist/src/components/anim/curveAnim/PropertyAnimClip.d.ts +29 -0
- package/dist/src/components/anim/curveAnim/PropertyAnimClip.js +54 -0
- package/dist/src/components/anim/curveAnim/PropertyAnimation.d.ts +31 -0
- package/dist/src/components/anim/curveAnim/PropertyAnimation.js +107 -0
- package/dist/src/components/anim/curveAnim/PropertyAnimationEvent.d.ts +14 -0
- package/dist/src/components/anim/curveAnim/PropertyAnimationEvent.js +11 -0
- package/dist/src/components/anim/curveAnim/PropertyHelp.d.ts +13 -0
- package/dist/src/components/anim/curveAnim/PropertyHelp.js +96 -0
- package/dist/src/components/anim/morphAnim/MorphTargetBlender.d.ts +18 -0
- package/dist/src/components/anim/morphAnim/MorphTargetBlender.js +81 -0
- package/dist/src/components/anim/morphAnim/MorphTargetData.d.ts +52 -0
- package/dist/src/components/anim/morphAnim/MorphTargetData.js +183 -0
- package/dist/src/components/anim/morphAnim/MorphTargetFrame.d.ts +68 -0
- package/dist/src/components/anim/morphAnim/MorphTargetFrame.js +4 -0
- package/dist/src/components/anim/morphAnim/MorphTargetKey.d.ts +58 -0
- package/dist/src/components/anim/morphAnim/MorphTargetKey.js +55 -0
- package/dist/src/components/anim/morphAnim/MorphTarget_shader.d.ts +8 -0
- package/dist/src/components/anim/morphAnim/MorphTarget_shader.js +101 -0
- package/dist/src/components/anim/skeletonAnim/Joint.d.ts +12 -0
- package/dist/src/components/anim/skeletonAnim/Joint.js +14 -0
- package/dist/src/components/anim/skeletonAnim/JointPose.d.ts +6 -0
- package/dist/src/components/anim/skeletonAnim/JointPose.js +7 -0
- package/dist/src/components/anim/skeletonAnim/Skeleton.d.ts +10 -0
- package/dist/src/components/anim/skeletonAnim/Skeleton.js +26 -0
- package/dist/src/components/anim/skeletonAnim/SkeletonAnimationClip.d.ts +22 -0
- package/dist/src/components/anim/skeletonAnim/SkeletonAnimationClip.js +70 -0
- package/dist/src/components/anim/skeletonAnim/SkeletonAnimationClipState.d.ts +21 -0
- package/dist/src/components/anim/skeletonAnim/SkeletonAnimationClipState.js +80 -0
- package/dist/src/components/anim/skeletonAnim/SkeletonAnimationCompute.d.ts +6 -0
- package/dist/src/components/anim/skeletonAnim/SkeletonAnimationCompute.js +27 -0
- package/dist/src/components/anim/skeletonAnim/SkeletonPose.d.ts +16 -0
- package/dist/src/components/anim/skeletonAnim/SkeletonPose.js +79 -0
- package/dist/src/components/anim/skeletonAnim/buffer/SkeletonBlendComputeArgs.d.ts +23 -0
- package/dist/src/components/anim/skeletonAnim/buffer/SkeletonBlendComputeArgs.js +61 -0
- package/dist/src/components/anim/skeletonAnim/buffer/SkeletonTransformComputeArgs.d.ts +23 -0
- package/dist/src/components/anim/skeletonAnim/buffer/SkeletonTransformComputeArgs.js +59 -0
- package/dist/src/components/controller/CameraControllerBase.d.ts +17 -0
- package/dist/src/components/controller/CameraControllerBase.js +33 -0
- package/dist/src/components/controller/FirstPersonCameraController.d.ts +15 -0
- package/dist/src/components/controller/FirstPersonCameraController.js +52 -0
- package/dist/src/components/controller/FlyCameraController.d.ts +36 -0
- package/dist/src/components/controller/FlyCameraController.js +180 -0
- package/dist/src/components/controller/HoverCameraController.d.ts +52 -0
- package/dist/src/components/controller/HoverCameraController.js +183 -0
- package/dist/src/components/controller/OrbitController.d.ts +170 -0
- package/dist/src/components/controller/OrbitController.js +339 -0
- package/dist/src/components/controller/ThirdPersonCameraController.d.ts +16 -0
- package/dist/src/components/controller/ThirdPersonCameraController.js +51 -0
- package/dist/src/components/gui/GUIConfig.d.ts +23 -0
- package/dist/src/components/gui/GUIConfig.js +26 -0
- package/dist/src/components/gui/GUIExtension.d.ts +5 -0
- package/dist/src/components/gui/GUIExtension.js +61 -0
- package/dist/src/components/gui/GUIPick.d.ts +36 -0
- package/dist/src/components/gui/GUIPick.js +178 -0
- package/dist/src/components/gui/GUIPickHelper.d.ts +25 -0
- package/dist/src/components/gui/GUIPickHelper.js +119 -0
- package/dist/src/components/gui/core/GUIAtlasTexture.d.ts +16 -0
- package/dist/src/components/gui/core/GUIAtlasTexture.js +22 -0
- package/dist/src/components/gui/core/GUICanvas.d.ts +21 -0
- package/dist/src/components/gui/core/GUICanvas.js +35 -0
- package/dist/src/components/gui/core/GUIDefine.d.ts +7 -0
- package/dist/src/components/gui/core/GUIDefine.js +8 -0
- package/dist/src/components/gui/core/GUIGeometry.d.ts +36 -0
- package/dist/src/components/gui/core/GUIGeometry.js +215 -0
- package/dist/src/components/gui/core/GUIGeometryRebuild.d.ts +21 -0
- package/dist/src/components/gui/core/GUIGeometryRebuild.js +105 -0
- package/dist/src/components/gui/core/GUIMaterial.d.ts +29 -0
- package/dist/src/components/gui/core/GUIMaterial.js +111 -0
- package/dist/src/components/gui/core/GUIQuad.d.ts +52 -0
- package/dist/src/components/gui/core/GUIQuad.js +154 -0
- package/dist/src/components/gui/core/GUIRenderer.d.ts +15 -0
- package/dist/src/components/gui/core/GUIRenderer.js +42 -0
- package/dist/src/components/gui/core/GUIShader.d.ts +8 -0
- package/dist/src/components/gui/core/GUIShader.js +267 -0
- package/dist/src/components/gui/core/GUISprite.d.ts +19 -0
- package/dist/src/components/gui/core/GUISprite.js +19 -0
- package/dist/src/components/gui/core/GUITexture.d.ts +12 -0
- package/dist/src/components/gui/core/GUITexture.js +25 -0
- package/dist/src/components/gui/uiComponents/IUIInteractive.d.ts +25 -0
- package/dist/src/components/gui/uiComponents/IUIInteractive.js +7 -0
- package/dist/src/components/gui/uiComponents/TextFieldLayout.d.ts +34 -0
- package/dist/src/components/gui/uiComponents/TextFieldLayout.js +265 -0
- package/dist/src/components/gui/uiComponents/UIButton.d.ts +45 -0
- package/dist/src/components/gui/uiComponents/UIButton.js +140 -0
- package/dist/src/components/gui/uiComponents/UIComponentBase.d.ts +15 -0
- package/dist/src/components/gui/uiComponents/UIComponentBase.js +33 -0
- package/dist/src/components/gui/uiComponents/UIImage.d.ts +21 -0
- package/dist/src/components/gui/uiComponents/UIImage.js +72 -0
- package/dist/src/components/gui/uiComponents/UIImageGroup.d.ts +31 -0
- package/dist/src/components/gui/uiComponents/UIImageGroup.js +87 -0
- package/dist/src/components/gui/uiComponents/UIInteractive.d.ts +25 -0
- package/dist/src/components/gui/uiComponents/UIInteractive.js +50 -0
- package/dist/src/components/gui/uiComponents/UIPanel.d.ts +38 -0
- package/dist/src/components/gui/uiComponents/UIPanel.js +173 -0
- package/dist/src/components/gui/uiComponents/UIRenderAble.d.ts +27 -0
- package/dist/src/components/gui/uiComponents/UIRenderAble.js +106 -0
- package/dist/src/components/gui/uiComponents/UIShadow.d.ts +31 -0
- package/dist/src/components/gui/uiComponents/UIShadow.js +117 -0
- package/dist/src/components/gui/uiComponents/UITextField.d.ts +36 -0
- package/dist/src/components/gui/uiComponents/UITextField.js +122 -0
- package/dist/src/components/gui/uiComponents/UITransform.d.ts +60 -0
- package/dist/src/components/gui/uiComponents/UITransform.js +243 -0
- package/dist/src/components/gui/uiComponents/ViewPanel.d.ts +9 -0
- package/dist/src/components/gui/uiComponents/ViewPanel.js +13 -0
- package/dist/src/components/gui/uiComponents/WorldPanel.d.ts +13 -0
- package/dist/src/components/gui/uiComponents/WorldPanel.js +34 -0
- package/dist/src/components/lights/DirectLight.d.ts +13 -0
- package/dist/src/components/lights/DirectLight.js +52 -0
- package/dist/src/components/lights/GILighting.d.ts +6 -0
- package/dist/src/components/lights/GILighting.js +15 -0
- package/dist/src/components/lights/IESProfiles.d.ts +14 -0
- package/dist/src/components/lights/IESProfiles.js +33 -0
- package/dist/src/components/lights/ILight.d.ts +12 -0
- package/dist/src/components/lights/ILight.js +1 -0
- package/dist/src/components/lights/Light.d.ts +32 -0
- package/dist/src/components/lights/Light.js +90 -0
- package/dist/src/components/lights/LightBase.d.ts +127 -0
- package/dist/src/components/lights/LightBase.js +238 -0
- package/dist/src/components/lights/LightData.d.ts +29 -0
- package/dist/src/components/lights/LightData.js +33 -0
- package/dist/src/components/lights/PointLight.d.ts +19 -0
- package/dist/src/components/lights/PointLight.js +67 -0
- package/dist/src/components/lights/SpotLight.d.ts +21 -0
- package/dist/src/components/lights/SpotLight.js +79 -0
- package/dist/src/components/post/PostProcessingComponent.d.ts +16 -0
- package/dist/src/components/post/PostProcessingComponent.js +52 -0
- package/dist/src/components/renderer/GlobalIlluminationComponent.d.ts +22 -0
- package/dist/src/components/renderer/GlobalIlluminationComponent.js +118 -0
- package/dist/src/components/renderer/InstanceDrawComponent.d.ts +19 -0
- package/dist/src/components/renderer/InstanceDrawComponent.js +120 -0
- package/dist/src/components/renderer/MeshFilter.d.ts +9 -0
- package/dist/src/components/renderer/MeshFilter.js +37 -0
- package/dist/src/components/renderer/MeshRenderer.d.ts +51 -0
- package/dist/src/components/renderer/MeshRenderer.js +156 -0
- package/dist/src/components/renderer/Reflection.d.ts +15 -0
- package/dist/src/components/renderer/Reflection.js +33 -0
- package/dist/src/components/renderer/RenderNode.d.ts +85 -0
- package/dist/src/components/renderer/RenderNode.js +518 -0
- package/dist/src/components/renderer/SkinnedMeshRenderer.d.ts +26 -0
- package/dist/src/components/renderer/SkinnedMeshRenderer.js +111 -0
- package/dist/src/components/renderer/SkinnedMeshRenderer2.d.ts +37 -0
- package/dist/src/components/renderer/SkinnedMeshRenderer2.js +138 -0
- package/dist/src/components/renderer/SkyRenderer.d.ts +36 -0
- package/dist/src/components/renderer/SkyRenderer.js +94 -0
- package/dist/src/components/renderer/SphereReflection.d.ts +12 -0
- package/dist/src/components/renderer/SphereReflection.js +45 -0
- package/dist/src/components/shape/BoxColliderShape.d.ts +9 -0
- package/dist/src/components/shape/BoxColliderShape.js +28 -0
- package/dist/src/components/shape/CapsuleColliderShape.d.ts +6 -0
- package/dist/src/components/shape/CapsuleColliderShape.js +9 -0
- package/dist/src/components/shape/ColliderShape.d.ts +35 -0
- package/dist/src/components/shape/ColliderShape.js +49 -0
- package/dist/src/components/shape/MeshColliderShape.d.ts +8 -0
- package/dist/src/components/shape/MeshColliderShape.js +55 -0
- package/dist/src/components/shape/SphereColliderShape.d.ts +26 -0
- package/dist/src/components/shape/SphereColliderShape.js +47 -0
- package/dist/src/core/Camera3D.d.ts +308 -0
- package/dist/src/core/Camera3D.js +534 -0
- package/dist/src/core/CameraType.d.ts +5 -0
- package/dist/src/core/CameraType.js +6 -0
- package/dist/src/core/CubeCamera.d.ts +18 -0
- package/dist/src/core/CubeCamera.js +67 -0
- package/dist/src/core/PointShadowCubeCamera.d.ts +13 -0
- package/dist/src/core/PointShadowCubeCamera.js +59 -0
- package/dist/src/core/Scene3D.d.ts +66 -0
- package/dist/src/core/Scene3D.js +88 -0
- package/dist/src/core/View3D.d.ts +85 -0
- package/dist/src/core/View3D.js +113 -0
- package/dist/src/core/ViewQuad.d.ts +19 -0
- package/dist/src/core/ViewQuad.js +84 -0
- package/dist/src/core/bound/BoundingBox.d.ts +34 -0
- package/dist/src/core/bound/BoundingBox.js +155 -0
- package/dist/src/core/bound/BoundingSphere.d.ts +34 -0
- package/dist/src/core/bound/BoundingSphere.js +71 -0
- package/dist/src/core/bound/Frustum.d.ts +17 -0
- package/dist/src/core/bound/Frustum.js +184 -0
- package/dist/src/core/bound/IBound.d.ts +19 -0
- package/dist/src/core/bound/IBound.js +1 -0
- package/dist/src/core/csm/CSM.d.ts +3 -0
- package/dist/src/core/csm/CSM.js +3 -0
- package/dist/src/core/csm/FrustumCSM.d.ts +32 -0
- package/dist/src/core/csm/FrustumCSM.js +106 -0
- package/dist/src/core/entities/Entity.d.ts +43 -0
- package/dist/src/core/entities/Entity.js +200 -0
- package/dist/src/core/entities/InstancedMesh.d.ts +11 -0
- package/dist/src/core/entities/InstancedMesh.js +32 -0
- package/dist/src/core/entities/Object3D.d.ts +66 -0
- package/dist/src/core/entities/Object3D.js +284 -0
- package/dist/src/core/geometry/ExtrudeGeometry.d.ts +31 -0
- package/dist/src/core/geometry/ExtrudeGeometry.js +156 -0
- package/dist/src/core/geometry/GeometryBase.d.ts +70 -0
- package/dist/src/core/geometry/GeometryBase.js +248 -0
- package/dist/src/core/geometry/GeometryIndicesBuffer.d.ts +15 -0
- package/dist/src/core/geometry/GeometryIndicesBuffer.js +33 -0
- package/dist/src/core/geometry/GeometryVertexBuffer.d.ts +23 -0
- package/dist/src/core/geometry/GeometryVertexBuffer.js +243 -0
- package/dist/src/core/geometry/GeometryVertexType.d.ts +5 -0
- package/dist/src/core/geometry/GeometryVertexType.js +6 -0
- package/dist/src/core/geometry/VertexAttribute.d.ts +15 -0
- package/dist/src/core/geometry/VertexAttribute.js +4 -0
- package/dist/src/core/geometry/VertexAttributeData.d.ts +5 -0
- package/dist/src/core/geometry/VertexAttributeData.js +1 -0
- package/dist/src/core/geometry/VertexAttributeName.d.ts +23 -0
- package/dist/src/core/geometry/VertexAttributeName.js +24 -0
- package/dist/src/core/geometry/VertexAttributeSize.d.ts +11 -0
- package/dist/src/core/geometry/VertexAttributeSize.js +12 -0
- package/dist/src/core/geometry/VertexAttributeStride.d.ts +15 -0
- package/dist/src/core/geometry/VertexAttributeStride.js +16 -0
- package/dist/src/core/geometry/VertexFormat.d.ts +1 -0
- package/dist/src/core/geometry/VertexFormat.js +8 -0
- package/dist/src/core/pool/ObjectPool.d.ts +11 -0
- package/dist/src/core/pool/ObjectPool.js +33 -0
- package/dist/src/core/pool/memory/MemoryDO.d.ts +14 -0
- package/dist/src/core/pool/memory/MemoryDO.js +48 -0
- package/dist/src/core/pool/memory/MemoryInfo.d.ts +83 -0
- package/dist/src/core/pool/memory/MemoryInfo.js +316 -0
- package/dist/src/core/tree/kdTree/IKDTreeUserData.d.ts +10 -0
- package/dist/src/core/tree/kdTree/IKDTreeUserData.js +9 -0
- package/dist/src/core/tree/kdTree/KDTreeEntity.d.ts +27 -0
- package/dist/src/core/tree/kdTree/KDTreeEntity.js +48 -0
- package/dist/src/core/tree/kdTree/KDTreeNode.d.ts +68 -0
- package/dist/src/core/tree/kdTree/KDTreeNode.js +257 -0
- package/dist/src/core/tree/kdTree/KDTreeSpace.d.ts +26 -0
- package/dist/src/core/tree/kdTree/KDTreeSpace.js +66 -0
- package/dist/src/core/tree/octree/Octree.d.ts +28 -0
- package/dist/src/core/tree/octree/Octree.js +133 -0
- package/dist/src/core/tree/octree/OctreeEntity.d.ts +11 -0
- package/dist/src/core/tree/octree/OctreeEntity.js +25 -0
- package/dist/src/core/tree/quad/IQuadNode.d.ts +9 -0
- package/dist/src/core/tree/quad/IQuadNode.js +1 -0
- package/dist/src/core/tree/quad/QuadAABB.d.ts +26 -0
- package/dist/src/core/tree/quad/QuadAABB.js +116 -0
- package/dist/src/core/tree/quad/QuadRoot.d.ts +14 -0
- package/dist/src/core/tree/quad/QuadRoot.js +67 -0
- package/dist/src/core/tree/quad/QuadTree.d.ts +22 -0
- package/dist/src/core/tree/quad/QuadTree.js +250 -0
- package/dist/src/core/tree/quad/QuadTreeCell.d.ts +23 -0
- package/dist/src/core/tree/quad/QuadTreeCell.js +36 -0
- package/dist/src/event/CEvent.d.ts +27 -0
- package/dist/src/event/CEvent.js +19 -0
- package/dist/src/event/CEventDispatcher.d.ts +13 -0
- package/dist/src/event/CEventDispatcher.js +129 -0
- package/dist/src/event/CEventListener.d.ts +13 -0
- package/dist/src/event/CEventListener.js +26 -0
- package/dist/src/event/CResizeEvent.d.ts +4 -0
- package/dist/src/event/CResizeEvent.js +4 -0
- package/dist/src/event/KeyCode.d.ts +110 -0
- package/dist/src/event/KeyCode.js +111 -0
- package/dist/src/event/MouseCode.d.ts +5 -0
- package/dist/src/event/MouseCode.js +6 -0
- package/dist/src/event/eventConst/KeyEvent.d.ts +6 -0
- package/dist/src/event/eventConst/KeyEvent.js +9 -0
- package/dist/src/event/eventConst/LoaderEvent.d.ts +5 -0
- package/dist/src/event/eventConst/LoaderEvent.js +5 -0
- package/dist/src/event/eventConst/Object3DEvent.d.ts +7 -0
- package/dist/src/event/eventConst/Object3DEvent.js +7 -0
- package/dist/src/event/eventConst/PointerEvent3D.d.ts +63 -0
- package/dist/src/event/eventConst/PointerEvent3D.js +54 -0
- package/dist/src/event/eventConst/UIEvent.d.ts +6 -0
- package/dist/src/event/eventConst/UIEvent.js +6 -0
- package/dist/src/gfx/generate/BrdfLUTGenerate.d.ts +7 -0
- package/dist/src/gfx/generate/BrdfLUTGenerate.js +20 -0
- package/dist/src/gfx/generate/PassGenerate.d.ts +9 -0
- package/dist/src/gfx/generate/PassGenerate.js +181 -0
- package/dist/src/gfx/generate/convert/BlurEffectCreator.d.ts +7 -0
- package/dist/src/gfx/generate/convert/BlurEffectCreator.js +79 -0
- package/dist/src/gfx/generate/convert/ErpImage2CubeMap.d.ts +9 -0
- package/dist/src/gfx/generate/convert/ErpImage2CubeMap.js +144 -0
- package/dist/src/gfx/generate/convert/IBLEnvMapCreator.d.ts +12 -0
- package/dist/src/gfx/generate/convert/IBLEnvMapCreator.js +109 -0
- package/dist/src/gfx/generate/convert/MergeRGBACreator.d.ts +5 -0
- package/dist/src/gfx/generate/convert/MergeRGBACreator.js +32 -0
- package/dist/src/gfx/generate/convert/TextureCubeStdCreator.d.ts +9 -0
- package/dist/src/gfx/generate/convert/TextureCubeStdCreator.js +117 -0
- package/dist/src/gfx/generate/convert/TextureCubeUtils.d.ts +12 -0
- package/dist/src/gfx/generate/convert/TextureCubeUtils.js +47 -0
- package/dist/src/gfx/generate/convert/TextureScaleCompute.d.ts +6 -0
- package/dist/src/gfx/generate/convert/TextureScaleCompute.js +18 -0
- package/dist/src/gfx/graphics/webGpu/CanvasConfig.d.ts +7 -0
- package/dist/src/gfx/graphics/webGpu/CanvasConfig.js +1 -0
- package/dist/src/gfx/graphics/webGpu/Context3D.d.ts +20 -0
- package/dist/src/gfx/graphics/webGpu/Context3D.js +112 -0
- package/dist/src/gfx/graphics/webGpu/PipelinePool.d.ts +5 -0
- package/dist/src/gfx/graphics/webGpu/PipelinePool.js +15 -0
- package/dist/src/gfx/graphics/webGpu/WebGPUConst.d.ts +154 -0
- package/dist/src/gfx/graphics/webGpu/WebGPUConst.js +154 -0
- package/dist/src/gfx/graphics/webGpu/compute/PreIntegratedLutCompute.d.ts +8 -0
- package/dist/src/gfx/graphics/webGpu/compute/PreIntegratedLutCompute.js +23 -0
- package/dist/src/gfx/graphics/webGpu/compute/RenderShaderCompute.d.ts +12 -0
- package/dist/src/gfx/graphics/webGpu/compute/RenderShaderCompute.js +19 -0
- package/dist/src/gfx/graphics/webGpu/core/bindGroups/GlobalBindGroup.d.ts +18 -0
- package/dist/src/gfx/graphics/webGpu/core/bindGroups/GlobalBindGroup.js +64 -0
- package/dist/src/gfx/graphics/webGpu/core/bindGroups/GlobalBindGroupLayout.d.ts +4 -0
- package/dist/src/gfx/graphics/webGpu/core/bindGroups/GlobalBindGroupLayout.js +29 -0
- package/dist/src/gfx/graphics/webGpu/core/bindGroups/GlobalUniformGroup.d.ts +25 -0
- package/dist/src/gfx/graphics/webGpu/core/bindGroups/GlobalUniformGroup.js +179 -0
- package/dist/src/gfx/graphics/webGpu/core/bindGroups/MatrixBindGroup.d.ts +11 -0
- package/dist/src/gfx/graphics/webGpu/core/bindGroups/MatrixBindGroup.js +22 -0
- package/dist/src/gfx/graphics/webGpu/core/bindGroups/groups/LightEntries.d.ts +11 -0
- package/dist/src/gfx/graphics/webGpu/core/bindGroups/groups/LightEntries.js +48 -0
- package/dist/src/gfx/graphics/webGpu/core/bindGroups/groups/ProbeEntries.d.ts +10 -0
- package/dist/src/gfx/graphics/webGpu/core/bindGroups/groups/ProbeEntries.js +41 -0
- package/dist/src/gfx/graphics/webGpu/core/bindGroups/groups/ReflectionEntries.d.ts +12 -0
- package/dist/src/gfx/graphics/webGpu/core/bindGroups/groups/ReflectionEntries.js +21 -0
- package/dist/src/gfx/graphics/webGpu/core/buffer/ArrayBufferData.d.ts +1 -0
- package/dist/src/gfx/graphics/webGpu/core/buffer/ArrayBufferData.js +1 -0
- package/dist/src/gfx/graphics/webGpu/core/buffer/ComputeGPUBuffer.d.ts +4 -0
- package/dist/src/gfx/graphics/webGpu/core/buffer/ComputeGPUBuffer.js +11 -0
- package/dist/src/gfx/graphics/webGpu/core/buffer/GPUBufferBase.d.ts +84 -0
- package/dist/src/gfx/graphics/webGpu/core/buffer/GPUBufferBase.js +493 -0
- package/dist/src/gfx/graphics/webGpu/core/buffer/GPUBufferType.d.ts +9 -0
- package/dist/src/gfx/graphics/webGpu/core/buffer/GPUBufferType.js +10 -0
- package/dist/src/gfx/graphics/webGpu/core/buffer/IndicesGPUBuffer.d.ts +14 -0
- package/dist/src/gfx/graphics/webGpu/core/buffer/IndicesGPUBuffer.js +44 -0
- package/dist/src/gfx/graphics/webGpu/core/buffer/MaterialDataUniformGPUBuffer.d.ts +10 -0
- package/dist/src/gfx/graphics/webGpu/core/buffer/MaterialDataUniformGPUBuffer.js +46 -0
- package/dist/src/gfx/graphics/webGpu/core/buffer/MatrixGPUBuffer.d.ts +8 -0
- package/dist/src/gfx/graphics/webGpu/core/buffer/MatrixGPUBuffer.js +57 -0
- package/dist/src/gfx/graphics/webGpu/core/buffer/StorageGPUBuffer.d.ts +11 -0
- package/dist/src/gfx/graphics/webGpu/core/buffer/StorageGPUBuffer.js +16 -0
- package/dist/src/gfx/graphics/webGpu/core/buffer/StructStorageGPUBuffer.d.ts +7 -0
- package/dist/src/gfx/graphics/webGpu/core/buffer/StructStorageGPUBuffer.js +9 -0
- package/dist/src/gfx/graphics/webGpu/core/buffer/UniformGPUBuffer.d.ts +11 -0
- package/dist/src/gfx/graphics/webGpu/core/buffer/UniformGPUBuffer.js +17 -0
- package/dist/src/gfx/graphics/webGpu/core/buffer/VertexGPUBuffer.d.ts +7 -0
- package/dist/src/gfx/graphics/webGpu/core/buffer/VertexGPUBuffer.js +29 -0
- package/dist/src/gfx/graphics/webGpu/core/texture/ITexture.d.ts +18 -0
- package/dist/src/gfx/graphics/webGpu/core/texture/ITexture.js +1 -0
- package/dist/src/gfx/graphics/webGpu/core/texture/Texture.d.ts +79 -0
- package/dist/src/gfx/graphics/webGpu/core/texture/Texture.js +307 -0
- package/dist/src/gfx/graphics/webGpu/core/texture/TextureCube.d.ts +11 -0
- package/dist/src/gfx/graphics/webGpu/core/texture/TextureCube.js +51 -0
- package/dist/src/gfx/graphics/webGpu/core/texture/TextureMipmapCompute.d.ts +9 -0
- package/dist/src/gfx/graphics/webGpu/core/texture/TextureMipmapCompute.js +134 -0
- package/dist/src/gfx/graphics/webGpu/core/texture/TextureMipmapGenerator.d.ts +9 -0
- package/dist/src/gfx/graphics/webGpu/core/texture/TextureMipmapGenerator.js +163 -0
- package/dist/src/gfx/graphics/webGpu/core/uniforms/UniformNode.d.ts +34 -0
- package/dist/src/gfx/graphics/webGpu/core/uniforms/UniformNode.js +176 -0
- package/dist/src/gfx/graphics/webGpu/descriptor/RTDescriptor.d.ts +5 -0
- package/dist/src/gfx/graphics/webGpu/descriptor/RTDescriptor.js +7 -0
- package/dist/src/gfx/graphics/webGpu/descriptor/WebGPUDescriptorCreator.d.ts +8 -0
- package/dist/src/gfx/graphics/webGpu/descriptor/WebGPUDescriptorCreator.js +174 -0
- package/dist/src/gfx/graphics/webGpu/shader/ComputeShader.d.ts +28 -0
- package/dist/src/gfx/graphics/webGpu/shader/ComputeShader.js +219 -0
- package/dist/src/gfx/graphics/webGpu/shader/RenderShaderPass.d.ts +206 -0
- package/dist/src/gfx/graphics/webGpu/shader/RenderShaderPass.js +888 -0
- package/dist/src/gfx/graphics/webGpu/shader/Shader.d.ts +53 -0
- package/dist/src/gfx/graphics/webGpu/shader/Shader.js +205 -0
- package/dist/src/gfx/graphics/webGpu/shader/ShaderPassBase.d.ts +60 -0
- package/dist/src/gfx/graphics/webGpu/shader/ShaderPassBase.js +150 -0
- package/dist/src/gfx/graphics/webGpu/shader/ShaderStage.d.ts +5 -0
- package/dist/src/gfx/graphics/webGpu/shader/ShaderStage.js +6 -0
- package/dist/src/gfx/graphics/webGpu/shader/converter/GLSLLexer.d.ts +16 -0
- package/dist/src/gfx/graphics/webGpu/shader/converter/GLSLLexer.js +422 -0
- package/dist/src/gfx/graphics/webGpu/shader/converter/GLSLLexerToken.d.ts +174 -0
- package/dist/src/gfx/graphics/webGpu/shader/converter/GLSLLexerToken.js +388 -0
- package/dist/src/gfx/graphics/webGpu/shader/converter/GLSLPreprocessor.d.ts +10 -0
- package/dist/src/gfx/graphics/webGpu/shader/converter/GLSLPreprocessor.js +198 -0
- package/dist/src/gfx/graphics/webGpu/shader/converter/GLSLSyntax.d.ts +14 -0
- package/dist/src/gfx/graphics/webGpu/shader/converter/GLSLSyntax.js +106 -0
- package/dist/src/gfx/graphics/webGpu/shader/converter/Reader.d.ts +30 -0
- package/dist/src/gfx/graphics/webGpu/shader/converter/Reader.js +136 -0
- package/dist/src/gfx/graphics/webGpu/shader/converter/ShaderConverter.d.ts +47 -0
- package/dist/src/gfx/graphics/webGpu/shader/converter/ShaderConverter.js +69 -0
- package/dist/src/gfx/graphics/webGpu/shader/converter/StatementNode.d.ts +309 -0
- package/dist/src/gfx/graphics/webGpu/shader/converter/StatementNode.js +1804 -0
- package/dist/src/gfx/graphics/webGpu/shader/converter/WGSLTranslator.d.ts +50 -0
- package/dist/src/gfx/graphics/webGpu/shader/converter/WGSLTranslator.js +272 -0
- package/dist/src/gfx/graphics/webGpu/shader/util/MorePassParser.d.ts +25 -0
- package/dist/src/gfx/graphics/webGpu/shader/util/MorePassParser.js +134 -0
- package/dist/src/gfx/graphics/webGpu/shader/util/Preprocessor.d.ts +28 -0
- package/dist/src/gfx/graphics/webGpu/shader/util/Preprocessor.js +304 -0
- package/dist/src/gfx/graphics/webGpu/shader/util/ShaderUtil.d.ts +23 -0
- package/dist/src/gfx/graphics/webGpu/shader/util/ShaderUtil.js +6 -0
- package/dist/src/gfx/graphics/webGpu/shader/value/ConstValue.d.ts +1 -0
- package/dist/src/gfx/graphics/webGpu/shader/value/ConstValue.js +1 -0
- package/dist/src/gfx/graphics/webGpu/shader/value/DefineValue.d.ts +4 -0
- package/dist/src/gfx/graphics/webGpu/shader/value/DefineValue.js +1 -0
- package/dist/src/gfx/graphics/webGpu/shader/value/ShaderReflectionInfo.d.ts +57 -0
- package/dist/src/gfx/graphics/webGpu/shader/value/ShaderReflectionInfo.js +421 -0
- package/dist/src/gfx/graphics/webGpu/shader/value/ShaderState.d.ts +30 -0
- package/dist/src/gfx/graphics/webGpu/shader/value/ShaderState.js +113 -0
- package/dist/src/gfx/graphics/webGpu/shader/value/ShaderValue.d.ts +32 -0
- package/dist/src/gfx/graphics/webGpu/shader/value/ShaderValue.js +1 -0
- package/dist/src/gfx/graphics/webGpu/shader/value/UniformValue.d.ts +13 -0
- package/dist/src/gfx/graphics/webGpu/shader/value/UniformValue.js +9 -0
- package/dist/src/gfx/renderJob/GPUContext.d.ts +32 -0
- package/dist/src/gfx/renderJob/GPUContext.js +152 -0
- package/dist/src/gfx/renderJob/collect/CollectInfo.d.ts +7 -0
- package/dist/src/gfx/renderJob/collect/CollectInfo.js +10 -0
- package/dist/src/gfx/renderJob/collect/ComponentCollect.d.ts +29 -0
- package/dist/src/gfx/renderJob/collect/ComponentCollect.js +134 -0
- package/dist/src/gfx/renderJob/collect/EntityBatchCollect.d.ts +7 -0
- package/dist/src/gfx/renderJob/collect/EntityBatchCollect.js +24 -0
- package/dist/src/gfx/renderJob/collect/EntityCollect.d.ts +48 -0
- package/dist/src/gfx/renderJob/collect/EntityCollect.js +260 -0
- package/dist/src/gfx/renderJob/collect/RenderGroup.d.ts +7 -0
- package/dist/src/gfx/renderJob/collect/RenderGroup.js +1 -0
- package/dist/src/gfx/renderJob/collect/RenderShaderCollect.d.ts +9 -0
- package/dist/src/gfx/renderJob/collect/RenderShaderCollect.js +51 -0
- package/dist/src/gfx/renderJob/collect/ShadowLightsCollect.d.ts +20 -0
- package/dist/src/gfx/renderJob/collect/ShadowLightsCollect.js +182 -0
- package/dist/src/gfx/renderJob/config/RTResourceConfig.d.ts +10 -0
- package/dist/src/gfx/renderJob/config/RTResourceConfig.js +10 -0
- package/dist/src/gfx/renderJob/config/RenderLayer.d.ts +11 -0
- package/dist/src/gfx/renderJob/config/RenderLayer.js +20 -0
- package/dist/src/gfx/renderJob/frame/GBufferFrame.d.ts +19 -0
- package/dist/src/gfx/renderJob/frame/GBufferFrame.js +74 -0
- package/dist/src/gfx/renderJob/frame/ProbeGBufferFrame.d.ts +5 -0
- package/dist/src/gfx/renderJob/frame/ProbeGBufferFrame.js +37 -0
- package/dist/src/gfx/renderJob/frame/RTFrame.d.ts +17 -0
- package/dist/src/gfx/renderJob/frame/RTFrame.js +34 -0
- package/dist/src/gfx/renderJob/frame/RTResourceMap.d.ts +13 -0
- package/dist/src/gfx/renderJob/frame/RTResourceMap.js +71 -0
- package/dist/src/gfx/renderJob/jobs/ForwardRenderJob.d.ts +7 -0
- package/dist/src/gfx/renderJob/jobs/ForwardRenderJob.js +45 -0
- package/dist/src/gfx/renderJob/jobs/RenderMap.d.ts +12 -0
- package/dist/src/gfx/renderJob/jobs/RenderMap.js +29 -0
- package/dist/src/gfx/renderJob/jobs/RendererJob.d.ts +43 -0
- package/dist/src/gfx/renderJob/jobs/RendererJob.js +123 -0
- package/dist/src/gfx/renderJob/occlusion/OcclusionSystem.d.ts +16 -0
- package/dist/src/gfx/renderJob/occlusion/OcclusionSystem.js +30 -0
- package/dist/src/gfx/renderJob/passRenderer/RenderContext.d.ts +20 -0
- package/dist/src/gfx/renderJob/passRenderer/RenderContext.js +68 -0
- package/dist/src/gfx/renderJob/passRenderer/RendererBase.d.ts +40 -0
- package/dist/src/gfx/renderJob/passRenderer/RendererBase.js +155 -0
- package/dist/src/gfx/renderJob/passRenderer/cluster/ClusterConfig.d.ts +5 -0
- package/dist/src/gfx/renderJob/passRenderer/cluster/ClusterConfig.js +5 -0
- package/dist/src/gfx/renderJob/passRenderer/cluster/ClusterLightingBuffer.d.ts +10 -0
- package/dist/src/gfx/renderJob/passRenderer/cluster/ClusterLightingBuffer.js +29 -0
- package/dist/src/gfx/renderJob/passRenderer/cluster/ClusterLightingRender.d.ts +20 -0
- package/dist/src/gfx/renderJob/passRenderer/cluster/ClusterLightingRender.js +74 -0
- package/dist/src/gfx/renderJob/passRenderer/color/ColorPassRenderer.d.ts +12 -0
- package/dist/src/gfx/renderJob/passRenderer/color/ColorPassRenderer.js +97 -0
- package/dist/src/gfx/renderJob/passRenderer/color/GUIPassRenderer.d.ts +13 -0
- package/dist/src/gfx/renderJob/passRenderer/color/GUIPassRenderer.js +79 -0
- package/dist/src/gfx/renderJob/passRenderer/cubeRenderer/ReflectionRenderer.d.ts +36 -0
- package/dist/src/gfx/renderJob/passRenderer/cubeRenderer/ReflectionRenderer.js +172 -0
- package/dist/src/gfx/renderJob/passRenderer/ddgi/DDGIIrradianceComputePass.d.ts +18 -0
- package/dist/src/gfx/renderJob/passRenderer/ddgi/DDGIIrradianceComputePass.js +52 -0
- package/dist/src/gfx/renderJob/passRenderer/ddgi/DDGIIrradianceGPUBufferReader.d.ts +22 -0
- package/dist/src/gfx/renderJob/passRenderer/ddgi/DDGIIrradianceGPUBufferReader.js +68 -0
- package/dist/src/gfx/renderJob/passRenderer/ddgi/DDGIIrradianceVolume.d.ts +32 -0
- package/dist/src/gfx/renderJob/passRenderer/ddgi/DDGIIrradianceVolume.js +113 -0
- package/dist/src/gfx/renderJob/passRenderer/ddgi/DDGILightingPass.d.ts +17 -0
- package/dist/src/gfx/renderJob/passRenderer/ddgi/DDGILightingPass.js +47 -0
- package/dist/src/gfx/renderJob/passRenderer/ddgi/DDGIMultiBouncePass.d.ts +13 -0
- package/dist/src/gfx/renderJob/passRenderer/ddgi/DDGIMultiBouncePass.js +40 -0
- package/dist/src/gfx/renderJob/passRenderer/ddgi/DDGIProbeRenderer.d.ts +46 -0
- package/dist/src/gfx/renderJob/passRenderer/ddgi/DDGIProbeRenderer.js +292 -0
- package/dist/src/gfx/renderJob/passRenderer/ddgi/Probe.d.ts +6 -0
- package/dist/src/gfx/renderJob/passRenderer/ddgi/Probe.js +8 -0
- package/dist/src/gfx/renderJob/passRenderer/post/PostRenderer.d.ts +19 -0
- package/dist/src/gfx/renderJob/passRenderer/post/PostRenderer.js +61 -0
- package/dist/src/gfx/renderJob/passRenderer/preDepth/PreDepthPassRenderer.d.ts +16 -0
- package/dist/src/gfx/renderJob/passRenderer/preDepth/PreDepthPassRenderer.js +80 -0
- package/dist/src/gfx/renderJob/passRenderer/preDepth/ZCullingCompute.d.ts +12 -0
- package/dist/src/gfx/renderJob/passRenderer/preDepth/ZCullingCompute.js +26 -0
- package/dist/src/gfx/renderJob/passRenderer/shadow/PointLightShadowRenderer.d.ts +32 -0
- package/dist/src/gfx/renderJob/passRenderer/shadow/PointLightShadowRenderer.js +193 -0
- package/dist/src/gfx/renderJob/passRenderer/shadow/ShadowMapPassRenderer.d.ts +27 -0
- package/dist/src/gfx/renderJob/passRenderer/shadow/ShadowMapPassRenderer.js +224 -0
- package/dist/src/gfx/renderJob/passRenderer/state/PassType.d.ts +13 -0
- package/dist/src/gfx/renderJob/passRenderer/state/PassType.js +14 -0
- package/dist/src/gfx/renderJob/passRenderer/state/RendererMask.d.ts +18 -0
- package/dist/src/gfx/renderJob/passRenderer/state/RendererMask.js +27 -0
- package/dist/src/gfx/renderJob/passRenderer/state/RendererPassState.d.ts +27 -0
- package/dist/src/gfx/renderJob/passRenderer/state/RendererPassState.js +24 -0
- package/dist/src/gfx/renderJob/post/BloomPost.d.ts +45 -0
- package/dist/src/gfx/renderJob/post/BloomPost.js +245 -0
- package/dist/src/gfx/renderJob/post/DepthOfFieldPost.d.ts +56 -0
- package/dist/src/gfx/renderJob/post/DepthOfFieldPost.js +146 -0
- package/dist/src/gfx/renderJob/post/FXAAPost.d.ts +18 -0
- package/dist/src/gfx/renderJob/post/FXAAPost.js +34 -0
- package/dist/src/gfx/renderJob/post/GBufferPost.d.ts +35 -0
- package/dist/src/gfx/renderJob/post/GBufferPost.js +107 -0
- package/dist/src/gfx/renderJob/post/GTAOPost.d.ts +67 -0
- package/dist/src/gfx/renderJob/post/GTAOPost.js +167 -0
- package/dist/src/gfx/renderJob/post/GlobalFog.d.ts +69 -0
- package/dist/src/gfx/renderJob/post/GlobalFog.js +208 -0
- package/dist/src/gfx/renderJob/post/GodRayPost.d.ts +56 -0
- package/dist/src/gfx/renderJob/post/GodRayPost.js +126 -0
- package/dist/src/gfx/renderJob/post/OutlinePost.d.ts +93 -0
- package/dist/src/gfx/renderJob/post/OutlinePost.js +212 -0
- package/dist/src/gfx/renderJob/post/PostBase.d.ts +35 -0
- package/dist/src/gfx/renderJob/post/PostBase.js +78 -0
- package/dist/src/gfx/renderJob/post/SSGIPost.d.ts +67 -0
- package/dist/src/gfx/renderJob/post/SSGIPost.js +210 -0
- package/dist/src/gfx/renderJob/post/SSRPost.d.ts +76 -0
- package/dist/src/gfx/renderJob/post/SSRPost.js +238 -0
- package/dist/src/gfx/renderJob/post/TAAPost.d.ts +40 -0
- package/dist/src/gfx/renderJob/post/TAAPost.js +183 -0
- package/dist/src/index.d.ts +571 -0
- package/dist/src/index.js +571 -0
- package/dist/src/io/InputSystem.d.ts +49 -0
- package/dist/src/io/InputSystem.js +382 -0
- package/dist/src/io/OutlineManager.d.ts +11 -0
- package/dist/src/io/OutlineManager.js +39 -0
- package/dist/src/io/OutlinePostData.d.ts +22 -0
- package/dist/src/io/OutlinePostData.js +54 -0
- package/dist/src/io/PickFire.d.ts +32 -0
- package/dist/src/io/PickFire.js +195 -0
- package/dist/src/io/PickResult.d.ts +59 -0
- package/dist/src/io/PickResult.js +29 -0
- package/dist/src/io/RayCastMeshDetail.d.ts +32 -0
- package/dist/src/io/RayCastMeshDetail.js +119 -0
- package/dist/src/io/TouchData.d.ts +12 -0
- package/dist/src/io/TouchData.js +13 -0
- package/dist/src/io/picker/PickCompute.d.ts +14 -0
- package/dist/src/io/picker/PickCompute.js +53 -0
- package/dist/src/loader/FileLoader.d.ts +7 -0
- package/dist/src/loader/FileLoader.js +70 -0
- package/dist/src/loader/LoaderBase.d.ts +30 -0
- package/dist/src/loader/LoaderBase.js +156 -0
- package/dist/src/loader/LoaderFunctions.d.ts +7 -0
- package/dist/src/loader/LoaderFunctions.js +1 -0
- package/dist/src/loader/LoaderManager.d.ts +36 -0
- package/dist/src/loader/LoaderManager.js +83 -0
- package/dist/src/loader/parser/AtlasParser.d.ts +10 -0
- package/dist/src/loader/parser/AtlasParser.js +31 -0
- package/dist/src/loader/parser/B3DMParser.d.ts +24 -0
- package/dist/src/loader/parser/B3DMParser.js +108 -0
- package/dist/src/loader/parser/FontParser.d.ts +54 -0
- package/dist/src/loader/parser/FontParser.js +171 -0
- package/dist/src/loader/parser/I3DMParser.d.ts +7 -0
- package/dist/src/loader/parser/I3DMParser.js +17 -0
- package/dist/src/loader/parser/OBJParser.d.ts +72 -0
- package/dist/src/loader/parser/OBJParser.js +289 -0
- package/dist/src/loader/parser/ParserBase.d.ts +18 -0
- package/dist/src/loader/parser/ParserBase.js +17 -0
- package/dist/src/loader/parser/ParserFormat.d.ts +5 -0
- package/dist/src/loader/parser/ParserFormat.js +6 -0
- package/dist/src/loader/parser/RGBEParser.d.ts +40 -0
- package/dist/src/loader/parser/RGBEParser.js +248 -0
- package/dist/src/loader/parser/b3dm/B3DMLoader.d.ts +10 -0
- package/dist/src/loader/parser/b3dm/B3DMLoader.js +56 -0
- package/dist/src/loader/parser/b3dm/B3DMLoaderBase.d.ts +9 -0
- package/dist/src/loader/parser/b3dm/B3DMLoaderBase.js +31 -0
- package/dist/src/loader/parser/b3dm/FeatureTable.d.ts +14 -0
- package/dist/src/loader/parser/b3dm/FeatureTable.js +104 -0
- package/dist/src/loader/parser/b3dm/arrayToString.d.ts +1 -0
- package/dist/src/loader/parser/b3dm/arrayToString.js +4 -0
- package/dist/src/loader/parser/b3dm/readMagicBytes.d.ts +1 -0
- package/dist/src/loader/parser/b3dm/readMagicBytes.js +17 -0
- package/dist/src/loader/parser/gis/GeoJsonParser.d.ts +29 -0
- package/dist/src/loader/parser/gis/GeoJsonParser.js +15 -0
- package/dist/src/loader/parser/gis/GeoJsonUtil.d.ts +5 -0
- package/dist/src/loader/parser/gis/GeoJsonUtil.js +30 -0
- package/dist/src/loader/parser/gltf/GLBParser.d.ts +21 -0
- package/dist/src/loader/parser/gltf/GLBParser.js +133 -0
- package/dist/src/loader/parser/gltf/GLTFInfo.d.ts +137 -0
- package/dist/src/loader/parser/gltf/GLTFInfo.js +20 -0
- package/dist/src/loader/parser/gltf/GLTFMaterial.d.ts +24 -0
- package/dist/src/loader/parser/gltf/GLTFMaterial.js +2 -0
- package/dist/src/loader/parser/gltf/GLTFParser.d.ts +45 -0
- package/dist/src/loader/parser/gltf/GLTFParser.js +153 -0
- package/dist/src/loader/parser/gltf/GLTFSubParser.d.ts +47 -0
- package/dist/src/loader/parser/gltf/GLTFSubParser.js +366 -0
- package/dist/src/loader/parser/gltf/GLTFSubParserCamera.d.ts +7 -0
- package/dist/src/loader/parser/gltf/GLTFSubParserCamera.js +41 -0
- package/dist/src/loader/parser/gltf/GLTFSubParserConverter.d.ts +17 -0
- package/dist/src/loader/parser/gltf/GLTFSubParserConverter.js +416 -0
- package/dist/src/loader/parser/gltf/GLTFSubParserMaterial.d.ts +10 -0
- package/dist/src/loader/parser/gltf/GLTFSubParserMaterial.js +182 -0
- package/dist/src/loader/parser/gltf/GLTFSubParserMesh.d.ts +11 -0
- package/dist/src/loader/parser/gltf/GLTFSubParserMesh.js +170 -0
- package/dist/src/loader/parser/gltf/GLTFSubParserSkeleton.d.ts +15 -0
- package/dist/src/loader/parser/gltf/GLTFSubParserSkeleton.js +313 -0
- package/dist/src/loader/parser/gltf/GLTFSubParserSkin.d.ts +10 -0
- package/dist/src/loader/parser/gltf/GLTFSubParserSkin.js +66 -0
- package/dist/src/loader/parser/gltf/GLTFType.d.ts +22 -0
- package/dist/src/loader/parser/gltf/GLTFType.js +21 -0
- package/dist/src/loader/parser/gltf/TypeArray.d.ts +4 -0
- package/dist/src/loader/parser/gltf/TypeArray.js +98 -0
- package/dist/src/loader/parser/gltf/extends/KHR_draco_mesh_compression.d.ts +9 -0
- package/dist/src/loader/parser/gltf/extends/KHR_draco_mesh_compression.js +157 -0
- package/dist/src/loader/parser/gltf/extends/KHR_lights_punctual.d.ts +2 -0
- package/dist/src/loader/parser/gltf/extends/KHR_lights_punctual.js +2 -0
- package/dist/src/loader/parser/gltf/extends/KHR_materials_clearcoat.d.ts +7 -0
- package/dist/src/loader/parser/gltf/extends/KHR_materials_clearcoat.js +26 -0
- package/dist/src/loader/parser/gltf/extends/KHR_materials_emissive_strength.d.ts +3 -0
- package/dist/src/loader/parser/gltf/extends/KHR_materials_emissive_strength.js +17 -0
- package/dist/src/loader/parser/gltf/extends/KHR_materials_ior.d.ts +2 -0
- package/dist/src/loader/parser/gltf/extends/KHR_materials_ior.js +2 -0
- package/dist/src/loader/parser/gltf/extends/KHR_materials_unlit.d.ts +3 -0
- package/dist/src/loader/parser/gltf/extends/KHR_materials_unlit.js +12 -0
- package/dist/src/loader/parser/i3dm/I3DMLoader.d.ts +17 -0
- package/dist/src/loader/parser/i3dm/I3DMLoader.js +97 -0
- package/dist/src/loader/parser/i3dm/I3DMLoaderBase.d.ts +9 -0
- package/dist/src/loader/parser/i3dm/I3DMLoaderBase.js +40 -0
- package/dist/src/loader/parser/prefab/PrefabAvatarParser.d.ts +9 -0
- package/dist/src/loader/parser/prefab/PrefabAvatarParser.js +38 -0
- package/dist/src/loader/parser/prefab/PrefabMaterialParser.d.ts +9 -0
- package/dist/src/loader/parser/prefab/PrefabMaterialParser.js +115 -0
- package/dist/src/loader/parser/prefab/PrefabMeshParser.d.ts +10 -0
- package/dist/src/loader/parser/prefab/PrefabMeshParser.js +133 -0
- package/dist/src/loader/parser/prefab/PrefabParser.d.ts +16 -0
- package/dist/src/loader/parser/prefab/PrefabParser.js +72 -0
- package/dist/src/loader/parser/prefab/PrefabStringUtil.d.ts +12 -0
- package/dist/src/loader/parser/prefab/PrefabStringUtil.js +41 -0
- package/dist/src/loader/parser/prefab/PrefabTextureParser.d.ts +10 -0
- package/dist/src/loader/parser/prefab/PrefabTextureParser.js +32 -0
- package/dist/src/loader/parser/prefab/mats/MaterialUtilities.d.ts +8 -0
- package/dist/src/loader/parser/prefab/mats/MaterialUtilities.js +138 -0
- package/dist/src/loader/parser/prefab/mats/shader/LitSSSShader.d.ts +24 -0
- package/dist/src/loader/parser/prefab/mats/shader/LitSSSShader.js +139 -0
- package/dist/src/loader/parser/prefab/mats/shader/LitShader.d.ts +19 -0
- package/dist/src/loader/parser/prefab/mats/shader/LitShader.js +117 -0
- package/dist/src/loader/parser/prefab/mats/shader/QuadShader.d.ts +4 -0
- package/dist/src/loader/parser/prefab/mats/shader/QuadShader.js +39 -0
- package/dist/src/loader/parser/prefab/mats/shader/ReflectionShader.d.ts +19 -0
- package/dist/src/loader/parser/prefab/mats/shader/ReflectionShader.js +79 -0
- package/dist/src/loader/parser/prefab/mats/shader/SkyShader.d.ts +4 -0
- package/dist/src/loader/parser/prefab/mats/shader/SkyShader.js +35 -0
- package/dist/src/loader/parser/prefab/mats/shader/StandShader.d.ts +220 -0
- package/dist/src/loader/parser/prefab/mats/shader/StandShader.js +420 -0
- package/dist/src/loader/parser/prefab/mats/shader/UnLitShader.d.ts +19 -0
- package/dist/src/loader/parser/prefab/mats/shader/UnLitShader.js +95 -0
- package/dist/src/loader/parser/prefab/mats/shader/UnLitTexArrayShader.d.ts +19 -0
- package/dist/src/loader/parser/prefab/mats/shader/UnLitTexArrayShader.js +100 -0
- package/dist/src/loader/parser/prefab/prefabData/BlendShapeData.d.ts +11 -0
- package/dist/src/loader/parser/prefab/prefabData/BlendShapeData.js +19 -0
- package/dist/src/loader/parser/prefab/prefabData/BlendShapePropertyData.d.ts +9 -0
- package/dist/src/loader/parser/prefab/prefabData/BlendShapePropertyData.js +17 -0
- package/dist/src/loader/parser/prefab/prefabData/KVData.d.ts +9 -0
- package/dist/src/loader/parser/prefab/prefabData/KVData.js +12 -0
- package/dist/src/loader/parser/prefab/prefabData/PrefabAvatarData.d.ts +9 -0
- package/dist/src/loader/parser/prefab/prefabData/PrefabAvatarData.js +15 -0
- package/dist/src/loader/parser/prefab/prefabData/PrefabBoneData.d.ts +16 -0
- package/dist/src/loader/parser/prefab/prefabData/PrefabBoneData.js +14 -0
- package/dist/src/loader/parser/prefab/prefabData/PrefabMeshData.d.ts +19 -0
- package/dist/src/loader/parser/prefab/prefabData/PrefabMeshData.js +2 -0
- package/dist/src/loader/parser/prefab/prefabData/PrefabNode.d.ts +19 -0
- package/dist/src/loader/parser/prefab/prefabData/PrefabNode.js +40 -0
- package/dist/src/loader/parser/prefab/prefabData/PrefabTextureData.d.ts +14 -0
- package/dist/src/loader/parser/prefab/prefabData/PrefabTextureData.js +2 -0
- package/dist/src/loader/parser/prefab/prefabData/ValueParser.d.ts +16 -0
- package/dist/src/loader/parser/prefab/prefabData/ValueParser.js +117 -0
- package/dist/src/loader/parser/prefab/prefabData/ValueType.d.ts +35 -0
- package/dist/src/loader/parser/prefab/prefabData/ValueType.js +36 -0
- package/dist/src/loader/parser/tileRenderer/TileSet.d.ts +45 -0
- package/dist/src/loader/parser/tileRenderer/TileSet.js +10 -0
- package/dist/src/loader/parser/tileRenderer/TilesRenderer.d.ts +12 -0
- package/dist/src/loader/parser/tileRenderer/TilesRenderer.js +88 -0
- package/dist/src/materials/BlendMode.d.ts +58 -0
- package/dist/src/materials/BlendMode.js +132 -0
- package/dist/src/materials/ColorLitMaterial.d.ts +14 -0
- package/dist/src/materials/ColorLitMaterial.js +45 -0
- package/dist/src/materials/GIProbeMaterial.d.ts +15 -0
- package/dist/src/materials/GIProbeMaterial.js +42 -0
- package/dist/src/materials/LambertMaterial.d.ts +39 -0
- package/dist/src/materials/LambertMaterial.js +71 -0
- package/dist/src/materials/LitMaterial.d.ts +49 -0
- package/dist/src/materials/LitMaterial.js +170 -0
- package/dist/src/materials/Material.d.ts +88 -0
- package/dist/src/materials/Material.js +194 -0
- package/dist/src/materials/MaterialRegister.d.ts +9 -0
- package/dist/src/materials/MaterialRegister.js +1 -0
- package/dist/src/materials/ReflectionMaterial.d.ts +13 -0
- package/dist/src/materials/ReflectionMaterial.js +29 -0
- package/dist/src/materials/SkyMaterial.d.ts +23 -0
- package/dist/src/materials/SkyMaterial.js +56 -0
- package/dist/src/materials/UnLitMaterial.d.ts +33 -0
- package/dist/src/materials/UnLitMaterial.js +45 -0
- package/dist/src/materials/UnLitTexArrayMaterial.d.ts +20 -0
- package/dist/src/materials/UnLitTexArrayMaterial.js +32 -0
- package/dist/src/materials/multiPass/CastPointShadowMaterialPass.d.ts +4 -0
- package/dist/src/materials/multiPass/CastPointShadowMaterialPass.js +16 -0
- package/dist/src/materials/multiPass/CastShadowMaterialPass.d.ts +4 -0
- package/dist/src/materials/multiPass/CastShadowMaterialPass.js +16 -0
- package/dist/src/materials/multiPass/DepthMaterialPass.d.ts +4 -0
- package/dist/src/materials/multiPass/DepthMaterialPass.js +11 -0
- package/dist/src/materials/multiPass/GBufferPass.d.ts +5 -0
- package/dist/src/materials/multiPass/GBufferPass.js +19 -0
- package/dist/src/materials/multiPass/SkyGBufferPass.d.ts +4 -0
- package/dist/src/materials/multiPass/SkyGBufferPass.js +18 -0
- package/dist/src/math/AnimationCurve.d.ts +42 -0
- package/dist/src/math/AnimationCurve.js +191 -0
- package/dist/src/math/AnimationCurveClip.d.ts +15 -0
- package/dist/src/math/AnimationCurveClip.js +46 -0
- package/dist/src/math/AnimationCurveT.d.ts +24 -0
- package/dist/src/math/AnimationCurveT.js +105 -0
- package/dist/src/math/BiMap.d.ts +9 -0
- package/dist/src/math/BiMap.js +37 -0
- package/dist/src/math/Color.d.ts +249 -0
- package/dist/src/math/Color.js +381 -0
- package/dist/src/math/ColorGradient.d.ts +6 -0
- package/dist/src/math/ColorGradient.js +14 -0
- package/dist/src/math/CubicBezierCurve.d.ts +47 -0
- package/dist/src/math/CubicBezierCurve.js +100 -0
- package/dist/src/math/CubicBezierPath.d.ts +37 -0
- package/dist/src/math/CubicBezierPath.js +234 -0
- package/dist/src/math/HaltonSeq.d.ts +13 -0
- package/dist/src/math/HaltonSeq.js +45 -0
- package/dist/src/math/Line.d.ts +39 -0
- package/dist/src/math/Line.js +240 -0
- package/dist/src/math/MathUtil.d.ts +86 -0
- package/dist/src/math/MathUtil.js +480 -0
- package/dist/src/math/Matrix3.d.ts +183 -0
- package/dist/src/math/Matrix3.js +511 -0
- package/dist/src/math/Matrix4.d.ts +557 -0
- package/dist/src/math/Matrix4.js +2571 -0
- package/dist/src/math/OrderMap.d.ts +11 -0
- package/dist/src/math/OrderMap.js +56 -0
- package/dist/src/math/Orientation3D.d.ts +5 -0
- package/dist/src/math/Orientation3D.js +5 -0
- package/dist/src/math/ParticleMath.d.ts +22 -0
- package/dist/src/math/ParticleMath.js +26 -0
- package/dist/src/math/ParticleSystemCurves.d.ts +85 -0
- package/dist/src/math/ParticleSystemCurves.js +184 -0
- package/dist/src/math/Plane3D.d.ts +173 -0
- package/dist/src/math/Plane3D.js +191 -0
- package/dist/src/math/PlaneClassification.d.ts +32 -0
- package/dist/src/math/PlaneClassification.js +32 -0
- package/dist/src/math/PolynomialCurve.d.ts +43 -0
- package/dist/src/math/PolynomialCurve.js +236 -0
- package/dist/src/math/Polynomials.d.ts +12 -0
- package/dist/src/math/Polynomials.js +73 -0
- package/dist/src/math/Quaternion.d.ts +42 -0
- package/dist/src/math/Quaternion.js +406 -0
- package/dist/src/math/Rand.d.ts +15 -0
- package/dist/src/math/Rand.js +48 -0
- package/dist/src/math/Random.d.ts +67 -0
- package/dist/src/math/Random.js +543 -0
- package/dist/src/math/Ray.d.ts +41 -0
- package/dist/src/math/Ray.js +304 -0
- package/dist/src/math/Rect.d.ts +21 -0
- package/dist/src/math/Rect.js +108 -0
- package/dist/src/math/TimeInterpolator.d.ts +179 -0
- package/dist/src/math/TimeInterpolator.js +334 -0
- package/dist/src/math/Triangle.d.ts +33 -0
- package/dist/src/math/Triangle.js +113 -0
- package/dist/src/math/UV.d.ts +10 -0
- package/dist/src/math/UV.js +21 -0
- package/dist/src/math/Vector2.d.ts +38 -0
- package/dist/src/math/Vector2.js +166 -0
- package/dist/src/math/Vector3.d.ts +107 -0
- package/dist/src/math/Vector3.js +561 -0
- package/dist/src/math/Vector4.d.ts +34 -0
- package/dist/src/math/Vector4.js +77 -0
- package/dist/src/math/enum/FrameCache.d.ts +6 -0
- package/dist/src/math/enum/FrameCache.js +5 -0
- package/dist/src/math/enum/Keyframe.d.ts +14 -0
- package/dist/src/math/enum/Keyframe.js +27 -0
- package/dist/src/math/enum/T/KeyframeT.d.ts +18 -0
- package/dist/src/math/enum/T/KeyframeT.js +113 -0
- package/dist/src/math/enum/T/ValueOp.d.ts +4 -0
- package/dist/src/math/enum/T/ValueOp.js +32 -0
- package/dist/src/math/enum/WrapTimeMode.d.ts +5 -0
- package/dist/src/math/enum/WrapTimeMode.js +6 -0
- package/dist/src/math/navigation/DoubleArray.d.ts +11 -0
- package/dist/src/math/navigation/DoubleArray.js +44 -0
- package/dist/src/math/navigation/Navi3DAstar.d.ts +16 -0
- package/dist/src/math/navigation/Navi3DAstar.js +82 -0
- package/dist/src/math/navigation/Navi3DConst.d.ts +5 -0
- package/dist/src/math/navigation/Navi3DConst.js +8 -0
- package/dist/src/math/navigation/Navi3DEdge.d.ts +33 -0
- package/dist/src/math/navigation/Navi3DEdge.js +109 -0
- package/dist/src/math/navigation/Navi3DFunnel.d.ts +19 -0
- package/dist/src/math/navigation/Navi3DFunnel.js +254 -0
- package/dist/src/math/navigation/Navi3DMaskType.d.ts +3 -0
- package/dist/src/math/navigation/Navi3DMaskType.js +3 -0
- package/dist/src/math/navigation/Navi3DMesh.d.ts +27 -0
- package/dist/src/math/navigation/Navi3DMesh.js +122 -0
- package/dist/src/math/navigation/Navi3DPoint.d.ts +13 -0
- package/dist/src/math/navigation/Navi3DPoint.js +27 -0
- package/dist/src/math/navigation/Navi3DPoint2D.d.ts +10 -0
- package/dist/src/math/navigation/Navi3DPoint2D.js +26 -0
- package/dist/src/math/navigation/Navi3DPointFat.d.ts +11 -0
- package/dist/src/math/navigation/Navi3DPointFat.js +24 -0
- package/dist/src/math/navigation/Navi3DRouter.d.ts +29 -0
- package/dist/src/math/navigation/Navi3DRouter.js +173 -0
- package/dist/src/math/navigation/Navi3DTriangle.d.ts +44 -0
- package/dist/src/math/navigation/Navi3DTriangle.js +167 -0
- package/dist/src/setting/EngineSetting.d.ts +23 -0
- package/dist/src/setting/EngineSetting.js +1 -0
- package/dist/src/setting/GlobalIlluminationSetting.d.ts +115 -0
- package/dist/src/setting/GlobalIlluminationSetting.js +1 -0
- package/dist/src/setting/LightSetting.d.ts +3 -0
- package/dist/src/setting/LightSetting.js +1 -0
- package/dist/src/setting/LoaderSetting.d.ts +3 -0
- package/dist/src/setting/LoaderSetting.js +1 -0
- package/dist/src/setting/MaterialSetting.d.ts +5 -0
- package/dist/src/setting/MaterialSetting.js +1 -0
- package/dist/src/setting/OcclusionQuerySetting.d.ts +12 -0
- package/dist/src/setting/OcclusionQuerySetting.js +1 -0
- package/dist/src/setting/PickSetting.d.ts +5 -0
- package/dist/src/setting/PickSetting.js +1 -0
- package/dist/src/setting/ReflectionSetting.d.ts +7 -0
- package/dist/src/setting/ReflectionSetting.js +1 -0
- package/dist/src/setting/RenderSetting.d.ts +51 -0
- package/dist/src/setting/RenderSetting.js +1 -0
- package/dist/src/setting/ShadowSetting.d.ts +17 -0
- package/dist/src/setting/ShadowSetting.js +1 -0
- package/dist/src/setting/SkySetting.d.ts +8 -0
- package/dist/src/setting/SkySetting.js +1 -0
- package/dist/src/setting/post/BloomSetting.d.ts +11 -0
- package/dist/src/setting/post/BloomSetting.js +1 -0
- package/dist/src/setting/post/DepthOfViewSetting.d.ts +7 -0
- package/dist/src/setting/post/DepthOfViewSetting.js +1 -0
- package/dist/src/setting/post/GTAOSetting.d.ts +11 -0
- package/dist/src/setting/post/GTAOSetting.js +1 -0
- package/dist/src/setting/post/GlobalFogSetting.d.ts +19 -0
- package/dist/src/setting/post/GlobalFogSetting.js +1 -0
- package/dist/src/setting/post/GodRaySetting.d.ts +7 -0
- package/dist/src/setting/post/GodRaySetting.js +1 -0
- package/dist/src/setting/post/OutlineSetting.d.ts +10 -0
- package/dist/src/setting/post/OutlineSetting.js +1 -0
- package/dist/src/setting/post/SSRSetting.d.ts +12 -0
- package/dist/src/setting/post/SSRSetting.js +1 -0
- package/dist/src/setting/post/TAASetting.d.ts +9 -0
- package/dist/src/setting/post/TAASetting.js +1 -0
- package/dist/src/shape/BoxGeometry.d.ts +28 -0
- package/dist/src/shape/BoxGeometry.js +184 -0
- package/dist/src/shape/CylinderGeometry.d.ts +60 -0
- package/dist/src/shape/CylinderGeometry.js +171 -0
- package/dist/src/shape/PlaneGeometry.d.ts +11 -0
- package/dist/src/shape/PlaneGeometry.js +105 -0
- package/dist/src/shape/SphereGeometry.d.ts +25 -0
- package/dist/src/shape/SphereGeometry.js +102 -0
- package/dist/src/shape/TorusGeometry.d.ts +33 -0
- package/dist/src/shape/TorusGeometry.js +88 -0
- package/dist/src/shape/TrailGeometry.d.ts +18 -0
- package/dist/src/shape/TrailGeometry.js +68 -0
- package/dist/src/shape/TriGeometry.d.ts +13 -0
- package/dist/src/shape/TriGeometry.js +47 -0
- package/dist/src/textures/AtmosphericScatteringSky.d.ts +42 -0
- package/dist/src/textures/AtmosphericScatteringSky.js +97 -0
- package/dist/src/textures/BitmapTexture2D.d.ts +12 -0
- package/dist/src/textures/BitmapTexture2D.js +94 -0
- package/dist/src/textures/BitmapTexture2DArray.d.ts +15 -0
- package/dist/src/textures/BitmapTexture2DArray.js +87 -0
- package/dist/src/textures/BitmapTextureCube.d.ts +14 -0
- package/dist/src/textures/BitmapTextureCube.js +181 -0
- package/dist/src/textures/Depth2DTextureArray.d.ts +9 -0
- package/dist/src/textures/Depth2DTextureArray.js +43 -0
- package/dist/src/textures/DepthCubeArrayTexture.d.ts +9 -0
- package/dist/src/textures/DepthCubeArrayTexture.js +46 -0
- package/dist/src/textures/Float16ArrayTexture.d.ts +28 -0
- package/dist/src/textures/Float16ArrayTexture.js +84 -0
- package/dist/src/textures/Float32ArrayTexture.d.ts +5 -0
- package/dist/src/textures/Float32ArrayTexture.js +61 -0
- package/dist/src/textures/HDRTexture.d.ts +7 -0
- package/dist/src/textures/HDRTexture.js +52 -0
- package/dist/src/textures/HDRTextureCube.d.ts +16 -0
- package/dist/src/textures/HDRTextureCube.js +50 -0
- package/dist/src/textures/LDRTextureCube.d.ts +13 -0
- package/dist/src/textures/LDRTextureCube.js +49 -0
- package/dist/src/textures/RenderTexture.d.ts +12 -0
- package/dist/src/textures/RenderTexture.js +140 -0
- package/dist/src/textures/SolidColorSky.d.ts +11 -0
- package/dist/src/textures/SolidColorSky.js +29 -0
- package/dist/src/textures/TextureCubeFaceData.d.ts +19 -0
- package/dist/src/textures/TextureCubeFaceData.js +55 -0
- package/dist/src/textures/Uint8ArrayTexture.d.ts +6 -0
- package/dist/src/textures/Uint8ArrayTexture.js +63 -0
- package/dist/src/textures/VirtualTexture.d.ts +29 -0
- package/dist/src/textures/VirtualTexture.js +152 -0
- package/dist/src/util/AxisObject.d.ts +11 -0
- package/dist/src/util/AxisObject.js +52 -0
- package/dist/src/util/BoundUtil.d.ts +12 -0
- package/dist/src/util/BoundUtil.js +73 -0
- package/dist/src/util/BytesArray.d.ts +49 -0
- package/dist/src/util/BytesArray.js +257 -0
- package/dist/src/util/CameraUtil.d.ts +10 -0
- package/dist/src/util/CameraUtil.js +62 -0
- package/dist/src/util/Convert.d.ts +1 -0
- package/dist/src/util/Convert.js +24 -0
- package/dist/src/util/GeometryUtil.d.ts +12 -0
- package/dist/src/util/GeometryUtil.js +55 -0
- package/dist/src/util/Global.d.ts +15 -0
- package/dist/src/util/Global.js +57 -0
- package/dist/src/util/GridObject.d.ts +12 -0
- package/dist/src/util/GridObject.js +94 -0
- package/dist/src/util/KelvinUtil.d.ts +40 -0
- package/dist/src/util/KelvinUtil.js +79 -0
- package/dist/src/util/Object3DUtil.d.ts +25 -0
- package/dist/src/util/Object3DUtil.js +121 -0
- package/dist/src/util/ProfilerUtil.d.ts +49 -0
- package/dist/src/util/ProfilerUtil.js +141 -0
- package/dist/src/util/Reference.d.ts +37 -0
- package/dist/src/util/Reference.js +67 -0
- package/dist/src/util/SerializeDecoration.d.ts +9 -0
- package/dist/src/util/SerializeDecoration.js +95 -0
- package/dist/src/util/StringUtil.d.ts +23 -0
- package/dist/src/util/StringUtil.js +250 -0
- package/dist/src/util/Time.d.ts +9 -0
- package/dist/src/util/Time.js +14 -0
- package/dist/src/util/Vector3Ex.d.ts +16 -0
- package/dist/src/util/Vector3Ex.js +84 -0
- package/dist/src/util/ZSorterUtil.d.ts +13 -0
- package/dist/src/util/ZSorterUtil.js +51 -0
- package/dist/src/util/struct/Struct.d.ts +17 -0
- package/dist/src/util/struct/Struct.js +101 -0
- package/dist/src/util/transformUtil/Object3DTransformTools.d.ts +37 -0
- package/dist/src/util/transformUtil/Object3DTransformTools.js +136 -0
- package/dist/src/util/transformUtil/RotationControlComponents.d.ts +21 -0
- package/dist/src/util/transformUtil/RotationControlComponents.js +198 -0
- package/dist/src/util/transformUtil/ScaleControlComponents.d.ts +11 -0
- package/dist/src/util/transformUtil/ScaleControlComponents.js +132 -0
- package/dist/src/util/transformUtil/TransformAxisEnum.d.ts +11 -0
- package/dist/src/util/transformUtil/TransformAxisEnum.js +12 -0
- package/dist/src/util/transformUtil/TransformControllerBaseComponent.d.ts +48 -0
- package/dist/src/util/transformUtil/TransformControllerBaseComponent.js +283 -0
- package/dist/src/util/transformUtil/TransformMode.d.ts +6 -0
- package/dist/src/util/transformUtil/TransformMode.js +7 -0
- package/dist/src/util/transformUtil/TransformSpaceMode.d.ts +4 -0
- package/dist/src/util/transformUtil/TransformSpaceMode.js +5 -0
- package/dist/src/util/transformUtil/TranslationControlComponents.d.ts +12 -0
- package/dist/src/util/transformUtil/TranslationControlComponents.js +164 -0
- package/package.json +1 -1
package/dist/rings.umd.max.js
CHANGED
|
@@ -4000,511 +4000,559 @@
|
|
|
4000
4000
|
`;
|
|
4001
4001
|
|
|
4002
4002
|
class CubeSky_Shader {
|
|
4003
|
-
static sky_vs_frag_wgsl =
|
|
4004
|
-
|
|
4005
|
-
|
|
4003
|
+
static sky_vs_frag_wgsl = (
|
|
4004
|
+
/* wgsl */
|
|
4005
|
+
`
|
|
4006
|
+
#include "WorldMatrixUniform"
|
|
4007
|
+
#include "GlobalUniform"
|
|
4006
4008
|
|
|
4007
|
-
|
|
4008
|
-
|
|
4009
|
-
|
|
4010
|
-
|
|
4011
|
-
|
|
4012
|
-
|
|
4013
|
-
|
|
4009
|
+
struct VertexOutput {
|
|
4010
|
+
@location(auto) fragUV: vec2<f32>,
|
|
4011
|
+
@location(auto) vClipPos: vec4<f32>,
|
|
4012
|
+
@location(auto) vWorldPos: vec4<f32>,
|
|
4013
|
+
@location(auto) vWorldNormal: vec3<f32>,
|
|
4014
|
+
@builtin(position) member: vec4<f32>
|
|
4015
|
+
};
|
|
4014
4016
|
|
|
4015
|
-
|
|
4017
|
+
var<private> ORI_VertexOut: VertexOutput ;
|
|
4016
4018
|
|
|
4017
|
-
|
|
4018
|
-
|
|
4019
|
-
|
|
4020
|
-
|
|
4021
|
-
|
|
4022
|
-
|
|
4023
|
-
|
|
4024
|
-
|
|
4025
|
-
|
|
4026
|
-
|
|
4027
|
-
|
|
4028
|
-
|
|
4029
|
-
|
|
4030
|
-
|
|
4031
|
-
|
|
4032
|
-
|
|
4033
|
-
|
|
4019
|
+
@vertex
|
|
4020
|
+
fn main(
|
|
4021
|
+
@builtin(instance_index) index : u32,
|
|
4022
|
+
@location(auto) position: vec3<f32>,
|
|
4023
|
+
@location(auto) normal: vec3<f32>,
|
|
4024
|
+
@location(auto) uv: vec2<f32>
|
|
4025
|
+
) -> VertexOutput {
|
|
4026
|
+
ORI_VertexOut.fragUV = uv;
|
|
4027
|
+
let modelMat = models.matrix[u32(index)];
|
|
4028
|
+
let vm = modelMat;
|
|
4029
|
+
let normalMatrix = mat3x3<f32>(vm[0].xyz,vm[1].xyz,vm[2].xyz);
|
|
4030
|
+
ORI_VertexOut.vWorldNormal = normalize( normalMatrix * normal );
|
|
4031
|
+
ORI_VertexOut.vWorldPos = modelMat * vec4<f32>(position.xyz,1.0) ;
|
|
4032
|
+
|
|
4033
|
+
var fixProjMat = globalUniform.projMat ;
|
|
4034
|
+
fixProjMat[2].z = 1.0 ;//99999.0 / (99999.0 - 1.0) ;
|
|
4035
|
+
fixProjMat[3].z = -1.0 ;//(-1.0 * 99999.0) / (99999.0 - 1.0) ;
|
|
4034
4036
|
|
|
4035
|
-
|
|
4036
|
-
|
|
4037
|
-
|
|
4038
|
-
|
|
4037
|
+
var fixViewMat = globalUniform.viewMat ;
|
|
4038
|
+
fixViewMat[3].x = 0.0 ;
|
|
4039
|
+
fixViewMat[3].y = 0.0 ;
|
|
4040
|
+
fixViewMat[3].z = 0.0 ;
|
|
4039
4041
|
|
|
4040
|
-
|
|
4041
|
-
|
|
4042
|
-
|
|
4043
|
-
|
|
4044
|
-
|
|
4045
|
-
|
|
4046
|
-
|
|
4047
|
-
|
|
4048
|
-
|
|
4049
|
-
|
|
4050
|
-
|
|
4051
|
-
|
|
4042
|
+
var clipPos = fixProjMat * fixViewMat * ORI_VertexOut.vWorldPos;
|
|
4043
|
+
ORI_VertexOut.vClipPos = clipPos ;
|
|
4044
|
+
ORI_VertexOut.member = clipPos;
|
|
4045
|
+
return ORI_VertexOut;
|
|
4046
|
+
}
|
|
4047
|
+
`
|
|
4048
|
+
);
|
|
4049
|
+
static sky_fs_frag_wgsl = (
|
|
4050
|
+
/* wgsl */
|
|
4051
|
+
`
|
|
4052
|
+
#include "GlobalUniform"
|
|
4053
|
+
#include "MathShader"
|
|
4054
|
+
#include "BitUtil"
|
|
4055
|
+
#include "ColorUtil_frag"
|
|
4056
|
+
#include "FragmentOutput"
|
|
4052
4057
|
|
|
4053
|
-
|
|
4054
|
-
|
|
4055
|
-
|
|
4056
|
-
|
|
4058
|
+
struct uniformData {
|
|
4059
|
+
exposure: f32,
|
|
4060
|
+
roughness: f32
|
|
4061
|
+
};
|
|
4057
4062
|
|
|
4058
|
-
|
|
4059
|
-
|
|
4060
|
-
|
|
4061
|
-
|
|
4063
|
+
@group(1) @binding(0)
|
|
4064
|
+
var baseMapSampler: sampler;
|
|
4065
|
+
@group(1) @binding(1)
|
|
4066
|
+
var baseMap: texture_cube<f32>;
|
|
4062
4067
|
|
|
4063
|
-
|
|
4064
|
-
|
|
4068
|
+
@group(2) @binding(0)
|
|
4069
|
+
var<uniform> global: uniformData;
|
|
4065
4070
|
|
|
4066
|
-
|
|
4067
|
-
|
|
4068
|
-
|
|
4069
|
-
|
|
4070
|
-
|
|
4071
|
-
|
|
4072
|
-
|
|
4073
|
-
|
|
4071
|
+
@fragment
|
|
4072
|
+
fn main(@location(auto) fragUV: vec2<f32>,@location(auto) vClipPos: vec4<f32>, @location(auto) vWorldPos: vec4<f32>, @location(auto) vWorldNormal: vec3<f32> , @builtin(position) fragCoord : vec4<f32> ) -> FragmentOutput {
|
|
4073
|
+
let maxLevel: u32 = textureNumLevels(baseMap);
|
|
4074
|
+
let dir = normalize(vWorldPos.xyz);
|
|
4075
|
+
var textureColor:vec3<f32> = textureSampleLevel(baseMap, baseMapSampler, normalize(dir.xyz), global.roughness * f32(maxLevel) ).xyz;
|
|
4076
|
+
#if IS_HDR_SKY
|
|
4077
|
+
textureColor = LinearToGammaSpace(textureColor);
|
|
4078
|
+
#endif
|
|
4074
4079
|
|
|
4075
|
-
|
|
4076
|
-
|
|
4077
|
-
|
|
4078
|
-
|
|
4080
|
+
// let o_Target: vec4<f32> = globalUniform.hdrExposure * vec4<f32>(textureColor, 1.0) * globalUniform.skyExposure ;
|
|
4081
|
+
let o_Target: vec4<f32> = vec4<f32>(textureColor, 1.0) * globalUniform.skyExposure;
|
|
4082
|
+
let finalMatrix = globalUniform.projMat * globalUniform.viewMat ;
|
|
4083
|
+
let nMat = mat3x3<f32>(finalMatrix[0].xyz,finalMatrix[1].xyz,finalMatrix[2].xyz) ;
|
|
4084
|
+
let ORI_NORMALMATRIX = transpose(inverse( nMat ));
|
|
4085
|
+
|
|
4086
|
+
var vNormal = (ORI_NORMALMATRIX * -vWorldNormal );
|
|
4087
|
+
var gBuffer = packGBuffer(
|
|
4088
|
+
-globalUniform.far,
|
|
4089
|
+
vec3f(0.0),
|
|
4090
|
+
o_Target.rgb,
|
|
4091
|
+
vec3f(0.0),
|
|
4092
|
+
vNormal
|
|
4093
|
+
) ;
|
|
4094
|
+
var fragmentOutput:FragmentOutput;
|
|
4095
|
+
#if USE_CASTREFLECTION
|
|
4096
|
+
fragmentOutput.gBuffer = gBuffer ;
|
|
4097
|
+
#else
|
|
4098
|
+
fragmentOutput.color = o_Target ;
|
|
4099
|
+
fragmentOutput.gBuffer = gBuffer ;
|
|
4100
|
+
#endif
|
|
4101
|
+
return fragmentOutput;
|
|
4102
|
+
}
|
|
4079
4103
|
|
|
4080
|
-
|
|
4081
|
-
|
|
4082
|
-
|
|
4083
|
-
vec3f(0.0),
|
|
4084
|
-
o_Target.rgb,
|
|
4085
|
-
vec3f(0.0),
|
|
4086
|
-
vNormal
|
|
4087
|
-
);
|
|
4104
|
+
fn packGBuffer(depth:f32, albedo:vec3f,hdrLighting:vec3f,rmao:vec3f,normal:vec3f) -> vec4f{
|
|
4105
|
+
var gBuffer : vec4f ;
|
|
4106
|
+
var octUVNormal = (octEncode(normalize(normal)) + 1.0) * 0.5 ;
|
|
4088
4107
|
|
|
4089
|
-
|
|
4090
|
-
|
|
4091
|
-
|
|
4092
|
-
|
|
4093
|
-
|
|
4094
|
-
|
|
4095
|
-
|
|
4096
|
-
|
|
4097
|
-
|
|
4108
|
+
var yc = f32(r11g11b9_to_float(vec3f(octUVNormal,0.0))) ;
|
|
4109
|
+
#if USE_CASTREFLECTION
|
|
4110
|
+
var rgbm = EncodeRGBM(hdrLighting);
|
|
4111
|
+
var zc = f32(pack4x8unorm(vec4f(rgbm.rgb,0.0))) ;
|
|
4112
|
+
var wc = f32(pack4x8unorm(vec4f(rmao.rg,rgbm.a,0.0)));
|
|
4113
|
+
#else
|
|
4114
|
+
var zc = f32(vec4fToFloat_7bits(vec4f(albedo.rgb,0.0)));
|
|
4115
|
+
var wc = f32(r22g8_to_float(vec2f(f32(0.0),rmao.g)));
|
|
4116
|
+
#endif
|
|
4117
|
+
|
|
4118
|
+
gBuffer.x = depth ;
|
|
4119
|
+
gBuffer.y = yc ;
|
|
4120
|
+
gBuffer.z = zc ;
|
|
4121
|
+
gBuffer.w = wc ;
|
|
4122
|
+
return gBuffer ;
|
|
4123
|
+
}
|
|
4124
|
+
`
|
|
4125
|
+
);
|
|
4126
|
+
}
|
|
4098
4127
|
|
|
4099
|
-
|
|
4100
|
-
|
|
4101
|
-
|
|
4102
|
-
|
|
4103
|
-
|
|
4104
|
-
|
|
4105
|
-
var rgbm = EncodeRGBM(hdrLighting);
|
|
4106
|
-
var zc = f32(pack4x8unorm(vec4f(rgbm.rgb,0.0)));
|
|
4107
|
-
var wc = f32(pack4x8unorm(vec4f(rmao.rg,rgbm.a,0.0)));
|
|
4108
|
-
#else
|
|
4109
|
-
var zc = f32(vec4ToFloat_7bits(vec4f(albedo.rgb,0.0)));
|
|
4110
|
-
var wc = f32(r22g8_to_float(vec2f(f32(0.0),rmao.g)))
|
|
4111
|
-
#endif
|
|
4128
|
+
let LightingFunction_frag = (
|
|
4129
|
+
/*wgsl*/
|
|
4130
|
+
`
|
|
4131
|
+
#include "BRDF_frag"
|
|
4132
|
+
#include "ClusterLight"
|
|
4133
|
+
#include "ShadowMapping_frag"
|
|
4112
4134
|
|
|
4113
|
-
|
|
4114
|
-
|
|
4115
|
-
|
|
4116
|
-
gBuffer.w = wc;
|
|
4117
|
-
return gBuffer;
|
|
4118
|
-
}
|
|
4119
|
-
`;
|
|
4120
|
-
}
|
|
4135
|
+
#if USE_IES_PROFILE
|
|
4136
|
+
#include "IESProfiles_frag"
|
|
4137
|
+
#endif
|
|
4121
4138
|
|
|
4122
|
-
|
|
4123
|
-
#include "BRDF_frag"
|
|
4124
|
-
#include "ClusterLight"
|
|
4125
|
-
#include "ShadowMapping_frag"
|
|
4139
|
+
const PI2 = 3.1415926 * 3.1415926 ;
|
|
4126
4140
|
|
|
4127
|
-
|
|
4128
|
-
|
|
4129
|
-
|
|
4141
|
+
fn sampleLighting(light:LightData,direction:vec3f,iblSpecularResult:vec3f , intensity :f32 , shadow:f32 ) -> vec3f{
|
|
4142
|
+
var ret = vec3f(0.0);
|
|
4143
|
+
var normalDir = fragData.N;
|
|
4144
|
+
var viewDir = fragData.V;
|
|
4130
4145
|
|
|
4131
|
-
|
|
4132
|
-
|
|
4133
|
-
|
|
4134
|
-
|
|
4135
|
-
|
|
4136
|
-
|
|
4137
|
-
|
|
4138
|
-
|
|
4139
|
-
|
|
4140
|
-
|
|
4141
|
-
|
|
4142
|
-
|
|
4143
|
-
|
|
4144
|
-
|
|
4145
|
-
|
|
4146
|
-
|
|
4147
|
-
|
|
4148
|
-
|
|
4149
|
-
|
|
4150
|
-
|
|
4151
|
-
|
|
4152
|
-
|
|
4153
|
-
|
|
4154
|
-
|
|
4155
|
-
|
|
4156
|
-
|
|
4157
|
-
|
|
4158
|
-
|
|
4159
|
-
|
|
4160
|
-
|
|
4161
|
-
|
|
4162
|
-
|
|
4146
|
+
var lightDir = normalize(-direction.xyz);
|
|
4147
|
+
var halfDir = normalize(lightDir + viewDir);
|
|
4148
|
+
var reflectDir = normalize(reflect(-viewDir,normalDir));
|
|
4149
|
+
|
|
4150
|
+
var NdotH = max(0.00001,dot(normalDir,halfDir));
|
|
4151
|
+
var NdotL = max(0.00001,dot(normalDir,lightDir));
|
|
4152
|
+
var NdotV = max(0.00001,dot(normalDir,viewDir));
|
|
4153
|
+
var HdotL = max(0.00001,dot(halfDir,lightDir));
|
|
4154
|
+
|
|
4155
|
+
var baseColor = fragData.Albedo.rgb ;
|
|
4156
|
+
var metallic = fragData.Metallic ;
|
|
4157
|
+
var roughness = fragData.Roughness ;
|
|
4158
|
+
|
|
4159
|
+
var lightColor = getHDRColor( light.lightColor.rgb , light.linear ) ;
|
|
4160
|
+
var att = max(0.0,intensity);
|
|
4161
|
+
|
|
4162
|
+
var lighting:vec3f = lightContribution(NdotH,NdotL,NdotV,HdotL,fragData.Roughness,fragData.Albedo.rgb / 3.14, metallic ,shadow,fragData.F0,lightColor.rgb);
|
|
4163
|
+
|
|
4164
|
+
lighting = ACESToneMapping(lighting,att);
|
|
4165
|
+
return lighting ;
|
|
4166
|
+
}
|
|
4167
|
+
|
|
4168
|
+
fn directLighting( light:LightData , iblSpecularResult : vec3f) -> vec3<f32> {
|
|
4169
|
+
var color = vec3<f32>(0.0) ;
|
|
4170
|
+
#if USE_LIGHT
|
|
4171
|
+
var L = normalize(light.direction.xyz) ;
|
|
4172
|
+
#if USE_BRDF
|
|
4173
|
+
var shadow = directShadowVisibility[(light.castShadow)] ;
|
|
4174
|
+
var att = light.intensity;
|
|
4175
|
+
color = sampleLighting(light,L,iblSpecularResult,att, shadow);
|
|
4176
|
+
#endif
|
|
4177
|
+
#endif
|
|
4178
|
+
return color;
|
|
4179
|
+
}
|
|
4180
|
+
|
|
4181
|
+
fn directDulLighting( albedo:vec3<f32>, N:vec3<f32>, V:vec3<f32>, roughness:f32 , metallic:f32 , light:LightData , shadowBias:f32 ) -> vec3<f32> {
|
|
4182
|
+
var color = vec3<f32>(0.0) ;
|
|
4183
|
+
#if USE_LIGHT
|
|
4184
|
+
var L = -normalize(light.direction.xyz) ;
|
|
4185
|
+
let lightCC = pow( light.lightColor.rgb,vec3<f32>(2.2));
|
|
4186
|
+
var lightColor = getHDRColor( lightCC.rgb , light.linear ) ;
|
|
4187
|
+
var att = light.intensity;
|
|
4188
|
+
if(light.castShadow>=0){
|
|
4189
|
+
#if USE_SHADOWMAPING
|
|
4190
|
+
for (var j: i32 = 0; j < 8; j += 1) {
|
|
4191
|
+
if(j == light.castShadow){
|
|
4192
|
+
att *= directShadowVisibility[j] ;
|
|
4193
|
+
}
|
|
4194
|
+
}
|
|
4163
4195
|
#endif
|
|
4164
|
-
return color;
|
|
4165
4196
|
}
|
|
4197
|
+
#if USE_LAMBERT
|
|
4198
|
+
color = vec3<f32>(1.0,1.0,1.0) ;
|
|
4199
|
+
#endif
|
|
4200
|
+
|
|
4201
|
+
#if USE_BRDF
|
|
4202
|
+
color = 0.85 * simpleBRDF(albedo,N,V,L,att,lightColor,0.85 * roughness,metallic) ;
|
|
4203
|
+
color += 0.15 * simpleBRDF(albedo,N,V,L,att,lightColor,0.15 * roughness,metallic) ;
|
|
4204
|
+
#endif
|
|
4205
|
+
#endif
|
|
4206
|
+
return color;
|
|
4207
|
+
}
|
|
4166
4208
|
|
|
4167
|
-
|
|
4168
|
-
|
|
4169
|
-
|
|
4170
|
-
|
|
4171
|
-
|
|
4172
|
-
|
|
4173
|
-
|
|
4174
|
-
|
|
4175
|
-
|
|
4176
|
-
|
|
4177
|
-
|
|
4178
|
-
|
|
4179
|
-
|
|
4180
|
-
|
|
4181
|
-
#endif
|
|
4182
|
-
}
|
|
4183
|
-
#if USE_LAMBERT
|
|
4184
|
-
color = vec3<f32>(1.0,1.0,1.0);
|
|
4209
|
+
fn directHairLighting( albedo:vec3<f32>, N:vec3<f32>, V:vec3<f32>, roughness:f32 , metallic:f32 , light:LightData , shadowBias:f32 ) -> vec3<f32> {
|
|
4210
|
+
var color = vec3<f32>(0.0) ;
|
|
4211
|
+
#if USE_LIGHT
|
|
4212
|
+
var L = -normalize(light.direction.xyz) ;
|
|
4213
|
+
let lightCC = pow( light.lightColor.rgb,vec3<f32>(2.2));
|
|
4214
|
+
var lightColor = getHDRColor( lightCC.rgb , light.linear ) ;
|
|
4215
|
+
var att = light.intensity;
|
|
4216
|
+
if(light.castShadow>=0){
|
|
4217
|
+
#if USE_SHADOWMAPING
|
|
4218
|
+
for (var j: i32 = 0; j < 8; j += 1) {
|
|
4219
|
+
if(j == light.castShadow){
|
|
4220
|
+
att *= directShadowVisibility[j] ;
|
|
4221
|
+
}
|
|
4222
|
+
}
|
|
4185
4223
|
#endif
|
|
4224
|
+
}
|
|
4225
|
+
#if USE_LAMBERT
|
|
4226
|
+
color = vec3<f32>(1.0,1.0,1.0) ;
|
|
4227
|
+
#endif
|
|
4228
|
+
|
|
4229
|
+
#if USE_BRDF
|
|
4230
|
+
color = 0.5 * simpleBRDF(albedo,N,V,L,att,lightColor,0.85 ,metallic) ;
|
|
4231
|
+
color += 0.5 * simpleBRDF(albedo,N,V,L,att,lightColor,0.15 ,metallic) ;
|
|
4232
|
+
#endif
|
|
4233
|
+
#endif
|
|
4234
|
+
return color;
|
|
4235
|
+
}
|
|
4186
4236
|
|
|
4187
|
-
|
|
4188
|
-
|
|
4189
|
-
|
|
4190
|
-
|
|
4191
|
-
|
|
4192
|
-
|
|
4237
|
+
|
|
4238
|
+
fn pointLighting( WP:vec3<f32>, light:LightData , iblSpecularResult : vec3f ) -> vec3<f32> {
|
|
4239
|
+
var color = vec3<f32>(0.0) ;
|
|
4240
|
+
let lightPos = light.position.xyz;
|
|
4241
|
+
var dir = lightPos.xyz - WP ;
|
|
4242
|
+
let dist = length(dir);
|
|
4243
|
+
if(dist != 0.0){
|
|
4244
|
+
dir *= 1.0 / dist ;
|
|
4193
4245
|
}
|
|
4246
|
+
if( abs(dist) < light.range ){
|
|
4247
|
+
var L = dir ;
|
|
4248
|
+
var atten = 1.0 ;
|
|
4249
|
+
atten = 1.0 - smoothstep(0.0,light.range,dist) ;
|
|
4250
|
+
atten *= 1.0 / max(light.radius,0.001) ;
|
|
4194
4251
|
|
|
4195
|
-
|
|
4196
|
-
|
|
4197
|
-
#if
|
|
4198
|
-
|
|
4199
|
-
let lightCC = pow( light.lightColor.rgb, vec3<f32>(2.2) );
|
|
4200
|
-
var lightColor = getHDRColor(lightCC.rgb, light.linear);
|
|
4201
|
-
var att = light.intensity;
|
|
4202
|
-
if(light.castShadow>=0){
|
|
4203
|
-
#if USE_SHADOWMAPING
|
|
4204
|
-
for (var j: i32 = 0; j < 8; j += 1) {
|
|
4205
|
-
if(j == light.castShadow){
|
|
4206
|
-
att *= directShadowVisibility[j];
|
|
4207
|
-
}
|
|
4208
|
-
}
|
|
4209
|
-
#endif
|
|
4210
|
-
}
|
|
4211
|
-
#if USE_LAMBERT
|
|
4212
|
-
color = vec3<f32>(1.0,1.0,1.0) ;
|
|
4252
|
+
var shadow = pointShadows[i32(light.castShadow)] ;
|
|
4253
|
+
|
|
4254
|
+
#if USE_IES_PROFILE
|
|
4255
|
+
atten *= getLightIESProfileAtt(WP,light);
|
|
4213
4256
|
#endif
|
|
4214
4257
|
|
|
4215
|
-
|
|
4216
|
-
color = 0.5 * simpleBRDF(albedo,N,V,L,att,lightColor,0.85 ,metallic) ;
|
|
4217
|
-
color += 0.5 * simpleBRDF(albedo,N,V,L,att,lightColor,0.15 ,metallic) ;
|
|
4218
|
-
#endif
|
|
4219
|
-
#endif
|
|
4220
|
-
return color
|
|
4221
|
-
}
|
|
4258
|
+
atten *= sphere_unit(light.range,light.intensity) ;
|
|
4222
4259
|
|
|
4223
|
-
|
|
4224
|
-
|
|
4225
|
-
|
|
4226
|
-
|
|
4227
|
-
let dist = length(dir);
|
|
4228
|
-
if(dist != 0.0){
|
|
4229
|
-
dir *= 1.0 / dist;
|
|
4230
|
-
}
|
|
4231
|
-
if(abs(dist) < light.range){
|
|
4232
|
-
var L = dir;
|
|
4233
|
-
var atten = 1.0;
|
|
4234
|
-
atten = 1.0 - smoothstep(0.0, light.range, dist);
|
|
4235
|
-
atten *= 1.0 / max(light.radius, 0.001);
|
|
4236
|
-
var shadow = pointShadows[i32(light.castShadow)];
|
|
4237
|
-
|
|
4238
|
-
#if USE_IES_PROFILE
|
|
4239
|
-
atten *= getLightIESProfileAtt(WP, light);
|
|
4240
|
-
#endif
|
|
4260
|
+
color = sampleLighting(light,-L,iblSpecularResult,atten,shadow);
|
|
4261
|
+
}
|
|
4262
|
+
return color ;
|
|
4263
|
+
}
|
|
4241
4264
|
|
|
4242
|
-
|
|
4243
|
-
|
|
4244
|
-
|
|
4245
|
-
|
|
4246
|
-
|
|
4265
|
+
fn pointAtt( WP:vec3<f32>, light:LightData ) -> f32 {
|
|
4266
|
+
var atten = 0.0 ;
|
|
4267
|
+
let lightPos = light.position.xyz;
|
|
4268
|
+
var dir = lightPos.xyz - WP ;
|
|
4269
|
+
let dist = length(dir);
|
|
4270
|
+
if(dist != 0.0){
|
|
4271
|
+
dir *= 1.0 / dist ;
|
|
4272
|
+
}
|
|
4273
|
+
if( abs(dist) < light.range ){
|
|
4274
|
+
var L = dir ;
|
|
4275
|
+
atten = 1.0 - smoothstep(0.0,light.range,dist) ;
|
|
4276
|
+
atten *= 1.0 / max(light.radius,0.001) ;
|
|
4277
|
+
var shadow = pointShadows[i32(light.castShadow)] ;
|
|
4278
|
+
#if USE_IES_PROFILE
|
|
4279
|
+
atten *= getLightIESProfileAtt(WP,light);
|
|
4280
|
+
#endif
|
|
4281
|
+
atten *= sphere_unit(light.range,light.intensity) ;
|
|
4282
|
+
}
|
|
4283
|
+
return atten ;
|
|
4284
|
+
}
|
|
4247
4285
|
|
|
4248
|
-
|
|
4249
|
-
|
|
4250
|
-
|
|
4251
|
-
var dir = lightPos.xyz - WP;
|
|
4252
|
-
let dist = length(dir);
|
|
4253
|
-
if(dist != 0.0){
|
|
4254
|
-
dir *= 1.0 / dist;
|
|
4255
|
-
}
|
|
4256
|
-
if(abs(dist) < light.range){
|
|
4257
|
-
var L = dir;
|
|
4258
|
-
atten = 1.0 - smoothstep(0.0, light.range, dist);
|
|
4259
|
-
atten *= 1.0 / max(light.radius, 0.001);
|
|
4260
|
-
var shadow = pointShadows[i32(light.castShadow)];
|
|
4261
|
-
#if USE_IES_PROFILE
|
|
4262
|
-
atten *= getLightIESProfileAtt(WP, light);
|
|
4263
|
-
#endif
|
|
4264
|
-
atten *= sphere_unit(light.range, light.intensity);
|
|
4265
|
-
}
|
|
4266
|
-
return atten;
|
|
4267
|
-
}
|
|
4286
|
+
fn getDistanceAtten( light:LightData , dist : f32 ) -> f32 {
|
|
4287
|
+
return 1.0 - smoothstep(0.0,light.range,dist) ;
|
|
4288
|
+
}
|
|
4268
4289
|
|
|
4269
|
-
|
|
4270
|
-
|
|
4290
|
+
fn spotLighting( WP:vec3<f32>, light:LightData , iblSpecularResult : vec3f) -> vec3<f32> {
|
|
4291
|
+
let lightPos = light.position.xyz;
|
|
4292
|
+
var dir = lightPos.xyz - WP ;
|
|
4293
|
+
let dist = length(dir) ;
|
|
4294
|
+
if(dist != 0.0){
|
|
4295
|
+
dir *= 1.0 / dist ;
|
|
4271
4296
|
}
|
|
4272
4297
|
|
|
4273
|
-
|
|
4274
|
-
|
|
4275
|
-
var
|
|
4276
|
-
let
|
|
4277
|
-
|
|
4278
|
-
|
|
4298
|
+
var color = vec3<f32>(0.0) ;
|
|
4299
|
+
if( abs(dist) < light.range * 2.0 ){
|
|
4300
|
+
var L = dir ;
|
|
4301
|
+
let theta = dot(-L, normalize(light.direction));
|
|
4302
|
+
let angle = acos(theta) ;
|
|
4303
|
+
var atten = 1.0 ;
|
|
4304
|
+
var lightColor = light.lightColor.rgb ;
|
|
4305
|
+
|
|
4306
|
+
atten = 1.0 - smoothstep(0.0,light.range,dist) ;
|
|
4307
|
+
atten *= 1.0 / max(light.radius,0.001) ;
|
|
4308
|
+
if(angle < light.outerCutOff){
|
|
4309
|
+
if(angle > light.innerCutOff){
|
|
4310
|
+
atten *= 1.0 - smoothstep(light.innerCutOff, light.outerCutOff, angle) ;
|
|
4311
|
+
}
|
|
4312
|
+
}else{
|
|
4313
|
+
atten = 0.0 ;
|
|
4279
4314
|
}
|
|
4280
4315
|
|
|
4281
|
-
var
|
|
4282
|
-
if(abs(dist) < light.range * 2.0){
|
|
4283
|
-
var L = dir;
|
|
4284
|
-
let theta = dot(-L, normalize(light.direction));
|
|
4285
|
-
let angle = acos(theta);
|
|
4286
|
-
var atten = 1.0;
|
|
4287
|
-
var lightColor = light.lightColor.rgb;
|
|
4288
|
-
|
|
4289
|
-
atten = 1.0 - smoothstep(0.0, light.range, dist);
|
|
4290
|
-
atten *= 1.0 / max(light.radius, 0.001);
|
|
4291
|
-
if(angle < light.outerCutOff){
|
|
4292
|
-
if(angle > light.innerCutOff){
|
|
4293
|
-
atten *= 1.0 - smoothstep(light.innerCutOff, light.outerCutOff, angle);
|
|
4294
|
-
}
|
|
4295
|
-
}else{
|
|
4296
|
-
atten = 0.0;
|
|
4297
|
-
}
|
|
4316
|
+
var shadow = pointShadows[i32(light.castShadow)] ;
|
|
4298
4317
|
|
|
4299
|
-
|
|
4318
|
+
#if USE_IES_PROFILE
|
|
4319
|
+
atten *= getLightIESProfileAtt(WP,light);
|
|
4320
|
+
#endif
|
|
4300
4321
|
|
|
4301
|
-
|
|
4302
|
-
atten *= getLightIESProfileAtt(WP, light);
|
|
4303
|
-
#endif
|
|
4322
|
+
atten *= sphere_unit(light.range, light.intensity) ;
|
|
4304
4323
|
|
|
4305
|
-
|
|
4306
|
-
color = sampleLighting(light, -L, iblSpecularResult, atten, shadow);
|
|
4307
|
-
}
|
|
4308
|
-
return color;
|
|
4324
|
+
color = sampleLighting(light,-L,iblSpecularResult,atten,shadow);
|
|
4309
4325
|
}
|
|
4326
|
+
return color ;
|
|
4327
|
+
}
|
|
4310
4328
|
|
|
4311
|
-
|
|
4312
|
-
|
|
4313
|
-
|
|
4314
|
-
|
|
4329
|
+
fn sphere_unit( radius:f32 , intensity:f32 ) -> f32 {
|
|
4330
|
+
return intensity / (4.0 * PI2 * radius * radius) ;
|
|
4331
|
+
}
|
|
4332
|
+
`
|
|
4333
|
+
);
|
|
4315
4334
|
|
|
4316
|
-
let MathShader =
|
|
4317
|
-
|
|
4335
|
+
let MathShader = (
|
|
4336
|
+
/* wgsl */
|
|
4337
|
+
`
|
|
4338
|
+
#include 'BitUtil'
|
|
4318
4339
|
|
|
4319
|
-
|
|
4320
|
-
|
|
4321
|
-
|
|
4340
|
+
struct TBN_ret{
|
|
4341
|
+
tan:vec3f,
|
|
4342
|
+
bit:vec3f,
|
|
4343
|
+
}
|
|
4344
|
+
|
|
4345
|
+
fn TBN( N:vec3f) -> mat3x3<f32>{
|
|
4346
|
+
//Returns the simple tangent space matrix
|
|
4347
|
+
var Nb : vec3f;
|
|
4348
|
+
var Nt : vec3f;
|
|
4349
|
+
if (abs(N.y)>0.999) {
|
|
4350
|
+
Nb = vec3f(1.0,0.0,0.0);
|
|
4351
|
+
Nt = vec3f(0.0,0.0,1.0);
|
|
4352
|
+
} else {
|
|
4353
|
+
Nb = normalize(cross(N,vec3f(0.0,1.0,0.0)));
|
|
4354
|
+
Nt = normalize(cross(Nb,N));
|
|
4322
4355
|
}
|
|
4323
4356
|
|
|
4324
|
-
|
|
4325
|
-
|
|
4326
|
-
|
|
4327
|
-
|
|
4328
|
-
|
|
4329
|
-
Nt = vec3f(0.0,0.0,1.0)
|
|
4330
|
-
}else{
|
|
4331
|
-
Nb = normalize(cross(N,vec3f(0.0,1.0,0.0)));
|
|
4332
|
-
Nt = normalize(cross(Nb,N));
|
|
4333
|
-
}
|
|
4357
|
+
var mat3 = mat3x3<f32>(
|
|
4358
|
+
Nb.x,Nt.x,N.x,
|
|
4359
|
+
Nb.y,Nt.y,N.y,
|
|
4360
|
+
Nb.z,Nt.z,N.z
|
|
4361
|
+
);
|
|
4334
4362
|
|
|
4335
|
-
|
|
4336
|
-
|
|
4337
|
-
Nb.y,Nt.y,N.y,
|
|
4338
|
-
Nb.z,Nt.z,N.z
|
|
4339
|
-
);
|
|
4363
|
+
return mat3;
|
|
4364
|
+
}
|
|
4340
4365
|
|
|
4341
|
-
|
|
4342
|
-
|
|
4366
|
+
fn TBN_out( N : vec3f ) -> TBN_ret {
|
|
4367
|
+
var tbn_ret : TBN_ret;
|
|
4368
|
+
//Returns the simple tangent space directions
|
|
4369
|
+
if (abs(N.y)>0.999) {
|
|
4370
|
+
tbn_ret.tan = vec3f(1.0,0.0,0.0);
|
|
4371
|
+
tbn_ret.bit = vec3f(0.0,0.0,1.0);
|
|
4372
|
+
} else {
|
|
4373
|
+
tbn_ret.tan = normalize(cross(N,vec3f(0.0,1.0,0.0)));
|
|
4374
|
+
tbn_ret.bit = normalize(cross(tbn_ret.tan,N));
|
|
4375
|
+
}
|
|
4343
4376
|
|
|
4344
|
-
|
|
4345
|
-
|
|
4346
|
-
if(abs(N.y)>0.999) {
|
|
4347
|
-
tbn_ret.tan = vec3f(1.0,0.0,0.0);
|
|
4348
|
-
tbn_ret.bit = vec3f(0.0,0.0,1.0);
|
|
4349
|
-
}else{
|
|
4350
|
-
tbn_ret.tan = normalize(cross(N,vec3f(0.0,1.0,0.0)));
|
|
4351
|
-
tbn_ret.bit = normalize(cross(tbn_ret.tan,N));
|
|
4352
|
-
}
|
|
4377
|
+
return tbn_ret;
|
|
4378
|
+
}
|
|
4353
4379
|
|
|
4354
|
-
return tbn_ret;
|
|
4355
|
-
}
|
|
4356
4380
|
|
|
4357
|
-
|
|
4358
|
-
|
|
4359
|
-
|
|
4381
|
+
fn ARand21( uv: vec2f) -> f32 {
|
|
4382
|
+
//Returns 1D noise from 2D
|
|
4383
|
+
return fract(sin(uv.x*uv.y)*403.125+cos(dot(uv,vec2f(13.18273,51.2134)))*173.137);
|
|
4384
|
+
}
|
|
4360
4385
|
|
|
4361
|
-
|
|
4362
|
-
|
|
4363
|
-
|
|
4364
|
-
|
|
4386
|
+
fn applyQuaternion(position:vec3<f32>, q:vec4<f32>) -> vec3<f32>{
|
|
4387
|
+
let x:f32 = position.x;
|
|
4388
|
+
let y:f32 = position.y;
|
|
4389
|
+
let z:f32 = position.z;
|
|
4365
4390
|
|
|
4366
|
-
|
|
4367
|
-
|
|
4368
|
-
|
|
4369
|
-
|
|
4391
|
+
let qx:f32 = q.x;
|
|
4392
|
+
let qy:f32 = q.y;
|
|
4393
|
+
let qz:f32 = q.z;
|
|
4394
|
+
let qw:f32 = q.w;
|
|
4370
4395
|
|
|
4371
|
-
|
|
4372
|
-
|
|
4373
|
-
|
|
4374
|
-
|
|
4396
|
+
let ix:f32 = qw * x + qy * z - qz * y;
|
|
4397
|
+
let iy:f32 = qw * y + qz * x - qx * z;
|
|
4398
|
+
let iz:f32 = qw * z + qx * y - qy * x;
|
|
4399
|
+
let iw:f32 = -qx * x - qy * y - qz * z;
|
|
4375
4400
|
|
|
4376
|
-
|
|
4377
|
-
|
|
4378
|
-
|
|
4379
|
-
|
|
4401
|
+
var ret: vec3<f32>;
|
|
4402
|
+
ret.x = ix * qw + iw * -qx + iy * -qz - iz * -qy;
|
|
4403
|
+
ret.y = iy * qw + iw * -qy + iz * -qx - ix * -qz;
|
|
4404
|
+
ret.z = iz * qw + iw * -qz + ix * -qy - iy * -qx;
|
|
4380
4405
|
|
|
4381
|
-
|
|
4382
|
-
|
|
4406
|
+
return ret;
|
|
4407
|
+
}
|
|
4383
4408
|
|
|
4384
|
-
|
|
4385
|
-
|
|
4386
|
-
|
|
4387
|
-
|
|
4388
|
-
|
|
4389
|
-
|
|
4390
|
-
|
|
4391
|
-
|
|
4392
|
-
|
|
4393
|
-
|
|
4394
|
-
|
|
4395
|
-
|
|
4396
|
-
|
|
4397
|
-
|
|
4398
|
-
|
|
4399
|
-
|
|
4400
|
-
|
|
4401
|
-
|
|
4402
|
-
|
|
4403
|
-
|
|
4404
|
-
|
|
4405
|
-
|
|
4406
|
-
|
|
4407
|
-
fn dir_to_faceId(pt:vec3<f32>) -> i32 {
|
|
4408
|
-
var abs_x = abs(pt.x);
|
|
4409
|
-
var abs_y = abs(pt.y);
|
|
4410
|
-
var abs_z = abs(pt.z);
|
|
4411
|
-
var coord = max(max(abs_x, abs_y),abs_z);
|
|
4412
|
-
if(coord == -pt.x){
|
|
4413
|
-
return 0;
|
|
4414
|
-
}
|
|
4415
|
-
if(coord == pt.x){
|
|
4416
|
-
return 1;
|
|
4417
|
-
}
|
|
4418
|
-
if(coord == -pt.y){
|
|
4419
|
-
return 2;
|
|
4420
|
-
}
|
|
4421
|
-
if(coord == pt.y){
|
|
4422
|
-
return 3;
|
|
4423
|
-
}
|
|
4424
|
-
if(coord == -pt.z){
|
|
4425
|
-
return 4;
|
|
4426
|
-
}
|
|
4427
|
-
return 5;
|
|
4428
|
-
}
|
|
4429
|
-
|
|
4430
|
-
const us = 1.0/6.0;
|
|
4431
|
-
fn uv_2_xyz(u:f32,v:f32) -> vec3f{
|
|
4432
|
-
let face = floor(u/us);
|
|
4433
|
-
var uu = (u - face*us)/us;
|
|
4434
|
-
var uc = 2.0*uu - 1.0;
|
|
4435
|
-
var vc = 2.0*v - 1.0;
|
|
4436
|
-
var xyz = vec3f(0,0,0);
|
|
4437
|
-
if(face == 0.0){
|
|
4438
|
-
xyz = vec3f(1.0,-vc,uc);
|
|
4439
|
-
}else if(face == 1.0){
|
|
4440
|
-
xyz = vec3f(-1.0,-vc,-uc);
|
|
4441
|
-
}else if(face == 2.0){
|
|
4442
|
-
xyz = vec3f(uc,1.0,-vc);
|
|
4443
|
-
}else if(face == 3.0){
|
|
4444
|
-
xyz = vec3f(uc,-1.0,vc);
|
|
4445
|
-
}else if(face == 4.0){
|
|
4446
|
-
xyz = vec3f(-uc,-vc,1.0);
|
|
4447
|
-
}else if(face == 5.0){
|
|
4448
|
-
xyz = vec3f(uc,-vc,-1.0);
|
|
4449
|
-
}
|
|
4450
|
-
return xyz;
|
|
4451
|
-
}
|
|
4452
|
-
|
|
4453
|
-
fn convert_xyz_to_cube_uv(x:f32, y:f32, z:f32) -> vec2f{
|
|
4454
|
-
var dir = vec3f(x,y,z);
|
|
4455
|
-
var absX = abs(dir.x);
|
|
4456
|
-
var absY = abs(dir.y);
|
|
4457
|
-
var absZ = abs(dir.z);
|
|
4458
|
-
|
|
4459
|
-
var isXPositive = 0;
|
|
4460
|
-
if(dir.x > 0.0){isXPositive=1};
|
|
4461
|
-
var isYPositive = 0;
|
|
4462
|
-
if(dir.y > 0.0){isXPositive=1};
|
|
4463
|
-
var isZPositive = 0;
|
|
4464
|
-
if(dir.z > 0.0){isZPositive=1};
|
|
4465
|
-
|
|
4466
|
-
var maxAxis:f32 = 0.0;
|
|
4467
|
-
var uc:f32 = 0.0;
|
|
4468
|
-
var vc:f32 = 0.0;
|
|
4469
|
-
|
|
4470
|
-
if(isXPositive == 1 && absX >= absY && absX >= absZ){
|
|
4471
|
-
maxAxis = absX;
|
|
4472
|
-
uc = -z;
|
|
4473
|
-
vc = y;
|
|
4474
|
-
}
|
|
4475
|
-
if(isXPositive == 0 && absX >= absY && absX >= absZ){
|
|
4476
|
-
maxAxis = absX;
|
|
4477
|
-
uc = z;
|
|
4478
|
-
vc = y;
|
|
4479
|
-
}
|
|
4480
|
-
if(isYPositive == 1 && absY >= absX && absY >= absZ){
|
|
4481
|
-
maxAxis = absY;
|
|
4482
|
-
uc = x;
|
|
4483
|
-
vc = -z;
|
|
4484
|
-
}
|
|
4485
|
-
if(isYPositive == 0 && absY >= absX && absY >= absZ){
|
|
4486
|
-
maxAxis = absY;
|
|
4487
|
-
uc = x;
|
|
4488
|
-
vc = z;
|
|
4489
|
-
}
|
|
4490
|
-
if (isZPositive == 1 && absZ >= absX && absZ >= absY) {
|
|
4491
|
-
maxAxis = absZ;
|
|
4492
|
-
uc = x;
|
|
4493
|
-
vc = y;
|
|
4494
|
-
}
|
|
4495
|
-
if (isZPositive ==0 && absZ >= absX && absZ >= absY) {
|
|
4496
|
-
maxAxis = absZ;
|
|
4497
|
-
uc = -x;
|
|
4498
|
-
vc = y;
|
|
4499
|
-
}
|
|
4500
|
-
|
|
4501
|
-
var u = 0.5f*(uc / maxAxis + 1.0f);
|
|
4502
|
-
var v = 0.5f*(vc / maxAxis + 1.0f);
|
|
4409
|
+
fn inverse( m:mat3x3<f32>) -> mat3x3<f32>{
|
|
4410
|
+
var a00 = m[0][0];
|
|
4411
|
+
var a01 = m[0][1];
|
|
4412
|
+
var a02 = m[0][2];
|
|
4413
|
+
var a10 = m[1][0];
|
|
4414
|
+
var a11 = m[1][1];
|
|
4415
|
+
var a12 = m[1][2];
|
|
4416
|
+
var a20 = m[2][0];
|
|
4417
|
+
var a21 = m[2][1];
|
|
4418
|
+
var a22 = m[2][2];
|
|
4419
|
+
|
|
4420
|
+
var b01 = a22 * a11 - a12 * a21;
|
|
4421
|
+
var b11 = -a22 * a10 + a12 * a20;
|
|
4422
|
+
var b21 = a21 * a10 - a11 * a20;
|
|
4423
|
+
|
|
4424
|
+
var det = a00 * b01 + a01 * b11 + a02 * b21 ;
|
|
4425
|
+
return mat3x3<f32>(
|
|
4426
|
+
vec3<f32>(b01/ det, (-a22 * a01 + a02 * a21)/ det, (a12 * a01 - a02 * a11)/ det),
|
|
4427
|
+
vec3<f32>(b11/ det, (a22 * a00 - a02 * a20)/ det, (-a12 * a00 + a02 * a10)/ det),
|
|
4428
|
+
vec3<f32>(b21/ det, (-a21 * a00 + a01 * a20)/ det, (a11 * a00 - a01 * a10)/ det)
|
|
4429
|
+
);
|
|
4430
|
+
}
|
|
4503
4431
|
|
|
4504
|
-
|
|
4505
|
-
|
|
4506
|
-
|
|
4507
|
-
|
|
4432
|
+
fn dir_to_faceId(pt:vec3<f32>) -> i32 {
|
|
4433
|
+
//**** nx px ny py nz pz
|
|
4434
|
+
var abs_x = abs(pt.x);
|
|
4435
|
+
var abs_y = abs(pt.y);
|
|
4436
|
+
var abs_z = abs(pt.z);
|
|
4437
|
+
var coord = max(max(abs_x, abs_y), abs_z);
|
|
4438
|
+
if(coord == -pt.x){ return 0;}
|
|
4439
|
+
if(coord == pt.x) { return 1;}
|
|
4440
|
+
|
|
4441
|
+
if(coord == -pt.y){ return 2;}
|
|
4442
|
+
if(coord == pt.y) { return 3;}
|
|
4443
|
+
|
|
4444
|
+
if(coord == -pt.z) { return 4;}
|
|
4445
|
+
return 5;
|
|
4446
|
+
}
|
|
4447
|
+
|
|
4448
|
+
const us = 1.0 /6.0 ;
|
|
4449
|
+
fn uv_2_xyz(u:f32,v:f32) -> vec3f
|
|
4450
|
+
{
|
|
4451
|
+
let face = floor(u / us);
|
|
4452
|
+
var uu = (u - face * us) / us ;
|
|
4453
|
+
|
|
4454
|
+
var uc = 2.0 * uu - 1.0;
|
|
4455
|
+
var vc = 2.0 * v - 1.0;
|
|
4456
|
+
var xyz = vec3f(0,0,0);
|
|
4457
|
+
|
|
4458
|
+
if(face == 0.0){
|
|
4459
|
+
// x,y,z = 1.0,vc,-uc
|
|
4460
|
+
xyz = vec3f(1.0,-vc,uc);
|
|
4461
|
+
}else if(face == 1.0){
|
|
4462
|
+
// x,y,z = -1.0,vc,uc
|
|
4463
|
+
xyz = vec3f(-1.0,-vc,-uc);
|
|
4464
|
+
}else if(face == 2.0){
|
|
4465
|
+
// x,y,z = uc,1.0,-vc
|
|
4466
|
+
xyz = vec3f(uc,1.0,-vc);
|
|
4467
|
+
}else if(face == 3.0){
|
|
4468
|
+
// x,y,z = uc,-1.0,vc
|
|
4469
|
+
xyz = vec3f(uc,-1.0,vc);
|
|
4470
|
+
}else if(face == 4.0){
|
|
4471
|
+
// x,y,z = uc,vc,1.0
|
|
4472
|
+
xyz = vec3f(-uc,-vc,1.0);
|
|
4473
|
+
}else if(face == 5.0){
|
|
4474
|
+
// x,y,z = -uc,vc,-1.0
|
|
4475
|
+
xyz = vec3f(uc,-vc,-1.0);
|
|
4476
|
+
}
|
|
4477
|
+
return xyz ;
|
|
4478
|
+
}
|
|
4479
|
+
|
|
4480
|
+
fn convert_xyz_to_cube_uv(x:f32, y:f32, z:f32 ) -> vec2f
|
|
4481
|
+
{
|
|
4482
|
+
var dir = vec3f(x, y, z);
|
|
4483
|
+
var absX = abs(dir.x);
|
|
4484
|
+
var absY = abs(dir.y);
|
|
4485
|
+
var absZ = abs(dir.z);
|
|
4486
|
+
|
|
4487
|
+
var isXPositive = 0;
|
|
4488
|
+
if(dir.x > 0.0){isXPositive = 1;}
|
|
4489
|
+
var isYPositive = 0;
|
|
4490
|
+
if(dir.y > 0.0){isYPositive = 1;}
|
|
4491
|
+
var isZPositive = 0;
|
|
4492
|
+
if(dir.z > 0.0){isZPositive = 1;}
|
|
4493
|
+
|
|
4494
|
+
var maxAxis:f32 = 0.0;
|
|
4495
|
+
var uc:f32 = 0.0;
|
|
4496
|
+
var vc:f32 = 0.0;
|
|
4497
|
+
|
|
4498
|
+
// POSITIVE X
|
|
4499
|
+
if (isXPositive == 1 && absX >= absY && absX >= absZ) {
|
|
4500
|
+
// u (0 to 1) goes from +z to -z
|
|
4501
|
+
// v (0 to 1) goes from -y to +y
|
|
4502
|
+
maxAxis = absX;
|
|
4503
|
+
uc = -z;
|
|
4504
|
+
vc = y;
|
|
4505
|
+
}
|
|
4506
|
+
// NEGATIVE X
|
|
4507
|
+
if (isXPositive ==0 && absX >= absY && absX >= absZ) {
|
|
4508
|
+
// u (0 to 1) goes from -z to +z
|
|
4509
|
+
// v (0 to 1) goes from -y to +y
|
|
4510
|
+
maxAxis = absX;
|
|
4511
|
+
uc = z;
|
|
4512
|
+
vc = y;
|
|
4513
|
+
}
|
|
4514
|
+
// POSITIVE Y
|
|
4515
|
+
if (isYPositive==1 && absY >= absX && absY >= absZ) {
|
|
4516
|
+
// u (0 to 1) goes from -x to +x
|
|
4517
|
+
// v (0 to 1) goes from +z to -z
|
|
4518
|
+
maxAxis = absY;
|
|
4519
|
+
uc = x;
|
|
4520
|
+
vc = -z;
|
|
4521
|
+
}
|
|
4522
|
+
// NEGATIVE Y
|
|
4523
|
+
if (isYPositive ==0 && absY >= absX && absY >= absZ) {
|
|
4524
|
+
// u (0 to 1) goes from -x to +x
|
|
4525
|
+
// v (0 to 1) goes from -z to +z
|
|
4526
|
+
maxAxis = absY;
|
|
4527
|
+
uc = x;
|
|
4528
|
+
vc = z;
|
|
4529
|
+
}
|
|
4530
|
+
// POSITIVE Z
|
|
4531
|
+
if (isZPositive == 1&& absZ >= absX && absZ >= absY) {
|
|
4532
|
+
// u (0 to 1) goes from -x to +x
|
|
4533
|
+
// v (0 to 1) goes from -y to +y
|
|
4534
|
+
maxAxis = absZ;
|
|
4535
|
+
uc = x;
|
|
4536
|
+
vc = y;
|
|
4537
|
+
}
|
|
4538
|
+
// NEGATIVE Z
|
|
4539
|
+
if (isZPositive ==0 && absZ >= absX && absZ >= absY) {
|
|
4540
|
+
// u (0 to 1) goes from +x to -x
|
|
4541
|
+
// v (0 to 1) goes from -y to +y
|
|
4542
|
+
maxAxis = absZ;
|
|
4543
|
+
uc = -x;
|
|
4544
|
+
vc = y;
|
|
4545
|
+
}
|
|
4546
|
+
|
|
4547
|
+
// Convert range from -1 to 1 to 0 to 1
|
|
4548
|
+
var u = 0.5f * (uc / maxAxis + 1.0f);
|
|
4549
|
+
var v = 0.5f * (vc / maxAxis + 1.0f);
|
|
4550
|
+
|
|
4551
|
+
return vec2f(u, v);
|
|
4552
|
+
}
|
|
4553
|
+
|
|
4554
|
+
// Returns ±1
|
|
4555
|
+
fn signNotZero( v1:vec2<f32>) -> vec2<f32> {
|
|
4508
4556
|
var v:vec2<f32> = v1;
|
|
4509
4557
|
if(v.x >= 0.0){
|
|
4510
4558
|
v.x = 1.0;
|
|
@@ -4514,118 +4562,123 @@
|
|
|
4514
4562
|
if(v.y >= 0.0){
|
|
4515
4563
|
v.y = 1.0;
|
|
4516
4564
|
}else{
|
|
4517
|
-
v.y
|
|
4565
|
+
v.y= -1.0;
|
|
4518
4566
|
}
|
|
4519
4567
|
return v;
|
|
4520
4568
|
}
|
|
4521
4569
|
|
|
4522
|
-
fn octEncode(v:vec3<f32>) -> vec2<f32> {
|
|
4570
|
+
fn octEncode( v:vec3<f32> ) -> vec2<f32> {
|
|
4523
4571
|
var l1norm = abs(v.x) + abs(v.y) + abs(v.z);
|
|
4524
4572
|
var result = v.xy * (1.0 / l1norm);
|
|
4525
|
-
if(v.z < 0.0){
|
|
4573
|
+
if (v.z < 0.0) {
|
|
4526
4574
|
result = (1.0 - abs(result.yx)) * signNotZero(result.xy);
|
|
4527
4575
|
}
|
|
4528
4576
|
return result;
|
|
4529
4577
|
}
|
|
4530
4578
|
|
|
4531
|
-
|
|
4579
|
+
// Returns a unit vector. Argument o is an octahedral vector packed via octEncode,on the [-1, +1] square*/
|
|
4580
|
+
fn octDecode( o:vec2<f32> ) -> vec3<f32> {
|
|
4532
4581
|
var v = vec3<f32>(o.x, o.y, 1.0 - abs(o.x) - abs(o.y));
|
|
4533
|
-
if(v.z < 0.0) {
|
|
4534
|
-
var tmp = (1.0 -abs(v.yx))*signNotZero(v.xy);
|
|
4582
|
+
if (v.z < 0.0) {
|
|
4583
|
+
var tmp = (1.0 - abs(v.yx)) * signNotZero(v.xy);
|
|
4535
4584
|
v.x = tmp.x;
|
|
4536
4585
|
v.y = tmp.y;
|
|
4537
4586
|
}
|
|
4538
4587
|
return normalize(v);
|
|
4539
4588
|
}
|
|
4540
4589
|
|
|
4541
|
-
fn Linear01Depth(z:f32,near:f32,far:f32)
|
|
4542
|
-
let ZBufferZ = (-1.0+(far/near))/far;
|
|
4543
|
-
let ZBufferW = near/far;
|
|
4544
|
-
return 1.0 / (ZBufferZ * z + ZBufferW);
|
|
4590
|
+
fn Linear01Depth(z:f32,near:f32,far:f32)-> f32{
|
|
4591
|
+
let ZBufferZ = (-1.0+(far/near)) / far;
|
|
4592
|
+
let ZBufferW = near /far ;
|
|
4593
|
+
return 1.0 / (ZBufferZ * z + ZBufferW) ;
|
|
4545
4594
|
}
|
|
4546
4595
|
|
|
4547
|
-
|
|
4548
|
-
|
|
4549
|
-
|
|
4596
|
+
|
|
4597
|
+
fn LinearizeDepth( depth:f32 , nearPlane:f32 , farPlane:f32 )-> f32 {
|
|
4598
|
+
var z = depth * 2.0 - 1.0;
|
|
4599
|
+
return (2.0 * nearPlane * farPlane) / (farPlane + nearPlane - z * (farPlane - nearPlane));
|
|
4550
4600
|
}
|
|
4551
4601
|
|
|
4552
|
-
fn logDepth(depth:f32, far:f32) -> f32 {
|
|
4553
|
-
|
|
4602
|
+
fn logDepth(depth : f32, far:f32) -> f32 {
|
|
4603
|
+
return log2(depth + 1.0) * 2.0 / (log(far + 1.0) / 0.6931471805599453) * 0.5;
|
|
4554
4604
|
}
|
|
4555
4605
|
|
|
4556
4606
|
fn log2Depth(depth:f32, near:f32, far:f32) -> f32 {
|
|
4557
|
-
|
|
4558
|
-
|
|
4559
|
-
|
|
4560
|
-
|
|
4607
|
+
let Fcoef:f32 = 2.0 / log2(far + 1.0);
|
|
4608
|
+
var result:f32 = (log2(max(1e-6, 1.0 + depth)) * Fcoef - 1.0);
|
|
4609
|
+
result = (1.0 + result) / 2.0;
|
|
4610
|
+
return result * depth;
|
|
4561
4611
|
}
|
|
4562
4612
|
|
|
4563
4613
|
fn log2DepthFixPersp(depth:f32, near:f32, far:f32) -> f32 {
|
|
4564
|
-
|
|
4565
|
-
|
|
4566
|
-
|
|
4567
|
-
|
|
4568
|
-
|
|
4614
|
+
let flogz:f32 = 1.0 + depth;
|
|
4615
|
+
let Fcoef_half:f32 = (2.0 / log2(far + 1.0)) * 0.5;
|
|
4616
|
+
var result:f32 = log2(flogz) * Fcoef_half;
|
|
4617
|
+
result = (1.0 + result) / 2.0;
|
|
4618
|
+
return result;
|
|
4569
4619
|
}
|
|
4570
4620
|
|
|
4571
|
-
fn QuaternionToMatrix(q:vec4<f32>) -> mat4x4<f32> {
|
|
4572
|
-
var result: mat4x4<f32>;
|
|
4573
|
-
|
|
4574
|
-
let x = q.x * 2.0;
|
|
4575
|
-
let y = q.y * 2.0;
|
|
4576
|
-
let z = q.z * 2.0;
|
|
4577
|
-
let xx = q.x * x;
|
|
4578
|
-
let yy = q.y * y;
|
|
4579
|
-
let zz = q.z * z;
|
|
4580
|
-
let xy = q.x * y;
|
|
4581
|
-
let xz = q.x * z;
|
|
4582
|
-
let yz = q.y * z;
|
|
4583
|
-
let wx = q.w * x;
|
|
4584
|
-
let wy = q.w * y;
|
|
4585
|
-
let wz = q.w * z;
|
|
4586
|
-
|
|
4587
|
-
result[0][0] = 1.0 - (yy + zz);
|
|
4588
|
-
result[0][1] = xy + wz;
|
|
4589
|
-
result[0][2] = xz - wy;
|
|
4590
|
-
result[0][3] = 0.0;
|
|
4591
|
-
|
|
4592
|
-
result[1][0] = xy - wz;
|
|
4593
|
-
result[1][1] = 1.0 - (xx + zz);
|
|
4594
|
-
result[1][2] = yz + wx;
|
|
4595
|
-
result[1][3] = 0.0;
|
|
4596
|
-
|
|
4597
|
-
result[2][0] = xz + wy;
|
|
4598
|
-
result[2][1] = yz - wx;
|
|
4599
|
-
result[2][2] = 1.0 - (xx + yy);
|
|
4600
|
-
result[2][3] = 0.0;
|
|
4601
|
-
|
|
4602
|
-
result[3][0] = 0.0;
|
|
4603
|
-
result[3][1] = 0.0;
|
|
4604
|
-
result[3][2] = 0.0;
|
|
4605
|
-
result[3][3] = 1.0;
|
|
4606
4621
|
|
|
4607
|
-
|
|
4622
|
+
fn QuaternionToMatrix(q: vec4<f32>) -> mat4x4<f32> {
|
|
4623
|
+
var result: mat4x4<f32>;
|
|
4624
|
+
|
|
4625
|
+
// Precalculate coordinate products
|
|
4626
|
+
let x = q.x * 2.0;
|
|
4627
|
+
let y = q.y * 2.0;
|
|
4628
|
+
let z = q.z * 2.0;
|
|
4629
|
+
let xx = q.x * x;
|
|
4630
|
+
let yy = q.y * y;
|
|
4631
|
+
let zz = q.z * z;
|
|
4632
|
+
let xy = q.x * y;
|
|
4633
|
+
let xz = q.x * z;
|
|
4634
|
+
let yz = q.y * z;
|
|
4635
|
+
let wx = q.w * x;
|
|
4636
|
+
let wy = q.w * y;
|
|
4637
|
+
let wz = q.w * z;
|
|
4638
|
+
|
|
4639
|
+
// Calculate 3x3 matrix from orthonormal basis
|
|
4640
|
+
result[0][0] = 1.0 - (yy + zz);
|
|
4641
|
+
result[0][1] = xy + wz;
|
|
4642
|
+
result[0][2] = xz - wy;
|
|
4643
|
+
result[0][3] = 0.0;
|
|
4644
|
+
|
|
4645
|
+
result[1][0] = xy - wz;
|
|
4646
|
+
result[1][1] = 1.0 - (xx + zz);
|
|
4647
|
+
result[1][2] = yz + wx;
|
|
4648
|
+
result[1][3] = 0.0;
|
|
4649
|
+
|
|
4650
|
+
result[2][0] = xz + wy;
|
|
4651
|
+
result[2][1] = yz - wx;
|
|
4652
|
+
result[2][2] = 1.0 - (xx + yy);
|
|
4653
|
+
result[2][3] = 0.0;
|
|
4654
|
+
|
|
4655
|
+
result[3][0] = 0.0;
|
|
4656
|
+
result[3][1] = 0.0;
|
|
4657
|
+
result[3][2] = 0.0;
|
|
4658
|
+
result[3][3] = 1.0;
|
|
4659
|
+
|
|
4660
|
+
return result;
|
|
4608
4661
|
}
|
|
4609
4662
|
|
|
4610
4663
|
fn MakeScaleMatrix(scale: vec3<f32>) -> mat4x4<f32> {
|
|
4611
4664
|
return mat4x4<f32>(
|
|
4612
|
-
|
|
4613
|
-
|
|
4614
|
-
|
|
4615
|
-
|
|
4665
|
+
scale.x, 0.0, 0.0, 0.0,
|
|
4666
|
+
0.0, scale.y, 0.0, 0.0,
|
|
4667
|
+
0.0, 0.0, scale.z, 0.0,
|
|
4668
|
+
0.0, 0.0, 0.0, 1.0,
|
|
4616
4669
|
);
|
|
4617
4670
|
}
|
|
4618
|
-
|
|
4671
|
+
|
|
4619
4672
|
fn MakeRotationMatrix(rotationQuaternion: vec4<f32>) -> mat4x4<f32> {
|
|
4620
|
-
|
|
4673
|
+
return QuaternionToMatrix(rotationQuaternion);
|
|
4621
4674
|
}
|
|
4622
4675
|
|
|
4623
4676
|
fn MakeTranslationMatrix(translation: vec3<f32>) -> mat4x4<f32> {
|
|
4624
4677
|
return mat4x4<f32>(
|
|
4625
|
-
|
|
4626
|
-
|
|
4627
|
-
|
|
4628
|
-
|
|
4678
|
+
1.0, 0.0, 0.0, 0.0,
|
|
4679
|
+
0.0, 1.0, 0.0, 0.0,
|
|
4680
|
+
0.0, 0.0, 1.0, 0.0,
|
|
4681
|
+
translation.x, translation.y, translation.z, 1.0,
|
|
4629
4682
|
);
|
|
4630
4683
|
}
|
|
4631
4684
|
|
|
@@ -4637,191 +4690,206 @@
|
|
|
4637
4690
|
}
|
|
4638
4691
|
|
|
4639
4692
|
fn mixMatrix4x4(a: mat4x4<f32>, b: mat4x4<f32>, t:f32) -> mat4x4<f32> {
|
|
4640
|
-
|
|
4693
|
+
return a * (1.0 - t) + b * t;
|
|
4641
4694
|
}
|
|
4642
4695
|
|
|
4643
|
-
fn decodeDepth(color:vec4<f32>) -> f32{
|
|
4644
|
-
|
|
4645
|
-
|
|
4646
|
-
|
|
4647
|
-
|
|
4696
|
+
fn decodeDepth( color:vec4<f32> ) -> f32{
|
|
4697
|
+
var depth = 0.0 ;
|
|
4698
|
+
const bitShifts = vec4<f32>(1.0 / (256.0 * 256.0 * 256.0), 1.0 / (256.0 * 256.0), 1.0 / 256.0, 1.0);
|
|
4699
|
+
depth = dot(color, bitShifts);
|
|
4700
|
+
return depth;
|
|
4648
4701
|
}
|
|
4649
4702
|
|
|
4650
|
-
fn encodeDepth(depth:f32) -> vec4<f32>{
|
|
4651
|
-
|
|
4652
|
-
|
|
4653
|
-
|
|
4654
|
-
|
|
4655
|
-
|
|
4656
|
-
|
|
4657
|
-
|
|
4703
|
+
fn encodeDepth( depth:f32 ) -> vec4<f32>{
|
|
4704
|
+
const bitSh = vec4<f32>(256.0 * 256.0 * 256.0, 256.0 * 256.0, 256.0, 1.0);
|
|
4705
|
+
const bitMsk = vec4<f32>(0, 1.0 / 256.0, 1.0 / 256.0, 1.0 / 256.0);
|
|
4706
|
+
var comp:vec4<f32>;
|
|
4707
|
+
comp = depth * bitSh;
|
|
4708
|
+
comp = fract(comp);
|
|
4709
|
+
comp -= comp.xxyz * bitMsk;
|
|
4710
|
+
return comp;
|
|
4658
4711
|
}
|
|
4659
4712
|
|
|
4660
|
-
fn calculateBillboardMatrix2(eye:vec3f,
|
|
4661
|
-
|
|
4662
|
-
|
|
4663
|
-
|
|
4664
|
-
|
|
4665
|
-
|
|
4713
|
+
fn calculateBillboardMatrix2(eye:vec3f,pos:vec3f,up:vec3f) -> mat3x3<f32> {
|
|
4714
|
+
|
|
4715
|
+
let zAxis: vec3f = -normalize(pos.xyz - eye);
|
|
4716
|
+
var xAxis: vec3f = cross(up,zAxis);
|
|
4717
|
+
xAxis = normalize(cross(zAxis,xAxis));
|
|
4718
|
+
let yAxis = normalize(cross(zAxis, xAxis));
|
|
4719
|
+
return mat3x3<f32>(xAxis, yAxis, zAxis);
|
|
4666
4720
|
}
|
|
4667
4721
|
|
|
4668
|
-
struct SH9Struct
|
|
4669
|
-
|
|
4670
|
-
|
|
4671
|
-
|
|
4672
|
-
|
|
4673
|
-
|
|
4674
|
-
|
|
4675
|
-
|
|
4722
|
+
struct SH9Struct{
|
|
4723
|
+
SHAr:vec4f,
|
|
4724
|
+
SHAg:vec4f,
|
|
4725
|
+
SHAb:vec4f,
|
|
4726
|
+
SHBr:vec4f,
|
|
4727
|
+
SHBg:vec4f,
|
|
4728
|
+
SHBb:vec4f,
|
|
4729
|
+
SHC:vec4f,
|
|
4676
4730
|
}
|
|
4677
4731
|
|
|
4678
|
-
fn ShadeSH9(normal:
|
|
4679
|
-
|
|
4680
|
-
|
|
4681
|
-
|
|
4682
|
-
|
|
4683
|
-
|
|
4684
|
-
|
|
4685
|
-
|
|
4686
|
-
|
|
4687
|
-
|
|
4688
|
-
|
|
4689
|
-
|
|
4690
|
-
|
|
4691
|
-
|
|
4692
|
-
|
|
4693
|
-
|
|
4694
|
-
|
|
4695
|
-
|
|
4732
|
+
fn ShadeSH9 ( normal:vec4f , sh9:SH9Struct) -> vec3f
|
|
4733
|
+
{
|
|
4734
|
+
var x1:vec3f = vec3f(0.0);
|
|
4735
|
+
var x2:vec3f = vec3f(0.0);
|
|
4736
|
+
var x3:vec3f = vec3f(0.0);
|
|
4737
|
+
|
|
4738
|
+
// Linear + constant polynomial terms
|
|
4739
|
+
x1.r = dot(sh9.SHAr,normal);
|
|
4740
|
+
x1.g = dot(sh9.SHAg,normal);
|
|
4741
|
+
x1.b = dot(sh9.SHAb,normal);
|
|
4742
|
+
|
|
4743
|
+
// 4 of the quadratic polynomials
|
|
4744
|
+
var vB = normal.xyzz * normal.yzzx;
|
|
4745
|
+
x2.r = dot(sh9.SHBr,vB);
|
|
4746
|
+
x2.g = dot(sh9.SHBg,vB);
|
|
4747
|
+
x2.b = dot(sh9.SHBb,vB);
|
|
4748
|
+
|
|
4749
|
+
// Final quadratic polynomial
|
|
4750
|
+
var vC = normal.x*normal.x - normal.y*normal.y;
|
|
4751
|
+
x3 = sh9.SHC.rgb * vC;
|
|
4752
|
+
return x1 + x2 + x3;
|
|
4753
|
+
}
|
|
4696
4754
|
|
|
4697
|
-
fn clipViewUV(viewRectangle:vec4f,
|
|
4698
|
-
let subViewUV = (fragCoord - viewRectangle.xy) / viewRectangle.zw;
|
|
4699
|
-
return vec2u(subViewUV*size);
|
|
4755
|
+
fn clipViewUV(viewRectangle:vec4f,size:vec2f,fragCoord:vec2f) -> vec2u {
|
|
4756
|
+
let subViewUV = (fragCoord - viewRectangle.xy) / viewRectangle.zw ;
|
|
4757
|
+
return vec2u(subViewUV*size) ;
|
|
4700
4758
|
}
|
|
4701
4759
|
|
|
4702
|
-
fn insideRectangle(point:vec2f, rec:vec4f) -> bool {
|
|
4703
|
-
|
|
4704
|
-
|
|
4705
|
-
|
|
4706
|
-
|
|
4760
|
+
fn insideRectangle( point:vec2f , rec:vec4f) -> bool {
|
|
4761
|
+
if( point.x > rec.x && point.y > rec.y && point.x < (rec.x + rec.z ) && point.y < (rec.y + rec.w ) ){
|
|
4762
|
+
return true ;
|
|
4763
|
+
}
|
|
4764
|
+
return false;
|
|
4707
4765
|
}
|
|
4708
4766
|
|
|
4709
|
-
fn convert_cube_uv_to_xyz(index:i32,
|
|
4710
|
-
|
|
4711
|
-
|
|
4712
|
-
|
|
4713
|
-
|
|
4714
|
-
|
|
4715
|
-
|
|
4716
|
-
|
|
4717
|
-
|
|
4718
|
-
|
|
4719
|
-
|
|
4720
|
-
|
|
4721
|
-
|
|
4722
|
-
|
|
4723
|
-
|
|
4724
|
-
|
|
4725
|
-
|
|
4726
|
-
|
|
4727
|
-
|
|
4728
|
-
|
|
4729
|
-
|
|
4730
|
-
|
|
4731
|
-
|
|
4732
|
-
|
|
4733
|
-
|
|
4734
|
-
|
|
4735
|
-
|
|
4736
|
-
|
|
4737
|
-
|
|
4738
|
-
|
|
4739
|
-
|
|
4740
|
-
|
|
4741
|
-
|
|
4742
|
-
|
|
4743
|
-
|
|
4744
|
-
|
|
4745
|
-
|
|
4746
|
-
|
|
4747
|
-
|
|
4748
|
-
|
|
4749
|
-
|
|
4750
|
-
|
|
4751
|
-
|
|
4752
|
-
|
|
4767
|
+
fn convert_cube_uv_to_xyz( index:i32, u:f32, v:f32) -> vec3f
|
|
4768
|
+
{
|
|
4769
|
+
var ret : vec3f ;
|
|
4770
|
+
// convert range 0 to 1 to -1 to 1
|
|
4771
|
+
var uc = 2.0f * u - 1.0f;
|
|
4772
|
+
var vc = 2.0f * v - 1.0f;
|
|
4773
|
+
switch (index)
|
|
4774
|
+
{
|
|
4775
|
+
case 0: {
|
|
4776
|
+
ret.x = 1.0f;
|
|
4777
|
+
ret.y = vc;
|
|
4778
|
+
ret.z = -uc;
|
|
4779
|
+
break;
|
|
4780
|
+
} // POSITIVE X
|
|
4781
|
+
case 1: {
|
|
4782
|
+
ret.x = -1.0f;
|
|
4783
|
+
ret.y = vc;
|
|
4784
|
+
ret.z = uc;
|
|
4785
|
+
break;
|
|
4786
|
+
} // NEGATIVE X
|
|
4787
|
+
case 2: {
|
|
4788
|
+
ret.x = uc;
|
|
4789
|
+
ret.y = 1.0f;
|
|
4790
|
+
ret.z = -vc;
|
|
4791
|
+
break;
|
|
4792
|
+
} // POSITIVE Y
|
|
4793
|
+
case 3: {
|
|
4794
|
+
ret.x = uc;
|
|
4795
|
+
ret.y = -1.0f;
|
|
4796
|
+
ret.z = vc;
|
|
4797
|
+
break;
|
|
4798
|
+
} // NEGATIVE Y
|
|
4799
|
+
case 4: {
|
|
4800
|
+
ret.x = uc;
|
|
4801
|
+
ret.y = vc;
|
|
4802
|
+
ret.z = 1.0f;
|
|
4803
|
+
break;
|
|
4804
|
+
} // POSITIVE Z
|
|
4805
|
+
case 5: {
|
|
4806
|
+
ret.x = -uc;
|
|
4807
|
+
ret.y = vc;
|
|
4808
|
+
ret.z = -1.0f;
|
|
4809
|
+
break;
|
|
4810
|
+
} // NEGATIVE Z
|
|
4811
|
+
default:{
|
|
4812
|
+
ret = vec3f(0.0);
|
|
4753
4813
|
}
|
|
4754
|
-
|
|
4814
|
+
}
|
|
4815
|
+
return ret ;
|
|
4755
4816
|
}
|
|
4756
4817
|
|
|
4757
|
-
fn convert_cube_uv_to_normal(index:i32, u:f32, v:f32) -> vec3f
|
|
4758
|
-
|
|
4759
|
-
|
|
4760
|
-
|
|
4761
|
-
|
|
4762
|
-
|
|
4763
|
-
|
|
4764
|
-
|
|
4765
|
-
|
|
4766
|
-
|
|
4767
|
-
|
|
4768
|
-
|
|
4769
|
-
|
|
4770
|
-
|
|
4771
|
-
|
|
4772
|
-
|
|
4773
|
-
|
|
4774
|
-
|
|
4775
|
-
|
|
4776
|
-
|
|
4777
|
-
|
|
4778
|
-
|
|
4779
|
-
|
|
4780
|
-
|
|
4781
|
-
|
|
4782
|
-
|
|
4783
|
-
|
|
4784
|
-
|
|
4785
|
-
|
|
4786
|
-
|
|
4787
|
-
|
|
4788
|
-
|
|
4789
|
-
|
|
4790
|
-
|
|
4791
|
-
|
|
4792
|
-
|
|
4793
|
-
|
|
4794
|
-
|
|
4795
|
-
|
|
4796
|
-
|
|
4797
|
-
|
|
4798
|
-
|
|
4799
|
-
|
|
4800
|
-
|
|
4818
|
+
fn convert_cube_uv_to_normal( index:i32, u:f32, v:f32) -> vec3f
|
|
4819
|
+
{
|
|
4820
|
+
var ret : vec3f ;
|
|
4821
|
+
// convert range 0 to 1 to -1 to 1
|
|
4822
|
+
var uc = 2.0f * u - 1.0f;
|
|
4823
|
+
var vc = 2.0f * v - 1.0f;
|
|
4824
|
+
switch (index)
|
|
4825
|
+
{
|
|
4826
|
+
case 0: {
|
|
4827
|
+
ret.x = 1.0f;
|
|
4828
|
+
ret.y = vc;
|
|
4829
|
+
ret.z = -uc;
|
|
4830
|
+
break;
|
|
4831
|
+
} // POSITIVE X
|
|
4832
|
+
case 1: {
|
|
4833
|
+
ret.x = -1.0f;
|
|
4834
|
+
ret.y = vc;
|
|
4835
|
+
ret.z = uc;
|
|
4836
|
+
break;
|
|
4837
|
+
} // NEGATIVE X
|
|
4838
|
+
case 2: {
|
|
4839
|
+
ret.x = uc;
|
|
4840
|
+
ret.y = 1.0f;
|
|
4841
|
+
ret.z = -vc;
|
|
4842
|
+
break;
|
|
4843
|
+
} // POSITIVE Y
|
|
4844
|
+
case 3: {
|
|
4845
|
+
ret.x = uc;
|
|
4846
|
+
ret.y = -1.0f;
|
|
4847
|
+
ret.z = vc;
|
|
4848
|
+
break;
|
|
4849
|
+
} // NEGATIVE Y
|
|
4850
|
+
case 4: {
|
|
4851
|
+
ret.x = uc;
|
|
4852
|
+
ret.y = vc;
|
|
4853
|
+
ret.z = 1.0f;
|
|
4854
|
+
break;
|
|
4855
|
+
} // POSITIVE Z
|
|
4856
|
+
case 5: {
|
|
4857
|
+
ret.x = -uc;
|
|
4858
|
+
ret.y = vc;
|
|
4859
|
+
ret.z = -1.0f;
|
|
4860
|
+
break;
|
|
4861
|
+
} // NEGATIVE Z
|
|
4862
|
+
default:{
|
|
4863
|
+
ret = vec3f(0.0);
|
|
4801
4864
|
}
|
|
4802
|
-
|
|
4865
|
+
}
|
|
4866
|
+
return ret ;
|
|
4803
4867
|
}
|
|
4804
4868
|
|
|
4805
|
-
fn UvToDir(uv1:vec2f) -> vec3f{
|
|
4806
|
-
|
|
4807
|
-
|
|
4808
|
-
|
|
4809
|
-
|
|
4810
|
-
|
|
4811
|
-
|
|
4812
|
-
|
|
4813
|
-
|
|
4814
|
-
|
|
4869
|
+
fn UvToDir( uv1:vec2f) -> vec3f{
|
|
4870
|
+
var uv = uv1 ;
|
|
4871
|
+
uv *= vec2f(2.0*3.1415926535897932384626433832795, 3.1415926535897932384626433832795);
|
|
4872
|
+
var theta = uv.y;
|
|
4873
|
+
var phi = uv.x + 3.1415926535897932384626433832795 * 0.5 ;
|
|
4874
|
+
// var phi = uv.x ;
|
|
4875
|
+
var dir = vec3f(0.0,0.0,0.0);
|
|
4876
|
+
dir.x = sin(phi) * sin(theta) * -1;
|
|
4877
|
+
dir.y = cos(theta) * -1;
|
|
4878
|
+
dir.z = cos(phi) * sin(theta);
|
|
4879
|
+
return dir;
|
|
4815
4880
|
}
|
|
4816
4881
|
|
|
4817
|
-
fn DirTOUV(a_coords:vec3f) ->
|
|
4818
|
-
|
|
4819
|
-
|
|
4820
|
-
|
|
4821
|
-
|
|
4822
|
-
|
|
4882
|
+
fn DirTOUV( a_coords:vec3f ) ->vec2f
|
|
4883
|
+
{
|
|
4884
|
+
var coords = normalize(a_coords);
|
|
4885
|
+
var lon = atan2(coords.z, coords.x);
|
|
4886
|
+
var lat = acos(coords.y);
|
|
4887
|
+
var sphereCoords = vec2f(lon, lat) * (1.0 / 3.1415926535897932384626433832795);
|
|
4888
|
+
return vec2f(sphereCoords.x * 0.5 + 0.5 , 1.0 - sphereCoords.y);
|
|
4823
4889
|
}
|
|
4824
|
-
|
|
4890
|
+
|
|
4891
|
+
`
|
|
4892
|
+
);
|
|
4825
4893
|
|
|
4826
4894
|
let PhysicMaterialUniform_frag = `
|
|
4827
4895
|
#if USE_CUSTOMUNIFORM
|
|
@@ -5172,7 +5240,9 @@ var<uniform> materialUniform: MaterialUniform;
|
|
|
5172
5240
|
}
|
|
5173
5241
|
`;
|
|
5174
5242
|
|
|
5175
|
-
let Inline_vert =
|
|
5243
|
+
let Inline_vert = (
|
|
5244
|
+
/*wgsl*/
|
|
5245
|
+
`
|
|
5176
5246
|
#include "MathShader"
|
|
5177
5247
|
#include "FastMathShader"
|
|
5178
5248
|
#include "InstanceUniform"
|
|
@@ -5193,35 +5263,35 @@ var<uniform> materialUniform: MaterialUniform;
|
|
|
5193
5263
|
}
|
|
5194
5264
|
|
|
5195
5265
|
fn TIME_frame() -> f32 {
|
|
5196
|
-
return globalUniform.frame;
|
|
5266
|
+
return globalUniform.frame ;
|
|
5197
5267
|
}
|
|
5198
5268
|
|
|
5199
5269
|
fn TIME_time() -> f32 {
|
|
5200
|
-
return globalUniform.time;
|
|
5270
|
+
return globalUniform.time ;
|
|
5201
5271
|
}
|
|
5202
5272
|
|
|
5203
5273
|
fn TIME_delta() -> f32 {
|
|
5204
|
-
return globalUniform.delta;
|
|
5274
|
+
return globalUniform.delta ;
|
|
5205
5275
|
}
|
|
5206
5276
|
|
|
5207
5277
|
fn MOUSE() -> vec2f {
|
|
5208
|
-
return vec2f( globalUniform.mouseX, globalUniform.mouseY);
|
|
5278
|
+
return vec2f( globalUniform.mouseX, globalUniform.mouseY) ;
|
|
5209
5279
|
}
|
|
5210
5280
|
|
|
5211
5281
|
fn SCREEN() -> vec2f {
|
|
5212
|
-
return vec2f( globalUniform.windowWidth, globalUniform.windowHeight);
|
|
5282
|
+
return vec2f( globalUniform.windowWidth, globalUniform.windowHeight) ;
|
|
5213
5283
|
}
|
|
5214
5284
|
|
|
5215
5285
|
fn ProjectionParams() -> vec3f {
|
|
5216
|
-
return vec3f( globalUniform.near, globalUniform.far,1.0 + 1.0 / globalUniform.far);
|
|
5286
|
+
return vec3f( globalUniform.near, globalUniform.far,1.0 + 1.0 / globalUniform.far) ;
|
|
5217
5287
|
}
|
|
5218
5288
|
|
|
5219
5289
|
fn vertex_inline(vertex:VertexAttributes){
|
|
5220
|
-
ORI_MATRIX_P = globalUniform.projMat;
|
|
5221
|
-
ORI_MATRIX_V = globalUniform.viewMat;
|
|
5222
|
-
ORI_MATRIX_PV = ORI_MATRIX_P * ORI_MATRIX_V;
|
|
5223
|
-
ORI_MATRIX_PVInv = globalUniform.pvMatrixInv;
|
|
5224
|
-
ORI_CAMERAMATRIX = globalUniform.cameraWorldMatrix;
|
|
5290
|
+
ORI_MATRIX_P = globalUniform.projMat ;
|
|
5291
|
+
ORI_MATRIX_V = globalUniform.viewMat ;
|
|
5292
|
+
ORI_MATRIX_PV = ORI_MATRIX_P * ORI_MATRIX_V ;
|
|
5293
|
+
ORI_MATRIX_PVInv = globalUniform.pvMatrixInv ;
|
|
5294
|
+
ORI_CAMERAMATRIX = globalUniform.cameraWorldMatrix ;
|
|
5225
5295
|
|
|
5226
5296
|
ORI_MATRIX_M = models.matrix[u32(vertex.index)];
|
|
5227
5297
|
|
|
@@ -5230,7 +5300,8 @@ var<uniform> materialUniform: MaterialUniform;
|
|
|
5230
5300
|
ORI_MATRIX_M = models.matrix[modelID];
|
|
5231
5301
|
#endif
|
|
5232
5302
|
}
|
|
5233
|
-
|
|
5303
|
+
`
|
|
5304
|
+
);
|
|
5234
5305
|
|
|
5235
5306
|
let Common_frag = `
|
|
5236
5307
|
#include "GlobalUniform"
|
|
@@ -5295,7 +5366,9 @@ var<uniform> materialUniform: MaterialUniform;
|
|
|
5295
5366
|
}
|
|
5296
5367
|
`;
|
|
5297
5368
|
|
|
5298
|
-
let Common_vert =
|
|
5369
|
+
let Common_vert = (
|
|
5370
|
+
/*wgsl*/
|
|
5371
|
+
`
|
|
5299
5372
|
#include "WorldMatrixUniform"
|
|
5300
5373
|
#include "VertexAttributes_vert"
|
|
5301
5374
|
#include "GlobalUniform"
|
|
@@ -5304,9 +5377,10 @@ var<uniform> materialUniform: MaterialUniform;
|
|
|
5304
5377
|
fn VertMain( vertex:VertexAttributes ) -> VertexOutput {
|
|
5305
5378
|
vertex_inline(vertex);
|
|
5306
5379
|
vert(vertex);
|
|
5307
|
-
return ORI_VertexOut;
|
|
5380
|
+
return ORI_VertexOut ;
|
|
5308
5381
|
}
|
|
5309
|
-
|
|
5382
|
+
`
|
|
5383
|
+
);
|
|
5310
5384
|
|
|
5311
5385
|
let BrdfLut_frag = (
|
|
5312
5386
|
/*wgsl*/
|
|
@@ -5336,103 +5410,122 @@ var<uniform> materialUniform: MaterialUniform;
|
|
|
5336
5410
|
static Cascades = 4;
|
|
5337
5411
|
}
|
|
5338
5412
|
|
|
5339
|
-
let GlobalUniform =
|
|
5413
|
+
let GlobalUniform = (
|
|
5414
|
+
/*wgsl*/
|
|
5415
|
+
`
|
|
5340
5416
|
|
|
5341
|
-
|
|
5417
|
+
#include "MathShader"
|
|
5342
5418
|
|
|
5343
|
-
|
|
5344
|
-
|
|
5345
|
-
projMat: mat4x4<f32>,
|
|
5346
|
-
viewMat: mat4x4<f32>,
|
|
5347
|
-
cameraWorldMatrix: mat4x4<f32>,
|
|
5348
|
-
pvMatrixInv: mat4x4<f32>,
|
|
5349
|
-
viewToWorld: mar4x4<f32>,
|
|
5350
|
-
shadowMatrix: array<mat4x4<f32>, 8u>,
|
|
5351
|
-
csmShadowBias: vec4<f32>,
|
|
5352
|
-
csmMatrix: array<mat4x4<f32>,${CSM.Cascades}>,
|
|
5353
|
-
shadowLights:mat4x4<f32>,
|
|
5354
|
-
reflectionProbeSize:f32,
|
|
5355
|
-
reflectionProbeMaxCount:f32,
|
|
5356
|
-
reflectionMapWidth:f32,
|
|
5357
|
-
reflectionMapHeight:f32,
|
|
5358
|
-
reflectionCount:f32,
|
|
5359
|
-
test2:f32,
|
|
5360
|
-
test3:f32,
|
|
5361
|
-
test4:f32,
|
|
5362
|
-
CameraPos: vec3<f32>,
|
|
5363
|
-
frame: f32,
|
|
5364
|
-
SH: array<vec4f,9u>,
|
|
5365
|
-
time: f32,
|
|
5366
|
-
delta: f32,
|
|
5367
|
-
shadowBias: f32,
|
|
5368
|
-
skyExposure: f32,
|
|
5369
|
-
renderPassState: f32,
|
|
5370
|
-
quadScale: f32,
|
|
5371
|
-
hdrExposure: f32,
|
|
5372
|
-
renderState_left: i32,
|
|
5373
|
-
renderState_right: i32,
|
|
5374
|
-
renderState_split: f32,
|
|
5375
|
-
mouseX: f32,
|
|
5376
|
-
mouseY: f32,
|
|
5377
|
-
windowWidth: f32,
|
|
5378
|
-
windowHeight: f32,
|
|
5379
|
-
near: f32,
|
|
5380
|
-
far: f32,
|
|
5381
|
-
pointShadowBias: f32,
|
|
5382
|
-
shadowMapSize: f32,
|
|
5383
|
-
shadowSoft: f32,
|
|
5384
|
-
enableCSM:f32,
|
|
5385
|
-
csmMargin:f32,
|
|
5386
|
-
nDirShadowStart: i32,
|
|
5387
|
-
nDirShadowEnd: i32,
|
|
5388
|
-
nPointShadowStart: i32,
|
|
5389
|
-
nPointShadowEnd: i32,
|
|
5390
|
-
cameraForward:vec3f,
|
|
5391
|
-
frustumPlanes: array<vec4f, 6u>,
|
|
5392
|
-
};
|
|
5419
|
+
struct GlobalUniform {
|
|
5393
5420
|
|
|
5394
|
-
|
|
5395
|
-
|
|
5421
|
+
projMat: mat4x4<f32>,
|
|
5422
|
+
viewMat: mat4x4<f32>,
|
|
5423
|
+
cameraWorldMatrix: mat4x4<f32>,
|
|
5424
|
+
pvMatrixInv : mat4x4<f32>,
|
|
5425
|
+
viewToWorld : mat4x4<f32>,
|
|
5426
|
+
shadowMatrix: array<mat4x4<f32>, 8u>,
|
|
5396
5427
|
|
|
5397
|
-
|
|
5398
|
-
let pvMatrixInv = globalUniform.pvMatrixInv;
|
|
5399
|
-
let clip = vec4<f32>((uv * 2.0 - 1.0), z, 1.0);
|
|
5400
|
-
var viewPos = pvMatrixInv * clip;
|
|
5401
|
-
return viewPos.xyz / viewPos.w;
|
|
5402
|
-
}
|
|
5428
|
+
csmShadowBias: vec4<f32>,
|
|
5403
5429
|
|
|
5404
|
-
|
|
5405
|
-
|
|
5406
|
-
|
|
5407
|
-
var worldPos = viewToWorld * clip;
|
|
5408
|
-
worldPos = worldPos / worldPos.w;
|
|
5409
|
-
return worldPos.xyz;
|
|
5410
|
-
}
|
|
5430
|
+
csmMatrix: array<mat4x4<f32>,${CSM.Cascades}>,
|
|
5431
|
+
|
|
5432
|
+
shadowLights:mat4x4<f32>,
|
|
5411
5433
|
|
|
5412
|
-
|
|
5413
|
-
|
|
5414
|
-
|
|
5415
|
-
|
|
5416
|
-
let nMat = mat3x3<f32>(finalMatrix[0].xyz,finalMatrix[1].xyz,fianlMatrix[2].xyz);
|
|
5417
|
-
NORMALMATRIX = transpose(inverse(nMat));
|
|
5418
|
-
}
|
|
5434
|
+
reflectionProbeSize:f32,
|
|
5435
|
+
reflectionProbeMaxCount:f32,
|
|
5436
|
+
reflectionMapWidth:f32,
|
|
5437
|
+
reflectionMapHeight:f32,
|
|
5419
5438
|
|
|
5420
|
-
|
|
5421
|
-
|
|
5422
|
-
|
|
5423
|
-
|
|
5424
|
-
}
|
|
5439
|
+
reflectionCount:f32,
|
|
5440
|
+
test2:f32,
|
|
5441
|
+
test3:f32,
|
|
5442
|
+
test4:f32,
|
|
5425
5443
|
|
|
5426
|
-
|
|
5427
|
-
|
|
5428
|
-
|
|
5429
|
-
}
|
|
5444
|
+
CameraPos: vec3<f32>,
|
|
5445
|
+
frame: f32,
|
|
5446
|
+
SH: array<vec4f, 9u> ,
|
|
5430
5447
|
|
|
5431
|
-
|
|
5432
|
-
|
|
5433
|
-
|
|
5434
|
-
|
|
5435
|
-
|
|
5448
|
+
time: f32,
|
|
5449
|
+
delta: f32,
|
|
5450
|
+
shadowBias: f32,
|
|
5451
|
+
skyExposure: f32,
|
|
5452
|
+
|
|
5453
|
+
renderPassState:f32,
|
|
5454
|
+
quadScale: f32,
|
|
5455
|
+
hdrExposure: f32,
|
|
5456
|
+
renderState_left: i32,
|
|
5457
|
+
|
|
5458
|
+
renderState_right: i32,
|
|
5459
|
+
renderState_split: f32,
|
|
5460
|
+
mouseX: f32,
|
|
5461
|
+
mouseY: f32,
|
|
5462
|
+
|
|
5463
|
+
windowWidth: f32,
|
|
5464
|
+
windowHeight: f32,
|
|
5465
|
+
near: f32,
|
|
5466
|
+
far: f32,
|
|
5467
|
+
|
|
5468
|
+
pointShadowBias: f32,
|
|
5469
|
+
shadowMapSize: f32,
|
|
5470
|
+
shadowSoft: f32,
|
|
5471
|
+
enableCSM:f32,
|
|
5472
|
+
|
|
5473
|
+
|
|
5474
|
+
csmMargin:f32,
|
|
5475
|
+
nDirShadowStart: i32,
|
|
5476
|
+
nDirShadowEnd: i32,
|
|
5477
|
+
nPointShadowStart: i32,
|
|
5478
|
+
|
|
5479
|
+
nPointShadowEnd: i32,
|
|
5480
|
+
cameraForward:vec3f,
|
|
5481
|
+
|
|
5482
|
+
frustumPlanes: array<vec4f, 6u>,
|
|
5483
|
+
|
|
5484
|
+
};
|
|
5485
|
+
|
|
5486
|
+
@group(0) @binding(0)
|
|
5487
|
+
var<uniform> globalUniform: GlobalUniform;
|
|
5488
|
+
|
|
5489
|
+
fn getViewPosition(z:f32,uv:vec2f) -> vec3f {
|
|
5490
|
+
let pvMatrixInv = globalUniform.pvMatrixInv ;
|
|
5491
|
+
let clip = vec4<f32>((uv * 2.0 - 1.0) , z , 1.0);
|
|
5492
|
+
var viewPos = pvMatrixInv * clip ;
|
|
5493
|
+
return viewPos.xyz / viewPos.w ;
|
|
5494
|
+
}
|
|
5495
|
+
|
|
5496
|
+
fn getWorldPosition(z:f32,uv:vec2f) -> vec3f {
|
|
5497
|
+
let viewToWorld = globalUniform.viewToWorld ;
|
|
5498
|
+
let clip = vec4<f32>((uv * 2.0 - 1.0) , z , 1.0);
|
|
5499
|
+
var worldPos = viewToWorld * clip ;
|
|
5500
|
+
worldPos = worldPos / worldPos.w ;
|
|
5501
|
+
return worldPos.xyz ;
|
|
5502
|
+
}
|
|
5503
|
+
|
|
5504
|
+
var<private> NORMALMATRIX_INV : mat3x3<f32> ;
|
|
5505
|
+
var<private> NORMALMATRIX : mat3x3<f32> ;
|
|
5506
|
+
fn useNormalMatrix() {
|
|
5507
|
+
let finalMatrix = globalUniform.projMat * globalUniform.viewMat ;
|
|
5508
|
+
let nMat = mat3x3<f32>(finalMatrix[0].xyz,finalMatrix[1].xyz,finalMatrix[2].xyz) ;
|
|
5509
|
+
NORMALMATRIX = transpose(inverse( nMat ));
|
|
5510
|
+
}
|
|
5511
|
+
|
|
5512
|
+
fn useNormalMatrixInv() {
|
|
5513
|
+
let finalMatrix = globalUniform.projMat * globalUniform.viewMat ;
|
|
5514
|
+
let nMat = mat3x3<f32>(finalMatrix[0].xyz,finalMatrix[1].xyz,finalMatrix[2].xyz) ;
|
|
5515
|
+
NORMALMATRIX_INV = transpose(( nMat ));
|
|
5516
|
+
}
|
|
5517
|
+
|
|
5518
|
+
fn getWorldNormal(viewNormal:vec3f) -> vec3f {
|
|
5519
|
+
var worldNormal = NORMALMATRIX_INV * viewNormal ;
|
|
5520
|
+
return normalize(worldNormal.xyz);
|
|
5521
|
+
}
|
|
5522
|
+
|
|
5523
|
+
fn getViewNormal(worldNormal:vec3f) -> vec3f {
|
|
5524
|
+
var viewNormal = globalUniform.viewMat * vec4f(worldNormal,0.0) ;
|
|
5525
|
+
return normalize(viewNormal.xyz);
|
|
5526
|
+
}
|
|
5527
|
+
`
|
|
5528
|
+
);
|
|
5436
5529
|
|
|
5437
5530
|
let InstanceUniform = `
|
|
5438
5531
|
#if USE_INSTANCEDRAW
|
|
@@ -5444,14 +5537,17 @@ var<uniform> materialUniform: MaterialUniform;
|
|
|
5444
5537
|
#endif
|
|
5445
5538
|
`;
|
|
5446
5539
|
|
|
5447
|
-
let WorldMatrixUniform =
|
|
5540
|
+
let WorldMatrixUniform = (
|
|
5541
|
+
/*wgsl*/
|
|
5542
|
+
`
|
|
5448
5543
|
struct Uniforms {
|
|
5449
|
-
matrix: array<mat4x4<f32>>
|
|
5544
|
+
matrix : array<mat4x4<f32>>
|
|
5450
5545
|
};
|
|
5451
5546
|
|
|
5452
|
-
@group(0) @
|
|
5453
|
-
var<storage, read> models: Uniforms;
|
|
5454
|
-
|
|
5547
|
+
@group(0) @binding(1)
|
|
5548
|
+
var<storage, read> models : Uniforms;
|
|
5549
|
+
`
|
|
5550
|
+
);
|
|
5455
5551
|
|
|
5456
5552
|
let FastMathShader = `
|
|
5457
5553
|
fn pow2(x:f32) -> f32 {
|
|
@@ -5522,7 +5618,7 @@ var<uniform> materialUniform: MaterialUniform;
|
|
|
5522
5618
|
return res ;
|
|
5523
5619
|
}else{
|
|
5524
5620
|
return PI - res ;
|
|
5525
|
-
}
|
|
5621
|
+
};
|
|
5526
5622
|
}
|
|
5527
5623
|
|
|
5528
5624
|
fn acosFast4( inX : f32 )-> f32
|
|
@@ -5541,12 +5637,15 @@ var<uniform> materialUniform: MaterialUniform;
|
|
|
5541
5637
|
return s ;
|
|
5542
5638
|
}else{
|
|
5543
5639
|
return PI - s ;
|
|
5544
|
-
}
|
|
5640
|
+
};
|
|
5545
5641
|
}
|
|
5546
5642
|
`;
|
|
5547
5643
|
|
|
5548
|
-
let NormalMap_frag =
|
|
5549
|
-
|
|
5644
|
+
let NormalMap_frag = (
|
|
5645
|
+
/*wgsl*/
|
|
5646
|
+
`
|
|
5647
|
+
|
|
5648
|
+
fn perturbNormal( worldPos:vec3<f32>, surf_norm:vec3<f32>, mapN:vec3<f32> , normalScale:f32 , face:f32 ) -> vec3<f32> {
|
|
5550
5649
|
var q0 = vec3<f32>( dpdx( worldPos.x ), dpdx( worldPos.y ), dpdx( worldPos.z ) );
|
|
5551
5650
|
var q1 = vec3<f32>( dpdy( worldPos.x ), dpdy( worldPos.y ), dpdy( worldPos.z ) );
|
|
5552
5651
|
var st0 = dpdx( ORI_VertexVarying.fragUV0.xy );
|
|
@@ -5554,12 +5653,17 @@ var<uniform> materialUniform: MaterialUniform;
|
|
|
5554
5653
|
var N = surf_norm;
|
|
5555
5654
|
var q0perp = cross( N, q0 );
|
|
5556
5655
|
var q1perp = cross( q1, N );
|
|
5656
|
+
|
|
5657
|
+
var T = q1perp * st0.x + q0perp * st1.x;
|
|
5658
|
+
|
|
5557
5659
|
var B = q1perp * st0.y + q0perp * st1.y;
|
|
5660
|
+
|
|
5558
5661
|
var det = max( dot( T, T ), dot( B, B ) );
|
|
5559
5662
|
var scale = 1.0 ;
|
|
5560
5663
|
if( det != 0.0 ){
|
|
5561
5664
|
scale = inverseSqrt( det ) ;
|
|
5562
5665
|
}
|
|
5666
|
+
|
|
5563
5667
|
scale *= normalScale;
|
|
5564
5668
|
return normalize( (T * ( -mapN.x * scale ) + B * ( mapN.y * scale ) + N * mapN.z ) * face ) ;
|
|
5565
5669
|
}
|
|
@@ -5600,7 +5704,8 @@ var<uniform> materialUniform: MaterialUniform;
|
|
|
5600
5704
|
var outN = perturbNormal(ORI_VertexVarying.vWorldPos.xyz,ORI_VertexVarying.vWorldNormal,mapNormal,1.0,face) ;
|
|
5601
5705
|
return outN ;
|
|
5602
5706
|
}
|
|
5603
|
-
|
|
5707
|
+
`
|
|
5708
|
+
);
|
|
5604
5709
|
|
|
5605
5710
|
let FragmentVarying = `
|
|
5606
5711
|
struct FragmentVarying {
|
|
@@ -5694,7 +5799,7 @@ var<uniform> materialUniform: MaterialUniform;
|
|
|
5694
5799
|
return textureSampleLevel(iesTextureArrayMap, iesTextureArrayMapSampler, vec2<f32>(normAngle , normTangentAngle) , i32(light.ies) , 0.0).r ;
|
|
5695
5800
|
}else{
|
|
5696
5801
|
return 1.0;
|
|
5697
|
-
}
|
|
5802
|
+
};
|
|
5698
5803
|
#else
|
|
5699
5804
|
return 1.0;
|
|
5700
5805
|
#endif
|
|
@@ -5762,12 +5867,12 @@ var<uniform> materialUniform: MaterialUniform;
|
|
|
5762
5867
|
weight *= 1.0 - totalWeight;
|
|
5763
5868
|
visibility += csmShadowResult.x * weight;
|
|
5764
5869
|
totalWeight += weight;
|
|
5765
|
-
}
|
|
5870
|
+
};
|
|
5766
5871
|
|
|
5767
5872
|
if(validCount >= 2 || totalWeight >= 0.99){
|
|
5768
5873
|
csmLevel = csm;
|
|
5769
5874
|
break;
|
|
5770
|
-
}
|
|
5875
|
+
};
|
|
5771
5876
|
}
|
|
5772
5877
|
}
|
|
5773
5878
|
|
|
@@ -5776,7 +5881,7 @@ var<uniform> materialUniform: MaterialUniform;
|
|
|
5776
5881
|
visibility = 1.0;
|
|
5777
5882
|
}else{
|
|
5778
5883
|
visibility = visibility / totalWeight ;
|
|
5779
|
-
}
|
|
5884
|
+
};
|
|
5780
5885
|
} else {
|
|
5781
5886
|
shadowMatrix = globalUniform.shadowMatrix[shadowIndex];
|
|
5782
5887
|
if(enableCSM) {
|
|
@@ -5825,7 +5930,7 @@ var<uniform> materialUniform: MaterialUniform;
|
|
|
5825
5930
|
totalWeight += weight;
|
|
5826
5931
|
}else{
|
|
5827
5932
|
totalWeight += 1.0;
|
|
5828
|
-
}
|
|
5933
|
+
};
|
|
5829
5934
|
}
|
|
5830
5935
|
}
|
|
5831
5936
|
visibility /= totalWeight;
|
|
@@ -6638,7 +6743,9 @@ var<uniform> materialUniform: MaterialUniform;
|
|
|
6638
6743
|
}
|
|
6639
6744
|
`;
|
|
6640
6745
|
|
|
6641
|
-
let BxDF_frag =
|
|
6746
|
+
let BxDF_frag = (
|
|
6747
|
+
/*wgsl*/
|
|
6748
|
+
`
|
|
6642
6749
|
#include "Clearcoat_frag"
|
|
6643
6750
|
#include "BRDF_frag"
|
|
6644
6751
|
#include "MathShader"
|
|
@@ -6656,7 +6763,9 @@ var<uniform> materialUniform: MaterialUniform;
|
|
|
6656
6763
|
#include "BxdfDebug_frag"
|
|
6657
6764
|
#include "ReflectionCG"
|
|
6658
6765
|
|
|
6766
|
+
//ORI_ShadingInput
|
|
6659
6767
|
fn initFragData() {
|
|
6768
|
+
// fragData.Albedo = vec4f(gammaToLiner(ORI_ShadingInput.BaseColor.rgb),ORI_ShadingInput.BaseColor.w) ;
|
|
6660
6769
|
fragData.Albedo = vec4f((ORI_ShadingInput.BaseColor.rgb),ORI_ShadingInput.BaseColor.w) ;
|
|
6661
6770
|
fragData.Ao = clamp( pow(ORI_ShadingInput.AmbientOcclusion,materialUniform.ao) , 0.0 , 1.0 ) ;
|
|
6662
6771
|
fragData.Roughness = clamp((ORI_ShadingInput.Roughness),0.0001,1.0) * 1.85 ;
|
|
@@ -6672,13 +6781,19 @@ var<uniform> materialUniform: MaterialUniform;
|
|
|
6672
6781
|
|
|
6673
6782
|
let R = 2.0 * dot( fragData.V , fragData.N ) * fragData.N - fragData.V ;
|
|
6674
6783
|
fragData.R = R ;//reflect( fragData.V , fragData.N ) ;
|
|
6784
|
+
|
|
6675
6785
|
fragData.NoV = saturate(dot(fragData.N, fragData.V)) ;
|
|
6786
|
+
|
|
6676
6787
|
fragData.F0 = mix(vec3<f32>(0.04), fragData.Albedo.rgb , fragData.Metallic);
|
|
6788
|
+
// fragData.F0 = gammaToLiner(fragData.F0);
|
|
6789
|
+
|
|
6677
6790
|
fragData.F = computeFresnelSchlick(fragData.NoV, fragData.F0);
|
|
6678
6791
|
fragData.KD = vec3<f32>(fragData.F) ;
|
|
6679
6792
|
fragData.KS = vec3<f32>(0.0) ;
|
|
6793
|
+
|
|
6680
6794
|
fragData.Indirect = 0.0 ;
|
|
6681
6795
|
fragData.Reflectance = 1.0 ;
|
|
6796
|
+
|
|
6682
6797
|
fragData.ClearcoatRoughness = materialUniform.clearcoatRoughnessFactor ;
|
|
6683
6798
|
fragData.ClearcoatIor = materialUniform.clearcoatIor ;
|
|
6684
6799
|
fragData.ClearcoatFactor = materialUniform.clearcoatFactor;
|
|
@@ -6691,7 +6806,9 @@ var<uniform> materialUniform: MaterialUniform;
|
|
|
6691
6806
|
|
|
6692
6807
|
fn BxDFShading(){
|
|
6693
6808
|
initFragData();
|
|
6809
|
+
|
|
6694
6810
|
let sunLight = lightBuffer[0] ;
|
|
6811
|
+
|
|
6695
6812
|
var irradiance = vec3<f32>(0.0) ;
|
|
6696
6813
|
#if USEGI
|
|
6697
6814
|
irradiance += getIrradiance().rgb ;
|
|
@@ -6752,6 +6869,7 @@ var<uniform> materialUniform: MaterialUniform;
|
|
|
6752
6869
|
}
|
|
6753
6870
|
|
|
6754
6871
|
//***********indirect-ambient part*********
|
|
6872
|
+
// var kdLast = (1.0 - 0.04) * (1.0 - fragData.Metallic);
|
|
6755
6873
|
var iblDiffuseResult : vec3f ;
|
|
6756
6874
|
|
|
6757
6875
|
let MAX_LOD = i32(textureNumLevels(prefilterMap)) ;
|
|
@@ -6765,7 +6883,8 @@ var<uniform> materialUniform: MaterialUniform;
|
|
|
6765
6883
|
indirectionSpec *= globalUniform.hdrExposure ;
|
|
6766
6884
|
#endif
|
|
6767
6885
|
|
|
6768
|
-
var color = vec3f(iblDiffuseResult + indirectionSpec + specColor);
|
|
6886
|
+
var color = vec3f(iblDiffuseResult + indirectionSpec + specColor) ;
|
|
6887
|
+
// var color = vec3f(indirectionDiffuse ) ;
|
|
6769
6888
|
|
|
6770
6889
|
var clearCoatColor = vec3<f32>(0.0);
|
|
6771
6890
|
#if USE_CLEARCOAT
|
|
@@ -6790,6 +6909,9 @@ var<uniform> materialUniform: MaterialUniform;
|
|
|
6790
6909
|
break;
|
|
6791
6910
|
}
|
|
6792
6911
|
case SpotLightType: {
|
|
6912
|
+
// var lightColor = light.lightColor.rgb ;
|
|
6913
|
+
// var att = pointAtt(ORI_VertexVarying.vWorldPos.xyz, light);
|
|
6914
|
+
// clearCoatColor += ClearCoat_BRDF( color , materialUniform.clearcoatColor.rgb , 1.5 , clearNormal , light.direction , fragData.V , clearcoatRoughness , lightColor, att );
|
|
6793
6915
|
break;
|
|
6794
6916
|
}
|
|
6795
6917
|
default: {
|
|
@@ -6828,7 +6950,9 @@ var<uniform> materialUniform: MaterialUniform;
|
|
|
6828
6950
|
ORI_FragmentOutput.color = viewColor ;
|
|
6829
6951
|
#endif
|
|
6830
6952
|
}
|
|
6831
|
-
|
|
6953
|
+
|
|
6954
|
+
`
|
|
6955
|
+
);
|
|
6832
6956
|
|
|
6833
6957
|
let BsDF_frag = `
|
|
6834
6958
|
#include "Clearcoat_frag"
|
|
@@ -7028,7 +7152,9 @@ var<uniform> materialUniform: MaterialUniform;
|
|
|
7028
7152
|
}
|
|
7029
7153
|
`;
|
|
7030
7154
|
|
|
7031
|
-
let PBRLItShader =
|
|
7155
|
+
let PBRLItShader = (
|
|
7156
|
+
/*wgsl*/
|
|
7157
|
+
`
|
|
7032
7158
|
#include "Common_vert"
|
|
7033
7159
|
#include "Common_frag"
|
|
7034
7160
|
#include "BxDF_frag"
|
|
@@ -7043,10 +7169,10 @@ var<uniform> materialUniform: MaterialUniform;
|
|
|
7043
7169
|
@group(1) @binding(auto)
|
|
7044
7170
|
var normalMap: texture_2d<f32>;
|
|
7045
7171
|
|
|
7046
|
-
|
|
7047
|
-
|
|
7048
|
-
|
|
7049
|
-
|
|
7172
|
+
@group(1) @binding(auto)
|
|
7173
|
+
var maskMapSampler: sampler;
|
|
7174
|
+
@group(1) @binding(auto)
|
|
7175
|
+
var maskMap: texture_2d<f32>;
|
|
7050
7176
|
|
|
7051
7177
|
#if USE_AOTEX
|
|
7052
7178
|
@group(1) @binding(auto)
|
|
@@ -7060,38 +7186,39 @@ var<uniform> materialUniform: MaterialUniform;
|
|
|
7060
7186
|
@group(1) @binding(auto)
|
|
7061
7187
|
var emissiveMap: texture_2d<f32>;
|
|
7062
7188
|
|
|
7063
|
-
var<private> debugOut: vec4f = vec4f(0.0);
|
|
7189
|
+
var<private> debugOut : vec4f = vec4f(0.0) ;
|
|
7064
7190
|
|
|
7065
7191
|
fn vert(inputData:VertexAttributes) -> VertexOutput {
|
|
7066
|
-
ORI_Vert(inputData);
|
|
7067
|
-
return
|
|
7192
|
+
ORI_Vert(inputData) ;
|
|
7193
|
+
return ORI_VertexOut ;
|
|
7068
7194
|
}
|
|
7069
7195
|
|
|
7070
7196
|
fn frag(){
|
|
7197
|
+
|
|
7071
7198
|
let baseMapOffsetSize = materialUniform.baseMapOffsetSize;
|
|
7072
|
-
var uv = transformUV(ORI_VertexVarying.fragUV0,
|
|
7199
|
+
var uv = transformUV(ORI_VertexVarying.fragUV0,baseMapOffsetSize) ;
|
|
7073
7200
|
|
|
7074
7201
|
#if USE_SRGB_ALBEDO
|
|
7075
|
-
ORI_ShadingInput.BaseColor = textureSample(baseMap, baseMapSampler, uv);
|
|
7076
|
-
ORI_ShadingInput.BaseColor = vec4<f32>(ORI_ShadingInput.BaseColor * materialUniform.baseColor.rgb, ORI_ShadingInput.BaseColor.w * materialUniform.baseColor.a);
|
|
7202
|
+
ORI_ShadingInput.BaseColor = textureSample(baseMap, baseMapSampler, uv ) ;
|
|
7203
|
+
ORI_ShadingInput.BaseColor = vec4<f32>( ORI_ShadingInput.BaseColor * materialUniform.baseColor.rgb, ORI_ShadingInput.BaseColor.w * materialUniform.baseColor.a) ;
|
|
7077
7204
|
#else
|
|
7078
|
-
ORI_ShadingInput.BaseColor =
|
|
7079
|
-
ORI_ShadingInput.BaseColor = vec4f(gammaToLiner(ORI_ShadingInput.BaseColor.rgb),
|
|
7080
|
-
ORI_ShadingInput.BaseColor *= vec4f(materialUniform.baseColor.rgba);
|
|
7205
|
+
ORI_ShadingInput.BaseColor = textureSample(baseMap, baseMapSampler, uv ) ;
|
|
7206
|
+
ORI_ShadingInput.BaseColor = vec4f(gammaToLiner(ORI_ShadingInput.BaseColor.rgb),ORI_ShadingInput.BaseColor.a) ;
|
|
7207
|
+
ORI_ShadingInput.BaseColor *= vec4f(materialUniform.baseColor.rgba) ;
|
|
7081
7208
|
#endif
|
|
7082
7209
|
|
|
7083
7210
|
let roughnessMapOffsetSize = materialUniform.roughnessMapOffsetSize;
|
|
7084
|
-
var uv4 = transformUV(ORI_VertexVarying.fragUV0,
|
|
7085
|
-
var maskTex = textureSample(maskMap, maskMapSampler, uv4);
|
|
7086
|
-
|
|
7211
|
+
var uv4 = transformUV(ORI_VertexVarying.fragUV0,roughnessMapOffsetSize);
|
|
7212
|
+
var maskTex = textureSample(maskMap, maskMapSampler, uv4 );
|
|
7213
|
+
|
|
7087
7214
|
#if USE_ALPHA_A
|
|
7088
|
-
ORI_ShadingInput.BaseColor.a =
|
|
7215
|
+
ORI_ShadingInput.BaseColor.a = ORI_ShadingInput.BaseColor.a * (maskTex.a) ;
|
|
7089
7216
|
#endif
|
|
7090
7217
|
|
|
7091
|
-
#if USE_ALPHACUT
|
|
7218
|
+
#if USE_ALPHACUT
|
|
7092
7219
|
if( (ORI_ShadingInput.BaseColor.a - materialUniform.alphaCutoff) <= 0.0 ){
|
|
7093
7220
|
ORI_FragmentOutput.color = vec4<f32>(0.0,0.0,0.0,1.0);
|
|
7094
|
-
|
|
7221
|
+
|
|
7095
7222
|
#if USEGBUFFER
|
|
7096
7223
|
ORI_FragmentOutput.worldPos = vec4<f32>(0.0,0.0,0.0,1.0);
|
|
7097
7224
|
ORI_FragmentOutput.worldNormal = vec4<f32>(0.0,0.0,0.0,1.0);
|
|
@@ -7104,7 +7231,7 @@ var<uniform> materialUniform: MaterialUniform;
|
|
|
7104
7231
|
|
|
7105
7232
|
useShadow();
|
|
7106
7233
|
|
|
7107
|
-
var roughnessChannel:
|
|
7234
|
+
var roughnessChannel:f32 = 1.0 ;
|
|
7108
7235
|
#if USE_ROUGHNESS_A
|
|
7109
7236
|
roughnessChannel = maskTex.a ;
|
|
7110
7237
|
#else if USE_ROUGHNESS_R
|
|
@@ -7115,16 +7242,16 @@ var<uniform> materialUniform: MaterialUniform;
|
|
|
7115
7242
|
roughnessChannel = maskTex.b ;
|
|
7116
7243
|
#else if USE_ALBEDO_A
|
|
7117
7244
|
roughnessChannel = ORI_ShadingInput.BaseColor.a ;
|
|
7118
|
-
#endif
|
|
7245
|
+
#endif
|
|
7119
7246
|
|
|
7120
7247
|
#if USE_SMOOTH
|
|
7121
7248
|
var roughness = ( 1.0 - roughnessChannel ) * materialUniform.roughness;
|
|
7122
|
-
ORI_ShadingInput.Roughness = clamp(roughness, 0.0001, 1.0);
|
|
7249
|
+
ORI_ShadingInput.Roughness = clamp(roughness , 0.0001 , 1.0);
|
|
7123
7250
|
#else
|
|
7124
|
-
ORI_ShadingInput.Roughness = clamp(
|
|
7125
|
-
#endif
|
|
7251
|
+
ORI_ShadingInput.Roughness = clamp(roughnessChannel * materialUniform.roughness ,0.0001,1.0);
|
|
7252
|
+
#endif
|
|
7126
7253
|
|
|
7127
|
-
var metallicChannel:f32 = 1.0;
|
|
7254
|
+
var metallicChannel:f32 = 1.0 ;
|
|
7128
7255
|
#if USE_METALLIC_A
|
|
7129
7256
|
metallicChannel = maskTex.a ;
|
|
7130
7257
|
#else if USE_METALLIC_R
|
|
@@ -7133,16 +7260,16 @@ var<uniform> materialUniform: MaterialUniform;
|
|
|
7133
7260
|
metallicChannel = maskTex.g ;
|
|
7134
7261
|
#else if USE_METALLIC_B
|
|
7135
7262
|
metallicChannel = maskTex.b ;
|
|
7136
|
-
#endif
|
|
7137
|
-
|
|
7138
|
-
ORI_ShadingInput.Metallic = metallicChannel * materialUniform.metallic;
|
|
7263
|
+
#endif
|
|
7139
7264
|
|
|
7140
|
-
|
|
7141
|
-
|
|
7265
|
+
ORI_ShadingInput.Metallic = metallicChannel * materialUniform.metallic ;
|
|
7266
|
+
|
|
7267
|
+
var aoChannel:f32 = 1.0 ;
|
|
7268
|
+
#if USE_AOTEX
|
|
7142
7269
|
let aoMapOffsetSize = materialUniform.aoMapOffsetSize;
|
|
7143
7270
|
var aoMapOffsetSizeUV = transformUV(ORI_VertexVarying.fragUV0,aoMapOffsetSize);
|
|
7144
7271
|
var aoMap = textureSample(aoMap, aoMapSampler, ORI_VertexVarying.fragUV0 );
|
|
7145
|
-
aoChannel = aoMap.g;
|
|
7272
|
+
aoChannel = aoMap.g ;
|
|
7146
7273
|
#else
|
|
7147
7274
|
#if USE_AO_A
|
|
7148
7275
|
aoChannel = maskTex.a ;
|
|
@@ -7155,12 +7282,11 @@ var<uniform> materialUniform: MaterialUniform;
|
|
|
7155
7282
|
#endif
|
|
7156
7283
|
#endif
|
|
7157
7284
|
|
|
7158
|
-
ORI_ShadingInput.AmbientOcclusion = aoChannel;
|
|
7159
|
-
ORI_ShadingInput.Specular = 1.0;
|
|
7285
|
+
ORI_ShadingInput.AmbientOcclusion = aoChannel ;
|
|
7286
|
+
ORI_ShadingInput.Specular = 1.0 ;
|
|
7160
7287
|
|
|
7161
7288
|
let emissiveMapOffsetSize = materialUniform.emissiveMapOffsetSize;
|
|
7162
|
-
var emissiveUV = transformUV(ORI_VertexVarying.fragUV0,emissiveMapOffsetSize);
|
|
7163
|
-
|
|
7289
|
+
var emissiveUV = transformUV(ORI_VertexVarying.fragUV0,emissiveMapOffsetSize) ;
|
|
7164
7290
|
#if USE_EMISSIVEMAP
|
|
7165
7291
|
var emissiveMapColor = textureSample(emissiveMap, emissiveMapSampler , emissiveUV ) ;
|
|
7166
7292
|
let emissiveColor = materialUniform.emissiveColor.rgb * emissiveMapColor.rgb * materialUniform.emissiveIntensity ;
|
|
@@ -7171,23 +7297,66 @@ var<uniform> materialUniform: MaterialUniform;
|
|
|
7171
7297
|
#endif
|
|
7172
7298
|
|
|
7173
7299
|
let normalMapOffsetSize = materialUniform.normalMapOffsetSize;
|
|
7174
|
-
var nomralUV = transformUV(ORI_VertexVarying.fragUV0,normalMapOffsetSize);
|
|
7175
|
-
var Normal = textureSample(normalMap,normalMapSampler,nomralUV).rgb;
|
|
7176
|
-
let normal = unPackRGNormal(Normal,1.0,1.0);
|
|
7177
|
-
ORI_ShadingInput.Normal = normal;
|
|
7178
|
-
|
|
7300
|
+
var nomralUV = transformUV(ORI_VertexVarying.fragUV0,normalMapOffsetSize) ;
|
|
7301
|
+
var Normal = textureSample(normalMap,normalMapSampler,nomralUV).rgb ;
|
|
7302
|
+
let normal = unPackRGNormal(Normal,1.0,1.0) ;
|
|
7303
|
+
ORI_ShadingInput.Normal = normal ;
|
|
7304
|
+
|
|
7179
7305
|
BxDFShading();
|
|
7306
|
+
|
|
7180
7307
|
}
|
|
7181
|
-
|
|
7308
|
+
`
|
|
7309
|
+
);
|
|
7182
7310
|
|
|
7183
|
-
let BxdfDebug_frag =
|
|
7184
|
-
|
|
7311
|
+
let BxdfDebug_frag = (
|
|
7312
|
+
/*wgsl*/
|
|
7313
|
+
`
|
|
7314
|
+
#include "ClusterDebug_frag"
|
|
7315
|
+
|
|
7316
|
+
fn debugPosition(){
|
|
7317
|
+
}
|
|
7185
7318
|
|
|
7186
7319
|
fn debugMeshID(){
|
|
7187
7320
|
let meshIDColor = u32(round(ORI_VertexVarying.vWorldPos.w) ) ;
|
|
7188
7321
|
let color = colorSet[ meshIDColor % 9u] ;
|
|
7189
7322
|
}
|
|
7190
7323
|
|
|
7324
|
+
fn debugNormal(){
|
|
7325
|
+
}
|
|
7326
|
+
|
|
7327
|
+
fn debugUV(){
|
|
7328
|
+
}
|
|
7329
|
+
|
|
7330
|
+
fn debugColor(){
|
|
7331
|
+
}
|
|
7332
|
+
|
|
7333
|
+
fn debugDiffuse(){
|
|
7334
|
+
}
|
|
7335
|
+
|
|
7336
|
+
fn debugAmbient(){
|
|
7337
|
+
}
|
|
7338
|
+
|
|
7339
|
+
fn debugEmissive(){
|
|
7340
|
+
}
|
|
7341
|
+
|
|
7342
|
+
fn debugEnvment(){
|
|
7343
|
+
}
|
|
7344
|
+
|
|
7345
|
+
fn debugAo(){
|
|
7346
|
+
}
|
|
7347
|
+
|
|
7348
|
+
fn debugRoughness(){
|
|
7349
|
+
}
|
|
7350
|
+
|
|
7351
|
+
fn debugMetallic(){
|
|
7352
|
+
}
|
|
7353
|
+
|
|
7354
|
+
fn debugIrradiance(){
|
|
7355
|
+
}
|
|
7356
|
+
|
|
7357
|
+
fn debugTangent(){
|
|
7358
|
+
}
|
|
7359
|
+
|
|
7191
7360
|
fn debugFragmentOut(){
|
|
7192
7361
|
if(ORI_VertexVarying.fragCoord.x > globalUniform.renderState_split) {
|
|
7193
7362
|
switch (globalUniform.renderState_right)
|
|
@@ -7317,17 +7486,20 @@ var<uniform> materialUniform: MaterialUniform;
|
|
|
7317
7486
|
}
|
|
7318
7487
|
}
|
|
7319
7488
|
}
|
|
7320
|
-
|
|
7489
|
+
`
|
|
7490
|
+
);
|
|
7321
7491
|
|
|
7322
|
-
let FullQuad_vert_wgsl =
|
|
7492
|
+
let FullQuad_vert_wgsl = (
|
|
7493
|
+
/*wgsl*/
|
|
7494
|
+
`
|
|
7323
7495
|
#include "WorldMatrixUniform"
|
|
7324
7496
|
#include "GlobalUniform"
|
|
7325
7497
|
|
|
7326
7498
|
struct MaterialUniform {
|
|
7327
|
-
|
|
7328
|
-
|
|
7329
|
-
|
|
7330
|
-
|
|
7499
|
+
x:f32,
|
|
7500
|
+
y:f32,
|
|
7501
|
+
width:f32,
|
|
7502
|
+
height:f32,
|
|
7331
7503
|
};
|
|
7332
7504
|
|
|
7333
7505
|
struct VertexOutput {
|
|
@@ -7336,39 +7508,51 @@ var<uniform> materialUniform: MaterialUniform;
|
|
|
7336
7508
|
};
|
|
7337
7509
|
|
|
7338
7510
|
@vertex
|
|
7339
|
-
fn main(@builtin(vertex_index) vertexIndex: u32, @builtin(instance_index) index){
|
|
7340
|
-
const pos = array(
|
|
7341
|
-
|
|
7342
|
-
|
|
7343
|
-
|
|
7344
|
-
|
|
7345
|
-
|
|
7346
|
-
|
|
7511
|
+
fn main(@builtin(vertex_index) vertexIndex : u32, @builtin(instance_index) index : u32 ) -> VertexOutput {
|
|
7512
|
+
const pos = array(
|
|
7513
|
+
vec2(-1.0, -1.0), vec2(1.0, -1.0), vec2(-1.0, 1.0),
|
|
7514
|
+
vec2(-1.0, 1.0), vec2(1.0, -1.0), vec2(1.0, 1.0),
|
|
7515
|
+
);
|
|
7516
|
+
const uv = array(
|
|
7517
|
+
vec2(1.0, 0.0), vec2(1.0, 1.0), vec2(0.0, 1.0),
|
|
7518
|
+
vec2(1.0, 0.0), vec2(0.0, 1.0), vec2(0.0, 0.0),
|
|
7519
|
+
);
|
|
7520
|
+
let id = u32(index) ;
|
|
7521
|
+
var output : VertexOutput;
|
|
7522
|
+
output.fragUV = uv[vertexIndex] ;
|
|
7523
|
+
output.position = vec4<f32>(pos[vertexIndex] , 0.0, 1.0) ;
|
|
7524
|
+
return output ;
|
|
7347
7525
|
}
|
|
7348
|
-
|
|
7349
|
-
|
|
7350
|
-
|
|
7351
|
-
|
|
7352
|
-
|
|
7353
|
-
|
|
7354
|
-
|
|
7355
|
-
|
|
7526
|
+
`
|
|
7527
|
+
);
|
|
7528
|
+
let Quad_vert_wgsl = (
|
|
7529
|
+
/*wgsl*/
|
|
7530
|
+
`
|
|
7531
|
+
#include "WorldMatrixUniform"
|
|
7532
|
+
#include "GlobalUniform"
|
|
7533
|
+
|
|
7534
|
+
struct MaterialUniform {
|
|
7535
|
+
x:f32,
|
|
7536
|
+
y:f32,
|
|
7356
7537
|
width:f32,
|
|
7357
7538
|
height:f32,
|
|
7358
|
-
|
|
7539
|
+
};
|
|
7359
7540
|
|
|
7360
|
-
|
|
7361
|
-
|
|
7362
|
-
|
|
7363
|
-
|
|
7541
|
+
struct VertexOutput {
|
|
7542
|
+
@location(auto) fragUV: vec2<f32>,
|
|
7543
|
+
@builtin(position) member: vec4<f32>
|
|
7544
|
+
};
|
|
7364
7545
|
|
|
7365
|
-
|
|
7366
|
-
|
|
7367
|
-
|
|
7368
|
-
|
|
7369
|
-
|
|
7370
|
-
|
|
7371
|
-
|
|
7546
|
+
@vertex
|
|
7547
|
+
fn main(@builtin(instance_index) index : u32,@location(auto) position: vec3<f32>, @location(auto) TEXCOORD_1: vec2<f32>) -> VertexOutput {
|
|
7548
|
+
let uv = vec2(((TEXCOORD_1.xy * 2.0) - vec2<f32>(1.0))) ;// / windowSize * size - offset ;
|
|
7549
|
+
return VertexOutput(TEXCOORD_1, vec4<f32>(uv, 0.0, 1.0));
|
|
7550
|
+
}
|
|
7551
|
+
`
|
|
7552
|
+
);
|
|
7553
|
+
let Quad_frag_wgsl = (
|
|
7554
|
+
/*wgsl*/
|
|
7555
|
+
`
|
|
7372
7556
|
struct FragmentOutput {
|
|
7373
7557
|
@location(auto) o_Target: vec4<f32>
|
|
7374
7558
|
};
|
|
@@ -7377,22 +7561,25 @@ var<uniform> materialUniform: MaterialUniform;
|
|
|
7377
7561
|
var<private> o_Target: vec4<f32>;
|
|
7378
7562
|
@group(1) @binding(0)
|
|
7379
7563
|
var baseMapSampler: sampler;
|
|
7380
|
-
@group(1) @binding(
|
|
7564
|
+
@group(1) @binding(1)
|
|
7381
7565
|
var baseMap: texture_2d<f32>;
|
|
7382
7566
|
|
|
7383
7567
|
@fragment
|
|
7384
7568
|
fn main(@location(auto) fragUV: vec2<f32>) -> FragmentOutput {
|
|
7385
|
-
var uv = fragUV;
|
|
7386
|
-
uv.y = 1.0 -uv.y;
|
|
7387
|
-
var color: vec4<f32> = textureSample(baseMap, baseMapSampler, uv);
|
|
7569
|
+
var uv = fragUV ;
|
|
7570
|
+
uv.y = 1.0 - uv.y ;
|
|
7571
|
+
var color: vec4<f32> = textureSample(baseMap, baseMapSampler, uv );
|
|
7388
7572
|
|
|
7389
7573
|
return FragmentOutput(color);
|
|
7390
7574
|
}
|
|
7391
|
-
|
|
7392
|
-
|
|
7575
|
+
`
|
|
7576
|
+
);
|
|
7577
|
+
let Quad_depth2d_frag_wgsl = (
|
|
7578
|
+
/*wgsl*/
|
|
7579
|
+
`
|
|
7393
7580
|
struct FragmentOutput {
|
|
7394
7581
|
@location(auto) o_Target: vec4<f32>
|
|
7395
|
-
};
|
|
7582
|
+
};
|
|
7396
7583
|
|
|
7397
7584
|
var<private> fragUV1: vec2<f32>;
|
|
7398
7585
|
var<private> o_Target: vec4<f32>;
|
|
@@ -7400,21 +7587,25 @@ var<uniform> materialUniform: MaterialUniform;
|
|
|
7400
7587
|
@group(1) @binding(0)
|
|
7401
7588
|
var baseMapSampler: sampler;
|
|
7402
7589
|
@group(1) @binding(1)
|
|
7403
|
-
var baseMap: texture_depth_2d;
|
|
7590
|
+
var baseMap: texture_depth_2d ;
|
|
7404
7591
|
|
|
7405
|
-
fn Linear01Depth(z:f32) -> f32
|
|
7592
|
+
fn Linear01Depth( z : f32 ) -> f32
|
|
7593
|
+
{
|
|
7406
7594
|
return 1.0 / (1.0 * z + 5000.0);
|
|
7407
7595
|
}
|
|
7408
7596
|
|
|
7409
7597
|
@fragment
|
|
7410
7598
|
fn main(@location(auto) fragUV: vec2<f32>) -> FragmentOutput {
|
|
7411
|
-
var uv = fragUV;
|
|
7412
|
-
uv.y = 1.0 - uv.y;
|
|
7413
|
-
var depth = textureSample(baseMap, baseMapSampler, uv, vec2<i32>(0));
|
|
7414
|
-
return FragmentOutput(vec4<f32>(depth,
|
|
7599
|
+
var uv = fragUV ;
|
|
7600
|
+
uv.y = 1.0 - uv.y ;
|
|
7601
|
+
var depth = textureSample(baseMap, baseMapSampler, uv , vec2<i32>(0) ) ;
|
|
7602
|
+
return FragmentOutput(vec4<f32>(depth,0.0,0.0,1.0));
|
|
7415
7603
|
}
|
|
7416
|
-
|
|
7417
|
-
|
|
7604
|
+
`
|
|
7605
|
+
);
|
|
7606
|
+
let Quad_depthCube_frag_wgsl = (
|
|
7607
|
+
/*wgsl*/
|
|
7608
|
+
`
|
|
7418
7609
|
struct FragmentOutput {
|
|
7419
7610
|
@location(auto) o_Target: vec4<f32>
|
|
7420
7611
|
};
|
|
@@ -7424,10 +7615,11 @@ var<uniform> materialUniform: MaterialUniform;
|
|
|
7424
7615
|
|
|
7425
7616
|
@group(1) @binding(0)
|
|
7426
7617
|
var baseMapSampler: sampler;
|
|
7427
|
-
@group(1) @binding(
|
|
7428
|
-
var baseMap: texture_depth_cube;
|
|
7618
|
+
@group(1) @binding(1)
|
|
7619
|
+
var baseMap: texture_depth_cube ;
|
|
7429
7620
|
|
|
7430
|
-
fn uvToXYZ(face: i32,
|
|
7621
|
+
fn uvToXYZ( face : i32 , uv : vec2<f32> ) -> vec3<f32>
|
|
7622
|
+
{
|
|
7431
7623
|
var out : vec3<f32> ;
|
|
7432
7624
|
if(face == 0){
|
|
7433
7625
|
out = vec3<f32>( 1.0, uv.y, -uv.x);
|
|
@@ -7447,12 +7639,12 @@ var<uniform> materialUniform: MaterialUniform;
|
|
|
7447
7639
|
|
|
7448
7640
|
@fragment
|
|
7449
7641
|
fn main(@location(auto) fragUV: vec2<f32>) -> FragmentOutput {
|
|
7450
|
-
var uv = fragUV;
|
|
7451
|
-
uv.y = 1.0 - uv.y;
|
|
7452
|
-
var ii = 0.16;
|
|
7642
|
+
var uv = fragUV ;
|
|
7643
|
+
uv.y = 1.0 - uv.y ;
|
|
7644
|
+
var ii = 0.16 ;
|
|
7453
7645
|
var ouv = vec3<f32>(0.0);
|
|
7454
7646
|
if(uv.x < ii * 6.0){
|
|
7455
|
-
ouv = uvToXYZ(5,
|
|
7647
|
+
ouv = uvToXYZ(5,uv/ii);
|
|
7456
7648
|
}
|
|
7457
7649
|
if(uv.x < ii * 5.0){
|
|
7458
7650
|
ouv = uvToXYZ(4,uv/ii);
|
|
@@ -7469,15 +7661,19 @@ var<uniform> materialUniform: MaterialUniform;
|
|
|
7469
7661
|
if(uv.x < ii * 1.0){
|
|
7470
7662
|
ouv = uvToXYZ(0,uv/ii);
|
|
7471
7663
|
}
|
|
7472
|
-
var depth = textureSample(baseMap, baseMapSampler, ouv);
|
|
7473
|
-
depth = 1.0 - depth;
|
|
7474
|
-
|
|
7664
|
+
var depth = textureSample(baseMap, baseMapSampler, ouv ) ;
|
|
7665
|
+
depth = 1.0 - depth;
|
|
7666
|
+
|
|
7667
|
+
return FragmentOutput(vec4<f32>(depth,0.0,0.0,1.0));
|
|
7475
7668
|
}
|
|
7476
|
-
|
|
7477
|
-
|
|
7669
|
+
`
|
|
7670
|
+
);
|
|
7671
|
+
let Quad_depth2dArray_frag_wgsl = (
|
|
7672
|
+
/*wgsl*/
|
|
7673
|
+
`
|
|
7478
7674
|
struct FragmentOutput {
|
|
7479
7675
|
@location(auto) o_Target: vec4<f32>
|
|
7480
|
-
}
|
|
7676
|
+
};
|
|
7481
7677
|
|
|
7482
7678
|
var<private> fragUV1: vec2<f32>;
|
|
7483
7679
|
var<private> o_Target: vec4<f32>;
|
|
@@ -7485,7 +7681,7 @@ var<uniform> materialUniform: MaterialUniform;
|
|
|
7485
7681
|
@group(1) @binding(0)
|
|
7486
7682
|
var baseMapSampler: sampler;
|
|
7487
7683
|
@group(1) @binding(1)
|
|
7488
|
-
var baseMap: texture_2d_array;
|
|
7684
|
+
var baseMap: texture_2d_array ;
|
|
7489
7685
|
|
|
7490
7686
|
struct MaterialData{
|
|
7491
7687
|
index:f32;
|
|
@@ -7493,15 +7689,16 @@ var<uniform> materialUniform: MaterialUniform;
|
|
|
7493
7689
|
|
|
7494
7690
|
@fragment
|
|
7495
7691
|
fn main(@location(auto) fragUV: vec2<f32>) -> FragmentOutput {
|
|
7496
|
-
var uv = fragUV;
|
|
7497
|
-
uv.y = 1.0 - uv.y;
|
|
7498
|
-
|
|
7499
|
-
var depth = textureSample(baseMap, baseMapSampler, ouv);
|
|
7500
|
-
depth = 1.0 - depth;
|
|
7692
|
+
var uv = fragUV ;
|
|
7693
|
+
uv.y = 1.0 - uv.y ;
|
|
7694
|
+
|
|
7695
|
+
var depth = textureSample(baseMap, baseMapSampler, ouv ) ;
|
|
7696
|
+
depth = 1.0 - depth;
|
|
7501
7697
|
|
|
7502
|
-
return FragmentOutput(vec4<f32>(depth,
|
|
7698
|
+
return FragmentOutput(vec4<f32>(depth,0.0,0.0,1.0));
|
|
7503
7699
|
}
|
|
7504
|
-
|
|
7700
|
+
`
|
|
7701
|
+
);
|
|
7505
7702
|
|
|
7506
7703
|
let ColorUtil = `
|
|
7507
7704
|
fn getHDRColor(color: vec3<f32>, exposure: f32) -> vec3<f32> {
|
|
@@ -7648,25 +7845,31 @@ var<uniform> materialUniform: MaterialUniform;
|
|
|
7648
7845
|
}
|
|
7649
7846
|
`;
|
|
7650
7847
|
|
|
7651
|
-
let GenerayRandomDir =
|
|
7652
|
-
|
|
7653
|
-
|
|
7848
|
+
let GenerayRandomDir = (
|
|
7849
|
+
/*wgsl*/
|
|
7850
|
+
`
|
|
7851
|
+
fn madfrac(A:f32, B:f32)-> f32 {
|
|
7852
|
+
return A*B-floor(A*B) ;
|
|
7654
7853
|
}
|
|
7655
7854
|
|
|
7656
|
-
fn sampleRandomDir(count:u32,
|
|
7657
|
-
|
|
7658
|
-
|
|
7855
|
+
fn sampleRandomDir(count:u32,SAMPLE_COUNT:u32) -> vec3<f32>{
|
|
7856
|
+
var ray_dir = sphericalFibonacci(f32((count)), f32(SAMPLE_COUNT) );
|
|
7857
|
+
return normalize(ray_dir) ;
|
|
7659
7858
|
}
|
|
7660
7859
|
|
|
7661
|
-
fn sphericalFibonacci(i:f32,
|
|
7662
|
-
|
|
7860
|
+
fn sphericalFibonacci( i : f32 , n : f32 ) -> vec3<f32>{
|
|
7861
|
+
const PHI = sqrt(5.0) * 0.5 + 0.5;
|
|
7663
7862
|
let phi = 2.0 * PI * madfrac(i, PHI - 1);
|
|
7664
7863
|
let cosTheta = 1.0 - (2.0 * i + 1.0) * (1.0 / n);
|
|
7665
7864
|
let sinTheta = sqrt(saturate(1.0 - cosTheta*cosTheta));
|
|
7666
7865
|
|
|
7667
|
-
return vec3<f32>(
|
|
7866
|
+
return vec3<f32>(
|
|
7867
|
+
cos(phi) * sinTheta,
|
|
7868
|
+
sin(phi) * sinTheta,
|
|
7869
|
+
cosTheta);
|
|
7668
7870
|
}
|
|
7669
|
-
|
|
7871
|
+
`
|
|
7872
|
+
);
|
|
7670
7873
|
|
|
7671
7874
|
let MatrixShader = `
|
|
7672
7875
|
#include "MathShader"
|
|
@@ -7921,7 +8124,7 @@ var<uniform> materialUniform: MaterialUniform;
|
|
|
7921
8124
|
face = 1.0 ;
|
|
7922
8125
|
}else{
|
|
7923
8126
|
face = -1.0 ;
|
|
7924
|
-
}
|
|
8127
|
+
};
|
|
7925
8128
|
#if USE_TANGENT
|
|
7926
8129
|
let T = ORI_VertexVarying.TANGENT.xyz;
|
|
7927
8130
|
let N = ORI_VertexVarying.vWorldNormal ;
|
|
@@ -8788,15 +8991,18 @@ fn main(vertex:VertexAttributes) -> VertexOutput {
|
|
|
8788
8991
|
}
|
|
8789
8992
|
`;
|
|
8790
8993
|
|
|
8791
|
-
let BitUtil =
|
|
8994
|
+
let BitUtil = (
|
|
8995
|
+
/* wgsl */
|
|
8996
|
+
`
|
|
8997
|
+
|
|
8792
8998
|
const inv256:f32 = 1.0/256.0;
|
|
8793
8999
|
const inv1024:f32 = 1.0/1024.0;
|
|
8794
9000
|
|
|
8795
|
-
const bit7_inv128:f32 = 1.0/128.0;
|
|
9001
|
+
const bit7_inv128:f32 = 1.0 / 128.0;
|
|
8796
9002
|
const bit7_128:f32 = 128.0;
|
|
8797
|
-
|
|
9003
|
+
|
|
8798
9004
|
const r10g10b10 = vec2i(0x3FFFFF,0xFF);
|
|
8799
|
-
fn floatToVec3f(v:f32) -> vec3f {
|
|
9005
|
+
fn floatToVec3f( v:f32 ) -> vec3f {
|
|
8800
9006
|
var VPInt:i32 = bitcast<i32>(v);
|
|
8801
9007
|
var VPInt1024:i32 = VPInt%1024;
|
|
8802
9008
|
var VPInt10241024:i32 = ((VPInt-VPInt1024)/1024)%1024;
|
|
@@ -8823,6 +9029,11 @@ fn main(vertex:VertexAttributes) -> VertexOutput {
|
|
|
8823
9029
|
return vec4f(f32(VPInt128),f32(VPInt128128),f32(VPInt128128128),f32(VPInt128128128128))*vec4f(bit7_inv128);
|
|
8824
9030
|
}
|
|
8825
9031
|
|
|
9032
|
+
|
|
9033
|
+
|
|
9034
|
+
|
|
9035
|
+
|
|
9036
|
+
|
|
8826
9037
|
const i_r11g11b11 = vec3i(0x7FF,0x7FF,0x7FF);
|
|
8827
9038
|
const f_r11g11b11 = vec3f(f32(0x7FF),f32(0x7FF),f32(0x7FF));
|
|
8828
9039
|
fn r11g11b11_to_float( v:vec3f) -> f32{
|
|
@@ -8871,6 +9082,9 @@ fn main(vertex:VertexAttributes) -> VertexOutput {
|
|
|
8871
9082
|
return vec3f(r,g,b);
|
|
8872
9083
|
}
|
|
8873
9084
|
|
|
9085
|
+
|
|
9086
|
+
|
|
9087
|
+
|
|
8874
9088
|
fn floatToRGBA(v:f32) -> vec4f{
|
|
8875
9089
|
var iv = bitcast<u32>(v);
|
|
8876
9090
|
var color = vec4f(0.0);
|
|
@@ -8885,7 +9099,9 @@ fn main(vertex:VertexAttributes) -> VertexOutput {
|
|
|
8885
9099
|
var f = dot(v, bitShift);
|
|
8886
9100
|
return f;
|
|
8887
9101
|
}
|
|
8888
|
-
|
|
9102
|
+
|
|
9103
|
+
`
|
|
9104
|
+
);
|
|
8889
9105
|
|
|
8890
9106
|
let GBufferStand = `
|
|
8891
9107
|
#include "MathShader"
|
|
@@ -28040,131 +28256,147 @@ fn SH9(dir: vec3<f32>, coefficients: array<vec4f, 9>) -> vec4<f32> {
|
|
|
28040
28256
|
}
|
|
28041
28257
|
}
|
|
28042
28258
|
|
|
28043
|
-
let PreFilteredEnvironment_cs =
|
|
28259
|
+
let PreFilteredEnvironment_cs = (
|
|
28260
|
+
/*wgsl*/
|
|
28261
|
+
`
|
|
28044
28262
|
#include "GenerayRandomDir"
|
|
28045
28263
|
#include "BitUtil"
|
|
28046
28264
|
#include "MathShader"
|
|
28047
28265
|
#include "ColorUtil_frag"
|
|
28048
|
-
|
|
28049
|
-
struct UniformData
|
|
28050
|
-
probeSize: f32,
|
|
28051
|
-
probeCount: f32,
|
|
28052
|
-
width: f32,
|
|
28053
|
-
height: f32,
|
|
28266
|
+
|
|
28267
|
+
struct UniformData{
|
|
28268
|
+
probeSize : f32 ,
|
|
28269
|
+
probeCount : f32 ,
|
|
28270
|
+
width : f32 ,
|
|
28271
|
+
height : f32 ,
|
|
28054
28272
|
}
|
|
28055
28273
|
|
|
28056
|
-
@group(0) @binding(0) var inputTex: texture_2d<f32>;
|
|
28057
|
-
@group(0) @binding(1) var outputTexture: texture_storage_2d<rgba16float,write
|
|
28058
|
-
@group(1) @binding(0) var<uniform> uniformData:
|
|
28274
|
+
@group(0) @binding(0) var inputTex : texture_2d<f32>;
|
|
28275
|
+
@group(0) @binding(1) var outputTexture : texture_storage_2d<rgba16float, write>;//rgba32float rgba16float
|
|
28276
|
+
@group(1) @binding(0) var<uniform> uniformData:UniformData;//rgba32float
|
|
28059
28277
|
|
|
28060
|
-
var<private> reflectionSize: vec2f;
|
|
28061
|
-
var<private> PROBE_SOURCESIZE: vec2f;
|
|
28062
|
-
var<private> PROBEMAP_SOURCESIZE: vec2f;
|
|
28063
|
-
var<private> aspect: vec2f;
|
|
28064
|
-
var<private> spaceV: f32;
|
|
28278
|
+
var<private> reflectionSize : vec2f ;
|
|
28279
|
+
var<private> PROBE_SOURCESIZE : vec2f ;
|
|
28280
|
+
var<private> PROBEMAP_SOURCESIZE : vec2f ;
|
|
28281
|
+
var<private> aspect : vec2f ;
|
|
28282
|
+
var<private> spaceV : f32 ;
|
|
28065
28283
|
|
|
28066
28284
|
var<private> i32InputFragCoord : vec2i;
|
|
28067
28285
|
var<private> PI_2 : f32 = 3.1415926 * 2.0 ;
|
|
28068
28286
|
var<private> PI : f32 = 3.1415926 ;
|
|
28069
28287
|
|
|
28070
|
-
var<private> probeSize: f32 = 256.0;
|
|
28071
|
-
var<private> probeCount: f32 = 8.0;
|
|
28072
|
-
var<private> faceCount: f32 = 6.0;
|
|
28073
|
-
var<private> mipCount: f32 = 8.0;
|
|
28288
|
+
var<private> probeSize : f32 = 256.0 ;
|
|
28289
|
+
var<private> probeCount : f32 = 8.0 ;
|
|
28290
|
+
var<private> faceCount : f32 = 6.0 ;
|
|
28291
|
+
var<private> mipCount : f32 = 8.0 ;
|
|
28074
28292
|
|
|
28075
28293
|
const NUM_SAMPLES = 256u;
|
|
28076
|
-
var<private> inputSize: vec2f;
|
|
28077
|
-
var<private> outSize: vec2f;
|
|
28294
|
+
var<private> inputSize : vec2f ;
|
|
28295
|
+
var<private> outSize : vec2f ;
|
|
28078
28296
|
|
|
28079
28297
|
fn useSphereReflection(){
|
|
28080
|
-
probeSize = uniformData.probeSize;
|
|
28298
|
+
probeSize = uniformData.probeSize ;
|
|
28081
28299
|
probeCount = uniformData.probeCount;
|
|
28082
28300
|
reflectionSize = vec2f(textureDimensions(inputTex).xy);
|
|
28083
28301
|
PROBE_SOURCESIZE = reflectionSize / vec2f(faceCount,probeCount);
|
|
28084
|
-
PROBEMAP_SOURCESIZE = reflectionSize;
|
|
28302
|
+
PROBEMAP_SOURCESIZE = reflectionSize ;
|
|
28085
28303
|
aspect = PROBE_SOURCESIZE / PROBEMAP_SOURCESIZE;
|
|
28086
|
-
spaceV = 1.0 / probeCount;
|
|
28304
|
+
spaceV = 1.0 / probeCount ;
|
|
28087
28305
|
}
|
|
28088
28306
|
|
|
28089
|
-
@compute @workgroup_size(16, 16, 1)
|
|
28090
|
-
fn CsMain(@builtin(workgroup_id) workgroup_id: vec3<u32
|
|
28091
|
-
|
|
28307
|
+
@compute @workgroup_size( 16 , 16 , 1 )
|
|
28308
|
+
fn CsMain( @builtin(workgroup_id) workgroup_id : vec3<u32> , @builtin(global_invocation_id) globalInvocation_id : vec3<u32>)
|
|
28309
|
+
{
|
|
28310
|
+
var color : vec4f ;
|
|
28092
28311
|
useSphereReflection();
|
|
28093
28312
|
inputSize = vec2f(textureDimensions(inputTex).xy);
|
|
28094
28313
|
outSize = vec2f(textureDimensions(outputTexture).xy);
|
|
28095
|
-
|
|
28096
|
-
|
|
28097
|
-
|
|
28098
|
-
|
|
28314
|
+
|
|
28315
|
+
i32InputFragCoord = vec2<i32>( globalInvocation_id.xy ) ;
|
|
28316
|
+
|
|
28317
|
+
let i = f32(globalInvocation_id.z) ;
|
|
28318
|
+
let count = floor(i / mipCount) ;
|
|
28319
|
+
preOneMip(count,floor(i % mipCount));
|
|
28099
28320
|
}
|
|
28100
28321
|
|
|
28101
|
-
fn preOneMip(gid:
|
|
28102
|
-
let isuv = vec2f(i32InputFragCoord);
|
|
28322
|
+
fn preOneMip( gid:f32,mip:f32 ){
|
|
28323
|
+
let isuv = vec2f(i32InputFragCoord) ;
|
|
28103
28324
|
let suv = isuv * (inputSize/outSize);
|
|
28104
28325
|
let probeID = i32(floor(suv.y / probeSize));
|
|
28105
28326
|
let mipID = i32((isuv.x / probeSize));
|
|
28106
28327
|
if(probeID == i32(gid) && mipID == i32(mip)){
|
|
28107
|
-
|
|
28108
|
-
|
|
28109
|
-
var
|
|
28110
|
-
|
|
28328
|
+
|
|
28329
|
+
let sphereUV = vec2f((isuv.x+0.5) % (probeSize),(isuv.y+0.5) % probeSize) / vec2f( (probeSize), probeSize ) ;
|
|
28330
|
+
var dir: vec3<f32> = octDecode(sphereUV * 2.0 - 1.0) ;
|
|
28331
|
+
var preColor = PreFilterEnvMap(mip/mipCount + 0.05,dir,gid);
|
|
28332
|
+
textureStore(outputTexture,vec2i(i32InputFragCoord),preColor);
|
|
28111
28333
|
}
|
|
28112
28334
|
}
|
|
28113
28335
|
|
|
28114
|
-
fn PreFilterEnvMap(roughness2:f32, R:vec3f , gid:f32) -> vec4f
|
|
28115
|
-
|
|
28116
|
-
var
|
|
28336
|
+
fn PreFilterEnvMap( roughness2:f32, R:vec3f , gid:f32 ) -> vec4f
|
|
28337
|
+
{
|
|
28338
|
+
var resColor = vec3f(0.0f);
|
|
28339
|
+
var resDepth = 0.0;
|
|
28340
|
+
|
|
28117
28341
|
var totalColorWeight = 0.0f;
|
|
28118
28342
|
var totalDepthWeight = 0.0f;
|
|
28343
|
+
|
|
28119
28344
|
var normal = normalize(R);
|
|
28120
28345
|
var toEye = normal;
|
|
28346
|
+
|
|
28121
28347
|
var roughness = roughness2;
|
|
28122
|
-
|
|
28348
|
+
|
|
28123
28349
|
for(var i=1u;i<=NUM_SAMPLES;i+=1u)
|
|
28124
28350
|
{
|
|
28125
|
-
var xi:vec2f = hammersley(i, NUM_SAMPLES);
|
|
28351
|
+
var xi:vec2f = hammersley(i, NUM_SAMPLES) ;
|
|
28352
|
+
|
|
28126
28353
|
var halfway = ImportanceSampleGGX(xi,roughness,normal);
|
|
28127
|
-
var lightVec = 2.0f * dot(toEye,halfway) * halfway - toEye;
|
|
28128
|
-
|
|
28129
|
-
var
|
|
28130
|
-
var
|
|
28354
|
+
var lightVec = 2.0f * dot( toEye,halfway ) * halfway - toEye;
|
|
28355
|
+
|
|
28356
|
+
var NdotL = dot( normal, lightVec ) ;
|
|
28357
|
+
var NdotH = max(0.0,dot( normal, halfway )) ;
|
|
28358
|
+
var HdotV = max(0.0,dot( halfway, toEye )) ;
|
|
28359
|
+
|
|
28131
28360
|
if( NdotL > 0.0 )
|
|
28132
28361
|
{
|
|
28133
28362
|
var D = specularD(roughness,NdotH);
|
|
28134
|
-
var pdf = (D * NdotH / (4.0 * HdotV)) + 0.0001f;
|
|
28363
|
+
var pdf = (D * NdotH / (4.0 * HdotV)) + 0.0001f ;
|
|
28364
|
+
|
|
28135
28365
|
var saSample = 1.0f / (f32(NUM_SAMPLES) * pdf + 0.00001f);
|
|
28136
28366
|
lightVec = normalize(lightVec);
|
|
28367
|
+
|
|
28137
28368
|
var buffer = getReflectionsMap(lightVec,gid);
|
|
28138
28369
|
var rgb = unpack4x8unorm(u32(buffer.z)).rgb;
|
|
28139
28370
|
var m = unpack4x8unorm(u32(buffer.w)).z;
|
|
28140
28371
|
var rgbmColor = DecodeRGBM(vec4f(rgb,m));
|
|
28141
|
-
resDepth += buffer.x;
|
|
28372
|
+
resDepth += buffer.x ;
|
|
28142
28373
|
resColor += rgbmColor * NdotL;
|
|
28374
|
+
|
|
28143
28375
|
totalColorWeight += NdotL;
|
|
28144
28376
|
totalDepthWeight += 1.0;
|
|
28145
28377
|
}
|
|
28146
28378
|
}
|
|
28147
|
-
|
|
28379
|
+
|
|
28148
28380
|
resDepth = resDepth / max(totalDepthWeight,0.001f);
|
|
28149
28381
|
resColor = resColor / max(totalColorWeight,0.001f);
|
|
28150
|
-
|
|
28382
|
+
|
|
28151
28383
|
let rgbm = EncodeRGBM(resColor) ;
|
|
28152
28384
|
let gBuffer = vec4f(
|
|
28153
28385
|
resDepth,
|
|
28154
28386
|
0.0,
|
|
28155
28387
|
f32(pack4x8unorm(vec4f(rgbm.rgb,0.0))),
|
|
28156
28388
|
f32(pack4x8unorm(vec4f(0.0,0.0,rgbm.w,0.0))),
|
|
28157
|
-
);
|
|
28158
|
-
return vec4f(resColor,
|
|
28159
|
-
}
|
|
28389
|
+
) ;
|
|
28390
|
+
return vec4f(resColor,1.0) ;
|
|
28391
|
+
}
|
|
28160
28392
|
|
|
28161
|
-
fn getReflectionsMap(n:
|
|
28393
|
+
fn getReflectionsMap(n:vec3<f32>,gid:f32) -> vec4f {
|
|
28162
28394
|
var uv = getSampleProbeUV(n,gid);
|
|
28163
|
-
let color = textureLoad(inputTex, vec2i(uv*inputSize), 0);
|
|
28164
|
-
return color;
|
|
28395
|
+
let color = textureLoad(inputTex, vec2i(uv*inputSize) , 0);
|
|
28396
|
+
return color ;
|
|
28165
28397
|
}
|
|
28166
28398
|
|
|
28167
|
-
fn getSampleProbeUV(dir:
|
|
28399
|
+
fn getSampleProbeUV(dir:vec3<f32>,gid:f32) -> vec2<f32> {
|
|
28168
28400
|
let faceId = dir_to_faceId(dir);
|
|
28169
28401
|
var targetUV:vec2<f32> = convert_xyz_to_cube_uv(dir.x, dir.y, dir.z);
|
|
28170
28402
|
targetUV.x = 1.0 - targetUV.x;
|
|
@@ -28174,17 +28406,18 @@ fn SH9(dir: vec3<f32>, coefficients: array<vec4f, 9>) -> vec4<f32> {
|
|
|
28174
28406
|
let aspect:vec2f = PROBE_SOURCESIZE / PROBEMAP_SOURCESIZE;
|
|
28175
28407
|
targetUV = targetUV * aspect ;
|
|
28176
28408
|
targetUV.y = targetUV.y + (spaceV * gid);
|
|
28177
|
-
return targetUV;
|
|
28178
|
-
|
|
28409
|
+
return targetUV ;
|
|
28410
|
+
}
|
|
28179
28411
|
|
|
28180
|
-
fn radicalInverse_VdC(bits2:u32) -> f32
|
|
28412
|
+
fn radicalInverse_VdC( bits2:u32) -> f32
|
|
28413
|
+
{
|
|
28181
28414
|
var bits = bits2;
|
|
28182
28415
|
bits = (bits << 16u) | (bits >> 16u);
|
|
28183
28416
|
bits = ((bits & 0x55555555u) << 1u) | ((bits & 0xAAAAAAAAu) >> 1u);
|
|
28184
28417
|
bits = ((bits & 0x33333333u) << 2u) | ((bits & 0xCCCCCCCCu) >> 2u);
|
|
28185
28418
|
bits = ((bits & 0x0F0F0F0Fu) << 4u) | ((bits & 0xF0F0F0F0u) >> 4u);
|
|
28186
28419
|
bits = ((bits & 0x00FF00FFu) << 8u) | ((bits & 0xFF00FF00u) >> 8u);
|
|
28187
|
-
return f32(bits) * 2.3283064365386963e-10f;
|
|
28420
|
+
return f32(bits) * 2.3283064365386963e-10f; // / 0x100000000
|
|
28188
28421
|
}
|
|
28189
28422
|
|
|
28190
28423
|
fn hammersley( i:u32, N:u32) -> vec2f
|
|
@@ -28195,21 +28428,25 @@ fn SH9(dir: vec3<f32>, coefficients: array<vec4f, 9>) -> vec4<f32> {
|
|
|
28195
28428
|
fn ImportanceSampleGGX( xi:vec2f, roughness:f32, N:vec3f) -> vec3f
|
|
28196
28429
|
{
|
|
28197
28430
|
var alpha2 = roughness * roughness * roughness * roughness;
|
|
28431
|
+
|
|
28198
28432
|
var phi = 2.0f * 3.1415926 * xi.x ;
|
|
28199
28433
|
var cosTheta = sqrt( (1.0f - xi.y) / (1.0f + (alpha2 - 1.0f) * xi.y ));
|
|
28200
28434
|
var sinTheta = sqrt( 1.0f - cosTheta*cosTheta );
|
|
28201
|
-
|
|
28435
|
+
|
|
28436
|
+
var h : vec3f ;
|
|
28202
28437
|
h.x = sinTheta * cos( phi );
|
|
28203
28438
|
h.y = sinTheta * sin( phi );
|
|
28204
28439
|
h.z = cosTheta;
|
|
28440
|
+
|
|
28205
28441
|
var up = vec3f(1,0,0) ;
|
|
28206
28442
|
if(abs(N.z) < 0.9999){
|
|
28207
28443
|
up = vec3f(0,0,1) ;
|
|
28208
28444
|
}
|
|
28445
|
+
|
|
28209
28446
|
var tangentX = normalize( cross( up, N ) );
|
|
28210
28447
|
var tangentY = cross( N, tangentX );
|
|
28211
28448
|
return (tangentX * h.x + tangentY * h.y + N * h.z);
|
|
28212
|
-
}
|
|
28449
|
+
}
|
|
28213
28450
|
|
|
28214
28451
|
fn specularD( roughness:f32, NoH:f32) -> f32
|
|
28215
28452
|
{
|
|
@@ -28217,7 +28454,9 @@ fn SH9(dir: vec3<f32>, coefficients: array<vec4f, 9>) -> vec4<f32> {
|
|
|
28217
28454
|
var r2 = roughness * roughness;
|
|
28218
28455
|
return r2 / pow(NoH2 * (r2 - 1.0) + 1.0, 2.0);
|
|
28219
28456
|
}
|
|
28220
|
-
|
|
28457
|
+
|
|
28458
|
+
`
|
|
28459
|
+
);
|
|
28221
28460
|
|
|
28222
28461
|
class ReflectionRenderer extends RendererBase {
|
|
28223
28462
|
cubeCamera;
|
|
@@ -28476,8 +28715,10 @@ fn SH9(dir: vec3<f32>, coefficients: array<vec4f, 9>) -> vec4<f32> {
|
|
|
28476
28715
|
}
|
|
28477
28716
|
}
|
|
28478
28717
|
|
|
28479
|
-
let FXAAShader =
|
|
28480
|
-
|
|
28718
|
+
let FXAAShader = (
|
|
28719
|
+
/*wgsl*/
|
|
28720
|
+
`
|
|
28721
|
+
#include 'BitUtil'
|
|
28481
28722
|
struct FragmentOutput {
|
|
28482
28723
|
@location(auto) o_Target: vec4<f32>
|
|
28483
28724
|
};
|
|
@@ -28496,6 +28737,7 @@ fn SH9(dir: vec3<f32>, coefficients: array<vec4f, 9>) -> vec4<f32> {
|
|
|
28496
28737
|
@group(2) @binding(0)
|
|
28497
28738
|
var<uniform> materialUniform: MaterialUniform;
|
|
28498
28739
|
|
|
28740
|
+
|
|
28499
28741
|
fn LinearToGammaSpace(linRGB0: vec3<f32>) -> vec3<f32> {
|
|
28500
28742
|
var linRGB = max(linRGB0, vec3(0.0, 0.0, 0.0));
|
|
28501
28743
|
linRGB.r = pow(linRGB.r,0.416666667);
|
|
@@ -28504,30 +28746,35 @@ fn SH9(dir: vec3<f32>, coefficients: array<vec4f, 9>) -> vec4<f32> {
|
|
|
28504
28746
|
return max(1.055 * linRGB - 0.055, vec3(0.0, 0.0, 0.0));
|
|
28505
28747
|
}
|
|
28506
28748
|
|
|
28507
|
-
fn texture2D(uv:vec2<f32
|
|
28508
|
-
let buffer = textureSample(baseMap, baseMapSampler, uv.xy + offset).rgba;
|
|
28509
|
-
return buffer;
|
|
28749
|
+
fn texture2D( uv:vec2<f32> , offset:vec2<f32> ) -> vec4<f32> {
|
|
28750
|
+
let buffer = textureSample(baseMap, baseMapSampler, uv.xy + offset ).rgba ;
|
|
28751
|
+
return buffer ;
|
|
28510
28752
|
}
|
|
28511
28753
|
|
|
28512
28754
|
@fragment
|
|
28513
28755
|
fn main(@location(auto) fragUV: vec2<f32>) -> FragmentOutput {
|
|
28514
|
-
var v_vTexcoord = fragUV;
|
|
28756
|
+
var v_vTexcoord = fragUV ;
|
|
28515
28757
|
v_vTexcoord.y = 1.0 - v_vTexcoord.y ;
|
|
28758
|
+
|
|
28516
28759
|
var reducemul = 1.0 / 8.0;
|
|
28517
28760
|
var reducemin = 1.0 / 128.0;
|
|
28761
|
+
|
|
28518
28762
|
var basecol = texture2D(v_vTexcoord , vec2<f32>(0.0)).rgba;
|
|
28519
28763
|
var baseNW = texture2D(v_vTexcoord , -materialUniform.u_texel).rgb;
|
|
28520
28764
|
var baseNE = texture2D(v_vTexcoord , vec2<f32>(materialUniform.u_texel.x, -materialUniform.u_texel.y)).rgb;
|
|
28521
28765
|
var baseSW = texture2D(v_vTexcoord , vec2<f32>(-materialUniform.u_texel.x, materialUniform.u_texel.y)).rgb;
|
|
28522
28766
|
var baseSE = texture2D(v_vTexcoord , materialUniform.u_texel ).rgb;
|
|
28767
|
+
|
|
28523
28768
|
var gray = vec3<f32>(0.213, 0.715, 0.072);
|
|
28524
28769
|
var monocol = dot(basecol.rgb, gray);
|
|
28525
28770
|
var monoNW = dot(baseNW, gray);
|
|
28526
28771
|
var monoNE = dot(baseNE, gray);
|
|
28527
28772
|
var monoSW = dot(baseSW, gray);
|
|
28528
28773
|
var monoSE = dot(baseSE, gray);
|
|
28774
|
+
|
|
28529
28775
|
var monomin = min(monocol, min(min(monoNW, monoNE), min(monoSW, monoSE)));
|
|
28530
28776
|
var monomax = max(monocol, max(max(monoNW, monoNE), max(monoSW, monoSE)));
|
|
28777
|
+
|
|
28531
28778
|
var dir = vec2<f32>(-((monoNW + monoNE) - (monoSW + monoSE)), ((monoNW + monoSW) - (monoNE + monoSE)));
|
|
28532
28779
|
var dirreduce = max((monoNW + monoNE + monoSW + monoSE) * reducemul * 0.25, reducemin);
|
|
28533
28780
|
var dirmin = 1.0 / (min(abs(dir.x), abs(dir.y)) + dirreduce);
|
|
@@ -28535,9 +28782,11 @@ fn SH9(dir: vec3<f32>, coefficients: array<vec4f, 9>) -> vec4<f32> {
|
|
|
28535
28782
|
|
|
28536
28783
|
var resultA = 0.5 * (texture2D(v_vTexcoord , dir * -0.166667).rgb +
|
|
28537
28784
|
texture2D(v_vTexcoord , dir * 0.166667).rgb);
|
|
28785
|
+
|
|
28538
28786
|
var resultB = resultA * 0.5 + 0.25 * (texture2D( v_vTexcoord , dir * -0.5).rgb +
|
|
28539
28787
|
texture2D( v_vTexcoord , dir * 0.5).rgb);
|
|
28540
28788
|
var monoB = dot(resultB.rgb, gray);
|
|
28789
|
+
|
|
28541
28790
|
var color:vec3<f32> ;
|
|
28542
28791
|
if(monoB < monomin || monoB > monomax) {
|
|
28543
28792
|
color = resultA ;//* v_vColour;
|
|
@@ -28546,7 +28795,8 @@ fn SH9(dir: vec3<f32>, coefficients: array<vec4f, 9>) -> vec4<f32> {
|
|
|
28546
28795
|
}
|
|
28547
28796
|
return FragmentOutput(vec4<f32>(color.rgb,basecol.a));
|
|
28548
28797
|
}
|
|
28549
|
-
|
|
28798
|
+
`
|
|
28799
|
+
);
|
|
28550
28800
|
|
|
28551
28801
|
class FXAAPost extends PostBase {
|
|
28552
28802
|
postQuad;
|
|
@@ -28965,12 +29215,12 @@ fn SH9(dir: vec3<f32>, coefficients: array<vec4f, 9>) -> vec4<f32> {
|
|
|
28965
29215
|
cornerCoord.x = sideBorderCnt - 1;
|
|
28966
29216
|
}else{
|
|
28967
29217
|
cornerCoord.x = 0;
|
|
28968
|
-
}
|
|
29218
|
+
};
|
|
28969
29219
|
if(modeXY.y == 0){
|
|
28970
29220
|
cornerCoord.y = sideBorderCnt - 1;
|
|
28971
29221
|
}else{
|
|
28972
29222
|
cornerCoord.y = 0;
|
|
28973
|
-
}
|
|
29223
|
+
};
|
|
28974
29224
|
cornerCoord = indexXY * sideBorderCnt + cornerCoord;
|
|
28975
29225
|
textureStore(texture, cornerCoord, color);
|
|
28976
29226
|
}
|
|
@@ -29492,7 +29742,7 @@ fn directShadowMaping(P:vec3<f32>, N:vec3<f32>, shadowBias: f32) {
|
|
|
29492
29742
|
}else{
|
|
29493
29743
|
shadowMatrix = globalUniform.shadowMatrix[shadowIndex];
|
|
29494
29744
|
visibility = directShadowMapingIndex(light, shadowMatrix, P, N, shadowIndex, shadowBias).x;
|
|
29495
|
-
}
|
|
29745
|
+
};
|
|
29496
29746
|
}
|
|
29497
29747
|
shadowStrut.directShadowVisibility = visibility;
|
|
29498
29748
|
}
|
|
@@ -29601,7 +29851,7 @@ fn spotLight( albedo:vec3<f32>,WP:vec3<f32>, N:vec3<f32>, V:vec3<f32>, light:Lig
|
|
|
29601
29851
|
}
|
|
29602
29852
|
}else{
|
|
29603
29853
|
atten = 0.0 ;
|
|
29604
|
-
}
|
|
29854
|
+
};
|
|
29605
29855
|
var lightColor = light.lightColor.rgb ;
|
|
29606
29856
|
lightColor = getHDRColor(lightColor , light.linear ) * light.intensity / LUMEN * 2.0;
|
|
29607
29857
|
color = (albedo / PI) * lightColor.rgb * atten ;
|
|
@@ -37312,16 +37562,16 @@ fn CsMain( @builtin(workgroup_id) workgroup_id : vec3<u32> , @builtin(global_inv
|
|
|
37312
37562
|
return 4.0 * vec2<f32>(A, B) / f32(numSamples);
|
|
37313
37563
|
}
|
|
37314
37564
|
|
|
37315
|
-
@group(0) @binding(0) var
|
|
37565
|
+
@group(0) @binding(0) var brdflutTexture: texture_storage_2d<rgba8unorm, write>;
|
|
37316
37566
|
@compute @workgroup_size(8,8,1)
|
|
37317
|
-
fn CsMain(@builtin(global_invocation_id)
|
|
37318
|
-
|
|
37319
|
-
|
|
37320
|
-
|
|
37321
|
-
|
|
37322
|
-
|
|
37323
|
-
|
|
37324
|
-
|
|
37567
|
+
fn CsMain(@builtin(global_invocation_id) global_invocation_id : vec3<u32>){
|
|
37568
|
+
var fragCoord = vec2<u32>(global_invocation_id.x, global_invocation_id.y);
|
|
37569
|
+
var fragColor = vec4<f32>(0.0);
|
|
37570
|
+
// Output to screen
|
|
37571
|
+
var res = integrateBRDF(f32(fragCoord.y + 1u) / 256.0, f32(fragCoord.x + 1u) / 256.0);
|
|
37572
|
+
fragColor = vec4<f32>(res.x, res.y, 0.0, 1.0);
|
|
37573
|
+
textureStore(brdflutTexture, vec2<i32>(fragCoord.xy), fragColor);
|
|
37574
|
+
}
|
|
37325
37575
|
`;
|
|
37326
37576
|
|
|
37327
37577
|
class BRDFLUTGenerate {
|
|
@@ -38166,7 +38416,7 @@ fn CsMain( @builtin(workgroup_id) workgroup_id : vec3<u32> , @builtin(global_inv
|
|
|
38166
38416
|
}
|
|
38167
38417
|
}
|
|
38168
38418
|
|
|
38169
|
-
const version = "1.0.
|
|
38419
|
+
const version = "1.0.1";
|
|
38170
38420
|
|
|
38171
38421
|
class Engine3D {
|
|
38172
38422
|
/**
|
|
@@ -39165,7 +39415,7 @@ fn CsMain(@builtin(workgroup_id) workgroup_id: vec3<u32>, @builtin(global_invoca
|
|
|
39165
39415
|
}else{
|
|
39166
39416
|
shadowMatrix = globalUniform.shadowMatrix[shadowIndex];
|
|
39167
39417
|
visibility = directShadowMapingIndex(light, shadowMatrix, P, N, shadowIndex, shadowBias).x;
|
|
39168
|
-
}
|
|
39418
|
+
};
|
|
39169
39419
|
}
|
|
39170
39420
|
shadowStruct.directShadowVisibility = visibility;
|
|
39171
39421
|
}
|
|
@@ -39370,7 +39620,7 @@ fn CsMain(@builtin(workgroup_id) workgroup_id: vec3<u32>, @builtin(global_invoca
|
|
|
39370
39620
|
blendColor = inColor.xyz + outLineColor.xyz * outLineColor.w;
|
|
39371
39621
|
}else{
|
|
39372
39622
|
blendColor = mix(inColor.xyz, outLineColor.xyz, outLineColor.w);
|
|
39373
|
-
}
|
|
39623
|
+
};
|
|
39374
39624
|
textureStore(outlineTex, fragCoord, vec4<f32>(blendColor, inColor.w));
|
|
39375
39625
|
}
|
|
39376
39626
|
`
|
|
@@ -40098,7 +40348,7 @@ fn CsMain(@builtin(global_invocation_id) global_invocation_id: vec3<u32>){
|
|
|
40098
40348
|
|
|
40099
40349
|
}else{
|
|
40100
40350
|
Output = vec4f(wColor.xyz, 1.0);
|
|
40101
|
-
}
|
|
40351
|
+
};
|
|
40102
40352
|
|
|
40103
40353
|
return Output;
|
|
40104
40354
|
}
|
|
@@ -40367,12 +40617,12 @@ struct SSRUniformData {
|
|
|
40367
40617
|
}
|
|
40368
40618
|
}else{
|
|
40369
40619
|
rayTraceRet.alpha = 0.0;
|
|
40370
|
-
}
|
|
40620
|
+
};
|
|
40371
40621
|
rayTraceRet.skyColor = getSkyColor();
|
|
40372
40622
|
}else{
|
|
40373
40623
|
rayTraceRet.alpha = -1.0;
|
|
40374
40624
|
rayTraceRet.skyColor = vec3<f32>(0.0);
|
|
40375
|
-
}
|
|
40625
|
+
};
|
|
40376
40626
|
|
|
40377
40627
|
rayTraceRet.roughness = roughness;
|
|
40378
40628
|
rayTraceRet.fresnel = fresnel;
|
|
@@ -40524,7 +40774,7 @@ struct SSRUniformData {
|
|
|
40524
40774
|
hitData.hitCoord = uv;
|
|
40525
40775
|
return 1;
|
|
40526
40776
|
}
|
|
40527
|
-
}
|
|
40777
|
+
};
|
|
40528
40778
|
}
|
|
40529
40779
|
return 0;
|
|
40530
40780
|
}
|
|
@@ -40676,7 +40926,7 @@ fn blendColor() -> vec4<f32>{
|
|
|
40676
40926
|
preCoord = vec2<i32>(reProjectionCoord);
|
|
40677
40927
|
}else{
|
|
40678
40928
|
mixWeight = 1.0;
|
|
40679
|
-
}
|
|
40929
|
+
};
|
|
40680
40930
|
}
|
|
40681
40931
|
|
|
40682
40932
|
var curUV01 = fragUV;
|
|
@@ -40749,7 +40999,7 @@ fn minmax4(coord:vec2<i32>) {
|
|
|
40749
40999
|
return vec4<f32>(p_clip, color_avg.w) + v_clip / ma_unit;
|
|
40750
41000
|
}else{
|
|
40751
41001
|
return input_texel;
|
|
40752
|
-
}
|
|
41002
|
+
};
|
|
40753
41003
|
}
|
|
40754
41004
|
`
|
|
40755
41005
|
);
|
|
@@ -41238,7 +41488,7 @@ fn containsBox( size:vec3<f32> , center:vec3<f32> ) -> f32 {
|
|
|
41238
41488
|
return 2.0 ;
|
|
41239
41489
|
}else{
|
|
41240
41490
|
return 1.0 ;
|
|
41241
|
-
}
|
|
41491
|
+
};
|
|
41242
41492
|
}
|
|
41243
41493
|
|
|
41244
41494
|
@compute @workgroup_size(128)
|
|
@@ -41993,11 +42243,13 @@ fn frag(){
|
|
|
41993
42243
|
);
|
|
41994
42244
|
|
|
41995
42245
|
let UnLitTextureArray = (
|
|
41996
|
-
/*wgsl
|
|
42246
|
+
/*wgsl*/
|
|
41997
42247
|
`
|
|
42248
|
+
// #include "Common_vert"
|
|
41998
42249
|
#include "Common_frag"
|
|
41999
42250
|
#include "UnLit_frag"
|
|
42000
42251
|
#include "UnLitMaterialUniform_frag"
|
|
42252
|
+
|
|
42001
42253
|
#include "WorldMatrixUniform"
|
|
42002
42254
|
#include "VertexAttributeIndexShader"
|
|
42003
42255
|
#include "GlobalUniform"
|
|
@@ -42005,8 +42257,8 @@ fn frag(){
|
|
|
42005
42257
|
#include "EnvMap_frag"
|
|
42006
42258
|
#include "ColorUtil_frag"
|
|
42007
42259
|
|
|
42008
|
-
const DEGREES_TO_RADIANS: f32 = 3.1415926 / 180.0;
|
|
42009
|
-
const PI: f32 = 3.1415926;
|
|
42260
|
+
const DEGREES_TO_RADIANS : f32 = 3.1415926 / 180.0 ;
|
|
42261
|
+
const PI : f32 = 3.1415926 ;
|
|
42010
42262
|
|
|
42011
42263
|
#if USE_CUSTOMUNIFORM
|
|
42012
42264
|
struct MaterialUniform {
|
|
@@ -42017,15 +42269,19 @@ fn frag(){
|
|
|
42017
42269
|
};
|
|
42018
42270
|
#endif
|
|
42019
42271
|
|
|
42020
|
-
@group(1) @binding(0)
|
|
42021
|
-
|
|
42022
|
-
@group(
|
|
42272
|
+
@group(1) @binding(0)
|
|
42273
|
+
var baseMapSampler: sampler;
|
|
42274
|
+
@group(1) @binding(1)
|
|
42275
|
+
var baseMap: texture_2d_array<f32>;
|
|
42023
42276
|
|
|
42277
|
+
@group(2) @binding(5)
|
|
42278
|
+
var<storage,read> graphicBuffer : array<GraphicNodeStruct>;
|
|
42279
|
+
|
|
42024
42280
|
@vertex
|
|
42025
|
-
fn VertMain(vertex:
|
|
42281
|
+
fn VertMain( vertex:VertexAttributes ) -> VertexOutput {
|
|
42026
42282
|
vertex_inline(vertex);
|
|
42027
42283
|
vert(vertex);
|
|
42028
|
-
return ORI_VertexOut;
|
|
42284
|
+
return ORI_VertexOut ;
|
|
42029
42285
|
}
|
|
42030
42286
|
|
|
42031
42287
|
fn vert(inputData:VertexAttributes) -> VertexOutput {
|
|
@@ -42036,9 +42292,15 @@ fn frag(){
|
|
|
42036
42292
|
fn frag(){
|
|
42037
42293
|
var transformUV1 = materialUniform.transformUV1;
|
|
42038
42294
|
var transformUV2 = materialUniform.transformUV2;
|
|
42295
|
+
|
|
42296
|
+
// var irradiance = vec3<f32>(0.0) ;
|
|
42297
|
+
// let MAX_REFLECTION_LOD = f32(textureNumLevels(prefilterMap)) ;
|
|
42298
|
+
// irradiance += (globalUniform.skyExposure * textureSampleLevel(prefilterMap, prefilterMapSampler, ORI_VertexVarying.vWorldNormal.xyz, 0.8 * (MAX_REFLECTION_LOD) ).rgb);
|
|
42299
|
+
|
|
42039
42300
|
graphicNode = graphicBuffer[u32(round(ORI_VertexVarying.index))];
|
|
42040
42301
|
|
|
42041
42302
|
var uv = transformUV1.zw * ORI_VertexVarying.fragUV0 + transformUV1.xy;
|
|
42303
|
+
//The fragUV1.x is 1.0 when the vertex belongs to line.
|
|
42042
42304
|
if(ORI_VertexVarying.fragUV1.x > 0.5){
|
|
42043
42305
|
uv = graphicNode.uvRect2.zw * uv.xy + graphicNode.uvRect2.xy;
|
|
42044
42306
|
uv += graphicNode.uvSpeed.zw * globalUniform.time;
|
|
@@ -42054,7 +42316,7 @@ fn frag(){
|
|
|
42054
42316
|
);
|
|
42055
42317
|
uv = (zrot * vec3f(uv, 0.0)).xy;
|
|
42056
42318
|
}
|
|
42057
|
-
}
|
|
42319
|
+
};
|
|
42058
42320
|
var graphicTextureID = graphicNode.texIndex;
|
|
42059
42321
|
var graphicNodeColor = graphicNode.baseColor;
|
|
42060
42322
|
if(ORI_VertexVarying.fragUV1.x > 0.5){
|
|
@@ -42062,12 +42324,23 @@ fn frag(){
|
|
|
42062
42324
|
graphicNodeColor = graphicNode.lineColor;
|
|
42063
42325
|
}
|
|
42064
42326
|
var color = textureSample(baseMap,baseMapSampler,uv, u32(round(graphicTextureID)) ) * materialUniform.baseColor * graphicNodeColor ;
|
|
42065
|
-
color
|
|
42327
|
+
// let color = textureSample(baseMap,baseMapSampler,uv, u32(round(ORI_VertexVarying.index)));
|
|
42328
|
+
|
|
42329
|
+
// ORI_ViewDir = normalize( globalUniform.CameraPos.xyz - ORI_VertexVarying.vWorldPos.xyz);
|
|
42330
|
+
// let att = dot( ORI_ViewDir , ORI_VertexVarying.vWorldNormal.xyz );
|
|
42331
|
+
|
|
42332
|
+
// irradiance = LinearToGammaSpace(irradiance.rgb) * color.rgb ;//* att ;
|
|
42333
|
+
|
|
42334
|
+
color += graphicNode.emissiveColor ;
|
|
42066
42335
|
if(color.w < materialUniform.alphaCutoff){
|
|
42067
|
-
discard;
|
|
42336
|
+
discard ;
|
|
42068
42337
|
}
|
|
42069
|
-
|
|
42070
|
-
|
|
42338
|
+
|
|
42339
|
+
// let outColor = vec4f( color.rgb * (att * 0.5 + 0.5 ) , 1.0 ) * materialUniform.baseColor ;
|
|
42340
|
+
let outColor = vec4f( color.rgb , 1.0 ) * materialUniform.baseColor ;
|
|
42341
|
+
|
|
42342
|
+
// ORI_ShadingInput.BaseColor = color ;
|
|
42343
|
+
ORI_ShadingInput.BaseColor = vec4f(outColor.xyz,1.0) ;
|
|
42071
42344
|
UnLit();
|
|
42072
42345
|
}
|
|
42073
42346
|
`
|
|
@@ -42202,7 +42475,7 @@ fn frag(){
|
|
|
42202
42475
|
let sunLight = lightBuffer[0] ;
|
|
42203
42476
|
var inScatteringValue = inScatterIng(sunLight.direction, texPosition.xyz, sunLight.lightColor);
|
|
42204
42477
|
opColor += inScatteringValue;
|
|
42205
|
-
}
|
|
42478
|
+
};
|
|
42206
42479
|
|
|
42207
42480
|
textureStore(outTex, fragCoord , vec4<f32>(opColor.xyz, texColor.a));
|
|
42208
42481
|
}
|
|
@@ -47653,7 +47926,7 @@ fn frag(){
|
|
|
47653
47926
|
s = border.x + (s / centerPartMax) * centerPartMin;
|
|
47654
47927
|
}else{
|
|
47655
47928
|
s = s - centerPartMax + border.x + centerPartMin;
|
|
47656
|
-
}
|
|
47929
|
+
};
|
|
47657
47930
|
}
|
|
47658
47931
|
return s;
|
|
47659
47932
|
}
|
|
@@ -47805,12 +48078,12 @@ fn frag(){
|
|
|
47805
48078
|
ret.x = quad.x;
|
|
47806
48079
|
}else{
|
|
47807
48080
|
ret.x = quad.z;
|
|
47808
|
-
}
|
|
48081
|
+
};
|
|
47809
48082
|
if(index == 0 || index == 1){
|
|
47810
48083
|
ret.y = quad.w;
|
|
47811
48084
|
}else{
|
|
47812
48085
|
ret.y = quad.y;
|
|
47813
|
-
}
|
|
48086
|
+
};
|
|
47814
48087
|
return ret;
|
|
47815
48088
|
}
|
|
47816
48089
|
`
|