@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.es.max.js
CHANGED
|
@@ -3993,511 +3993,559 @@ let ClusterDebug_frag = `
|
|
|
3993
3993
|
`;
|
|
3994
3994
|
|
|
3995
3995
|
class CubeSky_Shader {
|
|
3996
|
-
static sky_vs_frag_wgsl =
|
|
3997
|
-
|
|
3998
|
-
|
|
3996
|
+
static sky_vs_frag_wgsl = (
|
|
3997
|
+
/* wgsl */
|
|
3998
|
+
`
|
|
3999
|
+
#include "WorldMatrixUniform"
|
|
4000
|
+
#include "GlobalUniform"
|
|
3999
4001
|
|
|
4000
|
-
|
|
4001
|
-
|
|
4002
|
-
|
|
4003
|
-
|
|
4004
|
-
|
|
4005
|
-
|
|
4006
|
-
|
|
4002
|
+
struct VertexOutput {
|
|
4003
|
+
@location(auto) fragUV: vec2<f32>,
|
|
4004
|
+
@location(auto) vClipPos: vec4<f32>,
|
|
4005
|
+
@location(auto) vWorldPos: vec4<f32>,
|
|
4006
|
+
@location(auto) vWorldNormal: vec3<f32>,
|
|
4007
|
+
@builtin(position) member: vec4<f32>
|
|
4008
|
+
};
|
|
4007
4009
|
|
|
4008
|
-
|
|
4010
|
+
var<private> ORI_VertexOut: VertexOutput ;
|
|
4009
4011
|
|
|
4010
|
-
|
|
4011
|
-
|
|
4012
|
-
|
|
4013
|
-
|
|
4014
|
-
|
|
4015
|
-
|
|
4016
|
-
|
|
4017
|
-
|
|
4018
|
-
|
|
4019
|
-
|
|
4020
|
-
|
|
4021
|
-
|
|
4022
|
-
|
|
4023
|
-
|
|
4024
|
-
|
|
4025
|
-
|
|
4026
|
-
|
|
4012
|
+
@vertex
|
|
4013
|
+
fn main(
|
|
4014
|
+
@builtin(instance_index) index : u32,
|
|
4015
|
+
@location(auto) position: vec3<f32>,
|
|
4016
|
+
@location(auto) normal: vec3<f32>,
|
|
4017
|
+
@location(auto) uv: vec2<f32>
|
|
4018
|
+
) -> VertexOutput {
|
|
4019
|
+
ORI_VertexOut.fragUV = uv;
|
|
4020
|
+
let modelMat = models.matrix[u32(index)];
|
|
4021
|
+
let vm = modelMat;
|
|
4022
|
+
let normalMatrix = mat3x3<f32>(vm[0].xyz,vm[1].xyz,vm[2].xyz);
|
|
4023
|
+
ORI_VertexOut.vWorldNormal = normalize( normalMatrix * normal );
|
|
4024
|
+
ORI_VertexOut.vWorldPos = modelMat * vec4<f32>(position.xyz,1.0) ;
|
|
4025
|
+
|
|
4026
|
+
var fixProjMat = globalUniform.projMat ;
|
|
4027
|
+
fixProjMat[2].z = 1.0 ;//99999.0 / (99999.0 - 1.0) ;
|
|
4028
|
+
fixProjMat[3].z = -1.0 ;//(-1.0 * 99999.0) / (99999.0 - 1.0) ;
|
|
4027
4029
|
|
|
4028
|
-
|
|
4029
|
-
|
|
4030
|
-
|
|
4031
|
-
|
|
4030
|
+
var fixViewMat = globalUniform.viewMat ;
|
|
4031
|
+
fixViewMat[3].x = 0.0 ;
|
|
4032
|
+
fixViewMat[3].y = 0.0 ;
|
|
4033
|
+
fixViewMat[3].z = 0.0 ;
|
|
4032
4034
|
|
|
4033
|
-
|
|
4034
|
-
|
|
4035
|
-
|
|
4036
|
-
|
|
4037
|
-
|
|
4038
|
-
|
|
4039
|
-
|
|
4040
|
-
|
|
4041
|
-
|
|
4042
|
-
|
|
4043
|
-
|
|
4044
|
-
|
|
4035
|
+
var clipPos = fixProjMat * fixViewMat * ORI_VertexOut.vWorldPos;
|
|
4036
|
+
ORI_VertexOut.vClipPos = clipPos ;
|
|
4037
|
+
ORI_VertexOut.member = clipPos;
|
|
4038
|
+
return ORI_VertexOut;
|
|
4039
|
+
}
|
|
4040
|
+
`
|
|
4041
|
+
);
|
|
4042
|
+
static sky_fs_frag_wgsl = (
|
|
4043
|
+
/* wgsl */
|
|
4044
|
+
`
|
|
4045
|
+
#include "GlobalUniform"
|
|
4046
|
+
#include "MathShader"
|
|
4047
|
+
#include "BitUtil"
|
|
4048
|
+
#include "ColorUtil_frag"
|
|
4049
|
+
#include "FragmentOutput"
|
|
4045
4050
|
|
|
4046
|
-
|
|
4047
|
-
|
|
4048
|
-
|
|
4049
|
-
|
|
4051
|
+
struct uniformData {
|
|
4052
|
+
exposure: f32,
|
|
4053
|
+
roughness: f32
|
|
4054
|
+
};
|
|
4050
4055
|
|
|
4051
|
-
|
|
4052
|
-
|
|
4053
|
-
|
|
4054
|
-
|
|
4056
|
+
@group(1) @binding(0)
|
|
4057
|
+
var baseMapSampler: sampler;
|
|
4058
|
+
@group(1) @binding(1)
|
|
4059
|
+
var baseMap: texture_cube<f32>;
|
|
4055
4060
|
|
|
4056
|
-
|
|
4057
|
-
|
|
4061
|
+
@group(2) @binding(0)
|
|
4062
|
+
var<uniform> global: uniformData;
|
|
4058
4063
|
|
|
4059
|
-
|
|
4060
|
-
|
|
4061
|
-
|
|
4062
|
-
|
|
4063
|
-
|
|
4064
|
-
|
|
4065
|
-
|
|
4066
|
-
|
|
4064
|
+
@fragment
|
|
4065
|
+
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 {
|
|
4066
|
+
let maxLevel: u32 = textureNumLevels(baseMap);
|
|
4067
|
+
let dir = normalize(vWorldPos.xyz);
|
|
4068
|
+
var textureColor:vec3<f32> = textureSampleLevel(baseMap, baseMapSampler, normalize(dir.xyz), global.roughness * f32(maxLevel) ).xyz;
|
|
4069
|
+
#if IS_HDR_SKY
|
|
4070
|
+
textureColor = LinearToGammaSpace(textureColor);
|
|
4071
|
+
#endif
|
|
4072
|
+
|
|
4073
|
+
// let o_Target: vec4<f32> = globalUniform.hdrExposure * vec4<f32>(textureColor, 1.0) * globalUniform.skyExposure ;
|
|
4074
|
+
let o_Target: vec4<f32> = vec4<f32>(textureColor, 1.0) * globalUniform.skyExposure;
|
|
4075
|
+
let finalMatrix = globalUniform.projMat * globalUniform.viewMat ;
|
|
4076
|
+
let nMat = mat3x3<f32>(finalMatrix[0].xyz,finalMatrix[1].xyz,finalMatrix[2].xyz) ;
|
|
4077
|
+
let ORI_NORMALMATRIX = transpose(inverse( nMat ));
|
|
4078
|
+
|
|
4079
|
+
var vNormal = (ORI_NORMALMATRIX * -vWorldNormal );
|
|
4080
|
+
var gBuffer = packGBuffer(
|
|
4081
|
+
-globalUniform.far,
|
|
4082
|
+
vec3f(0.0),
|
|
4083
|
+
o_Target.rgb,
|
|
4084
|
+
vec3f(0.0),
|
|
4085
|
+
vNormal
|
|
4086
|
+
) ;
|
|
4087
|
+
var fragmentOutput:FragmentOutput;
|
|
4088
|
+
#if USE_CASTREFLECTION
|
|
4089
|
+
fragmentOutput.gBuffer = gBuffer ;
|
|
4090
|
+
#else
|
|
4091
|
+
fragmentOutput.color = o_Target ;
|
|
4092
|
+
fragmentOutput.gBuffer = gBuffer ;
|
|
4093
|
+
#endif
|
|
4094
|
+
return fragmentOutput;
|
|
4095
|
+
}
|
|
4067
4096
|
|
|
4068
|
-
|
|
4069
|
-
|
|
4070
|
-
|
|
4071
|
-
let ORI_NORMALMATRIX = transpose(inverse(nMat));
|
|
4097
|
+
fn packGBuffer(depth:f32, albedo:vec3f,hdrLighting:vec3f,rmao:vec3f,normal:vec3f) -> vec4f{
|
|
4098
|
+
var gBuffer : vec4f ;
|
|
4099
|
+
var octUVNormal = (octEncode(normalize(normal)) + 1.0) * 0.5 ;
|
|
4072
4100
|
|
|
4073
|
-
|
|
4074
|
-
|
|
4075
|
-
|
|
4076
|
-
|
|
4077
|
-
|
|
4078
|
-
|
|
4079
|
-
|
|
4080
|
-
|
|
4101
|
+
var yc = f32(r11g11b9_to_float(vec3f(octUVNormal,0.0))) ;
|
|
4102
|
+
#if USE_CASTREFLECTION
|
|
4103
|
+
var rgbm = EncodeRGBM(hdrLighting);
|
|
4104
|
+
var zc = f32(pack4x8unorm(vec4f(rgbm.rgb,0.0))) ;
|
|
4105
|
+
var wc = f32(pack4x8unorm(vec4f(rmao.rg,rgbm.a,0.0)));
|
|
4106
|
+
#else
|
|
4107
|
+
var zc = f32(vec4fToFloat_7bits(vec4f(albedo.rgb,0.0)));
|
|
4108
|
+
var wc = f32(r22g8_to_float(vec2f(f32(0.0),rmao.g)));
|
|
4109
|
+
#endif
|
|
4110
|
+
|
|
4111
|
+
gBuffer.x = depth ;
|
|
4112
|
+
gBuffer.y = yc ;
|
|
4113
|
+
gBuffer.z = zc ;
|
|
4114
|
+
gBuffer.w = wc ;
|
|
4115
|
+
return gBuffer ;
|
|
4116
|
+
}
|
|
4117
|
+
`
|
|
4118
|
+
);
|
|
4119
|
+
}
|
|
4081
4120
|
|
|
4082
|
-
|
|
4083
|
-
|
|
4084
|
-
|
|
4085
|
-
|
|
4086
|
-
|
|
4087
|
-
|
|
4088
|
-
#endif
|
|
4089
|
-
return fragmentOutput;
|
|
4090
|
-
}
|
|
4121
|
+
let LightingFunction_frag = (
|
|
4122
|
+
/*wgsl*/
|
|
4123
|
+
`
|
|
4124
|
+
#include "BRDF_frag"
|
|
4125
|
+
#include "ClusterLight"
|
|
4126
|
+
#include "ShadowMapping_frag"
|
|
4091
4127
|
|
|
4092
|
-
|
|
4093
|
-
|
|
4094
|
-
|
|
4095
|
-
var yc = f32(r11g11b9_to_float(vec3f(octUVNormal,0.0)));
|
|
4096
|
-
|
|
4097
|
-
#if USE_CASTREFLECTION
|
|
4098
|
-
var rgbm = EncodeRGBM(hdrLighting);
|
|
4099
|
-
var zc = f32(pack4x8unorm(vec4f(rgbm.rgb,0.0)));
|
|
4100
|
-
var wc = f32(pack4x8unorm(vec4f(rmao.rg,rgbm.a,0.0)));
|
|
4101
|
-
#else
|
|
4102
|
-
var zc = f32(vec4ToFloat_7bits(vec4f(albedo.rgb,0.0)));
|
|
4103
|
-
var wc = f32(r22g8_to_float(vec2f(f32(0.0),rmao.g)))
|
|
4104
|
-
#endif
|
|
4128
|
+
#if USE_IES_PROFILE
|
|
4129
|
+
#include "IESProfiles_frag"
|
|
4130
|
+
#endif
|
|
4105
4131
|
|
|
4106
|
-
|
|
4107
|
-
gBuffer.y = yc;
|
|
4108
|
-
gBuffer.z = zc;
|
|
4109
|
-
gBuffer.w = wc;
|
|
4110
|
-
return gBuffer;
|
|
4111
|
-
}
|
|
4112
|
-
`;
|
|
4113
|
-
}
|
|
4132
|
+
const PI2 = 3.1415926 * 3.1415926 ;
|
|
4114
4133
|
|
|
4115
|
-
|
|
4116
|
-
|
|
4117
|
-
|
|
4118
|
-
|
|
4134
|
+
fn sampleLighting(light:LightData,direction:vec3f,iblSpecularResult:vec3f , intensity :f32 , shadow:f32 ) -> vec3f{
|
|
4135
|
+
var ret = vec3f(0.0);
|
|
4136
|
+
var normalDir = fragData.N;
|
|
4137
|
+
var viewDir = fragData.V;
|
|
4119
4138
|
|
|
4120
|
-
|
|
4121
|
-
|
|
4122
|
-
|
|
4139
|
+
var lightDir = normalize(-direction.xyz);
|
|
4140
|
+
var halfDir = normalize(lightDir + viewDir);
|
|
4141
|
+
var reflectDir = normalize(reflect(-viewDir,normalDir));
|
|
4123
4142
|
|
|
4124
|
-
|
|
4125
|
-
|
|
4126
|
-
|
|
4127
|
-
|
|
4128
|
-
|
|
4129
|
-
|
|
4130
|
-
|
|
4131
|
-
|
|
4132
|
-
|
|
4133
|
-
|
|
4134
|
-
|
|
4135
|
-
|
|
4136
|
-
|
|
4137
|
-
|
|
4138
|
-
|
|
4139
|
-
|
|
4140
|
-
|
|
4141
|
-
|
|
4142
|
-
|
|
4143
|
-
|
|
4144
|
-
|
|
4145
|
-
|
|
4146
|
-
|
|
4147
|
-
|
|
4148
|
-
var
|
|
4149
|
-
|
|
4150
|
-
|
|
4151
|
-
|
|
4152
|
-
|
|
4153
|
-
|
|
4154
|
-
|
|
4155
|
-
|
|
4143
|
+
var NdotH = max(0.00001,dot(normalDir,halfDir));
|
|
4144
|
+
var NdotL = max(0.00001,dot(normalDir,lightDir));
|
|
4145
|
+
var NdotV = max(0.00001,dot(normalDir,viewDir));
|
|
4146
|
+
var HdotL = max(0.00001,dot(halfDir,lightDir));
|
|
4147
|
+
|
|
4148
|
+
var baseColor = fragData.Albedo.rgb ;
|
|
4149
|
+
var metallic = fragData.Metallic ;
|
|
4150
|
+
var roughness = fragData.Roughness ;
|
|
4151
|
+
|
|
4152
|
+
var lightColor = getHDRColor( light.lightColor.rgb , light.linear ) ;
|
|
4153
|
+
var att = max(0.0,intensity);
|
|
4154
|
+
|
|
4155
|
+
var lighting:vec3f = lightContribution(NdotH,NdotL,NdotV,HdotL,fragData.Roughness,fragData.Albedo.rgb / 3.14, metallic ,shadow,fragData.F0,lightColor.rgb);
|
|
4156
|
+
|
|
4157
|
+
lighting = ACESToneMapping(lighting,att);
|
|
4158
|
+
return lighting ;
|
|
4159
|
+
}
|
|
4160
|
+
|
|
4161
|
+
fn directLighting( light:LightData , iblSpecularResult : vec3f) -> vec3<f32> {
|
|
4162
|
+
var color = vec3<f32>(0.0) ;
|
|
4163
|
+
#if USE_LIGHT
|
|
4164
|
+
var L = normalize(light.direction.xyz) ;
|
|
4165
|
+
#if USE_BRDF
|
|
4166
|
+
var shadow = directShadowVisibility[(light.castShadow)] ;
|
|
4167
|
+
var att = light.intensity;
|
|
4168
|
+
color = sampleLighting(light,L,iblSpecularResult,att, shadow);
|
|
4169
|
+
#endif
|
|
4170
|
+
#endif
|
|
4171
|
+
return color;
|
|
4172
|
+
}
|
|
4173
|
+
|
|
4174
|
+
fn directDulLighting( albedo:vec3<f32>, N:vec3<f32>, V:vec3<f32>, roughness:f32 , metallic:f32 , light:LightData , shadowBias:f32 ) -> vec3<f32> {
|
|
4175
|
+
var color = vec3<f32>(0.0) ;
|
|
4176
|
+
#if USE_LIGHT
|
|
4177
|
+
var L = -normalize(light.direction.xyz) ;
|
|
4178
|
+
let lightCC = pow( light.lightColor.rgb,vec3<f32>(2.2));
|
|
4179
|
+
var lightColor = getHDRColor( lightCC.rgb , light.linear ) ;
|
|
4180
|
+
var att = light.intensity;
|
|
4181
|
+
if(light.castShadow>=0){
|
|
4182
|
+
#if USE_SHADOWMAPING
|
|
4183
|
+
for (var j: i32 = 0; j < 8; j += 1) {
|
|
4184
|
+
if(j == light.castShadow){
|
|
4185
|
+
att *= directShadowVisibility[j] ;
|
|
4186
|
+
}
|
|
4187
|
+
}
|
|
4156
4188
|
#endif
|
|
4157
|
-
return color;
|
|
4158
4189
|
}
|
|
4190
|
+
#if USE_LAMBERT
|
|
4191
|
+
color = vec3<f32>(1.0,1.0,1.0) ;
|
|
4192
|
+
#endif
|
|
4193
|
+
|
|
4194
|
+
#if USE_BRDF
|
|
4195
|
+
color = 0.85 * simpleBRDF(albedo,N,V,L,att,lightColor,0.85 * roughness,metallic) ;
|
|
4196
|
+
color += 0.15 * simpleBRDF(albedo,N,V,L,att,lightColor,0.15 * roughness,metallic) ;
|
|
4197
|
+
#endif
|
|
4198
|
+
#endif
|
|
4199
|
+
return color;
|
|
4200
|
+
}
|
|
4159
4201
|
|
|
4160
|
-
|
|
4161
|
-
|
|
4162
|
-
|
|
4163
|
-
|
|
4164
|
-
|
|
4165
|
-
|
|
4166
|
-
|
|
4167
|
-
|
|
4168
|
-
|
|
4169
|
-
|
|
4170
|
-
|
|
4171
|
-
|
|
4172
|
-
|
|
4173
|
-
|
|
4174
|
-
#endif
|
|
4175
|
-
}
|
|
4176
|
-
#if USE_LAMBERT
|
|
4177
|
-
color = vec3<f32>(1.0,1.0,1.0);
|
|
4202
|
+
fn directHairLighting( albedo:vec3<f32>, N:vec3<f32>, V:vec3<f32>, roughness:f32 , metallic:f32 , light:LightData , shadowBias:f32 ) -> vec3<f32> {
|
|
4203
|
+
var color = vec3<f32>(0.0) ;
|
|
4204
|
+
#if USE_LIGHT
|
|
4205
|
+
var L = -normalize(light.direction.xyz) ;
|
|
4206
|
+
let lightCC = pow( light.lightColor.rgb,vec3<f32>(2.2));
|
|
4207
|
+
var lightColor = getHDRColor( lightCC.rgb , light.linear ) ;
|
|
4208
|
+
var att = light.intensity;
|
|
4209
|
+
if(light.castShadow>=0){
|
|
4210
|
+
#if USE_SHADOWMAPING
|
|
4211
|
+
for (var j: i32 = 0; j < 8; j += 1) {
|
|
4212
|
+
if(j == light.castShadow){
|
|
4213
|
+
att *= directShadowVisibility[j] ;
|
|
4214
|
+
}
|
|
4215
|
+
}
|
|
4178
4216
|
#endif
|
|
4217
|
+
}
|
|
4218
|
+
#if USE_LAMBERT
|
|
4219
|
+
color = vec3<f32>(1.0,1.0,1.0) ;
|
|
4220
|
+
#endif
|
|
4221
|
+
|
|
4222
|
+
#if USE_BRDF
|
|
4223
|
+
color = 0.5 * simpleBRDF(albedo,N,V,L,att,lightColor,0.85 ,metallic) ;
|
|
4224
|
+
color += 0.5 * simpleBRDF(albedo,N,V,L,att,lightColor,0.15 ,metallic) ;
|
|
4225
|
+
#endif
|
|
4226
|
+
#endif
|
|
4227
|
+
return color;
|
|
4228
|
+
}
|
|
4179
4229
|
|
|
4180
|
-
|
|
4181
|
-
|
|
4182
|
-
|
|
4183
|
-
|
|
4184
|
-
|
|
4185
|
-
|
|
4230
|
+
|
|
4231
|
+
fn pointLighting( WP:vec3<f32>, light:LightData , iblSpecularResult : vec3f ) -> vec3<f32> {
|
|
4232
|
+
var color = vec3<f32>(0.0) ;
|
|
4233
|
+
let lightPos = light.position.xyz;
|
|
4234
|
+
var dir = lightPos.xyz - WP ;
|
|
4235
|
+
let dist = length(dir);
|
|
4236
|
+
if(dist != 0.0){
|
|
4237
|
+
dir *= 1.0 / dist ;
|
|
4186
4238
|
}
|
|
4239
|
+
if( abs(dist) < light.range ){
|
|
4240
|
+
var L = dir ;
|
|
4241
|
+
var atten = 1.0 ;
|
|
4242
|
+
atten = 1.0 - smoothstep(0.0,light.range,dist) ;
|
|
4243
|
+
atten *= 1.0 / max(light.radius,0.001) ;
|
|
4187
4244
|
|
|
4188
|
-
|
|
4189
|
-
|
|
4190
|
-
#if
|
|
4191
|
-
|
|
4192
|
-
let lightCC = pow( light.lightColor.rgb, vec3<f32>(2.2) );
|
|
4193
|
-
var lightColor = getHDRColor(lightCC.rgb, light.linear);
|
|
4194
|
-
var att = light.intensity;
|
|
4195
|
-
if(light.castShadow>=0){
|
|
4196
|
-
#if USE_SHADOWMAPING
|
|
4197
|
-
for (var j: i32 = 0; j < 8; j += 1) {
|
|
4198
|
-
if(j == light.castShadow){
|
|
4199
|
-
att *= directShadowVisibility[j];
|
|
4200
|
-
}
|
|
4201
|
-
}
|
|
4202
|
-
#endif
|
|
4203
|
-
}
|
|
4204
|
-
#if USE_LAMBERT
|
|
4205
|
-
color = vec3<f32>(1.0,1.0,1.0) ;
|
|
4245
|
+
var shadow = pointShadows[i32(light.castShadow)] ;
|
|
4246
|
+
|
|
4247
|
+
#if USE_IES_PROFILE
|
|
4248
|
+
atten *= getLightIESProfileAtt(WP,light);
|
|
4206
4249
|
#endif
|
|
4207
4250
|
|
|
4208
|
-
|
|
4209
|
-
color = 0.5 * simpleBRDF(albedo,N,V,L,att,lightColor,0.85 ,metallic) ;
|
|
4210
|
-
color += 0.5 * simpleBRDF(albedo,N,V,L,att,lightColor,0.15 ,metallic) ;
|
|
4211
|
-
#endif
|
|
4212
|
-
#endif
|
|
4213
|
-
return color
|
|
4214
|
-
}
|
|
4251
|
+
atten *= sphere_unit(light.range,light.intensity) ;
|
|
4215
4252
|
|
|
4216
|
-
|
|
4217
|
-
|
|
4218
|
-
|
|
4219
|
-
|
|
4220
|
-
let dist = length(dir);
|
|
4221
|
-
if(dist != 0.0){
|
|
4222
|
-
dir *= 1.0 / dist;
|
|
4223
|
-
}
|
|
4224
|
-
if(abs(dist) < light.range){
|
|
4225
|
-
var L = dir;
|
|
4226
|
-
var atten = 1.0;
|
|
4227
|
-
atten = 1.0 - smoothstep(0.0, light.range, dist);
|
|
4228
|
-
atten *= 1.0 / max(light.radius, 0.001);
|
|
4229
|
-
var shadow = pointShadows[i32(light.castShadow)];
|
|
4230
|
-
|
|
4231
|
-
#if USE_IES_PROFILE
|
|
4232
|
-
atten *= getLightIESProfileAtt(WP, light);
|
|
4233
|
-
#endif
|
|
4253
|
+
color = sampleLighting(light,-L,iblSpecularResult,atten,shadow);
|
|
4254
|
+
}
|
|
4255
|
+
return color ;
|
|
4256
|
+
}
|
|
4234
4257
|
|
|
4235
|
-
|
|
4236
|
-
|
|
4237
|
-
|
|
4238
|
-
|
|
4239
|
-
|
|
4258
|
+
fn pointAtt( WP:vec3<f32>, light:LightData ) -> f32 {
|
|
4259
|
+
var atten = 0.0 ;
|
|
4260
|
+
let lightPos = light.position.xyz;
|
|
4261
|
+
var dir = lightPos.xyz - WP ;
|
|
4262
|
+
let dist = length(dir);
|
|
4263
|
+
if(dist != 0.0){
|
|
4264
|
+
dir *= 1.0 / dist ;
|
|
4265
|
+
}
|
|
4266
|
+
if( abs(dist) < light.range ){
|
|
4267
|
+
var L = dir ;
|
|
4268
|
+
atten = 1.0 - smoothstep(0.0,light.range,dist) ;
|
|
4269
|
+
atten *= 1.0 / max(light.radius,0.001) ;
|
|
4270
|
+
var shadow = pointShadows[i32(light.castShadow)] ;
|
|
4271
|
+
#if USE_IES_PROFILE
|
|
4272
|
+
atten *= getLightIESProfileAtt(WP,light);
|
|
4273
|
+
#endif
|
|
4274
|
+
atten *= sphere_unit(light.range,light.intensity) ;
|
|
4275
|
+
}
|
|
4276
|
+
return atten ;
|
|
4277
|
+
}
|
|
4240
4278
|
|
|
4241
|
-
|
|
4242
|
-
|
|
4243
|
-
|
|
4244
|
-
var dir = lightPos.xyz - WP;
|
|
4245
|
-
let dist = length(dir);
|
|
4246
|
-
if(dist != 0.0){
|
|
4247
|
-
dir *= 1.0 / dist;
|
|
4248
|
-
}
|
|
4249
|
-
if(abs(dist) < light.range){
|
|
4250
|
-
var L = dir;
|
|
4251
|
-
atten = 1.0 - smoothstep(0.0, light.range, dist);
|
|
4252
|
-
atten *= 1.0 / max(light.radius, 0.001);
|
|
4253
|
-
var shadow = pointShadows[i32(light.castShadow)];
|
|
4254
|
-
#if USE_IES_PROFILE
|
|
4255
|
-
atten *= getLightIESProfileAtt(WP, light);
|
|
4256
|
-
#endif
|
|
4257
|
-
atten *= sphere_unit(light.range, light.intensity);
|
|
4258
|
-
}
|
|
4259
|
-
return atten;
|
|
4260
|
-
}
|
|
4279
|
+
fn getDistanceAtten( light:LightData , dist : f32 ) -> f32 {
|
|
4280
|
+
return 1.0 - smoothstep(0.0,light.range,dist) ;
|
|
4281
|
+
}
|
|
4261
4282
|
|
|
4262
|
-
|
|
4263
|
-
|
|
4283
|
+
fn spotLighting( WP:vec3<f32>, light:LightData , iblSpecularResult : vec3f) -> vec3<f32> {
|
|
4284
|
+
let lightPos = light.position.xyz;
|
|
4285
|
+
var dir = lightPos.xyz - WP ;
|
|
4286
|
+
let dist = length(dir) ;
|
|
4287
|
+
if(dist != 0.0){
|
|
4288
|
+
dir *= 1.0 / dist ;
|
|
4264
4289
|
}
|
|
4265
4290
|
|
|
4266
|
-
|
|
4267
|
-
|
|
4268
|
-
var
|
|
4269
|
-
let
|
|
4270
|
-
|
|
4271
|
-
|
|
4291
|
+
var color = vec3<f32>(0.0) ;
|
|
4292
|
+
if( abs(dist) < light.range * 2.0 ){
|
|
4293
|
+
var L = dir ;
|
|
4294
|
+
let theta = dot(-L, normalize(light.direction));
|
|
4295
|
+
let angle = acos(theta) ;
|
|
4296
|
+
var atten = 1.0 ;
|
|
4297
|
+
var lightColor = light.lightColor.rgb ;
|
|
4298
|
+
|
|
4299
|
+
atten = 1.0 - smoothstep(0.0,light.range,dist) ;
|
|
4300
|
+
atten *= 1.0 / max(light.radius,0.001) ;
|
|
4301
|
+
if(angle < light.outerCutOff){
|
|
4302
|
+
if(angle > light.innerCutOff){
|
|
4303
|
+
atten *= 1.0 - smoothstep(light.innerCutOff, light.outerCutOff, angle) ;
|
|
4304
|
+
}
|
|
4305
|
+
}else{
|
|
4306
|
+
atten = 0.0 ;
|
|
4272
4307
|
}
|
|
4273
4308
|
|
|
4274
|
-
var
|
|
4275
|
-
if(abs(dist) < light.range * 2.0){
|
|
4276
|
-
var L = dir;
|
|
4277
|
-
let theta = dot(-L, normalize(light.direction));
|
|
4278
|
-
let angle = acos(theta);
|
|
4279
|
-
var atten = 1.0;
|
|
4280
|
-
var lightColor = light.lightColor.rgb;
|
|
4281
|
-
|
|
4282
|
-
atten = 1.0 - smoothstep(0.0, light.range, dist);
|
|
4283
|
-
atten *= 1.0 / max(light.radius, 0.001);
|
|
4284
|
-
if(angle < light.outerCutOff){
|
|
4285
|
-
if(angle > light.innerCutOff){
|
|
4286
|
-
atten *= 1.0 - smoothstep(light.innerCutOff, light.outerCutOff, angle);
|
|
4287
|
-
}
|
|
4288
|
-
}else{
|
|
4289
|
-
atten = 0.0;
|
|
4290
|
-
}
|
|
4309
|
+
var shadow = pointShadows[i32(light.castShadow)] ;
|
|
4291
4310
|
|
|
4292
|
-
|
|
4311
|
+
#if USE_IES_PROFILE
|
|
4312
|
+
atten *= getLightIESProfileAtt(WP,light);
|
|
4313
|
+
#endif
|
|
4293
4314
|
|
|
4294
|
-
|
|
4295
|
-
atten *= getLightIESProfileAtt(WP, light);
|
|
4296
|
-
#endif
|
|
4315
|
+
atten *= sphere_unit(light.range, light.intensity) ;
|
|
4297
4316
|
|
|
4298
|
-
|
|
4299
|
-
color = sampleLighting(light, -L, iblSpecularResult, atten, shadow);
|
|
4300
|
-
}
|
|
4301
|
-
return color;
|
|
4317
|
+
color = sampleLighting(light,-L,iblSpecularResult,atten,shadow);
|
|
4302
4318
|
}
|
|
4319
|
+
return color ;
|
|
4320
|
+
}
|
|
4303
4321
|
|
|
4304
|
-
|
|
4305
|
-
|
|
4306
|
-
|
|
4307
|
-
|
|
4322
|
+
fn sphere_unit( radius:f32 , intensity:f32 ) -> f32 {
|
|
4323
|
+
return intensity / (4.0 * PI2 * radius * radius) ;
|
|
4324
|
+
}
|
|
4325
|
+
`
|
|
4326
|
+
);
|
|
4308
4327
|
|
|
4309
|
-
let MathShader =
|
|
4310
|
-
|
|
4328
|
+
let MathShader = (
|
|
4329
|
+
/* wgsl */
|
|
4330
|
+
`
|
|
4331
|
+
#include 'BitUtil'
|
|
4311
4332
|
|
|
4312
|
-
|
|
4313
|
-
|
|
4314
|
-
|
|
4333
|
+
struct TBN_ret{
|
|
4334
|
+
tan:vec3f,
|
|
4335
|
+
bit:vec3f,
|
|
4336
|
+
}
|
|
4337
|
+
|
|
4338
|
+
fn TBN( N:vec3f) -> mat3x3<f32>{
|
|
4339
|
+
//Returns the simple tangent space matrix
|
|
4340
|
+
var Nb : vec3f;
|
|
4341
|
+
var Nt : vec3f;
|
|
4342
|
+
if (abs(N.y)>0.999) {
|
|
4343
|
+
Nb = vec3f(1.0,0.0,0.0);
|
|
4344
|
+
Nt = vec3f(0.0,0.0,1.0);
|
|
4345
|
+
} else {
|
|
4346
|
+
Nb = normalize(cross(N,vec3f(0.0,1.0,0.0)));
|
|
4347
|
+
Nt = normalize(cross(Nb,N));
|
|
4315
4348
|
}
|
|
4316
4349
|
|
|
4317
|
-
|
|
4318
|
-
|
|
4319
|
-
|
|
4320
|
-
|
|
4321
|
-
|
|
4322
|
-
Nt = vec3f(0.0,0.0,1.0)
|
|
4323
|
-
}else{
|
|
4324
|
-
Nb = normalize(cross(N,vec3f(0.0,1.0,0.0)));
|
|
4325
|
-
Nt = normalize(cross(Nb,N));
|
|
4326
|
-
}
|
|
4350
|
+
var mat3 = mat3x3<f32>(
|
|
4351
|
+
Nb.x,Nt.x,N.x,
|
|
4352
|
+
Nb.y,Nt.y,N.y,
|
|
4353
|
+
Nb.z,Nt.z,N.z
|
|
4354
|
+
);
|
|
4327
4355
|
|
|
4328
|
-
|
|
4329
|
-
|
|
4330
|
-
Nb.y,Nt.y,N.y,
|
|
4331
|
-
Nb.z,Nt.z,N.z
|
|
4332
|
-
);
|
|
4356
|
+
return mat3;
|
|
4357
|
+
}
|
|
4333
4358
|
|
|
4334
|
-
|
|
4335
|
-
|
|
4359
|
+
fn TBN_out( N : vec3f ) -> TBN_ret {
|
|
4360
|
+
var tbn_ret : TBN_ret;
|
|
4361
|
+
//Returns the simple tangent space directions
|
|
4362
|
+
if (abs(N.y)>0.999) {
|
|
4363
|
+
tbn_ret.tan = vec3f(1.0,0.0,0.0);
|
|
4364
|
+
tbn_ret.bit = vec3f(0.0,0.0,1.0);
|
|
4365
|
+
} else {
|
|
4366
|
+
tbn_ret.tan = normalize(cross(N,vec3f(0.0,1.0,0.0)));
|
|
4367
|
+
tbn_ret.bit = normalize(cross(tbn_ret.tan,N));
|
|
4368
|
+
}
|
|
4336
4369
|
|
|
4337
|
-
|
|
4338
|
-
|
|
4339
|
-
if(abs(N.y)>0.999) {
|
|
4340
|
-
tbn_ret.tan = vec3f(1.0,0.0,0.0);
|
|
4341
|
-
tbn_ret.bit = vec3f(0.0,0.0,1.0);
|
|
4342
|
-
}else{
|
|
4343
|
-
tbn_ret.tan = normalize(cross(N,vec3f(0.0,1.0,0.0)));
|
|
4344
|
-
tbn_ret.bit = normalize(cross(tbn_ret.tan,N));
|
|
4345
|
-
}
|
|
4370
|
+
return tbn_ret;
|
|
4371
|
+
}
|
|
4346
4372
|
|
|
4347
|
-
return tbn_ret;
|
|
4348
|
-
}
|
|
4349
4373
|
|
|
4350
|
-
|
|
4351
|
-
|
|
4352
|
-
|
|
4374
|
+
fn ARand21( uv: vec2f) -> f32 {
|
|
4375
|
+
//Returns 1D noise from 2D
|
|
4376
|
+
return fract(sin(uv.x*uv.y)*403.125+cos(dot(uv,vec2f(13.18273,51.2134)))*173.137);
|
|
4377
|
+
}
|
|
4353
4378
|
|
|
4354
|
-
|
|
4355
|
-
|
|
4356
|
-
|
|
4357
|
-
|
|
4379
|
+
fn applyQuaternion(position:vec3<f32>, q:vec4<f32>) -> vec3<f32>{
|
|
4380
|
+
let x:f32 = position.x;
|
|
4381
|
+
let y:f32 = position.y;
|
|
4382
|
+
let z:f32 = position.z;
|
|
4358
4383
|
|
|
4359
|
-
|
|
4360
|
-
|
|
4361
|
-
|
|
4362
|
-
|
|
4384
|
+
let qx:f32 = q.x;
|
|
4385
|
+
let qy:f32 = q.y;
|
|
4386
|
+
let qz:f32 = q.z;
|
|
4387
|
+
let qw:f32 = q.w;
|
|
4363
4388
|
|
|
4364
|
-
|
|
4365
|
-
|
|
4366
|
-
|
|
4367
|
-
|
|
4389
|
+
let ix:f32 = qw * x + qy * z - qz * y;
|
|
4390
|
+
let iy:f32 = qw * y + qz * x - qx * z;
|
|
4391
|
+
let iz:f32 = qw * z + qx * y - qy * x;
|
|
4392
|
+
let iw:f32 = -qx * x - qy * y - qz * z;
|
|
4368
4393
|
|
|
4369
|
-
|
|
4370
|
-
|
|
4371
|
-
|
|
4372
|
-
|
|
4394
|
+
var ret: vec3<f32>;
|
|
4395
|
+
ret.x = ix * qw + iw * -qx + iy * -qz - iz * -qy;
|
|
4396
|
+
ret.y = iy * qw + iw * -qy + iz * -qx - ix * -qz;
|
|
4397
|
+
ret.z = iz * qw + iw * -qz + ix * -qy - iy * -qx;
|
|
4373
4398
|
|
|
4374
|
-
|
|
4375
|
-
|
|
4399
|
+
return ret;
|
|
4400
|
+
}
|
|
4376
4401
|
|
|
4377
|
-
|
|
4378
|
-
|
|
4379
|
-
|
|
4380
|
-
|
|
4381
|
-
|
|
4382
|
-
|
|
4383
|
-
|
|
4384
|
-
|
|
4385
|
-
|
|
4386
|
-
|
|
4387
|
-
|
|
4388
|
-
var b01 = a22*a11 - a12*a21;
|
|
4389
|
-
var b11 = -a22*a10 + a12*a20;
|
|
4390
|
-
var b21 = a21*a10 - a11*a20;
|
|
4391
|
-
|
|
4392
|
-
var det =a00*b01 + a01*b11 + a02*b21;
|
|
4393
|
-
return mat3x3<f32>(
|
|
4394
|
-
vec3<f32>(b01/ det, (-a22 * a01 + a02 * a21)/ det, (a12 * a01 - a02 * a11)/ det),
|
|
4395
|
-
vec3<f32>(b11/ det, (a22 * a00 - a02 * a20)/ det, (-a12 * a00 + a02 * a10)/ det),
|
|
4396
|
-
vec3<f32>(b21/ det, (-a21 * a00 + a01 * a20)/ det, (a11 * a00 - a01 * a10)/ det)
|
|
4397
|
-
);
|
|
4398
|
-
}
|
|
4402
|
+
fn inverse( m:mat3x3<f32>) -> mat3x3<f32>{
|
|
4403
|
+
var a00 = m[0][0];
|
|
4404
|
+
var a01 = m[0][1];
|
|
4405
|
+
var a02 = m[0][2];
|
|
4406
|
+
var a10 = m[1][0];
|
|
4407
|
+
var a11 = m[1][1];
|
|
4408
|
+
var a12 = m[1][2];
|
|
4409
|
+
var a20 = m[2][0];
|
|
4410
|
+
var a21 = m[2][1];
|
|
4411
|
+
var a22 = m[2][2];
|
|
4399
4412
|
|
|
4400
|
-
|
|
4401
|
-
|
|
4402
|
-
|
|
4403
|
-
var abs_z = abs(pt.z);
|
|
4404
|
-
var coord = max(max(abs_x, abs_y),abs_z);
|
|
4405
|
-
if(coord == -pt.x){
|
|
4406
|
-
return 0;
|
|
4407
|
-
}
|
|
4408
|
-
if(coord == pt.x){
|
|
4409
|
-
return 1;
|
|
4410
|
-
}
|
|
4411
|
-
if(coord == -pt.y){
|
|
4412
|
-
return 2;
|
|
4413
|
-
}
|
|
4414
|
-
if(coord == pt.y){
|
|
4415
|
-
return 3;
|
|
4416
|
-
}
|
|
4417
|
-
if(coord == -pt.z){
|
|
4418
|
-
return 4;
|
|
4419
|
-
}
|
|
4420
|
-
return 5;
|
|
4421
|
-
}
|
|
4413
|
+
var b01 = a22 * a11 - a12 * a21;
|
|
4414
|
+
var b11 = -a22 * a10 + a12 * a20;
|
|
4415
|
+
var b21 = a21 * a10 - a11 * a20;
|
|
4422
4416
|
|
|
4423
|
-
|
|
4424
|
-
|
|
4425
|
-
|
|
4426
|
-
|
|
4427
|
-
|
|
4428
|
-
|
|
4429
|
-
|
|
4430
|
-
|
|
4431
|
-
|
|
4432
|
-
|
|
4433
|
-
|
|
4434
|
-
|
|
4435
|
-
|
|
4436
|
-
|
|
4437
|
-
|
|
4438
|
-
|
|
4439
|
-
|
|
4440
|
-
|
|
4441
|
-
|
|
4442
|
-
|
|
4443
|
-
|
|
4444
|
-
|
|
4445
|
-
|
|
4446
|
-
|
|
4447
|
-
|
|
4448
|
-
|
|
4449
|
-
|
|
4450
|
-
|
|
4451
|
-
|
|
4452
|
-
|
|
4453
|
-
|
|
4454
|
-
|
|
4455
|
-
|
|
4456
|
-
|
|
4457
|
-
|
|
4458
|
-
|
|
4459
|
-
|
|
4460
|
-
|
|
4461
|
-
|
|
4462
|
-
|
|
4463
|
-
|
|
4464
|
-
|
|
4465
|
-
|
|
4466
|
-
|
|
4467
|
-
|
|
4468
|
-
|
|
4469
|
-
|
|
4470
|
-
|
|
4471
|
-
|
|
4472
|
-
|
|
4473
|
-
|
|
4474
|
-
|
|
4475
|
-
|
|
4476
|
-
|
|
4477
|
-
|
|
4478
|
-
|
|
4479
|
-
|
|
4480
|
-
|
|
4481
|
-
|
|
4482
|
-
|
|
4483
|
-
|
|
4484
|
-
|
|
4485
|
-
|
|
4486
|
-
|
|
4487
|
-
|
|
4488
|
-
|
|
4489
|
-
|
|
4490
|
-
|
|
4491
|
-
|
|
4492
|
-
|
|
4493
|
-
|
|
4494
|
-
|
|
4495
|
-
|
|
4496
|
-
|
|
4497
|
-
|
|
4498
|
-
|
|
4499
|
-
|
|
4500
|
-
|
|
4417
|
+
var det = a00 * b01 + a01 * b11 + a02 * b21 ;
|
|
4418
|
+
return mat3x3<f32>(
|
|
4419
|
+
vec3<f32>(b01/ det, (-a22 * a01 + a02 * a21)/ det, (a12 * a01 - a02 * a11)/ det),
|
|
4420
|
+
vec3<f32>(b11/ det, (a22 * a00 - a02 * a20)/ det, (-a12 * a00 + a02 * a10)/ det),
|
|
4421
|
+
vec3<f32>(b21/ det, (-a21 * a00 + a01 * a20)/ det, (a11 * a00 - a01 * a10)/ det)
|
|
4422
|
+
);
|
|
4423
|
+
}
|
|
4424
|
+
|
|
4425
|
+
fn dir_to_faceId(pt:vec3<f32>) -> i32 {
|
|
4426
|
+
//**** nx px ny py nz pz
|
|
4427
|
+
var abs_x = abs(pt.x);
|
|
4428
|
+
var abs_y = abs(pt.y);
|
|
4429
|
+
var abs_z = abs(pt.z);
|
|
4430
|
+
var coord = max(max(abs_x, abs_y), abs_z);
|
|
4431
|
+
if(coord == -pt.x){ return 0;}
|
|
4432
|
+
if(coord == pt.x) { return 1;}
|
|
4433
|
+
|
|
4434
|
+
if(coord == -pt.y){ return 2;}
|
|
4435
|
+
if(coord == pt.y) { return 3;}
|
|
4436
|
+
|
|
4437
|
+
if(coord == -pt.z) { return 4;}
|
|
4438
|
+
return 5;
|
|
4439
|
+
}
|
|
4440
|
+
|
|
4441
|
+
const us = 1.0 /6.0 ;
|
|
4442
|
+
fn uv_2_xyz(u:f32,v:f32) -> vec3f
|
|
4443
|
+
{
|
|
4444
|
+
let face = floor(u / us);
|
|
4445
|
+
var uu = (u - face * us) / us ;
|
|
4446
|
+
|
|
4447
|
+
var uc = 2.0 * uu - 1.0;
|
|
4448
|
+
var vc = 2.0 * v - 1.0;
|
|
4449
|
+
var xyz = vec3f(0,0,0);
|
|
4450
|
+
|
|
4451
|
+
if(face == 0.0){
|
|
4452
|
+
// x,y,z = 1.0,vc,-uc
|
|
4453
|
+
xyz = vec3f(1.0,-vc,uc);
|
|
4454
|
+
}else if(face == 1.0){
|
|
4455
|
+
// x,y,z = -1.0,vc,uc
|
|
4456
|
+
xyz = vec3f(-1.0,-vc,-uc);
|
|
4457
|
+
}else if(face == 2.0){
|
|
4458
|
+
// x,y,z = uc,1.0,-vc
|
|
4459
|
+
xyz = vec3f(uc,1.0,-vc);
|
|
4460
|
+
}else if(face == 3.0){
|
|
4461
|
+
// x,y,z = uc,-1.0,vc
|
|
4462
|
+
xyz = vec3f(uc,-1.0,vc);
|
|
4463
|
+
}else if(face == 4.0){
|
|
4464
|
+
// x,y,z = uc,vc,1.0
|
|
4465
|
+
xyz = vec3f(-uc,-vc,1.0);
|
|
4466
|
+
}else if(face == 5.0){
|
|
4467
|
+
// x,y,z = -uc,vc,-1.0
|
|
4468
|
+
xyz = vec3f(uc,-vc,-1.0);
|
|
4469
|
+
}
|
|
4470
|
+
return xyz ;
|
|
4471
|
+
}
|
|
4472
|
+
|
|
4473
|
+
fn convert_xyz_to_cube_uv(x:f32, y:f32, z:f32 ) -> vec2f
|
|
4474
|
+
{
|
|
4475
|
+
var dir = vec3f(x, y, z);
|
|
4476
|
+
var absX = abs(dir.x);
|
|
4477
|
+
var absY = abs(dir.y);
|
|
4478
|
+
var absZ = abs(dir.z);
|
|
4479
|
+
|
|
4480
|
+
var isXPositive = 0;
|
|
4481
|
+
if(dir.x > 0.0){isXPositive = 1;}
|
|
4482
|
+
var isYPositive = 0;
|
|
4483
|
+
if(dir.y > 0.0){isYPositive = 1;}
|
|
4484
|
+
var isZPositive = 0;
|
|
4485
|
+
if(dir.z > 0.0){isZPositive = 1;}
|
|
4486
|
+
|
|
4487
|
+
var maxAxis:f32 = 0.0;
|
|
4488
|
+
var uc:f32 = 0.0;
|
|
4489
|
+
var vc:f32 = 0.0;
|
|
4490
|
+
|
|
4491
|
+
// POSITIVE X
|
|
4492
|
+
if (isXPositive == 1 && absX >= absY && absX >= absZ) {
|
|
4493
|
+
// u (0 to 1) goes from +z to -z
|
|
4494
|
+
// v (0 to 1) goes from -y to +y
|
|
4495
|
+
maxAxis = absX;
|
|
4496
|
+
uc = -z;
|
|
4497
|
+
vc = y;
|
|
4498
|
+
}
|
|
4499
|
+
// NEGATIVE X
|
|
4500
|
+
if (isXPositive ==0 && absX >= absY && absX >= absZ) {
|
|
4501
|
+
// u (0 to 1) goes from -z to +z
|
|
4502
|
+
// v (0 to 1) goes from -y to +y
|
|
4503
|
+
maxAxis = absX;
|
|
4504
|
+
uc = z;
|
|
4505
|
+
vc = y;
|
|
4506
|
+
}
|
|
4507
|
+
// POSITIVE Y
|
|
4508
|
+
if (isYPositive==1 && absY >= absX && absY >= absZ) {
|
|
4509
|
+
// u (0 to 1) goes from -x to +x
|
|
4510
|
+
// v (0 to 1) goes from +z to -z
|
|
4511
|
+
maxAxis = absY;
|
|
4512
|
+
uc = x;
|
|
4513
|
+
vc = -z;
|
|
4514
|
+
}
|
|
4515
|
+
// NEGATIVE Y
|
|
4516
|
+
if (isYPositive ==0 && absY >= absX && absY >= absZ) {
|
|
4517
|
+
// u (0 to 1) goes from -x to +x
|
|
4518
|
+
// v (0 to 1) goes from -z to +z
|
|
4519
|
+
maxAxis = absY;
|
|
4520
|
+
uc = x;
|
|
4521
|
+
vc = z;
|
|
4522
|
+
}
|
|
4523
|
+
// POSITIVE Z
|
|
4524
|
+
if (isZPositive == 1&& absZ >= absX && absZ >= absY) {
|
|
4525
|
+
// u (0 to 1) goes from -x to +x
|
|
4526
|
+
// v (0 to 1) goes from -y to +y
|
|
4527
|
+
maxAxis = absZ;
|
|
4528
|
+
uc = x;
|
|
4529
|
+
vc = y;
|
|
4530
|
+
}
|
|
4531
|
+
// NEGATIVE Z
|
|
4532
|
+
if (isZPositive ==0 && absZ >= absX && absZ >= absY) {
|
|
4533
|
+
// u (0 to 1) goes from +x to -x
|
|
4534
|
+
// v (0 to 1) goes from -y to +y
|
|
4535
|
+
maxAxis = absZ;
|
|
4536
|
+
uc = -x;
|
|
4537
|
+
vc = y;
|
|
4538
|
+
}
|
|
4539
|
+
|
|
4540
|
+
// Convert range from -1 to 1 to 0 to 1
|
|
4541
|
+
var u = 0.5f * (uc / maxAxis + 1.0f);
|
|
4542
|
+
var v = 0.5f * (vc / maxAxis + 1.0f);
|
|
4543
|
+
|
|
4544
|
+
return vec2f(u, v);
|
|
4545
|
+
}
|
|
4546
|
+
|
|
4547
|
+
// Returns ±1
|
|
4548
|
+
fn signNotZero( v1:vec2<f32>) -> vec2<f32> {
|
|
4501
4549
|
var v:vec2<f32> = v1;
|
|
4502
4550
|
if(v.x >= 0.0){
|
|
4503
4551
|
v.x = 1.0;
|
|
@@ -4507,118 +4555,123 @@ let MathShader = `
|
|
|
4507
4555
|
if(v.y >= 0.0){
|
|
4508
4556
|
v.y = 1.0;
|
|
4509
4557
|
}else{
|
|
4510
|
-
v.y
|
|
4558
|
+
v.y= -1.0;
|
|
4511
4559
|
}
|
|
4512
4560
|
return v;
|
|
4513
4561
|
}
|
|
4514
4562
|
|
|
4515
|
-
fn octEncode(v:vec3<f32>) -> vec2<f32> {
|
|
4563
|
+
fn octEncode( v:vec3<f32> ) -> vec2<f32> {
|
|
4516
4564
|
var l1norm = abs(v.x) + abs(v.y) + abs(v.z);
|
|
4517
4565
|
var result = v.xy * (1.0 / l1norm);
|
|
4518
|
-
if(v.z < 0.0){
|
|
4566
|
+
if (v.z < 0.0) {
|
|
4519
4567
|
result = (1.0 - abs(result.yx)) * signNotZero(result.xy);
|
|
4520
4568
|
}
|
|
4521
4569
|
return result;
|
|
4522
4570
|
}
|
|
4523
4571
|
|
|
4524
|
-
|
|
4572
|
+
// Returns a unit vector. Argument o is an octahedral vector packed via octEncode,on the [-1, +1] square*/
|
|
4573
|
+
fn octDecode( o:vec2<f32> ) -> vec3<f32> {
|
|
4525
4574
|
var v = vec3<f32>(o.x, o.y, 1.0 - abs(o.x) - abs(o.y));
|
|
4526
|
-
if(v.z < 0.0) {
|
|
4527
|
-
var tmp = (1.0 -abs(v.yx))*signNotZero(v.xy);
|
|
4575
|
+
if (v.z < 0.0) {
|
|
4576
|
+
var tmp = (1.0 - abs(v.yx)) * signNotZero(v.xy);
|
|
4528
4577
|
v.x = tmp.x;
|
|
4529
4578
|
v.y = tmp.y;
|
|
4530
4579
|
}
|
|
4531
4580
|
return normalize(v);
|
|
4532
4581
|
}
|
|
4533
4582
|
|
|
4534
|
-
fn Linear01Depth(z:f32,near:f32,far:f32)
|
|
4535
|
-
let ZBufferZ = (-1.0+(far/near))/far;
|
|
4536
|
-
let ZBufferW = near/far;
|
|
4537
|
-
return 1.0 / (ZBufferZ * z + ZBufferW);
|
|
4583
|
+
fn Linear01Depth(z:f32,near:f32,far:f32)-> f32{
|
|
4584
|
+
let ZBufferZ = (-1.0+(far/near)) / far;
|
|
4585
|
+
let ZBufferW = near /far ;
|
|
4586
|
+
return 1.0 / (ZBufferZ * z + ZBufferW) ;
|
|
4538
4587
|
}
|
|
4539
4588
|
|
|
4540
|
-
|
|
4541
|
-
|
|
4542
|
-
|
|
4589
|
+
|
|
4590
|
+
fn LinearizeDepth( depth:f32 , nearPlane:f32 , farPlane:f32 )-> f32 {
|
|
4591
|
+
var z = depth * 2.0 - 1.0;
|
|
4592
|
+
return (2.0 * nearPlane * farPlane) / (farPlane + nearPlane - z * (farPlane - nearPlane));
|
|
4543
4593
|
}
|
|
4544
4594
|
|
|
4545
|
-
fn logDepth(depth:f32, far:f32) -> f32 {
|
|
4546
|
-
|
|
4595
|
+
fn logDepth(depth : f32, far:f32) -> f32 {
|
|
4596
|
+
return log2(depth + 1.0) * 2.0 / (log(far + 1.0) / 0.6931471805599453) * 0.5;
|
|
4547
4597
|
}
|
|
4548
4598
|
|
|
4549
4599
|
fn log2Depth(depth:f32, near:f32, far:f32) -> f32 {
|
|
4550
|
-
|
|
4551
|
-
|
|
4552
|
-
|
|
4553
|
-
|
|
4600
|
+
let Fcoef:f32 = 2.0 / log2(far + 1.0);
|
|
4601
|
+
var result:f32 = (log2(max(1e-6, 1.0 + depth)) * Fcoef - 1.0);
|
|
4602
|
+
result = (1.0 + result) / 2.0;
|
|
4603
|
+
return result * depth;
|
|
4554
4604
|
}
|
|
4555
4605
|
|
|
4556
4606
|
fn log2DepthFixPersp(depth:f32, near:f32, far:f32) -> f32 {
|
|
4557
|
-
|
|
4558
|
-
|
|
4559
|
-
|
|
4560
|
-
|
|
4561
|
-
|
|
4607
|
+
let flogz:f32 = 1.0 + depth;
|
|
4608
|
+
let Fcoef_half:f32 = (2.0 / log2(far + 1.0)) * 0.5;
|
|
4609
|
+
var result:f32 = log2(flogz) * Fcoef_half;
|
|
4610
|
+
result = (1.0 + result) / 2.0;
|
|
4611
|
+
return result;
|
|
4562
4612
|
}
|
|
4563
4613
|
|
|
4564
|
-
fn QuaternionToMatrix(q:vec4<f32>) -> mat4x4<f32> {
|
|
4565
|
-
var result: mat4x4<f32>;
|
|
4566
|
-
|
|
4567
|
-
let x = q.x * 2.0;
|
|
4568
|
-
let y = q.y * 2.0;
|
|
4569
|
-
let z = q.z * 2.0;
|
|
4570
|
-
let xx = q.x * x;
|
|
4571
|
-
let yy = q.y * y;
|
|
4572
|
-
let zz = q.z * z;
|
|
4573
|
-
let xy = q.x * y;
|
|
4574
|
-
let xz = q.x * z;
|
|
4575
|
-
let yz = q.y * z;
|
|
4576
|
-
let wx = q.w * x;
|
|
4577
|
-
let wy = q.w * y;
|
|
4578
|
-
let wz = q.w * z;
|
|
4579
|
-
|
|
4580
|
-
result[0][0] = 1.0 - (yy + zz);
|
|
4581
|
-
result[0][1] = xy + wz;
|
|
4582
|
-
result[0][2] = xz - wy;
|
|
4583
|
-
result[0][3] = 0.0;
|
|
4584
|
-
|
|
4585
|
-
result[1][0] = xy - wz;
|
|
4586
|
-
result[1][1] = 1.0 - (xx + zz);
|
|
4587
|
-
result[1][2] = yz + wx;
|
|
4588
|
-
result[1][3] = 0.0;
|
|
4589
|
-
|
|
4590
|
-
result[2][0] = xz + wy;
|
|
4591
|
-
result[2][1] = yz - wx;
|
|
4592
|
-
result[2][2] = 1.0 - (xx + yy);
|
|
4593
|
-
result[2][3] = 0.0;
|
|
4594
|
-
|
|
4595
|
-
result[3][0] = 0.0;
|
|
4596
|
-
result[3][1] = 0.0;
|
|
4597
|
-
result[3][2] = 0.0;
|
|
4598
|
-
result[3][3] = 1.0;
|
|
4599
4614
|
|
|
4600
|
-
|
|
4615
|
+
fn QuaternionToMatrix(q: vec4<f32>) -> mat4x4<f32> {
|
|
4616
|
+
var result: mat4x4<f32>;
|
|
4617
|
+
|
|
4618
|
+
// Precalculate coordinate products
|
|
4619
|
+
let x = q.x * 2.0;
|
|
4620
|
+
let y = q.y * 2.0;
|
|
4621
|
+
let z = q.z * 2.0;
|
|
4622
|
+
let xx = q.x * x;
|
|
4623
|
+
let yy = q.y * y;
|
|
4624
|
+
let zz = q.z * z;
|
|
4625
|
+
let xy = q.x * y;
|
|
4626
|
+
let xz = q.x * z;
|
|
4627
|
+
let yz = q.y * z;
|
|
4628
|
+
let wx = q.w * x;
|
|
4629
|
+
let wy = q.w * y;
|
|
4630
|
+
let wz = q.w * z;
|
|
4631
|
+
|
|
4632
|
+
// Calculate 3x3 matrix from orthonormal basis
|
|
4633
|
+
result[0][0] = 1.0 - (yy + zz);
|
|
4634
|
+
result[0][1] = xy + wz;
|
|
4635
|
+
result[0][2] = xz - wy;
|
|
4636
|
+
result[0][3] = 0.0;
|
|
4637
|
+
|
|
4638
|
+
result[1][0] = xy - wz;
|
|
4639
|
+
result[1][1] = 1.0 - (xx + zz);
|
|
4640
|
+
result[1][2] = yz + wx;
|
|
4641
|
+
result[1][3] = 0.0;
|
|
4642
|
+
|
|
4643
|
+
result[2][0] = xz + wy;
|
|
4644
|
+
result[2][1] = yz - wx;
|
|
4645
|
+
result[2][2] = 1.0 - (xx + yy);
|
|
4646
|
+
result[2][3] = 0.0;
|
|
4647
|
+
|
|
4648
|
+
result[3][0] = 0.0;
|
|
4649
|
+
result[3][1] = 0.0;
|
|
4650
|
+
result[3][2] = 0.0;
|
|
4651
|
+
result[3][3] = 1.0;
|
|
4652
|
+
|
|
4653
|
+
return result;
|
|
4601
4654
|
}
|
|
4602
4655
|
|
|
4603
4656
|
fn MakeScaleMatrix(scale: vec3<f32>) -> mat4x4<f32> {
|
|
4604
4657
|
return mat4x4<f32>(
|
|
4605
|
-
|
|
4606
|
-
|
|
4607
|
-
|
|
4608
|
-
|
|
4658
|
+
scale.x, 0.0, 0.0, 0.0,
|
|
4659
|
+
0.0, scale.y, 0.0, 0.0,
|
|
4660
|
+
0.0, 0.0, scale.z, 0.0,
|
|
4661
|
+
0.0, 0.0, 0.0, 1.0,
|
|
4609
4662
|
);
|
|
4610
4663
|
}
|
|
4611
|
-
|
|
4664
|
+
|
|
4612
4665
|
fn MakeRotationMatrix(rotationQuaternion: vec4<f32>) -> mat4x4<f32> {
|
|
4613
|
-
|
|
4666
|
+
return QuaternionToMatrix(rotationQuaternion);
|
|
4614
4667
|
}
|
|
4615
4668
|
|
|
4616
4669
|
fn MakeTranslationMatrix(translation: vec3<f32>) -> mat4x4<f32> {
|
|
4617
4670
|
return mat4x4<f32>(
|
|
4618
|
-
|
|
4619
|
-
|
|
4620
|
-
|
|
4621
|
-
|
|
4671
|
+
1.0, 0.0, 0.0, 0.0,
|
|
4672
|
+
0.0, 1.0, 0.0, 0.0,
|
|
4673
|
+
0.0, 0.0, 1.0, 0.0,
|
|
4674
|
+
translation.x, translation.y, translation.z, 1.0,
|
|
4622
4675
|
);
|
|
4623
4676
|
}
|
|
4624
4677
|
|
|
@@ -4630,191 +4683,206 @@ let MathShader = `
|
|
|
4630
4683
|
}
|
|
4631
4684
|
|
|
4632
4685
|
fn mixMatrix4x4(a: mat4x4<f32>, b: mat4x4<f32>, t:f32) -> mat4x4<f32> {
|
|
4633
|
-
|
|
4686
|
+
return a * (1.0 - t) + b * t;
|
|
4634
4687
|
}
|
|
4635
4688
|
|
|
4636
|
-
fn decodeDepth(color:vec4<f32>) -> f32{
|
|
4637
|
-
|
|
4638
|
-
|
|
4639
|
-
|
|
4640
|
-
|
|
4689
|
+
fn decodeDepth( color:vec4<f32> ) -> f32{
|
|
4690
|
+
var depth = 0.0 ;
|
|
4691
|
+
const bitShifts = vec4<f32>(1.0 / (256.0 * 256.0 * 256.0), 1.0 / (256.0 * 256.0), 1.0 / 256.0, 1.0);
|
|
4692
|
+
depth = dot(color, bitShifts);
|
|
4693
|
+
return depth;
|
|
4641
4694
|
}
|
|
4642
4695
|
|
|
4643
|
-
fn encodeDepth(depth:f32) -> vec4<f32>{
|
|
4644
|
-
|
|
4645
|
-
|
|
4646
|
-
|
|
4647
|
-
|
|
4648
|
-
|
|
4649
|
-
|
|
4650
|
-
|
|
4696
|
+
fn encodeDepth( depth:f32 ) -> vec4<f32>{
|
|
4697
|
+
const bitSh = vec4<f32>(256.0 * 256.0 * 256.0, 256.0 * 256.0, 256.0, 1.0);
|
|
4698
|
+
const bitMsk = vec4<f32>(0, 1.0 / 256.0, 1.0 / 256.0, 1.0 / 256.0);
|
|
4699
|
+
var comp:vec4<f32>;
|
|
4700
|
+
comp = depth * bitSh;
|
|
4701
|
+
comp = fract(comp);
|
|
4702
|
+
comp -= comp.xxyz * bitMsk;
|
|
4703
|
+
return comp;
|
|
4651
4704
|
}
|
|
4652
4705
|
|
|
4653
|
-
fn calculateBillboardMatrix2(eye:vec3f,
|
|
4654
|
-
|
|
4655
|
-
|
|
4656
|
-
|
|
4657
|
-
|
|
4658
|
-
|
|
4706
|
+
fn calculateBillboardMatrix2(eye:vec3f,pos:vec3f,up:vec3f) -> mat3x3<f32> {
|
|
4707
|
+
|
|
4708
|
+
let zAxis: vec3f = -normalize(pos.xyz - eye);
|
|
4709
|
+
var xAxis: vec3f = cross(up,zAxis);
|
|
4710
|
+
xAxis = normalize(cross(zAxis,xAxis));
|
|
4711
|
+
let yAxis = normalize(cross(zAxis, xAxis));
|
|
4712
|
+
return mat3x3<f32>(xAxis, yAxis, zAxis);
|
|
4659
4713
|
}
|
|
4660
4714
|
|
|
4661
|
-
struct SH9Struct
|
|
4662
|
-
|
|
4663
|
-
|
|
4664
|
-
|
|
4665
|
-
|
|
4666
|
-
|
|
4667
|
-
|
|
4668
|
-
|
|
4715
|
+
struct SH9Struct{
|
|
4716
|
+
SHAr:vec4f,
|
|
4717
|
+
SHAg:vec4f,
|
|
4718
|
+
SHAb:vec4f,
|
|
4719
|
+
SHBr:vec4f,
|
|
4720
|
+
SHBg:vec4f,
|
|
4721
|
+
SHBb:vec4f,
|
|
4722
|
+
SHC:vec4f,
|
|
4669
4723
|
}
|
|
4670
4724
|
|
|
4671
|
-
fn ShadeSH9(normal:
|
|
4672
|
-
|
|
4673
|
-
|
|
4674
|
-
|
|
4675
|
-
|
|
4676
|
-
|
|
4677
|
-
|
|
4678
|
-
|
|
4679
|
-
|
|
4680
|
-
|
|
4681
|
-
|
|
4682
|
-
|
|
4683
|
-
|
|
4684
|
-
|
|
4685
|
-
|
|
4686
|
-
|
|
4687
|
-
|
|
4688
|
-
|
|
4725
|
+
fn ShadeSH9 ( normal:vec4f , sh9:SH9Struct) -> vec3f
|
|
4726
|
+
{
|
|
4727
|
+
var x1:vec3f = vec3f(0.0);
|
|
4728
|
+
var x2:vec3f = vec3f(0.0);
|
|
4729
|
+
var x3:vec3f = vec3f(0.0);
|
|
4730
|
+
|
|
4731
|
+
// Linear + constant polynomial terms
|
|
4732
|
+
x1.r = dot(sh9.SHAr,normal);
|
|
4733
|
+
x1.g = dot(sh9.SHAg,normal);
|
|
4734
|
+
x1.b = dot(sh9.SHAb,normal);
|
|
4735
|
+
|
|
4736
|
+
// 4 of the quadratic polynomials
|
|
4737
|
+
var vB = normal.xyzz * normal.yzzx;
|
|
4738
|
+
x2.r = dot(sh9.SHBr,vB);
|
|
4739
|
+
x2.g = dot(sh9.SHBg,vB);
|
|
4740
|
+
x2.b = dot(sh9.SHBb,vB);
|
|
4741
|
+
|
|
4742
|
+
// Final quadratic polynomial
|
|
4743
|
+
var vC = normal.x*normal.x - normal.y*normal.y;
|
|
4744
|
+
x3 = sh9.SHC.rgb * vC;
|
|
4745
|
+
return x1 + x2 + x3;
|
|
4746
|
+
}
|
|
4689
4747
|
|
|
4690
|
-
fn clipViewUV(viewRectangle:vec4f,
|
|
4691
|
-
let subViewUV = (fragCoord - viewRectangle.xy) / viewRectangle.zw;
|
|
4692
|
-
return vec2u(subViewUV*size);
|
|
4748
|
+
fn clipViewUV(viewRectangle:vec4f,size:vec2f,fragCoord:vec2f) -> vec2u {
|
|
4749
|
+
let subViewUV = (fragCoord - viewRectangle.xy) / viewRectangle.zw ;
|
|
4750
|
+
return vec2u(subViewUV*size) ;
|
|
4693
4751
|
}
|
|
4694
4752
|
|
|
4695
|
-
fn insideRectangle(point:vec2f, rec:vec4f) -> bool {
|
|
4696
|
-
|
|
4697
|
-
|
|
4698
|
-
|
|
4699
|
-
|
|
4753
|
+
fn insideRectangle( point:vec2f , rec:vec4f) -> bool {
|
|
4754
|
+
if( point.x > rec.x && point.y > rec.y && point.x < (rec.x + rec.z ) && point.y < (rec.y + rec.w ) ){
|
|
4755
|
+
return true ;
|
|
4756
|
+
}
|
|
4757
|
+
return false;
|
|
4700
4758
|
}
|
|
4701
4759
|
|
|
4702
|
-
fn convert_cube_uv_to_xyz(index:i32,
|
|
4703
|
-
|
|
4704
|
-
|
|
4705
|
-
|
|
4706
|
-
|
|
4707
|
-
|
|
4708
|
-
|
|
4709
|
-
|
|
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
|
-
|
|
4760
|
+
fn convert_cube_uv_to_xyz( index:i32, u:f32, v:f32) -> vec3f
|
|
4761
|
+
{
|
|
4762
|
+
var ret : vec3f ;
|
|
4763
|
+
// convert range 0 to 1 to -1 to 1
|
|
4764
|
+
var uc = 2.0f * u - 1.0f;
|
|
4765
|
+
var vc = 2.0f * v - 1.0f;
|
|
4766
|
+
switch (index)
|
|
4767
|
+
{
|
|
4768
|
+
case 0: {
|
|
4769
|
+
ret.x = 1.0f;
|
|
4770
|
+
ret.y = vc;
|
|
4771
|
+
ret.z = -uc;
|
|
4772
|
+
break;
|
|
4773
|
+
} // POSITIVE X
|
|
4774
|
+
case 1: {
|
|
4775
|
+
ret.x = -1.0f;
|
|
4776
|
+
ret.y = vc;
|
|
4777
|
+
ret.z = uc;
|
|
4778
|
+
break;
|
|
4779
|
+
} // NEGATIVE X
|
|
4780
|
+
case 2: {
|
|
4781
|
+
ret.x = uc;
|
|
4782
|
+
ret.y = 1.0f;
|
|
4783
|
+
ret.z = -vc;
|
|
4784
|
+
break;
|
|
4785
|
+
} // POSITIVE Y
|
|
4786
|
+
case 3: {
|
|
4787
|
+
ret.x = uc;
|
|
4788
|
+
ret.y = -1.0f;
|
|
4789
|
+
ret.z = vc;
|
|
4790
|
+
break;
|
|
4791
|
+
} // NEGATIVE Y
|
|
4792
|
+
case 4: {
|
|
4793
|
+
ret.x = uc;
|
|
4794
|
+
ret.y = vc;
|
|
4795
|
+
ret.z = 1.0f;
|
|
4796
|
+
break;
|
|
4797
|
+
} // POSITIVE Z
|
|
4798
|
+
case 5: {
|
|
4799
|
+
ret.x = -uc;
|
|
4800
|
+
ret.y = vc;
|
|
4801
|
+
ret.z = -1.0f;
|
|
4802
|
+
break;
|
|
4803
|
+
} // NEGATIVE Z
|
|
4804
|
+
default:{
|
|
4805
|
+
ret = vec3f(0.0);
|
|
4746
4806
|
}
|
|
4747
|
-
|
|
4807
|
+
}
|
|
4808
|
+
return ret ;
|
|
4748
4809
|
}
|
|
4749
4810
|
|
|
4750
|
-
fn convert_cube_uv_to_normal(index:i32, u:f32, v:f32) -> vec3f
|
|
4751
|
-
|
|
4752
|
-
|
|
4753
|
-
|
|
4754
|
-
|
|
4755
|
-
|
|
4756
|
-
|
|
4757
|
-
|
|
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
|
-
|
|
4811
|
+
fn convert_cube_uv_to_normal( index:i32, u:f32, v:f32) -> vec3f
|
|
4812
|
+
{
|
|
4813
|
+
var ret : vec3f ;
|
|
4814
|
+
// convert range 0 to 1 to -1 to 1
|
|
4815
|
+
var uc = 2.0f * u - 1.0f;
|
|
4816
|
+
var vc = 2.0f * v - 1.0f;
|
|
4817
|
+
switch (index)
|
|
4818
|
+
{
|
|
4819
|
+
case 0: {
|
|
4820
|
+
ret.x = 1.0f;
|
|
4821
|
+
ret.y = vc;
|
|
4822
|
+
ret.z = -uc;
|
|
4823
|
+
break;
|
|
4824
|
+
} // POSITIVE X
|
|
4825
|
+
case 1: {
|
|
4826
|
+
ret.x = -1.0f;
|
|
4827
|
+
ret.y = vc;
|
|
4828
|
+
ret.z = uc;
|
|
4829
|
+
break;
|
|
4830
|
+
} // NEGATIVE X
|
|
4831
|
+
case 2: {
|
|
4832
|
+
ret.x = uc;
|
|
4833
|
+
ret.y = 1.0f;
|
|
4834
|
+
ret.z = -vc;
|
|
4835
|
+
break;
|
|
4836
|
+
} // POSITIVE Y
|
|
4837
|
+
case 3: {
|
|
4838
|
+
ret.x = uc;
|
|
4839
|
+
ret.y = -1.0f;
|
|
4840
|
+
ret.z = vc;
|
|
4841
|
+
break;
|
|
4842
|
+
} // NEGATIVE Y
|
|
4843
|
+
case 4: {
|
|
4844
|
+
ret.x = uc;
|
|
4845
|
+
ret.y = vc;
|
|
4846
|
+
ret.z = 1.0f;
|
|
4847
|
+
break;
|
|
4848
|
+
} // POSITIVE Z
|
|
4849
|
+
case 5: {
|
|
4850
|
+
ret.x = -uc;
|
|
4851
|
+
ret.y = vc;
|
|
4852
|
+
ret.z = -1.0f;
|
|
4853
|
+
break;
|
|
4854
|
+
} // NEGATIVE Z
|
|
4855
|
+
default:{
|
|
4856
|
+
ret = vec3f(0.0);
|
|
4794
4857
|
}
|
|
4795
|
-
|
|
4858
|
+
}
|
|
4859
|
+
return ret ;
|
|
4796
4860
|
}
|
|
4797
4861
|
|
|
4798
|
-
fn UvToDir(uv1:vec2f) -> vec3f{
|
|
4799
|
-
|
|
4800
|
-
|
|
4801
|
-
|
|
4802
|
-
|
|
4803
|
-
|
|
4804
|
-
|
|
4805
|
-
|
|
4806
|
-
|
|
4807
|
-
|
|
4862
|
+
fn UvToDir( uv1:vec2f) -> vec3f{
|
|
4863
|
+
var uv = uv1 ;
|
|
4864
|
+
uv *= vec2f(2.0*3.1415926535897932384626433832795, 3.1415926535897932384626433832795);
|
|
4865
|
+
var theta = uv.y;
|
|
4866
|
+
var phi = uv.x + 3.1415926535897932384626433832795 * 0.5 ;
|
|
4867
|
+
// var phi = uv.x ;
|
|
4868
|
+
var dir = vec3f(0.0,0.0,0.0);
|
|
4869
|
+
dir.x = sin(phi) * sin(theta) * -1;
|
|
4870
|
+
dir.y = cos(theta) * -1;
|
|
4871
|
+
dir.z = cos(phi) * sin(theta);
|
|
4872
|
+
return dir;
|
|
4808
4873
|
}
|
|
4809
4874
|
|
|
4810
|
-
fn DirTOUV(a_coords:vec3f) ->
|
|
4811
|
-
|
|
4812
|
-
|
|
4813
|
-
|
|
4814
|
-
|
|
4815
|
-
|
|
4875
|
+
fn DirTOUV( a_coords:vec3f ) ->vec2f
|
|
4876
|
+
{
|
|
4877
|
+
var coords = normalize(a_coords);
|
|
4878
|
+
var lon = atan2(coords.z, coords.x);
|
|
4879
|
+
var lat = acos(coords.y);
|
|
4880
|
+
var sphereCoords = vec2f(lon, lat) * (1.0 / 3.1415926535897932384626433832795);
|
|
4881
|
+
return vec2f(sphereCoords.x * 0.5 + 0.5 , 1.0 - sphereCoords.y);
|
|
4816
4882
|
}
|
|
4817
|
-
|
|
4883
|
+
|
|
4884
|
+
`
|
|
4885
|
+
);
|
|
4818
4886
|
|
|
4819
4887
|
let PhysicMaterialUniform_frag = `
|
|
4820
4888
|
#if USE_CUSTOMUNIFORM
|
|
@@ -5165,7 +5233,9 @@ let IrradianceVolumeData_frag = `
|
|
|
5165
5233
|
}
|
|
5166
5234
|
`;
|
|
5167
5235
|
|
|
5168
|
-
let Inline_vert =
|
|
5236
|
+
let Inline_vert = (
|
|
5237
|
+
/*wgsl*/
|
|
5238
|
+
`
|
|
5169
5239
|
#include "MathShader"
|
|
5170
5240
|
#include "FastMathShader"
|
|
5171
5241
|
#include "InstanceUniform"
|
|
@@ -5186,35 +5256,35 @@ let Inline_vert = `
|
|
|
5186
5256
|
}
|
|
5187
5257
|
|
|
5188
5258
|
fn TIME_frame() -> f32 {
|
|
5189
|
-
return globalUniform.frame;
|
|
5259
|
+
return globalUniform.frame ;
|
|
5190
5260
|
}
|
|
5191
5261
|
|
|
5192
5262
|
fn TIME_time() -> f32 {
|
|
5193
|
-
return globalUniform.time;
|
|
5263
|
+
return globalUniform.time ;
|
|
5194
5264
|
}
|
|
5195
5265
|
|
|
5196
5266
|
fn TIME_delta() -> f32 {
|
|
5197
|
-
return globalUniform.delta;
|
|
5267
|
+
return globalUniform.delta ;
|
|
5198
5268
|
}
|
|
5199
5269
|
|
|
5200
5270
|
fn MOUSE() -> vec2f {
|
|
5201
|
-
return vec2f( globalUniform.mouseX, globalUniform.mouseY);
|
|
5271
|
+
return vec2f( globalUniform.mouseX, globalUniform.mouseY) ;
|
|
5202
5272
|
}
|
|
5203
5273
|
|
|
5204
5274
|
fn SCREEN() -> vec2f {
|
|
5205
|
-
return vec2f( globalUniform.windowWidth, globalUniform.windowHeight);
|
|
5275
|
+
return vec2f( globalUniform.windowWidth, globalUniform.windowHeight) ;
|
|
5206
5276
|
}
|
|
5207
5277
|
|
|
5208
5278
|
fn ProjectionParams() -> vec3f {
|
|
5209
|
-
return vec3f( globalUniform.near, globalUniform.far,1.0 + 1.0 / globalUniform.far);
|
|
5279
|
+
return vec3f( globalUniform.near, globalUniform.far,1.0 + 1.0 / globalUniform.far) ;
|
|
5210
5280
|
}
|
|
5211
5281
|
|
|
5212
5282
|
fn vertex_inline(vertex:VertexAttributes){
|
|
5213
|
-
ORI_MATRIX_P = globalUniform.projMat;
|
|
5214
|
-
ORI_MATRIX_V = globalUniform.viewMat;
|
|
5215
|
-
ORI_MATRIX_PV = ORI_MATRIX_P * ORI_MATRIX_V;
|
|
5216
|
-
ORI_MATRIX_PVInv = globalUniform.pvMatrixInv;
|
|
5217
|
-
ORI_CAMERAMATRIX = globalUniform.cameraWorldMatrix;
|
|
5283
|
+
ORI_MATRIX_P = globalUniform.projMat ;
|
|
5284
|
+
ORI_MATRIX_V = globalUniform.viewMat ;
|
|
5285
|
+
ORI_MATRIX_PV = ORI_MATRIX_P * ORI_MATRIX_V ;
|
|
5286
|
+
ORI_MATRIX_PVInv = globalUniform.pvMatrixInv ;
|
|
5287
|
+
ORI_CAMERAMATRIX = globalUniform.cameraWorldMatrix ;
|
|
5218
5288
|
|
|
5219
5289
|
ORI_MATRIX_M = models.matrix[u32(vertex.index)];
|
|
5220
5290
|
|
|
@@ -5223,7 +5293,8 @@ let Inline_vert = `
|
|
|
5223
5293
|
ORI_MATRIX_M = models.matrix[modelID];
|
|
5224
5294
|
#endif
|
|
5225
5295
|
}
|
|
5226
|
-
|
|
5296
|
+
`
|
|
5297
|
+
);
|
|
5227
5298
|
|
|
5228
5299
|
let Common_frag = `
|
|
5229
5300
|
#include "GlobalUniform"
|
|
@@ -5288,7 +5359,9 @@ let Common_frag = `
|
|
|
5288
5359
|
}
|
|
5289
5360
|
`;
|
|
5290
5361
|
|
|
5291
|
-
let Common_vert =
|
|
5362
|
+
let Common_vert = (
|
|
5363
|
+
/*wgsl*/
|
|
5364
|
+
`
|
|
5292
5365
|
#include "WorldMatrixUniform"
|
|
5293
5366
|
#include "VertexAttributes_vert"
|
|
5294
5367
|
#include "GlobalUniform"
|
|
@@ -5297,9 +5370,10 @@ let Common_vert = `
|
|
|
5297
5370
|
fn VertMain( vertex:VertexAttributes ) -> VertexOutput {
|
|
5298
5371
|
vertex_inline(vertex);
|
|
5299
5372
|
vert(vertex);
|
|
5300
|
-
return ORI_VertexOut;
|
|
5373
|
+
return ORI_VertexOut ;
|
|
5301
5374
|
}
|
|
5302
|
-
|
|
5375
|
+
`
|
|
5376
|
+
);
|
|
5303
5377
|
|
|
5304
5378
|
let BrdfLut_frag = (
|
|
5305
5379
|
/*wgsl*/
|
|
@@ -5329,103 +5403,122 @@ class CSM {
|
|
|
5329
5403
|
static Cascades = 4;
|
|
5330
5404
|
}
|
|
5331
5405
|
|
|
5332
|
-
let GlobalUniform =
|
|
5406
|
+
let GlobalUniform = (
|
|
5407
|
+
/*wgsl*/
|
|
5408
|
+
`
|
|
5333
5409
|
|
|
5334
|
-
|
|
5410
|
+
#include "MathShader"
|
|
5335
5411
|
|
|
5336
|
-
|
|
5337
|
-
|
|
5338
|
-
projMat: mat4x4<f32>,
|
|
5339
|
-
viewMat: mat4x4<f32>,
|
|
5340
|
-
cameraWorldMatrix: mat4x4<f32>,
|
|
5341
|
-
pvMatrixInv: mat4x4<f32>,
|
|
5342
|
-
viewToWorld: mar4x4<f32>,
|
|
5343
|
-
shadowMatrix: array<mat4x4<f32>, 8u>,
|
|
5344
|
-
csmShadowBias: vec4<f32>,
|
|
5345
|
-
csmMatrix: array<mat4x4<f32>,${CSM.Cascades}>,
|
|
5346
|
-
shadowLights:mat4x4<f32>,
|
|
5347
|
-
reflectionProbeSize:f32,
|
|
5348
|
-
reflectionProbeMaxCount:f32,
|
|
5349
|
-
reflectionMapWidth:f32,
|
|
5350
|
-
reflectionMapHeight:f32,
|
|
5351
|
-
reflectionCount:f32,
|
|
5352
|
-
test2:f32,
|
|
5353
|
-
test3:f32,
|
|
5354
|
-
test4:f32,
|
|
5355
|
-
CameraPos: vec3<f32>,
|
|
5356
|
-
frame: f32,
|
|
5357
|
-
SH: array<vec4f,9u>,
|
|
5358
|
-
time: f32,
|
|
5359
|
-
delta: f32,
|
|
5360
|
-
shadowBias: f32,
|
|
5361
|
-
skyExposure: f32,
|
|
5362
|
-
renderPassState: f32,
|
|
5363
|
-
quadScale: f32,
|
|
5364
|
-
hdrExposure: f32,
|
|
5365
|
-
renderState_left: i32,
|
|
5366
|
-
renderState_right: i32,
|
|
5367
|
-
renderState_split: f32,
|
|
5368
|
-
mouseX: f32,
|
|
5369
|
-
mouseY: f32,
|
|
5370
|
-
windowWidth: f32,
|
|
5371
|
-
windowHeight: f32,
|
|
5372
|
-
near: f32,
|
|
5373
|
-
far: f32,
|
|
5374
|
-
pointShadowBias: f32,
|
|
5375
|
-
shadowMapSize: f32,
|
|
5376
|
-
shadowSoft: f32,
|
|
5377
|
-
enableCSM:f32,
|
|
5378
|
-
csmMargin:f32,
|
|
5379
|
-
nDirShadowStart: i32,
|
|
5380
|
-
nDirShadowEnd: i32,
|
|
5381
|
-
nPointShadowStart: i32,
|
|
5382
|
-
nPointShadowEnd: i32,
|
|
5383
|
-
cameraForward:vec3f,
|
|
5384
|
-
frustumPlanes: array<vec4f, 6u>,
|
|
5385
|
-
};
|
|
5412
|
+
struct GlobalUniform {
|
|
5386
5413
|
|
|
5387
|
-
|
|
5388
|
-
|
|
5414
|
+
projMat: mat4x4<f32>,
|
|
5415
|
+
viewMat: mat4x4<f32>,
|
|
5416
|
+
cameraWorldMatrix: mat4x4<f32>,
|
|
5417
|
+
pvMatrixInv : mat4x4<f32>,
|
|
5418
|
+
viewToWorld : mat4x4<f32>,
|
|
5419
|
+
shadowMatrix: array<mat4x4<f32>, 8u>,
|
|
5389
5420
|
|
|
5390
|
-
|
|
5391
|
-
let pvMatrixInv = globalUniform.pvMatrixInv;
|
|
5392
|
-
let clip = vec4<f32>((uv * 2.0 - 1.0), z, 1.0);
|
|
5393
|
-
var viewPos = pvMatrixInv * clip;
|
|
5394
|
-
return viewPos.xyz / viewPos.w;
|
|
5395
|
-
}
|
|
5421
|
+
csmShadowBias: vec4<f32>,
|
|
5396
5422
|
|
|
5397
|
-
|
|
5398
|
-
|
|
5399
|
-
|
|
5400
|
-
var worldPos = viewToWorld * clip;
|
|
5401
|
-
worldPos = worldPos / worldPos.w;
|
|
5402
|
-
return worldPos.xyz;
|
|
5403
|
-
}
|
|
5423
|
+
csmMatrix: array<mat4x4<f32>,${CSM.Cascades}>,
|
|
5424
|
+
|
|
5425
|
+
shadowLights:mat4x4<f32>,
|
|
5404
5426
|
|
|
5405
|
-
|
|
5406
|
-
|
|
5407
|
-
|
|
5408
|
-
|
|
5409
|
-
let nMat = mat3x3<f32>(finalMatrix[0].xyz,finalMatrix[1].xyz,fianlMatrix[2].xyz);
|
|
5410
|
-
NORMALMATRIX = transpose(inverse(nMat));
|
|
5411
|
-
}
|
|
5427
|
+
reflectionProbeSize:f32,
|
|
5428
|
+
reflectionProbeMaxCount:f32,
|
|
5429
|
+
reflectionMapWidth:f32,
|
|
5430
|
+
reflectionMapHeight:f32,
|
|
5412
5431
|
|
|
5413
|
-
|
|
5414
|
-
|
|
5415
|
-
|
|
5416
|
-
|
|
5417
|
-
}
|
|
5432
|
+
reflectionCount:f32,
|
|
5433
|
+
test2:f32,
|
|
5434
|
+
test3:f32,
|
|
5435
|
+
test4:f32,
|
|
5418
5436
|
|
|
5419
|
-
|
|
5420
|
-
|
|
5421
|
-
|
|
5422
|
-
}
|
|
5437
|
+
CameraPos: vec3<f32>,
|
|
5438
|
+
frame: f32,
|
|
5439
|
+
SH: array<vec4f, 9u> ,
|
|
5423
5440
|
|
|
5424
|
-
|
|
5425
|
-
|
|
5426
|
-
|
|
5427
|
-
|
|
5428
|
-
|
|
5441
|
+
time: f32,
|
|
5442
|
+
delta: f32,
|
|
5443
|
+
shadowBias: f32,
|
|
5444
|
+
skyExposure: f32,
|
|
5445
|
+
|
|
5446
|
+
renderPassState:f32,
|
|
5447
|
+
quadScale: f32,
|
|
5448
|
+
hdrExposure: f32,
|
|
5449
|
+
renderState_left: i32,
|
|
5450
|
+
|
|
5451
|
+
renderState_right: i32,
|
|
5452
|
+
renderState_split: f32,
|
|
5453
|
+
mouseX: f32,
|
|
5454
|
+
mouseY: f32,
|
|
5455
|
+
|
|
5456
|
+
windowWidth: f32,
|
|
5457
|
+
windowHeight: f32,
|
|
5458
|
+
near: f32,
|
|
5459
|
+
far: f32,
|
|
5460
|
+
|
|
5461
|
+
pointShadowBias: f32,
|
|
5462
|
+
shadowMapSize: f32,
|
|
5463
|
+
shadowSoft: f32,
|
|
5464
|
+
enableCSM:f32,
|
|
5465
|
+
|
|
5466
|
+
|
|
5467
|
+
csmMargin:f32,
|
|
5468
|
+
nDirShadowStart: i32,
|
|
5469
|
+
nDirShadowEnd: i32,
|
|
5470
|
+
nPointShadowStart: i32,
|
|
5471
|
+
|
|
5472
|
+
nPointShadowEnd: i32,
|
|
5473
|
+
cameraForward:vec3f,
|
|
5474
|
+
|
|
5475
|
+
frustumPlanes: array<vec4f, 6u>,
|
|
5476
|
+
|
|
5477
|
+
};
|
|
5478
|
+
|
|
5479
|
+
@group(0) @binding(0)
|
|
5480
|
+
var<uniform> globalUniform: GlobalUniform;
|
|
5481
|
+
|
|
5482
|
+
fn getViewPosition(z:f32,uv:vec2f) -> vec3f {
|
|
5483
|
+
let pvMatrixInv = globalUniform.pvMatrixInv ;
|
|
5484
|
+
let clip = vec4<f32>((uv * 2.0 - 1.0) , z , 1.0);
|
|
5485
|
+
var viewPos = pvMatrixInv * clip ;
|
|
5486
|
+
return viewPos.xyz / viewPos.w ;
|
|
5487
|
+
}
|
|
5488
|
+
|
|
5489
|
+
fn getWorldPosition(z:f32,uv:vec2f) -> vec3f {
|
|
5490
|
+
let viewToWorld = globalUniform.viewToWorld ;
|
|
5491
|
+
let clip = vec4<f32>((uv * 2.0 - 1.0) , z , 1.0);
|
|
5492
|
+
var worldPos = viewToWorld * clip ;
|
|
5493
|
+
worldPos = worldPos / worldPos.w ;
|
|
5494
|
+
return worldPos.xyz ;
|
|
5495
|
+
}
|
|
5496
|
+
|
|
5497
|
+
var<private> NORMALMATRIX_INV : mat3x3<f32> ;
|
|
5498
|
+
var<private> NORMALMATRIX : mat3x3<f32> ;
|
|
5499
|
+
fn useNormalMatrix() {
|
|
5500
|
+
let finalMatrix = globalUniform.projMat * globalUniform.viewMat ;
|
|
5501
|
+
let nMat = mat3x3<f32>(finalMatrix[0].xyz,finalMatrix[1].xyz,finalMatrix[2].xyz) ;
|
|
5502
|
+
NORMALMATRIX = transpose(inverse( nMat ));
|
|
5503
|
+
}
|
|
5504
|
+
|
|
5505
|
+
fn useNormalMatrixInv() {
|
|
5506
|
+
let finalMatrix = globalUniform.projMat * globalUniform.viewMat ;
|
|
5507
|
+
let nMat = mat3x3<f32>(finalMatrix[0].xyz,finalMatrix[1].xyz,finalMatrix[2].xyz) ;
|
|
5508
|
+
NORMALMATRIX_INV = transpose(( nMat ));
|
|
5509
|
+
}
|
|
5510
|
+
|
|
5511
|
+
fn getWorldNormal(viewNormal:vec3f) -> vec3f {
|
|
5512
|
+
var worldNormal = NORMALMATRIX_INV * viewNormal ;
|
|
5513
|
+
return normalize(worldNormal.xyz);
|
|
5514
|
+
}
|
|
5515
|
+
|
|
5516
|
+
fn getViewNormal(worldNormal:vec3f) -> vec3f {
|
|
5517
|
+
var viewNormal = globalUniform.viewMat * vec4f(worldNormal,0.0) ;
|
|
5518
|
+
return normalize(viewNormal.xyz);
|
|
5519
|
+
}
|
|
5520
|
+
`
|
|
5521
|
+
);
|
|
5429
5522
|
|
|
5430
5523
|
let InstanceUniform = `
|
|
5431
5524
|
#if USE_INSTANCEDRAW
|
|
@@ -5437,14 +5530,17 @@ let InstanceUniform = `
|
|
|
5437
5530
|
#endif
|
|
5438
5531
|
`;
|
|
5439
5532
|
|
|
5440
|
-
let WorldMatrixUniform =
|
|
5533
|
+
let WorldMatrixUniform = (
|
|
5534
|
+
/*wgsl*/
|
|
5535
|
+
`
|
|
5441
5536
|
struct Uniforms {
|
|
5442
|
-
matrix: array<mat4x4<f32>>
|
|
5537
|
+
matrix : array<mat4x4<f32>>
|
|
5443
5538
|
};
|
|
5444
5539
|
|
|
5445
|
-
@group(0) @
|
|
5446
|
-
var<storage, read> models: Uniforms;
|
|
5447
|
-
|
|
5540
|
+
@group(0) @binding(1)
|
|
5541
|
+
var<storage, read> models : Uniforms;
|
|
5542
|
+
`
|
|
5543
|
+
);
|
|
5448
5544
|
|
|
5449
5545
|
let FastMathShader = `
|
|
5450
5546
|
fn pow2(x:f32) -> f32 {
|
|
@@ -5515,7 +5611,7 @@ let FastMathShader = `
|
|
|
5515
5611
|
return res ;
|
|
5516
5612
|
}else{
|
|
5517
5613
|
return PI - res ;
|
|
5518
|
-
}
|
|
5614
|
+
};
|
|
5519
5615
|
}
|
|
5520
5616
|
|
|
5521
5617
|
fn acosFast4( inX : f32 )-> f32
|
|
@@ -5534,12 +5630,15 @@ let FastMathShader = `
|
|
|
5534
5630
|
return s ;
|
|
5535
5631
|
}else{
|
|
5536
5632
|
return PI - s ;
|
|
5537
|
-
}
|
|
5633
|
+
};
|
|
5538
5634
|
}
|
|
5539
5635
|
`;
|
|
5540
5636
|
|
|
5541
|
-
let NormalMap_frag =
|
|
5542
|
-
|
|
5637
|
+
let NormalMap_frag = (
|
|
5638
|
+
/*wgsl*/
|
|
5639
|
+
`
|
|
5640
|
+
|
|
5641
|
+
fn perturbNormal( worldPos:vec3<f32>, surf_norm:vec3<f32>, mapN:vec3<f32> , normalScale:f32 , face:f32 ) -> vec3<f32> {
|
|
5543
5642
|
var q0 = vec3<f32>( dpdx( worldPos.x ), dpdx( worldPos.y ), dpdx( worldPos.z ) );
|
|
5544
5643
|
var q1 = vec3<f32>( dpdy( worldPos.x ), dpdy( worldPos.y ), dpdy( worldPos.z ) );
|
|
5545
5644
|
var st0 = dpdx( ORI_VertexVarying.fragUV0.xy );
|
|
@@ -5547,12 +5646,17 @@ let NormalMap_frag = `
|
|
|
5547
5646
|
var N = surf_norm;
|
|
5548
5647
|
var q0perp = cross( N, q0 );
|
|
5549
5648
|
var q1perp = cross( q1, N );
|
|
5649
|
+
|
|
5650
|
+
var T = q1perp * st0.x + q0perp * st1.x;
|
|
5651
|
+
|
|
5550
5652
|
var B = q1perp * st0.y + q0perp * st1.y;
|
|
5653
|
+
|
|
5551
5654
|
var det = max( dot( T, T ), dot( B, B ) );
|
|
5552
5655
|
var scale = 1.0 ;
|
|
5553
5656
|
if( det != 0.0 ){
|
|
5554
5657
|
scale = inverseSqrt( det ) ;
|
|
5555
5658
|
}
|
|
5659
|
+
|
|
5556
5660
|
scale *= normalScale;
|
|
5557
5661
|
return normalize( (T * ( -mapN.x * scale ) + B * ( mapN.y * scale ) + N * mapN.z ) * face ) ;
|
|
5558
5662
|
}
|
|
@@ -5593,7 +5697,8 @@ let NormalMap_frag = `
|
|
|
5593
5697
|
var outN = perturbNormal(ORI_VertexVarying.vWorldPos.xyz,ORI_VertexVarying.vWorldNormal,mapNormal,1.0,face) ;
|
|
5594
5698
|
return outN ;
|
|
5595
5699
|
}
|
|
5596
|
-
|
|
5700
|
+
`
|
|
5701
|
+
);
|
|
5597
5702
|
|
|
5598
5703
|
let FragmentVarying = `
|
|
5599
5704
|
struct FragmentVarying {
|
|
@@ -5687,7 +5792,7 @@ let IESProfiles_frag = `
|
|
|
5687
5792
|
return textureSampleLevel(iesTextureArrayMap, iesTextureArrayMapSampler, vec2<f32>(normAngle , normTangentAngle) , i32(light.ies) , 0.0).r ;
|
|
5688
5793
|
}else{
|
|
5689
5794
|
return 1.0;
|
|
5690
|
-
}
|
|
5795
|
+
};
|
|
5691
5796
|
#else
|
|
5692
5797
|
return 1.0;
|
|
5693
5798
|
#endif
|
|
@@ -5755,12 +5860,12 @@ let ShadowMapping_frag = `
|
|
|
5755
5860
|
weight *= 1.0 - totalWeight;
|
|
5756
5861
|
visibility += csmShadowResult.x * weight;
|
|
5757
5862
|
totalWeight += weight;
|
|
5758
|
-
}
|
|
5863
|
+
};
|
|
5759
5864
|
|
|
5760
5865
|
if(validCount >= 2 || totalWeight >= 0.99){
|
|
5761
5866
|
csmLevel = csm;
|
|
5762
5867
|
break;
|
|
5763
|
-
}
|
|
5868
|
+
};
|
|
5764
5869
|
}
|
|
5765
5870
|
}
|
|
5766
5871
|
|
|
@@ -5769,7 +5874,7 @@ let ShadowMapping_frag = `
|
|
|
5769
5874
|
visibility = 1.0;
|
|
5770
5875
|
}else{
|
|
5771
5876
|
visibility = visibility / totalWeight ;
|
|
5772
|
-
}
|
|
5877
|
+
};
|
|
5773
5878
|
} else {
|
|
5774
5879
|
shadowMatrix = globalUniform.shadowMatrix[shadowIndex];
|
|
5775
5880
|
if(enableCSM) {
|
|
@@ -5818,7 +5923,7 @@ let ShadowMapping_frag = `
|
|
|
5818
5923
|
totalWeight += weight;
|
|
5819
5924
|
}else{
|
|
5820
5925
|
totalWeight += 1.0;
|
|
5821
|
-
}
|
|
5926
|
+
};
|
|
5822
5927
|
}
|
|
5823
5928
|
}
|
|
5824
5929
|
visibility /= totalWeight;
|
|
@@ -6631,7 +6736,9 @@ let BRDF_frag = `
|
|
|
6631
6736
|
}
|
|
6632
6737
|
`;
|
|
6633
6738
|
|
|
6634
|
-
let BxDF_frag =
|
|
6739
|
+
let BxDF_frag = (
|
|
6740
|
+
/*wgsl*/
|
|
6741
|
+
`
|
|
6635
6742
|
#include "Clearcoat_frag"
|
|
6636
6743
|
#include "BRDF_frag"
|
|
6637
6744
|
#include "MathShader"
|
|
@@ -6649,7 +6756,9 @@ let BxDF_frag = `
|
|
|
6649
6756
|
#include "BxdfDebug_frag"
|
|
6650
6757
|
#include "ReflectionCG"
|
|
6651
6758
|
|
|
6759
|
+
//ORI_ShadingInput
|
|
6652
6760
|
fn initFragData() {
|
|
6761
|
+
// fragData.Albedo = vec4f(gammaToLiner(ORI_ShadingInput.BaseColor.rgb),ORI_ShadingInput.BaseColor.w) ;
|
|
6653
6762
|
fragData.Albedo = vec4f((ORI_ShadingInput.BaseColor.rgb),ORI_ShadingInput.BaseColor.w) ;
|
|
6654
6763
|
fragData.Ao = clamp( pow(ORI_ShadingInput.AmbientOcclusion,materialUniform.ao) , 0.0 , 1.0 ) ;
|
|
6655
6764
|
fragData.Roughness = clamp((ORI_ShadingInput.Roughness),0.0001,1.0) * 1.85 ;
|
|
@@ -6665,13 +6774,19 @@ let BxDF_frag = `
|
|
|
6665
6774
|
|
|
6666
6775
|
let R = 2.0 * dot( fragData.V , fragData.N ) * fragData.N - fragData.V ;
|
|
6667
6776
|
fragData.R = R ;//reflect( fragData.V , fragData.N ) ;
|
|
6777
|
+
|
|
6668
6778
|
fragData.NoV = saturate(dot(fragData.N, fragData.V)) ;
|
|
6779
|
+
|
|
6669
6780
|
fragData.F0 = mix(vec3<f32>(0.04), fragData.Albedo.rgb , fragData.Metallic);
|
|
6781
|
+
// fragData.F0 = gammaToLiner(fragData.F0);
|
|
6782
|
+
|
|
6670
6783
|
fragData.F = computeFresnelSchlick(fragData.NoV, fragData.F0);
|
|
6671
6784
|
fragData.KD = vec3<f32>(fragData.F) ;
|
|
6672
6785
|
fragData.KS = vec3<f32>(0.0) ;
|
|
6786
|
+
|
|
6673
6787
|
fragData.Indirect = 0.0 ;
|
|
6674
6788
|
fragData.Reflectance = 1.0 ;
|
|
6789
|
+
|
|
6675
6790
|
fragData.ClearcoatRoughness = materialUniform.clearcoatRoughnessFactor ;
|
|
6676
6791
|
fragData.ClearcoatIor = materialUniform.clearcoatIor ;
|
|
6677
6792
|
fragData.ClearcoatFactor = materialUniform.clearcoatFactor;
|
|
@@ -6684,7 +6799,9 @@ let BxDF_frag = `
|
|
|
6684
6799
|
|
|
6685
6800
|
fn BxDFShading(){
|
|
6686
6801
|
initFragData();
|
|
6802
|
+
|
|
6687
6803
|
let sunLight = lightBuffer[0] ;
|
|
6804
|
+
|
|
6688
6805
|
var irradiance = vec3<f32>(0.0) ;
|
|
6689
6806
|
#if USEGI
|
|
6690
6807
|
irradiance += getIrradiance().rgb ;
|
|
@@ -6745,6 +6862,7 @@ let BxDF_frag = `
|
|
|
6745
6862
|
}
|
|
6746
6863
|
|
|
6747
6864
|
//***********indirect-ambient part*********
|
|
6865
|
+
// var kdLast = (1.0 - 0.04) * (1.0 - fragData.Metallic);
|
|
6748
6866
|
var iblDiffuseResult : vec3f ;
|
|
6749
6867
|
|
|
6750
6868
|
let MAX_LOD = i32(textureNumLevels(prefilterMap)) ;
|
|
@@ -6758,7 +6876,8 @@ let BxDF_frag = `
|
|
|
6758
6876
|
indirectionSpec *= globalUniform.hdrExposure ;
|
|
6759
6877
|
#endif
|
|
6760
6878
|
|
|
6761
|
-
var color = vec3f(iblDiffuseResult + indirectionSpec + specColor);
|
|
6879
|
+
var color = vec3f(iblDiffuseResult + indirectionSpec + specColor) ;
|
|
6880
|
+
// var color = vec3f(indirectionDiffuse ) ;
|
|
6762
6881
|
|
|
6763
6882
|
var clearCoatColor = vec3<f32>(0.0);
|
|
6764
6883
|
#if USE_CLEARCOAT
|
|
@@ -6783,6 +6902,9 @@ let BxDF_frag = `
|
|
|
6783
6902
|
break;
|
|
6784
6903
|
}
|
|
6785
6904
|
case SpotLightType: {
|
|
6905
|
+
// var lightColor = light.lightColor.rgb ;
|
|
6906
|
+
// var att = pointAtt(ORI_VertexVarying.vWorldPos.xyz, light);
|
|
6907
|
+
// clearCoatColor += ClearCoat_BRDF( color , materialUniform.clearcoatColor.rgb , 1.5 , clearNormal , light.direction , fragData.V , clearcoatRoughness , lightColor, att );
|
|
6786
6908
|
break;
|
|
6787
6909
|
}
|
|
6788
6910
|
default: {
|
|
@@ -6821,7 +6943,9 @@ let BxDF_frag = `
|
|
|
6821
6943
|
ORI_FragmentOutput.color = viewColor ;
|
|
6822
6944
|
#endif
|
|
6823
6945
|
}
|
|
6824
|
-
|
|
6946
|
+
|
|
6947
|
+
`
|
|
6948
|
+
);
|
|
6825
6949
|
|
|
6826
6950
|
let BsDF_frag = `
|
|
6827
6951
|
#include "Clearcoat_frag"
|
|
@@ -7021,7 +7145,9 @@ let Lit_shader = `
|
|
|
7021
7145
|
}
|
|
7022
7146
|
`;
|
|
7023
7147
|
|
|
7024
|
-
let PBRLItShader =
|
|
7148
|
+
let PBRLItShader = (
|
|
7149
|
+
/*wgsl*/
|
|
7150
|
+
`
|
|
7025
7151
|
#include "Common_vert"
|
|
7026
7152
|
#include "Common_frag"
|
|
7027
7153
|
#include "BxDF_frag"
|
|
@@ -7036,10 +7162,10 @@ let PBRLItShader = `
|
|
|
7036
7162
|
@group(1) @binding(auto)
|
|
7037
7163
|
var normalMap: texture_2d<f32>;
|
|
7038
7164
|
|
|
7039
|
-
|
|
7040
|
-
|
|
7041
|
-
|
|
7042
|
-
|
|
7165
|
+
@group(1) @binding(auto)
|
|
7166
|
+
var maskMapSampler: sampler;
|
|
7167
|
+
@group(1) @binding(auto)
|
|
7168
|
+
var maskMap: texture_2d<f32>;
|
|
7043
7169
|
|
|
7044
7170
|
#if USE_AOTEX
|
|
7045
7171
|
@group(1) @binding(auto)
|
|
@@ -7053,38 +7179,39 @@ let PBRLItShader = `
|
|
|
7053
7179
|
@group(1) @binding(auto)
|
|
7054
7180
|
var emissiveMap: texture_2d<f32>;
|
|
7055
7181
|
|
|
7056
|
-
var<private> debugOut: vec4f = vec4f(0.0);
|
|
7182
|
+
var<private> debugOut : vec4f = vec4f(0.0) ;
|
|
7057
7183
|
|
|
7058
7184
|
fn vert(inputData:VertexAttributes) -> VertexOutput {
|
|
7059
|
-
ORI_Vert(inputData);
|
|
7060
|
-
return
|
|
7185
|
+
ORI_Vert(inputData) ;
|
|
7186
|
+
return ORI_VertexOut ;
|
|
7061
7187
|
}
|
|
7062
7188
|
|
|
7063
7189
|
fn frag(){
|
|
7190
|
+
|
|
7064
7191
|
let baseMapOffsetSize = materialUniform.baseMapOffsetSize;
|
|
7065
|
-
var uv = transformUV(ORI_VertexVarying.fragUV0,
|
|
7192
|
+
var uv = transformUV(ORI_VertexVarying.fragUV0,baseMapOffsetSize) ;
|
|
7066
7193
|
|
|
7067
7194
|
#if USE_SRGB_ALBEDO
|
|
7068
|
-
ORI_ShadingInput.BaseColor = textureSample(baseMap, baseMapSampler, uv);
|
|
7069
|
-
ORI_ShadingInput.BaseColor = vec4<f32>(ORI_ShadingInput.BaseColor * materialUniform.baseColor.rgb, ORI_ShadingInput.BaseColor.w * materialUniform.baseColor.a);
|
|
7195
|
+
ORI_ShadingInput.BaseColor = textureSample(baseMap, baseMapSampler, uv ) ;
|
|
7196
|
+
ORI_ShadingInput.BaseColor = vec4<f32>( ORI_ShadingInput.BaseColor * materialUniform.baseColor.rgb, ORI_ShadingInput.BaseColor.w * materialUniform.baseColor.a) ;
|
|
7070
7197
|
#else
|
|
7071
|
-
ORI_ShadingInput.BaseColor =
|
|
7072
|
-
ORI_ShadingInput.BaseColor = vec4f(gammaToLiner(ORI_ShadingInput.BaseColor.rgb),
|
|
7073
|
-
ORI_ShadingInput.BaseColor *= vec4f(materialUniform.baseColor.rgba);
|
|
7198
|
+
ORI_ShadingInput.BaseColor = textureSample(baseMap, baseMapSampler, uv ) ;
|
|
7199
|
+
ORI_ShadingInput.BaseColor = vec4f(gammaToLiner(ORI_ShadingInput.BaseColor.rgb),ORI_ShadingInput.BaseColor.a) ;
|
|
7200
|
+
ORI_ShadingInput.BaseColor *= vec4f(materialUniform.baseColor.rgba) ;
|
|
7074
7201
|
#endif
|
|
7075
7202
|
|
|
7076
7203
|
let roughnessMapOffsetSize = materialUniform.roughnessMapOffsetSize;
|
|
7077
|
-
var uv4 = transformUV(ORI_VertexVarying.fragUV0,
|
|
7078
|
-
var maskTex = textureSample(maskMap, maskMapSampler, uv4);
|
|
7079
|
-
|
|
7204
|
+
var uv4 = transformUV(ORI_VertexVarying.fragUV0,roughnessMapOffsetSize);
|
|
7205
|
+
var maskTex = textureSample(maskMap, maskMapSampler, uv4 );
|
|
7206
|
+
|
|
7080
7207
|
#if USE_ALPHA_A
|
|
7081
|
-
ORI_ShadingInput.BaseColor.a =
|
|
7208
|
+
ORI_ShadingInput.BaseColor.a = ORI_ShadingInput.BaseColor.a * (maskTex.a) ;
|
|
7082
7209
|
#endif
|
|
7083
7210
|
|
|
7084
|
-
#if USE_ALPHACUT
|
|
7211
|
+
#if USE_ALPHACUT
|
|
7085
7212
|
if( (ORI_ShadingInput.BaseColor.a - materialUniform.alphaCutoff) <= 0.0 ){
|
|
7086
7213
|
ORI_FragmentOutput.color = vec4<f32>(0.0,0.0,0.0,1.0);
|
|
7087
|
-
|
|
7214
|
+
|
|
7088
7215
|
#if USEGBUFFER
|
|
7089
7216
|
ORI_FragmentOutput.worldPos = vec4<f32>(0.0,0.0,0.0,1.0);
|
|
7090
7217
|
ORI_FragmentOutput.worldNormal = vec4<f32>(0.0,0.0,0.0,1.0);
|
|
@@ -7097,7 +7224,7 @@ let PBRLItShader = `
|
|
|
7097
7224
|
|
|
7098
7225
|
useShadow();
|
|
7099
7226
|
|
|
7100
|
-
var roughnessChannel:
|
|
7227
|
+
var roughnessChannel:f32 = 1.0 ;
|
|
7101
7228
|
#if USE_ROUGHNESS_A
|
|
7102
7229
|
roughnessChannel = maskTex.a ;
|
|
7103
7230
|
#else if USE_ROUGHNESS_R
|
|
@@ -7108,16 +7235,16 @@ let PBRLItShader = `
|
|
|
7108
7235
|
roughnessChannel = maskTex.b ;
|
|
7109
7236
|
#else if USE_ALBEDO_A
|
|
7110
7237
|
roughnessChannel = ORI_ShadingInput.BaseColor.a ;
|
|
7111
|
-
#endif
|
|
7238
|
+
#endif
|
|
7112
7239
|
|
|
7113
7240
|
#if USE_SMOOTH
|
|
7114
7241
|
var roughness = ( 1.0 - roughnessChannel ) * materialUniform.roughness;
|
|
7115
|
-
ORI_ShadingInput.Roughness = clamp(roughness, 0.0001, 1.0);
|
|
7242
|
+
ORI_ShadingInput.Roughness = clamp(roughness , 0.0001 , 1.0);
|
|
7116
7243
|
#else
|
|
7117
|
-
ORI_ShadingInput.Roughness = clamp(
|
|
7118
|
-
#endif
|
|
7244
|
+
ORI_ShadingInput.Roughness = clamp(roughnessChannel * materialUniform.roughness ,0.0001,1.0);
|
|
7245
|
+
#endif
|
|
7119
7246
|
|
|
7120
|
-
var metallicChannel:f32 = 1.0;
|
|
7247
|
+
var metallicChannel:f32 = 1.0 ;
|
|
7121
7248
|
#if USE_METALLIC_A
|
|
7122
7249
|
metallicChannel = maskTex.a ;
|
|
7123
7250
|
#else if USE_METALLIC_R
|
|
@@ -7126,16 +7253,16 @@ let PBRLItShader = `
|
|
|
7126
7253
|
metallicChannel = maskTex.g ;
|
|
7127
7254
|
#else if USE_METALLIC_B
|
|
7128
7255
|
metallicChannel = maskTex.b ;
|
|
7129
|
-
#endif
|
|
7130
|
-
|
|
7131
|
-
ORI_ShadingInput.Metallic = metallicChannel * materialUniform.metallic;
|
|
7256
|
+
#endif
|
|
7132
7257
|
|
|
7133
|
-
|
|
7134
|
-
|
|
7258
|
+
ORI_ShadingInput.Metallic = metallicChannel * materialUniform.metallic ;
|
|
7259
|
+
|
|
7260
|
+
var aoChannel:f32 = 1.0 ;
|
|
7261
|
+
#if USE_AOTEX
|
|
7135
7262
|
let aoMapOffsetSize = materialUniform.aoMapOffsetSize;
|
|
7136
7263
|
var aoMapOffsetSizeUV = transformUV(ORI_VertexVarying.fragUV0,aoMapOffsetSize);
|
|
7137
7264
|
var aoMap = textureSample(aoMap, aoMapSampler, ORI_VertexVarying.fragUV0 );
|
|
7138
|
-
aoChannel = aoMap.g;
|
|
7265
|
+
aoChannel = aoMap.g ;
|
|
7139
7266
|
#else
|
|
7140
7267
|
#if USE_AO_A
|
|
7141
7268
|
aoChannel = maskTex.a ;
|
|
@@ -7148,12 +7275,11 @@ let PBRLItShader = `
|
|
|
7148
7275
|
#endif
|
|
7149
7276
|
#endif
|
|
7150
7277
|
|
|
7151
|
-
ORI_ShadingInput.AmbientOcclusion = aoChannel;
|
|
7152
|
-
ORI_ShadingInput.Specular = 1.0;
|
|
7278
|
+
ORI_ShadingInput.AmbientOcclusion = aoChannel ;
|
|
7279
|
+
ORI_ShadingInput.Specular = 1.0 ;
|
|
7153
7280
|
|
|
7154
7281
|
let emissiveMapOffsetSize = materialUniform.emissiveMapOffsetSize;
|
|
7155
|
-
var emissiveUV = transformUV(ORI_VertexVarying.fragUV0,emissiveMapOffsetSize);
|
|
7156
|
-
|
|
7282
|
+
var emissiveUV = transformUV(ORI_VertexVarying.fragUV0,emissiveMapOffsetSize) ;
|
|
7157
7283
|
#if USE_EMISSIVEMAP
|
|
7158
7284
|
var emissiveMapColor = textureSample(emissiveMap, emissiveMapSampler , emissiveUV ) ;
|
|
7159
7285
|
let emissiveColor = materialUniform.emissiveColor.rgb * emissiveMapColor.rgb * materialUniform.emissiveIntensity ;
|
|
@@ -7164,23 +7290,66 @@ let PBRLItShader = `
|
|
|
7164
7290
|
#endif
|
|
7165
7291
|
|
|
7166
7292
|
let normalMapOffsetSize = materialUniform.normalMapOffsetSize;
|
|
7167
|
-
var nomralUV = transformUV(ORI_VertexVarying.fragUV0,normalMapOffsetSize);
|
|
7168
|
-
var Normal = textureSample(normalMap,normalMapSampler,nomralUV).rgb;
|
|
7169
|
-
let normal = unPackRGNormal(Normal,1.0,1.0);
|
|
7170
|
-
ORI_ShadingInput.Normal = normal;
|
|
7171
|
-
|
|
7293
|
+
var nomralUV = transformUV(ORI_VertexVarying.fragUV0,normalMapOffsetSize) ;
|
|
7294
|
+
var Normal = textureSample(normalMap,normalMapSampler,nomralUV).rgb ;
|
|
7295
|
+
let normal = unPackRGNormal(Normal,1.0,1.0) ;
|
|
7296
|
+
ORI_ShadingInput.Normal = normal ;
|
|
7297
|
+
|
|
7172
7298
|
BxDFShading();
|
|
7299
|
+
|
|
7173
7300
|
}
|
|
7174
|
-
|
|
7301
|
+
`
|
|
7302
|
+
);
|
|
7175
7303
|
|
|
7176
|
-
let BxdfDebug_frag =
|
|
7177
|
-
|
|
7304
|
+
let BxdfDebug_frag = (
|
|
7305
|
+
/*wgsl*/
|
|
7306
|
+
`
|
|
7307
|
+
#include "ClusterDebug_frag"
|
|
7308
|
+
|
|
7309
|
+
fn debugPosition(){
|
|
7310
|
+
}
|
|
7178
7311
|
|
|
7179
7312
|
fn debugMeshID(){
|
|
7180
7313
|
let meshIDColor = u32(round(ORI_VertexVarying.vWorldPos.w) ) ;
|
|
7181
7314
|
let color = colorSet[ meshIDColor % 9u] ;
|
|
7182
7315
|
}
|
|
7183
7316
|
|
|
7317
|
+
fn debugNormal(){
|
|
7318
|
+
}
|
|
7319
|
+
|
|
7320
|
+
fn debugUV(){
|
|
7321
|
+
}
|
|
7322
|
+
|
|
7323
|
+
fn debugColor(){
|
|
7324
|
+
}
|
|
7325
|
+
|
|
7326
|
+
fn debugDiffuse(){
|
|
7327
|
+
}
|
|
7328
|
+
|
|
7329
|
+
fn debugAmbient(){
|
|
7330
|
+
}
|
|
7331
|
+
|
|
7332
|
+
fn debugEmissive(){
|
|
7333
|
+
}
|
|
7334
|
+
|
|
7335
|
+
fn debugEnvment(){
|
|
7336
|
+
}
|
|
7337
|
+
|
|
7338
|
+
fn debugAo(){
|
|
7339
|
+
}
|
|
7340
|
+
|
|
7341
|
+
fn debugRoughness(){
|
|
7342
|
+
}
|
|
7343
|
+
|
|
7344
|
+
fn debugMetallic(){
|
|
7345
|
+
}
|
|
7346
|
+
|
|
7347
|
+
fn debugIrradiance(){
|
|
7348
|
+
}
|
|
7349
|
+
|
|
7350
|
+
fn debugTangent(){
|
|
7351
|
+
}
|
|
7352
|
+
|
|
7184
7353
|
fn debugFragmentOut(){
|
|
7185
7354
|
if(ORI_VertexVarying.fragCoord.x > globalUniform.renderState_split) {
|
|
7186
7355
|
switch (globalUniform.renderState_right)
|
|
@@ -7310,17 +7479,20 @@ let BxdfDebug_frag = `
|
|
|
7310
7479
|
}
|
|
7311
7480
|
}
|
|
7312
7481
|
}
|
|
7313
|
-
|
|
7482
|
+
`
|
|
7483
|
+
);
|
|
7314
7484
|
|
|
7315
|
-
let FullQuad_vert_wgsl =
|
|
7485
|
+
let FullQuad_vert_wgsl = (
|
|
7486
|
+
/*wgsl*/
|
|
7487
|
+
`
|
|
7316
7488
|
#include "WorldMatrixUniform"
|
|
7317
7489
|
#include "GlobalUniform"
|
|
7318
7490
|
|
|
7319
7491
|
struct MaterialUniform {
|
|
7320
|
-
|
|
7321
|
-
|
|
7322
|
-
|
|
7323
|
-
|
|
7492
|
+
x:f32,
|
|
7493
|
+
y:f32,
|
|
7494
|
+
width:f32,
|
|
7495
|
+
height:f32,
|
|
7324
7496
|
};
|
|
7325
7497
|
|
|
7326
7498
|
struct VertexOutput {
|
|
@@ -7329,39 +7501,51 @@ let FullQuad_vert_wgsl = `
|
|
|
7329
7501
|
};
|
|
7330
7502
|
|
|
7331
7503
|
@vertex
|
|
7332
|
-
fn main(@builtin(vertex_index) vertexIndex: u32, @builtin(instance_index) index){
|
|
7333
|
-
const pos = array(
|
|
7334
|
-
|
|
7335
|
-
|
|
7336
|
-
|
|
7337
|
-
|
|
7338
|
-
|
|
7339
|
-
|
|
7504
|
+
fn main(@builtin(vertex_index) vertexIndex : u32, @builtin(instance_index) index : u32 ) -> VertexOutput {
|
|
7505
|
+
const pos = array(
|
|
7506
|
+
vec2(-1.0, -1.0), vec2(1.0, -1.0), vec2(-1.0, 1.0),
|
|
7507
|
+
vec2(-1.0, 1.0), vec2(1.0, -1.0), vec2(1.0, 1.0),
|
|
7508
|
+
);
|
|
7509
|
+
const uv = array(
|
|
7510
|
+
vec2(1.0, 0.0), vec2(1.0, 1.0), vec2(0.0, 1.0),
|
|
7511
|
+
vec2(1.0, 0.0), vec2(0.0, 1.0), vec2(0.0, 0.0),
|
|
7512
|
+
);
|
|
7513
|
+
let id = u32(index) ;
|
|
7514
|
+
var output : VertexOutput;
|
|
7515
|
+
output.fragUV = uv[vertexIndex] ;
|
|
7516
|
+
output.position = vec4<f32>(pos[vertexIndex] , 0.0, 1.0) ;
|
|
7517
|
+
return output ;
|
|
7340
7518
|
}
|
|
7341
|
-
|
|
7342
|
-
|
|
7343
|
-
|
|
7344
|
-
|
|
7345
|
-
|
|
7346
|
-
|
|
7347
|
-
|
|
7348
|
-
|
|
7519
|
+
`
|
|
7520
|
+
);
|
|
7521
|
+
let Quad_vert_wgsl = (
|
|
7522
|
+
/*wgsl*/
|
|
7523
|
+
`
|
|
7524
|
+
#include "WorldMatrixUniform"
|
|
7525
|
+
#include "GlobalUniform"
|
|
7526
|
+
|
|
7527
|
+
struct MaterialUniform {
|
|
7528
|
+
x:f32,
|
|
7529
|
+
y:f32,
|
|
7349
7530
|
width:f32,
|
|
7350
7531
|
height:f32,
|
|
7351
|
-
|
|
7532
|
+
};
|
|
7352
7533
|
|
|
7353
|
-
|
|
7354
|
-
|
|
7355
|
-
|
|
7356
|
-
|
|
7534
|
+
struct VertexOutput {
|
|
7535
|
+
@location(auto) fragUV: vec2<f32>,
|
|
7536
|
+
@builtin(position) member: vec4<f32>
|
|
7537
|
+
};
|
|
7357
7538
|
|
|
7358
|
-
|
|
7359
|
-
|
|
7360
|
-
|
|
7361
|
-
|
|
7362
|
-
|
|
7363
|
-
|
|
7364
|
-
|
|
7539
|
+
@vertex
|
|
7540
|
+
fn main(@builtin(instance_index) index : u32,@location(auto) position: vec3<f32>, @location(auto) TEXCOORD_1: vec2<f32>) -> VertexOutput {
|
|
7541
|
+
let uv = vec2(((TEXCOORD_1.xy * 2.0) - vec2<f32>(1.0))) ;// / windowSize * size - offset ;
|
|
7542
|
+
return VertexOutput(TEXCOORD_1, vec4<f32>(uv, 0.0, 1.0));
|
|
7543
|
+
}
|
|
7544
|
+
`
|
|
7545
|
+
);
|
|
7546
|
+
let Quad_frag_wgsl = (
|
|
7547
|
+
/*wgsl*/
|
|
7548
|
+
`
|
|
7365
7549
|
struct FragmentOutput {
|
|
7366
7550
|
@location(auto) o_Target: vec4<f32>
|
|
7367
7551
|
};
|
|
@@ -7370,22 +7554,25 @@ let Quad_frag_wgsl = `
|
|
|
7370
7554
|
var<private> o_Target: vec4<f32>;
|
|
7371
7555
|
@group(1) @binding(0)
|
|
7372
7556
|
var baseMapSampler: sampler;
|
|
7373
|
-
@group(1) @binding(
|
|
7557
|
+
@group(1) @binding(1)
|
|
7374
7558
|
var baseMap: texture_2d<f32>;
|
|
7375
7559
|
|
|
7376
7560
|
@fragment
|
|
7377
7561
|
fn main(@location(auto) fragUV: vec2<f32>) -> FragmentOutput {
|
|
7378
|
-
var uv = fragUV;
|
|
7379
|
-
uv.y = 1.0 -uv.y;
|
|
7380
|
-
var color: vec4<f32> = textureSample(baseMap, baseMapSampler, uv);
|
|
7562
|
+
var uv = fragUV ;
|
|
7563
|
+
uv.y = 1.0 - uv.y ;
|
|
7564
|
+
var color: vec4<f32> = textureSample(baseMap, baseMapSampler, uv );
|
|
7381
7565
|
|
|
7382
7566
|
return FragmentOutput(color);
|
|
7383
7567
|
}
|
|
7384
|
-
|
|
7385
|
-
|
|
7568
|
+
`
|
|
7569
|
+
);
|
|
7570
|
+
let Quad_depth2d_frag_wgsl = (
|
|
7571
|
+
/*wgsl*/
|
|
7572
|
+
`
|
|
7386
7573
|
struct FragmentOutput {
|
|
7387
7574
|
@location(auto) o_Target: vec4<f32>
|
|
7388
|
-
};
|
|
7575
|
+
};
|
|
7389
7576
|
|
|
7390
7577
|
var<private> fragUV1: vec2<f32>;
|
|
7391
7578
|
var<private> o_Target: vec4<f32>;
|
|
@@ -7393,21 +7580,25 @@ let Quad_depth2d_frag_wgsl = `
|
|
|
7393
7580
|
@group(1) @binding(0)
|
|
7394
7581
|
var baseMapSampler: sampler;
|
|
7395
7582
|
@group(1) @binding(1)
|
|
7396
|
-
var baseMap: texture_depth_2d;
|
|
7583
|
+
var baseMap: texture_depth_2d ;
|
|
7397
7584
|
|
|
7398
|
-
fn Linear01Depth(z:f32) -> f32
|
|
7585
|
+
fn Linear01Depth( z : f32 ) -> f32
|
|
7586
|
+
{
|
|
7399
7587
|
return 1.0 / (1.0 * z + 5000.0);
|
|
7400
7588
|
}
|
|
7401
7589
|
|
|
7402
7590
|
@fragment
|
|
7403
7591
|
fn main(@location(auto) fragUV: vec2<f32>) -> FragmentOutput {
|
|
7404
|
-
var uv = fragUV;
|
|
7405
|
-
uv.y = 1.0 - uv.y;
|
|
7406
|
-
var depth = textureSample(baseMap, baseMapSampler, uv, vec2<i32>(0));
|
|
7407
|
-
return FragmentOutput(vec4<f32>(depth,
|
|
7592
|
+
var uv = fragUV ;
|
|
7593
|
+
uv.y = 1.0 - uv.y ;
|
|
7594
|
+
var depth = textureSample(baseMap, baseMapSampler, uv , vec2<i32>(0) ) ;
|
|
7595
|
+
return FragmentOutput(vec4<f32>(depth,0.0,0.0,1.0));
|
|
7408
7596
|
}
|
|
7409
|
-
|
|
7410
|
-
|
|
7597
|
+
`
|
|
7598
|
+
);
|
|
7599
|
+
let Quad_depthCube_frag_wgsl = (
|
|
7600
|
+
/*wgsl*/
|
|
7601
|
+
`
|
|
7411
7602
|
struct FragmentOutput {
|
|
7412
7603
|
@location(auto) o_Target: vec4<f32>
|
|
7413
7604
|
};
|
|
@@ -7417,10 +7608,11 @@ let Quad_depthCube_frag_wgsl = `
|
|
|
7417
7608
|
|
|
7418
7609
|
@group(1) @binding(0)
|
|
7419
7610
|
var baseMapSampler: sampler;
|
|
7420
|
-
@group(1) @binding(
|
|
7421
|
-
var baseMap: texture_depth_cube;
|
|
7611
|
+
@group(1) @binding(1)
|
|
7612
|
+
var baseMap: texture_depth_cube ;
|
|
7422
7613
|
|
|
7423
|
-
fn uvToXYZ(face: i32,
|
|
7614
|
+
fn uvToXYZ( face : i32 , uv : vec2<f32> ) -> vec3<f32>
|
|
7615
|
+
{
|
|
7424
7616
|
var out : vec3<f32> ;
|
|
7425
7617
|
if(face == 0){
|
|
7426
7618
|
out = vec3<f32>( 1.0, uv.y, -uv.x);
|
|
@@ -7440,12 +7632,12 @@ let Quad_depthCube_frag_wgsl = `
|
|
|
7440
7632
|
|
|
7441
7633
|
@fragment
|
|
7442
7634
|
fn main(@location(auto) fragUV: vec2<f32>) -> FragmentOutput {
|
|
7443
|
-
var uv = fragUV;
|
|
7444
|
-
uv.y = 1.0 - uv.y;
|
|
7445
|
-
var ii = 0.16;
|
|
7635
|
+
var uv = fragUV ;
|
|
7636
|
+
uv.y = 1.0 - uv.y ;
|
|
7637
|
+
var ii = 0.16 ;
|
|
7446
7638
|
var ouv = vec3<f32>(0.0);
|
|
7447
7639
|
if(uv.x < ii * 6.0){
|
|
7448
|
-
ouv = uvToXYZ(5,
|
|
7640
|
+
ouv = uvToXYZ(5,uv/ii);
|
|
7449
7641
|
}
|
|
7450
7642
|
if(uv.x < ii * 5.0){
|
|
7451
7643
|
ouv = uvToXYZ(4,uv/ii);
|
|
@@ -7462,15 +7654,19 @@ let Quad_depthCube_frag_wgsl = `
|
|
|
7462
7654
|
if(uv.x < ii * 1.0){
|
|
7463
7655
|
ouv = uvToXYZ(0,uv/ii);
|
|
7464
7656
|
}
|
|
7465
|
-
var depth = textureSample(baseMap, baseMapSampler, ouv);
|
|
7466
|
-
depth = 1.0 - depth;
|
|
7467
|
-
|
|
7657
|
+
var depth = textureSample(baseMap, baseMapSampler, ouv ) ;
|
|
7658
|
+
depth = 1.0 - depth;
|
|
7659
|
+
|
|
7660
|
+
return FragmentOutput(vec4<f32>(depth,0.0,0.0,1.0));
|
|
7468
7661
|
}
|
|
7469
|
-
|
|
7470
|
-
|
|
7662
|
+
`
|
|
7663
|
+
);
|
|
7664
|
+
let Quad_depth2dArray_frag_wgsl = (
|
|
7665
|
+
/*wgsl*/
|
|
7666
|
+
`
|
|
7471
7667
|
struct FragmentOutput {
|
|
7472
7668
|
@location(auto) o_Target: vec4<f32>
|
|
7473
|
-
}
|
|
7669
|
+
};
|
|
7474
7670
|
|
|
7475
7671
|
var<private> fragUV1: vec2<f32>;
|
|
7476
7672
|
var<private> o_Target: vec4<f32>;
|
|
@@ -7478,7 +7674,7 @@ let Quad_depth2dArray_frag_wgsl = `
|
|
|
7478
7674
|
@group(1) @binding(0)
|
|
7479
7675
|
var baseMapSampler: sampler;
|
|
7480
7676
|
@group(1) @binding(1)
|
|
7481
|
-
var baseMap: texture_2d_array;
|
|
7677
|
+
var baseMap: texture_2d_array ;
|
|
7482
7678
|
|
|
7483
7679
|
struct MaterialData{
|
|
7484
7680
|
index:f32;
|
|
@@ -7486,15 +7682,16 @@ let Quad_depth2dArray_frag_wgsl = `
|
|
|
7486
7682
|
|
|
7487
7683
|
@fragment
|
|
7488
7684
|
fn main(@location(auto) fragUV: vec2<f32>) -> FragmentOutput {
|
|
7489
|
-
var uv = fragUV;
|
|
7490
|
-
uv.y = 1.0 - uv.y;
|
|
7491
|
-
|
|
7492
|
-
var depth = textureSample(baseMap, baseMapSampler, ouv);
|
|
7493
|
-
depth = 1.0 - depth;
|
|
7685
|
+
var uv = fragUV ;
|
|
7686
|
+
uv.y = 1.0 - uv.y ;
|
|
7687
|
+
|
|
7688
|
+
var depth = textureSample(baseMap, baseMapSampler, ouv ) ;
|
|
7689
|
+
depth = 1.0 - depth;
|
|
7494
7690
|
|
|
7495
|
-
return FragmentOutput(vec4<f32>(depth,
|
|
7691
|
+
return FragmentOutput(vec4<f32>(depth,0.0,0.0,1.0));
|
|
7496
7692
|
}
|
|
7497
|
-
|
|
7693
|
+
`
|
|
7694
|
+
);
|
|
7498
7695
|
|
|
7499
7696
|
let ColorUtil = `
|
|
7500
7697
|
fn getHDRColor(color: vec3<f32>, exposure: f32) -> vec3<f32> {
|
|
@@ -7641,25 +7838,31 @@ let ColorUtil = `
|
|
|
7641
7838
|
}
|
|
7642
7839
|
`;
|
|
7643
7840
|
|
|
7644
|
-
let GenerayRandomDir =
|
|
7645
|
-
|
|
7646
|
-
|
|
7841
|
+
let GenerayRandomDir = (
|
|
7842
|
+
/*wgsl*/
|
|
7843
|
+
`
|
|
7844
|
+
fn madfrac(A:f32, B:f32)-> f32 {
|
|
7845
|
+
return A*B-floor(A*B) ;
|
|
7647
7846
|
}
|
|
7648
7847
|
|
|
7649
|
-
fn sampleRandomDir(count:u32,
|
|
7650
|
-
|
|
7651
|
-
|
|
7848
|
+
fn sampleRandomDir(count:u32,SAMPLE_COUNT:u32) -> vec3<f32>{
|
|
7849
|
+
var ray_dir = sphericalFibonacci(f32((count)), f32(SAMPLE_COUNT) );
|
|
7850
|
+
return normalize(ray_dir) ;
|
|
7652
7851
|
}
|
|
7653
7852
|
|
|
7654
|
-
fn sphericalFibonacci(i:f32,
|
|
7655
|
-
|
|
7853
|
+
fn sphericalFibonacci( i : f32 , n : f32 ) -> vec3<f32>{
|
|
7854
|
+
const PHI = sqrt(5.0) * 0.5 + 0.5;
|
|
7656
7855
|
let phi = 2.0 * PI * madfrac(i, PHI - 1);
|
|
7657
7856
|
let cosTheta = 1.0 - (2.0 * i + 1.0) * (1.0 / n);
|
|
7658
7857
|
let sinTheta = sqrt(saturate(1.0 - cosTheta*cosTheta));
|
|
7659
7858
|
|
|
7660
|
-
return vec3<f32>(
|
|
7859
|
+
return vec3<f32>(
|
|
7860
|
+
cos(phi) * sinTheta,
|
|
7861
|
+
sin(phi) * sinTheta,
|
|
7862
|
+
cosTheta);
|
|
7661
7863
|
}
|
|
7662
|
-
|
|
7864
|
+
`
|
|
7865
|
+
);
|
|
7663
7866
|
|
|
7664
7867
|
let MatrixShader = `
|
|
7665
7868
|
#include "MathShader"
|
|
@@ -7914,7 +8117,7 @@ let Hair_frag = `
|
|
|
7914
8117
|
face = 1.0 ;
|
|
7915
8118
|
}else{
|
|
7916
8119
|
face = -1.0 ;
|
|
7917
|
-
}
|
|
8120
|
+
};
|
|
7918
8121
|
#if USE_TANGENT
|
|
7919
8122
|
let T = ORI_VertexVarying.TANGENT.xyz;
|
|
7920
8123
|
let N = ORI_VertexVarying.vWorldNormal ;
|
|
@@ -8781,15 +8984,18 @@ let ZPassShader_fs = `
|
|
|
8781
8984
|
}
|
|
8782
8985
|
`;
|
|
8783
8986
|
|
|
8784
|
-
let BitUtil =
|
|
8987
|
+
let BitUtil = (
|
|
8988
|
+
/* wgsl */
|
|
8989
|
+
`
|
|
8990
|
+
|
|
8785
8991
|
const inv256:f32 = 1.0/256.0;
|
|
8786
8992
|
const inv1024:f32 = 1.0/1024.0;
|
|
8787
8993
|
|
|
8788
|
-
const bit7_inv128:f32 = 1.0/128.0;
|
|
8994
|
+
const bit7_inv128:f32 = 1.0 / 128.0;
|
|
8789
8995
|
const bit7_128:f32 = 128.0;
|
|
8790
|
-
|
|
8996
|
+
|
|
8791
8997
|
const r10g10b10 = vec2i(0x3FFFFF,0xFF);
|
|
8792
|
-
fn floatToVec3f(v:f32) -> vec3f {
|
|
8998
|
+
fn floatToVec3f( v:f32 ) -> vec3f {
|
|
8793
8999
|
var VPInt:i32 = bitcast<i32>(v);
|
|
8794
9000
|
var VPInt1024:i32 = VPInt%1024;
|
|
8795
9001
|
var VPInt10241024:i32 = ((VPInt-VPInt1024)/1024)%1024;
|
|
@@ -8816,6 +9022,11 @@ let BitUtil = `
|
|
|
8816
9022
|
return vec4f(f32(VPInt128),f32(VPInt128128),f32(VPInt128128128),f32(VPInt128128128128))*vec4f(bit7_inv128);
|
|
8817
9023
|
}
|
|
8818
9024
|
|
|
9025
|
+
|
|
9026
|
+
|
|
9027
|
+
|
|
9028
|
+
|
|
9029
|
+
|
|
8819
9030
|
const i_r11g11b11 = vec3i(0x7FF,0x7FF,0x7FF);
|
|
8820
9031
|
const f_r11g11b11 = vec3f(f32(0x7FF),f32(0x7FF),f32(0x7FF));
|
|
8821
9032
|
fn r11g11b11_to_float( v:vec3f) -> f32{
|
|
@@ -8864,6 +9075,9 @@ let BitUtil = `
|
|
|
8864
9075
|
return vec3f(r,g,b);
|
|
8865
9076
|
}
|
|
8866
9077
|
|
|
9078
|
+
|
|
9079
|
+
|
|
9080
|
+
|
|
8867
9081
|
fn floatToRGBA(v:f32) -> vec4f{
|
|
8868
9082
|
var iv = bitcast<u32>(v);
|
|
8869
9083
|
var color = vec4f(0.0);
|
|
@@ -8878,7 +9092,9 @@ let BitUtil = `
|
|
|
8878
9092
|
var f = dot(v, bitShift);
|
|
8879
9093
|
return f;
|
|
8880
9094
|
}
|
|
8881
|
-
|
|
9095
|
+
|
|
9096
|
+
`
|
|
9097
|
+
);
|
|
8882
9098
|
|
|
8883
9099
|
let GBufferStand = `
|
|
8884
9100
|
#include "MathShader"
|
|
@@ -28033,131 +28249,147 @@ class CubeCamera extends Object3D {
|
|
|
28033
28249
|
}
|
|
28034
28250
|
}
|
|
28035
28251
|
|
|
28036
|
-
let PreFilteredEnvironment_cs =
|
|
28252
|
+
let PreFilteredEnvironment_cs = (
|
|
28253
|
+
/*wgsl*/
|
|
28254
|
+
`
|
|
28037
28255
|
#include "GenerayRandomDir"
|
|
28038
28256
|
#include "BitUtil"
|
|
28039
28257
|
#include "MathShader"
|
|
28040
28258
|
#include "ColorUtil_frag"
|
|
28041
|
-
|
|
28042
|
-
struct UniformData
|
|
28043
|
-
probeSize: f32,
|
|
28044
|
-
probeCount: f32,
|
|
28045
|
-
width: f32,
|
|
28046
|
-
height: f32,
|
|
28259
|
+
|
|
28260
|
+
struct UniformData{
|
|
28261
|
+
probeSize : f32 ,
|
|
28262
|
+
probeCount : f32 ,
|
|
28263
|
+
width : f32 ,
|
|
28264
|
+
height : f32 ,
|
|
28047
28265
|
}
|
|
28048
28266
|
|
|
28049
|
-
@group(0) @binding(0) var inputTex: texture_2d<f32>;
|
|
28050
|
-
@group(0) @binding(1) var outputTexture: texture_storage_2d<rgba16float,write
|
|
28051
|
-
@group(1) @binding(0) var<uniform> uniformData:
|
|
28267
|
+
@group(0) @binding(0) var inputTex : texture_2d<f32>;
|
|
28268
|
+
@group(0) @binding(1) var outputTexture : texture_storage_2d<rgba16float, write>;//rgba32float rgba16float
|
|
28269
|
+
@group(1) @binding(0) var<uniform> uniformData:UniformData;//rgba32float
|
|
28052
28270
|
|
|
28053
|
-
var<private> reflectionSize: vec2f;
|
|
28054
|
-
var<private> PROBE_SOURCESIZE: vec2f;
|
|
28055
|
-
var<private> PROBEMAP_SOURCESIZE: vec2f;
|
|
28056
|
-
var<private> aspect: vec2f;
|
|
28057
|
-
var<private> spaceV: f32;
|
|
28271
|
+
var<private> reflectionSize : vec2f ;
|
|
28272
|
+
var<private> PROBE_SOURCESIZE : vec2f ;
|
|
28273
|
+
var<private> PROBEMAP_SOURCESIZE : vec2f ;
|
|
28274
|
+
var<private> aspect : vec2f ;
|
|
28275
|
+
var<private> spaceV : f32 ;
|
|
28058
28276
|
|
|
28059
28277
|
var<private> i32InputFragCoord : vec2i;
|
|
28060
28278
|
var<private> PI_2 : f32 = 3.1415926 * 2.0 ;
|
|
28061
28279
|
var<private> PI : f32 = 3.1415926 ;
|
|
28062
28280
|
|
|
28063
|
-
var<private> probeSize: f32 = 256.0;
|
|
28064
|
-
var<private> probeCount: f32 = 8.0;
|
|
28065
|
-
var<private> faceCount: f32 = 6.0;
|
|
28066
|
-
var<private> mipCount: f32 = 8.0;
|
|
28281
|
+
var<private> probeSize : f32 = 256.0 ;
|
|
28282
|
+
var<private> probeCount : f32 = 8.0 ;
|
|
28283
|
+
var<private> faceCount : f32 = 6.0 ;
|
|
28284
|
+
var<private> mipCount : f32 = 8.0 ;
|
|
28067
28285
|
|
|
28068
28286
|
const NUM_SAMPLES = 256u;
|
|
28069
|
-
var<private> inputSize: vec2f;
|
|
28070
|
-
var<private> outSize: vec2f;
|
|
28287
|
+
var<private> inputSize : vec2f ;
|
|
28288
|
+
var<private> outSize : vec2f ;
|
|
28071
28289
|
|
|
28072
28290
|
fn useSphereReflection(){
|
|
28073
|
-
probeSize = uniformData.probeSize;
|
|
28291
|
+
probeSize = uniformData.probeSize ;
|
|
28074
28292
|
probeCount = uniformData.probeCount;
|
|
28075
28293
|
reflectionSize = vec2f(textureDimensions(inputTex).xy);
|
|
28076
28294
|
PROBE_SOURCESIZE = reflectionSize / vec2f(faceCount,probeCount);
|
|
28077
|
-
PROBEMAP_SOURCESIZE = reflectionSize;
|
|
28295
|
+
PROBEMAP_SOURCESIZE = reflectionSize ;
|
|
28078
28296
|
aspect = PROBE_SOURCESIZE / PROBEMAP_SOURCESIZE;
|
|
28079
|
-
spaceV = 1.0 / probeCount;
|
|
28297
|
+
spaceV = 1.0 / probeCount ;
|
|
28080
28298
|
}
|
|
28081
28299
|
|
|
28082
|
-
@compute @workgroup_size(16, 16, 1)
|
|
28083
|
-
fn CsMain(@builtin(workgroup_id) workgroup_id: vec3<u32
|
|
28084
|
-
|
|
28300
|
+
@compute @workgroup_size( 16 , 16 , 1 )
|
|
28301
|
+
fn CsMain( @builtin(workgroup_id) workgroup_id : vec3<u32> , @builtin(global_invocation_id) globalInvocation_id : vec3<u32>)
|
|
28302
|
+
{
|
|
28303
|
+
var color : vec4f ;
|
|
28085
28304
|
useSphereReflection();
|
|
28086
28305
|
inputSize = vec2f(textureDimensions(inputTex).xy);
|
|
28087
28306
|
outSize = vec2f(textureDimensions(outputTexture).xy);
|
|
28088
|
-
|
|
28089
|
-
|
|
28090
|
-
|
|
28091
|
-
|
|
28307
|
+
|
|
28308
|
+
i32InputFragCoord = vec2<i32>( globalInvocation_id.xy ) ;
|
|
28309
|
+
|
|
28310
|
+
let i = f32(globalInvocation_id.z) ;
|
|
28311
|
+
let count = floor(i / mipCount) ;
|
|
28312
|
+
preOneMip(count,floor(i % mipCount));
|
|
28092
28313
|
}
|
|
28093
28314
|
|
|
28094
|
-
fn preOneMip(gid:
|
|
28095
|
-
let isuv = vec2f(i32InputFragCoord);
|
|
28315
|
+
fn preOneMip( gid:f32,mip:f32 ){
|
|
28316
|
+
let isuv = vec2f(i32InputFragCoord) ;
|
|
28096
28317
|
let suv = isuv * (inputSize/outSize);
|
|
28097
28318
|
let probeID = i32(floor(suv.y / probeSize));
|
|
28098
28319
|
let mipID = i32((isuv.x / probeSize));
|
|
28099
28320
|
if(probeID == i32(gid) && mipID == i32(mip)){
|
|
28100
|
-
|
|
28101
|
-
|
|
28102
|
-
var
|
|
28103
|
-
|
|
28321
|
+
|
|
28322
|
+
let sphereUV = vec2f((isuv.x+0.5) % (probeSize),(isuv.y+0.5) % probeSize) / vec2f( (probeSize), probeSize ) ;
|
|
28323
|
+
var dir: vec3<f32> = octDecode(sphereUV * 2.0 - 1.0) ;
|
|
28324
|
+
var preColor = PreFilterEnvMap(mip/mipCount + 0.05,dir,gid);
|
|
28325
|
+
textureStore(outputTexture,vec2i(i32InputFragCoord),preColor);
|
|
28104
28326
|
}
|
|
28105
28327
|
}
|
|
28106
28328
|
|
|
28107
|
-
fn PreFilterEnvMap(roughness2:f32, R:vec3f , gid:f32) -> vec4f
|
|
28108
|
-
|
|
28109
|
-
var
|
|
28329
|
+
fn PreFilterEnvMap( roughness2:f32, R:vec3f , gid:f32 ) -> vec4f
|
|
28330
|
+
{
|
|
28331
|
+
var resColor = vec3f(0.0f);
|
|
28332
|
+
var resDepth = 0.0;
|
|
28333
|
+
|
|
28110
28334
|
var totalColorWeight = 0.0f;
|
|
28111
28335
|
var totalDepthWeight = 0.0f;
|
|
28336
|
+
|
|
28112
28337
|
var normal = normalize(R);
|
|
28113
28338
|
var toEye = normal;
|
|
28339
|
+
|
|
28114
28340
|
var roughness = roughness2;
|
|
28115
|
-
|
|
28341
|
+
|
|
28116
28342
|
for(var i=1u;i<=NUM_SAMPLES;i+=1u)
|
|
28117
28343
|
{
|
|
28118
|
-
var xi:vec2f = hammersley(i, NUM_SAMPLES);
|
|
28344
|
+
var xi:vec2f = hammersley(i, NUM_SAMPLES) ;
|
|
28345
|
+
|
|
28119
28346
|
var halfway = ImportanceSampleGGX(xi,roughness,normal);
|
|
28120
|
-
var lightVec = 2.0f * dot(toEye,halfway) * halfway - toEye;
|
|
28121
|
-
|
|
28122
|
-
var
|
|
28123
|
-
var
|
|
28347
|
+
var lightVec = 2.0f * dot( toEye,halfway ) * halfway - toEye;
|
|
28348
|
+
|
|
28349
|
+
var NdotL = dot( normal, lightVec ) ;
|
|
28350
|
+
var NdotH = max(0.0,dot( normal, halfway )) ;
|
|
28351
|
+
var HdotV = max(0.0,dot( halfway, toEye )) ;
|
|
28352
|
+
|
|
28124
28353
|
if( NdotL > 0.0 )
|
|
28125
28354
|
{
|
|
28126
28355
|
var D = specularD(roughness,NdotH);
|
|
28127
|
-
var pdf = (D * NdotH / (4.0 * HdotV)) + 0.0001f;
|
|
28356
|
+
var pdf = (D * NdotH / (4.0 * HdotV)) + 0.0001f ;
|
|
28357
|
+
|
|
28128
28358
|
var saSample = 1.0f / (f32(NUM_SAMPLES) * pdf + 0.00001f);
|
|
28129
28359
|
lightVec = normalize(lightVec);
|
|
28360
|
+
|
|
28130
28361
|
var buffer = getReflectionsMap(lightVec,gid);
|
|
28131
28362
|
var rgb = unpack4x8unorm(u32(buffer.z)).rgb;
|
|
28132
28363
|
var m = unpack4x8unorm(u32(buffer.w)).z;
|
|
28133
28364
|
var rgbmColor = DecodeRGBM(vec4f(rgb,m));
|
|
28134
|
-
resDepth += buffer.x;
|
|
28365
|
+
resDepth += buffer.x ;
|
|
28135
28366
|
resColor += rgbmColor * NdotL;
|
|
28367
|
+
|
|
28136
28368
|
totalColorWeight += NdotL;
|
|
28137
28369
|
totalDepthWeight += 1.0;
|
|
28138
28370
|
}
|
|
28139
28371
|
}
|
|
28140
|
-
|
|
28372
|
+
|
|
28141
28373
|
resDepth = resDepth / max(totalDepthWeight,0.001f);
|
|
28142
28374
|
resColor = resColor / max(totalColorWeight,0.001f);
|
|
28143
|
-
|
|
28375
|
+
|
|
28144
28376
|
let rgbm = EncodeRGBM(resColor) ;
|
|
28145
28377
|
let gBuffer = vec4f(
|
|
28146
28378
|
resDepth,
|
|
28147
28379
|
0.0,
|
|
28148
28380
|
f32(pack4x8unorm(vec4f(rgbm.rgb,0.0))),
|
|
28149
28381
|
f32(pack4x8unorm(vec4f(0.0,0.0,rgbm.w,0.0))),
|
|
28150
|
-
);
|
|
28151
|
-
return vec4f(resColor,
|
|
28152
|
-
}
|
|
28382
|
+
) ;
|
|
28383
|
+
return vec4f(resColor,1.0) ;
|
|
28384
|
+
}
|
|
28153
28385
|
|
|
28154
|
-
fn getReflectionsMap(n:
|
|
28386
|
+
fn getReflectionsMap(n:vec3<f32>,gid:f32) -> vec4f {
|
|
28155
28387
|
var uv = getSampleProbeUV(n,gid);
|
|
28156
|
-
let color = textureLoad(inputTex, vec2i(uv*inputSize), 0);
|
|
28157
|
-
return color;
|
|
28388
|
+
let color = textureLoad(inputTex, vec2i(uv*inputSize) , 0);
|
|
28389
|
+
return color ;
|
|
28158
28390
|
}
|
|
28159
28391
|
|
|
28160
|
-
fn getSampleProbeUV(dir:
|
|
28392
|
+
fn getSampleProbeUV(dir:vec3<f32>,gid:f32) -> vec2<f32> {
|
|
28161
28393
|
let faceId = dir_to_faceId(dir);
|
|
28162
28394
|
var targetUV:vec2<f32> = convert_xyz_to_cube_uv(dir.x, dir.y, dir.z);
|
|
28163
28395
|
targetUV.x = 1.0 - targetUV.x;
|
|
@@ -28167,17 +28399,18 @@ let PreFilteredEnvironment_cs = `
|
|
|
28167
28399
|
let aspect:vec2f = PROBE_SOURCESIZE / PROBEMAP_SOURCESIZE;
|
|
28168
28400
|
targetUV = targetUV * aspect ;
|
|
28169
28401
|
targetUV.y = targetUV.y + (spaceV * gid);
|
|
28170
|
-
return targetUV;
|
|
28171
|
-
|
|
28402
|
+
return targetUV ;
|
|
28403
|
+
}
|
|
28172
28404
|
|
|
28173
|
-
fn radicalInverse_VdC(bits2:u32) -> f32
|
|
28405
|
+
fn radicalInverse_VdC( bits2:u32) -> f32
|
|
28406
|
+
{
|
|
28174
28407
|
var bits = bits2;
|
|
28175
28408
|
bits = (bits << 16u) | (bits >> 16u);
|
|
28176
28409
|
bits = ((bits & 0x55555555u) << 1u) | ((bits & 0xAAAAAAAAu) >> 1u);
|
|
28177
28410
|
bits = ((bits & 0x33333333u) << 2u) | ((bits & 0xCCCCCCCCu) >> 2u);
|
|
28178
28411
|
bits = ((bits & 0x0F0F0F0Fu) << 4u) | ((bits & 0xF0F0F0F0u) >> 4u);
|
|
28179
28412
|
bits = ((bits & 0x00FF00FFu) << 8u) | ((bits & 0xFF00FF00u) >> 8u);
|
|
28180
|
-
return f32(bits) * 2.3283064365386963e-10f;
|
|
28413
|
+
return f32(bits) * 2.3283064365386963e-10f; // / 0x100000000
|
|
28181
28414
|
}
|
|
28182
28415
|
|
|
28183
28416
|
fn hammersley( i:u32, N:u32) -> vec2f
|
|
@@ -28188,21 +28421,25 @@ let PreFilteredEnvironment_cs = `
|
|
|
28188
28421
|
fn ImportanceSampleGGX( xi:vec2f, roughness:f32, N:vec3f) -> vec3f
|
|
28189
28422
|
{
|
|
28190
28423
|
var alpha2 = roughness * roughness * roughness * roughness;
|
|
28424
|
+
|
|
28191
28425
|
var phi = 2.0f * 3.1415926 * xi.x ;
|
|
28192
28426
|
var cosTheta = sqrt( (1.0f - xi.y) / (1.0f + (alpha2 - 1.0f) * xi.y ));
|
|
28193
28427
|
var sinTheta = sqrt( 1.0f - cosTheta*cosTheta );
|
|
28194
|
-
|
|
28428
|
+
|
|
28429
|
+
var h : vec3f ;
|
|
28195
28430
|
h.x = sinTheta * cos( phi );
|
|
28196
28431
|
h.y = sinTheta * sin( phi );
|
|
28197
28432
|
h.z = cosTheta;
|
|
28433
|
+
|
|
28198
28434
|
var up = vec3f(1,0,0) ;
|
|
28199
28435
|
if(abs(N.z) < 0.9999){
|
|
28200
28436
|
up = vec3f(0,0,1) ;
|
|
28201
28437
|
}
|
|
28438
|
+
|
|
28202
28439
|
var tangentX = normalize( cross( up, N ) );
|
|
28203
28440
|
var tangentY = cross( N, tangentX );
|
|
28204
28441
|
return (tangentX * h.x + tangentY * h.y + N * h.z);
|
|
28205
|
-
}
|
|
28442
|
+
}
|
|
28206
28443
|
|
|
28207
28444
|
fn specularD( roughness:f32, NoH:f32) -> f32
|
|
28208
28445
|
{
|
|
@@ -28210,7 +28447,9 @@ let PreFilteredEnvironment_cs = `
|
|
|
28210
28447
|
var r2 = roughness * roughness;
|
|
28211
28448
|
return r2 / pow(NoH2 * (r2 - 1.0) + 1.0, 2.0);
|
|
28212
28449
|
}
|
|
28213
|
-
|
|
28450
|
+
|
|
28451
|
+
`
|
|
28452
|
+
);
|
|
28214
28453
|
|
|
28215
28454
|
class ReflectionRenderer extends RendererBase {
|
|
28216
28455
|
cubeCamera;
|
|
@@ -28469,8 +28708,10 @@ class ReflectionRenderer extends RendererBase {
|
|
|
28469
28708
|
}
|
|
28470
28709
|
}
|
|
28471
28710
|
|
|
28472
|
-
let FXAAShader =
|
|
28473
|
-
|
|
28711
|
+
let FXAAShader = (
|
|
28712
|
+
/*wgsl*/
|
|
28713
|
+
`
|
|
28714
|
+
#include 'BitUtil'
|
|
28474
28715
|
struct FragmentOutput {
|
|
28475
28716
|
@location(auto) o_Target: vec4<f32>
|
|
28476
28717
|
};
|
|
@@ -28489,6 +28730,7 @@ let FXAAShader = `
|
|
|
28489
28730
|
@group(2) @binding(0)
|
|
28490
28731
|
var<uniform> materialUniform: MaterialUniform;
|
|
28491
28732
|
|
|
28733
|
+
|
|
28492
28734
|
fn LinearToGammaSpace(linRGB0: vec3<f32>) -> vec3<f32> {
|
|
28493
28735
|
var linRGB = max(linRGB0, vec3(0.0, 0.0, 0.0));
|
|
28494
28736
|
linRGB.r = pow(linRGB.r,0.416666667);
|
|
@@ -28497,30 +28739,35 @@ let FXAAShader = `
|
|
|
28497
28739
|
return max(1.055 * linRGB - 0.055, vec3(0.0, 0.0, 0.0));
|
|
28498
28740
|
}
|
|
28499
28741
|
|
|
28500
|
-
fn texture2D(uv:vec2<f32
|
|
28501
|
-
let buffer = textureSample(baseMap, baseMapSampler, uv.xy + offset).rgba;
|
|
28502
|
-
return buffer;
|
|
28742
|
+
fn texture2D( uv:vec2<f32> , offset:vec2<f32> ) -> vec4<f32> {
|
|
28743
|
+
let buffer = textureSample(baseMap, baseMapSampler, uv.xy + offset ).rgba ;
|
|
28744
|
+
return buffer ;
|
|
28503
28745
|
}
|
|
28504
28746
|
|
|
28505
28747
|
@fragment
|
|
28506
28748
|
fn main(@location(auto) fragUV: vec2<f32>) -> FragmentOutput {
|
|
28507
|
-
var v_vTexcoord = fragUV;
|
|
28749
|
+
var v_vTexcoord = fragUV ;
|
|
28508
28750
|
v_vTexcoord.y = 1.0 - v_vTexcoord.y ;
|
|
28751
|
+
|
|
28509
28752
|
var reducemul = 1.0 / 8.0;
|
|
28510
28753
|
var reducemin = 1.0 / 128.0;
|
|
28754
|
+
|
|
28511
28755
|
var basecol = texture2D(v_vTexcoord , vec2<f32>(0.0)).rgba;
|
|
28512
28756
|
var baseNW = texture2D(v_vTexcoord , -materialUniform.u_texel).rgb;
|
|
28513
28757
|
var baseNE = texture2D(v_vTexcoord , vec2<f32>(materialUniform.u_texel.x, -materialUniform.u_texel.y)).rgb;
|
|
28514
28758
|
var baseSW = texture2D(v_vTexcoord , vec2<f32>(-materialUniform.u_texel.x, materialUniform.u_texel.y)).rgb;
|
|
28515
28759
|
var baseSE = texture2D(v_vTexcoord , materialUniform.u_texel ).rgb;
|
|
28760
|
+
|
|
28516
28761
|
var gray = vec3<f32>(0.213, 0.715, 0.072);
|
|
28517
28762
|
var monocol = dot(basecol.rgb, gray);
|
|
28518
28763
|
var monoNW = dot(baseNW, gray);
|
|
28519
28764
|
var monoNE = dot(baseNE, gray);
|
|
28520
28765
|
var monoSW = dot(baseSW, gray);
|
|
28521
28766
|
var monoSE = dot(baseSE, gray);
|
|
28767
|
+
|
|
28522
28768
|
var monomin = min(monocol, min(min(monoNW, monoNE), min(monoSW, monoSE)));
|
|
28523
28769
|
var monomax = max(monocol, max(max(monoNW, monoNE), max(monoSW, monoSE)));
|
|
28770
|
+
|
|
28524
28771
|
var dir = vec2<f32>(-((monoNW + monoNE) - (monoSW + monoSE)), ((monoNW + monoSW) - (monoNE + monoSE)));
|
|
28525
28772
|
var dirreduce = max((monoNW + monoNE + monoSW + monoSE) * reducemul * 0.25, reducemin);
|
|
28526
28773
|
var dirmin = 1.0 / (min(abs(dir.x), abs(dir.y)) + dirreduce);
|
|
@@ -28528,9 +28775,11 @@ let FXAAShader = `
|
|
|
28528
28775
|
|
|
28529
28776
|
var resultA = 0.5 * (texture2D(v_vTexcoord , dir * -0.166667).rgb +
|
|
28530
28777
|
texture2D(v_vTexcoord , dir * 0.166667).rgb);
|
|
28778
|
+
|
|
28531
28779
|
var resultB = resultA * 0.5 + 0.25 * (texture2D( v_vTexcoord , dir * -0.5).rgb +
|
|
28532
28780
|
texture2D( v_vTexcoord , dir * 0.5).rgb);
|
|
28533
28781
|
var monoB = dot(resultB.rgb, gray);
|
|
28782
|
+
|
|
28534
28783
|
var color:vec3<f32> ;
|
|
28535
28784
|
if(monoB < monomin || monoB > monomax) {
|
|
28536
28785
|
color = resultA ;//* v_vColour;
|
|
@@ -28539,7 +28788,8 @@ let FXAAShader = `
|
|
|
28539
28788
|
}
|
|
28540
28789
|
return FragmentOutput(vec4<f32>(color.rgb,basecol.a));
|
|
28541
28790
|
}
|
|
28542
|
-
|
|
28791
|
+
`
|
|
28792
|
+
);
|
|
28543
28793
|
|
|
28544
28794
|
class FXAAPost extends PostBase {
|
|
28545
28795
|
postQuad;
|
|
@@ -28958,12 +29208,12 @@ let DDGIIrradiance_shader = `
|
|
|
28958
29208
|
cornerCoord.x = sideBorderCnt - 1;
|
|
28959
29209
|
}else{
|
|
28960
29210
|
cornerCoord.x = 0;
|
|
28961
|
-
}
|
|
29211
|
+
};
|
|
28962
29212
|
if(modeXY.y == 0){
|
|
28963
29213
|
cornerCoord.y = sideBorderCnt - 1;
|
|
28964
29214
|
}else{
|
|
28965
29215
|
cornerCoord.y = 0;
|
|
28966
|
-
}
|
|
29216
|
+
};
|
|
28967
29217
|
cornerCoord = indexXY * sideBorderCnt + cornerCoord;
|
|
28968
29218
|
textureStore(texture, cornerCoord, color);
|
|
28969
29219
|
}
|
|
@@ -29485,7 +29735,7 @@ fn directShadowMaping(P:vec3<f32>, N:vec3<f32>, shadowBias: f32) {
|
|
|
29485
29735
|
}else{
|
|
29486
29736
|
shadowMatrix = globalUniform.shadowMatrix[shadowIndex];
|
|
29487
29737
|
visibility = directShadowMapingIndex(light, shadowMatrix, P, N, shadowIndex, shadowBias).x;
|
|
29488
|
-
}
|
|
29738
|
+
};
|
|
29489
29739
|
}
|
|
29490
29740
|
shadowStrut.directShadowVisibility = visibility;
|
|
29491
29741
|
}
|
|
@@ -29594,7 +29844,7 @@ fn spotLight( albedo:vec3<f32>,WP:vec3<f32>, N:vec3<f32>, V:vec3<f32>, light:Lig
|
|
|
29594
29844
|
}
|
|
29595
29845
|
}else{
|
|
29596
29846
|
atten = 0.0 ;
|
|
29597
|
-
}
|
|
29847
|
+
};
|
|
29598
29848
|
var lightColor = light.lightColor.rgb ;
|
|
29599
29849
|
lightColor = getHDRColor(lightColor , light.linear ) * light.intensity / LUMEN * 2.0;
|
|
29600
29850
|
color = (albedo / PI) * lightColor.rgb * atten ;
|
|
@@ -37305,16 +37555,16 @@ let BRDFLUT = `
|
|
|
37305
37555
|
return 4.0 * vec2<f32>(A, B) / f32(numSamples);
|
|
37306
37556
|
}
|
|
37307
37557
|
|
|
37308
|
-
@group(0) @binding(0) var
|
|
37558
|
+
@group(0) @binding(0) var brdflutTexture: texture_storage_2d<rgba8unorm, write>;
|
|
37309
37559
|
@compute @workgroup_size(8,8,1)
|
|
37310
|
-
fn CsMain(@builtin(global_invocation_id)
|
|
37311
|
-
|
|
37312
|
-
|
|
37313
|
-
|
|
37314
|
-
|
|
37315
|
-
|
|
37316
|
-
|
|
37317
|
-
|
|
37560
|
+
fn CsMain(@builtin(global_invocation_id) global_invocation_id : vec3<u32>){
|
|
37561
|
+
var fragCoord = vec2<u32>(global_invocation_id.x, global_invocation_id.y);
|
|
37562
|
+
var fragColor = vec4<f32>(0.0);
|
|
37563
|
+
// Output to screen
|
|
37564
|
+
var res = integrateBRDF(f32(fragCoord.y + 1u) / 256.0, f32(fragCoord.x + 1u) / 256.0);
|
|
37565
|
+
fragColor = vec4<f32>(res.x, res.y, 0.0, 1.0);
|
|
37566
|
+
textureStore(brdflutTexture, vec2<i32>(fragCoord.xy), fragColor);
|
|
37567
|
+
}
|
|
37318
37568
|
`;
|
|
37319
37569
|
|
|
37320
37570
|
class BRDFLUTGenerate {
|
|
@@ -38159,7 +38409,7 @@ class PostProcessingComponent extends ComponentBase {
|
|
|
38159
38409
|
}
|
|
38160
38410
|
}
|
|
38161
38411
|
|
|
38162
|
-
const version = "1.0.
|
|
38412
|
+
const version = "1.0.1";
|
|
38163
38413
|
|
|
38164
38414
|
class Engine3D {
|
|
38165
38415
|
/**
|
|
@@ -39158,7 +39408,7 @@ let GodRay_cs = (
|
|
|
39158
39408
|
}else{
|
|
39159
39409
|
shadowMatrix = globalUniform.shadowMatrix[shadowIndex];
|
|
39160
39410
|
visibility = directShadowMapingIndex(light, shadowMatrix, P, N, shadowIndex, shadowBias).x;
|
|
39161
|
-
}
|
|
39411
|
+
};
|
|
39162
39412
|
}
|
|
39163
39413
|
shadowStruct.directShadowVisibility = visibility;
|
|
39164
39414
|
}
|
|
@@ -39363,7 +39613,7 @@ let OutLineBlendColor_cs = (
|
|
|
39363
39613
|
blendColor = inColor.xyz + outLineColor.xyz * outLineColor.w;
|
|
39364
39614
|
}else{
|
|
39365
39615
|
blendColor = mix(inColor.xyz, outLineColor.xyz, outLineColor.w);
|
|
39366
|
-
}
|
|
39616
|
+
};
|
|
39367
39617
|
textureStore(outlineTex, fragCoord, vec4<f32>(blendColor, inColor.w));
|
|
39368
39618
|
}
|
|
39369
39619
|
`
|
|
@@ -40091,7 +40341,7 @@ let SSGI2_cs = (
|
|
|
40091
40341
|
|
|
40092
40342
|
}else{
|
|
40093
40343
|
Output = vec4f(wColor.xyz, 1.0);
|
|
40094
|
-
}
|
|
40344
|
+
};
|
|
40095
40345
|
|
|
40096
40346
|
return Output;
|
|
40097
40347
|
}
|
|
@@ -40360,12 +40610,12 @@ struct SSRUniformData {
|
|
|
40360
40610
|
}
|
|
40361
40611
|
}else{
|
|
40362
40612
|
rayTraceRet.alpha = 0.0;
|
|
40363
|
-
}
|
|
40613
|
+
};
|
|
40364
40614
|
rayTraceRet.skyColor = getSkyColor();
|
|
40365
40615
|
}else{
|
|
40366
40616
|
rayTraceRet.alpha = -1.0;
|
|
40367
40617
|
rayTraceRet.skyColor = vec3<f32>(0.0);
|
|
40368
|
-
}
|
|
40618
|
+
};
|
|
40369
40619
|
|
|
40370
40620
|
rayTraceRet.roughness = roughness;
|
|
40371
40621
|
rayTraceRet.fresnel = fresnel;
|
|
@@ -40517,7 +40767,7 @@ struct SSRUniformData {
|
|
|
40517
40767
|
hitData.hitCoord = uv;
|
|
40518
40768
|
return 1;
|
|
40519
40769
|
}
|
|
40520
|
-
}
|
|
40770
|
+
};
|
|
40521
40771
|
}
|
|
40522
40772
|
return 0;
|
|
40523
40773
|
}
|
|
@@ -40669,7 +40919,7 @@ fn blendColor() -> vec4<f32>{
|
|
|
40669
40919
|
preCoord = vec2<i32>(reProjectionCoord);
|
|
40670
40920
|
}else{
|
|
40671
40921
|
mixWeight = 1.0;
|
|
40672
|
-
}
|
|
40922
|
+
};
|
|
40673
40923
|
}
|
|
40674
40924
|
|
|
40675
40925
|
var curUV01 = fragUV;
|
|
@@ -40742,7 +40992,7 @@ fn minmax4(coord:vec2<i32>) {
|
|
|
40742
40992
|
return vec4<f32>(p_clip, color_avg.w) + v_clip / ma_unit;
|
|
40743
40993
|
}else{
|
|
40744
40994
|
return input_texel;
|
|
40745
|
-
}
|
|
40995
|
+
};
|
|
40746
40996
|
}
|
|
40747
40997
|
`
|
|
40748
40998
|
);
|
|
@@ -41231,7 +41481,7 @@ fn containsBox( size:vec3<f32> , center:vec3<f32> ) -> f32 {
|
|
|
41231
41481
|
return 2.0 ;
|
|
41232
41482
|
}else{
|
|
41233
41483
|
return 1.0 ;
|
|
41234
|
-
}
|
|
41484
|
+
};
|
|
41235
41485
|
}
|
|
41236
41486
|
|
|
41237
41487
|
@compute @workgroup_size(128)
|
|
@@ -41986,11 +42236,13 @@ let PBRLitSSSShader = (
|
|
|
41986
42236
|
);
|
|
41987
42237
|
|
|
41988
42238
|
let UnLitTextureArray = (
|
|
41989
|
-
/*wgsl
|
|
42239
|
+
/*wgsl*/
|
|
41990
42240
|
`
|
|
42241
|
+
// #include "Common_vert"
|
|
41991
42242
|
#include "Common_frag"
|
|
41992
42243
|
#include "UnLit_frag"
|
|
41993
42244
|
#include "UnLitMaterialUniform_frag"
|
|
42245
|
+
|
|
41994
42246
|
#include "WorldMatrixUniform"
|
|
41995
42247
|
#include "VertexAttributeIndexShader"
|
|
41996
42248
|
#include "GlobalUniform"
|
|
@@ -41998,8 +42250,8 @@ let UnLitTextureArray = (
|
|
|
41998
42250
|
#include "EnvMap_frag"
|
|
41999
42251
|
#include "ColorUtil_frag"
|
|
42000
42252
|
|
|
42001
|
-
const DEGREES_TO_RADIANS: f32 = 3.1415926 / 180.0;
|
|
42002
|
-
const PI: f32 = 3.1415926;
|
|
42253
|
+
const DEGREES_TO_RADIANS : f32 = 3.1415926 / 180.0 ;
|
|
42254
|
+
const PI : f32 = 3.1415926 ;
|
|
42003
42255
|
|
|
42004
42256
|
#if USE_CUSTOMUNIFORM
|
|
42005
42257
|
struct MaterialUniform {
|
|
@@ -42010,15 +42262,19 @@ let UnLitTextureArray = (
|
|
|
42010
42262
|
};
|
|
42011
42263
|
#endif
|
|
42012
42264
|
|
|
42013
|
-
@group(1) @binding(0)
|
|
42014
|
-
|
|
42015
|
-
@group(
|
|
42265
|
+
@group(1) @binding(0)
|
|
42266
|
+
var baseMapSampler: sampler;
|
|
42267
|
+
@group(1) @binding(1)
|
|
42268
|
+
var baseMap: texture_2d_array<f32>;
|
|
42016
42269
|
|
|
42270
|
+
@group(2) @binding(5)
|
|
42271
|
+
var<storage,read> graphicBuffer : array<GraphicNodeStruct>;
|
|
42272
|
+
|
|
42017
42273
|
@vertex
|
|
42018
|
-
fn VertMain(vertex:
|
|
42274
|
+
fn VertMain( vertex:VertexAttributes ) -> VertexOutput {
|
|
42019
42275
|
vertex_inline(vertex);
|
|
42020
42276
|
vert(vertex);
|
|
42021
|
-
return ORI_VertexOut;
|
|
42277
|
+
return ORI_VertexOut ;
|
|
42022
42278
|
}
|
|
42023
42279
|
|
|
42024
42280
|
fn vert(inputData:VertexAttributes) -> VertexOutput {
|
|
@@ -42029,9 +42285,15 @@ let UnLitTextureArray = (
|
|
|
42029
42285
|
fn frag(){
|
|
42030
42286
|
var transformUV1 = materialUniform.transformUV1;
|
|
42031
42287
|
var transformUV2 = materialUniform.transformUV2;
|
|
42288
|
+
|
|
42289
|
+
// var irradiance = vec3<f32>(0.0) ;
|
|
42290
|
+
// let MAX_REFLECTION_LOD = f32(textureNumLevels(prefilterMap)) ;
|
|
42291
|
+
// irradiance += (globalUniform.skyExposure * textureSampleLevel(prefilterMap, prefilterMapSampler, ORI_VertexVarying.vWorldNormal.xyz, 0.8 * (MAX_REFLECTION_LOD) ).rgb);
|
|
42292
|
+
|
|
42032
42293
|
graphicNode = graphicBuffer[u32(round(ORI_VertexVarying.index))];
|
|
42033
42294
|
|
|
42034
42295
|
var uv = transformUV1.zw * ORI_VertexVarying.fragUV0 + transformUV1.xy;
|
|
42296
|
+
//The fragUV1.x is 1.0 when the vertex belongs to line.
|
|
42035
42297
|
if(ORI_VertexVarying.fragUV1.x > 0.5){
|
|
42036
42298
|
uv = graphicNode.uvRect2.zw * uv.xy + graphicNode.uvRect2.xy;
|
|
42037
42299
|
uv += graphicNode.uvSpeed.zw * globalUniform.time;
|
|
@@ -42047,7 +42309,7 @@ let UnLitTextureArray = (
|
|
|
42047
42309
|
);
|
|
42048
42310
|
uv = (zrot * vec3f(uv, 0.0)).xy;
|
|
42049
42311
|
}
|
|
42050
|
-
}
|
|
42312
|
+
};
|
|
42051
42313
|
var graphicTextureID = graphicNode.texIndex;
|
|
42052
42314
|
var graphicNodeColor = graphicNode.baseColor;
|
|
42053
42315
|
if(ORI_VertexVarying.fragUV1.x > 0.5){
|
|
@@ -42055,12 +42317,23 @@ let UnLitTextureArray = (
|
|
|
42055
42317
|
graphicNodeColor = graphicNode.lineColor;
|
|
42056
42318
|
}
|
|
42057
42319
|
var color = textureSample(baseMap,baseMapSampler,uv, u32(round(graphicTextureID)) ) * materialUniform.baseColor * graphicNodeColor ;
|
|
42058
|
-
color
|
|
42320
|
+
// let color = textureSample(baseMap,baseMapSampler,uv, u32(round(ORI_VertexVarying.index)));
|
|
42321
|
+
|
|
42322
|
+
// ORI_ViewDir = normalize( globalUniform.CameraPos.xyz - ORI_VertexVarying.vWorldPos.xyz);
|
|
42323
|
+
// let att = dot( ORI_ViewDir , ORI_VertexVarying.vWorldNormal.xyz );
|
|
42324
|
+
|
|
42325
|
+
// irradiance = LinearToGammaSpace(irradiance.rgb) * color.rgb ;//* att ;
|
|
42326
|
+
|
|
42327
|
+
color += graphicNode.emissiveColor ;
|
|
42059
42328
|
if(color.w < materialUniform.alphaCutoff){
|
|
42060
|
-
discard;
|
|
42329
|
+
discard ;
|
|
42061
42330
|
}
|
|
42062
|
-
|
|
42063
|
-
|
|
42331
|
+
|
|
42332
|
+
// let outColor = vec4f( color.rgb * (att * 0.5 + 0.5 ) , 1.0 ) * materialUniform.baseColor ;
|
|
42333
|
+
let outColor = vec4f( color.rgb , 1.0 ) * materialUniform.baseColor ;
|
|
42334
|
+
|
|
42335
|
+
// ORI_ShadingInput.BaseColor = color ;
|
|
42336
|
+
ORI_ShadingInput.BaseColor = vec4f(outColor.xyz,1.0) ;
|
|
42064
42337
|
UnLit();
|
|
42065
42338
|
}
|
|
42066
42339
|
`
|
|
@@ -42195,7 +42468,7 @@ let GlobalFog_shader = (
|
|
|
42195
42468
|
let sunLight = lightBuffer[0] ;
|
|
42196
42469
|
var inScatteringValue = inScatterIng(sunLight.direction, texPosition.xyz, sunLight.lightColor);
|
|
42197
42470
|
opColor += inScatteringValue;
|
|
42198
|
-
}
|
|
42471
|
+
};
|
|
42199
42472
|
|
|
42200
42473
|
textureStore(outTex, fragCoord , vec4<f32>(opColor.xyz, texColor.a));
|
|
42201
42474
|
}
|
|
@@ -47646,7 +47919,7 @@ class GUIShader {
|
|
|
47646
47919
|
s = border.x + (s / centerPartMax) * centerPartMin;
|
|
47647
47920
|
}else{
|
|
47648
47921
|
s = s - centerPartMax + border.x + centerPartMin;
|
|
47649
|
-
}
|
|
47922
|
+
};
|
|
47650
47923
|
}
|
|
47651
47924
|
return s;
|
|
47652
47925
|
}
|
|
@@ -47798,12 +48071,12 @@ class GUIShader {
|
|
|
47798
48071
|
ret.x = quad.x;
|
|
47799
48072
|
}else{
|
|
47800
48073
|
ret.x = quad.z;
|
|
47801
|
-
}
|
|
48074
|
+
};
|
|
47802
48075
|
if(index == 0 || index == 1){
|
|
47803
48076
|
ret.y = quad.w;
|
|
47804
48077
|
}else{
|
|
47805
48078
|
ret.y = quad.y;
|
|
47806
|
-
}
|
|
48079
|
+
};
|
|
47807
48080
|
return ret;
|
|
47808
48081
|
}
|
|
47809
48082
|
`
|