From 5c1f34967392e034dd62e0c91aac75dc65eb83ff Mon Sep 17 00:00:00 2001 From: Peter Li Date: Fri, 16 May 2025 23:48:04 -0700 Subject: [PATCH] saving --- engine/rend/shaders/lit_mesh.frag.hlsl | 5 +- .../content/_shaders/dxil/lit_mesh.frag.dxil | Bin 8336 -> 8336 bytes .../content/_shaders/msl/lit_mesh.frag.msl | 156 +++++++++--------- .../content/_shaders/spv/lit_mesh.frag.spv | Bin 8060 -> 8044 bytes projects/content/bsp/testmap.map | 9 + 5 files changed, 90 insertions(+), 80 deletions(-) diff --git a/engine/rend/shaders/lit_mesh.frag.hlsl b/engine/rend/shaders/lit_mesh.frag.hlsl index 941b278..9e9d451 100644 --- a/engine/rend/shaders/lit_mesh.frag.hlsl +++ b/engine/rend/shaders/lit_mesh.frag.hlsl @@ -121,7 +121,7 @@ float shadowCalculationPCF(float3 fragPos, float4 DirectionalShadowFragPos) float combinedDepth = 0.0; int count = 0; - int range = 4; + int range = 2; float3 shadowProjection = DirectionalShadowFragPos.xyz / DirectionalShadowFragPos.w; shadowProjection = shadowProjection * 0.5 + 0.5 ; @@ -131,7 +131,7 @@ float shadowCalculationPCF(float3 fragPos, float4 DirectionalShadowFragPos) uv.y = -uv.y; float fragDepth = DirectionalShadowFragPos.z; float combinedShadow = 0.0; - float bias = 0.005; + float bias = 0.003; for (int y = -range ; y <= range ; y++) { for (int x = -range ; x <= range ; x++) { @@ -169,6 +169,7 @@ float3 DirectionalLight(float3 normal, float3 fragPos, float4 DirectionalShadow // shadow mapping + //diffuse = diffuse * (1.0 - shadowCalculationPCF(fragPos, DirectionalShadowFragPos)); diffuse = diffuse * (1.0 - shadowCalculationPCF(fragPos, DirectionalShadowFragPos)); return diffuse; diff --git a/projects/content/_shaders/dxil/lit_mesh.frag.dxil b/projects/content/_shaders/dxil/lit_mesh.frag.dxil index 9dced69271b20a47754e3f461d7a224ed0d91f94..4d326c1bd673c933a2ef073d6540db0b79e4cebc 100644 GIT binary patch delta 96 zcmV-m0H6PmL6AWdL|8&YyCNe-yIzcxtZbqfMo)XCu@p!T5Kn&t4Au4u=slvqbuTOu zIJ0aIwg>?QlOq@?3}E(VO83GTfr{6s?6X%GKL!un0}N&voF=g7K0q+s5Wusg9_s<< CXC;#W delta 96 zcmV-m0H6PmL6AWdL|8&Y4?0*A^4w`;$_X==nap3Ou@p!T5IgEm-?o#-Cus?jS3GaJ z6SHg&wg>?UlOq@?44~rmsrSMd0m{ZS>9bcDKL!uf0}N&voF=g7K0q+s5U{hQ9_s;2 C|0gd1 diff --git a/projects/content/_shaders/msl/lit_mesh.frag.msl b/projects/content/_shaders/msl/lit_mesh.frag.msl index bafc6ec..b72c673 100644 --- a/projects/content/_shaders/msl/lit_mesh.frag.msl +++ b/projects/content/_shaders/msl/lit_mesh.frag.msl @@ -28,8 +28,8 @@ struct type_StructuredBuffer_Scene Scene _m0[1]; }; -constant float4 _91 = {}; -constant float3 _93 = {}; +constant float4 _90 = {}; +constant float3 _92 = {}; struct main0_out { @@ -52,145 +52,145 @@ struct main0_in fragment main0_out main0(main0_in in [[stage_in]], constant type_Uniforms& Uniforms [[buffer(0)]], const device type_StructuredBuffer_Scene& scene [[buffer(1)]], texture2d Texture0 [[texture(0)]], texture2d Texture1 [[texture(1)]], texture2d Texture2 [[texture(2)]], texture2d DirectionalShadowDepthMap [[texture(3)]], sampler Sampler0 [[sampler(0)]], sampler Sampler1 [[sampler(1)]], sampler Sampler2 [[sampler(2)]], sampler DirectionalShadowSampler [[sampler(3)]]) { main0_out out = {}; - int _103 = int(scene._m0[in.in_var_TEXCOORD4].textureMode); - int _104 = _103 & 240; - float4 _138; - if (_104 == 16) + int _102 = int(scene._m0[in.in_var_TEXCOORD4].textureMode); + int _103 = _102 & 240; + float4 _137; + if (_103 == 16) { - float3 _125 = float3(Texture0.sample(Sampler0, in.in_var_TEXCOORD0).x, Texture1.sample(Sampler1, in.in_var_TEXCOORD0).x, Texture2.sample(Sampler2, in.in_var_TEXCOORD0).x) + float3(-0.0625, -0.5, -0.5); - _138 = float4(dot(_125, float3(1.164000034332275390625, 0.0, 1.7929999828338623046875)), dot(_125, float3(1.164000034332275390625, -0.212999999523162841796875, -0.53299999237060546875)), dot(_125, float3(1.164000034332275390625, 2.111999988555908203125, 0.0)), 1.0); + float3 _124 = float3(Texture0.sample(Sampler0, in.in_var_TEXCOORD0).x, Texture1.sample(Sampler1, in.in_var_TEXCOORD0).x, Texture2.sample(Sampler2, in.in_var_TEXCOORD0).x) + float3(-0.0625, -0.5, -0.5); + _137 = float4(dot(_124, float3(1.164000034332275390625, 0.0, 1.7929999828338623046875)), dot(_124, float3(1.164000034332275390625, -0.212999999523162841796875, -0.53299999237060546875)), dot(_124, float3(1.164000034332275390625, 2.111999988555908203125, 0.0)), 1.0); } else { - float4 _137; - if (_104 == 0) + float4 _136; + if (_103 == 0) { - _137 = Texture0.sample(Sampler0, in.in_var_TEXCOORD0); + _136 = Texture0.sample(Sampler0, in.in_var_TEXCOORD0); } else { - _137 = _91; + _136 = _90; } - _138 = _137; + _137 = _136; } - float4 _144; - if ((_103 & 1) == 1) + float4 _143; + if ((_102 & 1) == 1) { - _144 = powr(_138, float4(2.2000000476837158203125)); + _143 = powr(_137, float4(2.2000000476837158203125)); } else { - _144 = _138; + _143 = _137; } - if (_144.w < 0.00999999977648258209228515625) + if (_143.w < 0.00999999977648258209228515625) { discard_fragment(); } - float3 _154 = float3(0.800000011920928955078125, 0.800000011920928955078125, 0.5) * Uniforms.lightPower; - float3 _201; + float3 _153 = float3(0.800000011920928955078125, 0.800000011920928955078125, 0.5) * Uniforms.lightPower; + float3 _200; do { - float3 _158 = Uniforms.lightPosition.xyz - in.in_var_TEXCOORD1; - float _159 = length(_158); - float _160 = _159 * _159; - float _166; - if (_159 > 2.0) + float3 _157 = Uniforms.lightPosition.xyz - in.in_var_TEXCOORD1; + float _158 = length(_157); + float _159 = _158 * _158; + float _165; + if (_158 > 2.0) { - _166 = 0.5 / _160; + _165 = 0.5 / _159; } else { - _166 = 1.0 / _160; + _165 = 1.0 / _159; } - float _171; - if (_159 > 4.0) + float _170; + if (_158 > 4.0) { - _171 = _166 * 0.5; + _170 = _165 * 0.5; } else { - _171 = _166; + _170 = _165; } - float _173 = (_159 > 15.0) ? 0.0 : _171; - float _175 = (_173 > 1.0) ? 1.0 : _173; + float _172 = (_158 > 15.0) ? 0.0 : _170; + float _174 = (_172 > 1.0) ? 1.0 : _172; if (length(in.in_var_TEXCOORD2) < 0.100000001490116119384765625) { - _201 = (in.in_var_TEXCOORD1 * _154) * _175; + _200 = (in.in_var_TEXCOORD1 * _153) * _174; break; } - float3 _182 = fast::normalize(_158); - _201 = ((_154 * precise::max(dot(_182, in.in_var_TEXCOORD2), 0.0)) * _175) + (((_154 * powr(precise::max(dot(in.in_var_TEXCOORD2, fast::normalize(_182 + fast::normalize(in.in_var_TEXCOORD1 - Uniforms.viewPos.xyz))), 0.0), 30.0)) * 2.0) * _175); + float3 _181 = fast::normalize(_157); + _200 = ((_153 * precise::max(dot(_181, in.in_var_TEXCOORD2), 0.0)) * _174) + (((_153 * powr(precise::max(dot(in.in_var_TEXCOORD2, fast::normalize(_181 + fast::normalize(in.in_var_TEXCOORD1 - Uniforms.viewPos.xyz))), 0.0), 30.0)) * 2.0) * _174); break; } while(false); - float3 _218 = ((in.in_var_TEXCOORD3.xyz / float3(in.in_var_TEXCOORD3.w)) * 0.5) + float3(0.5); - float3 _220; - _220.x = _218.x; - float2 _221 = _220.xy; - _221.y = -_218.y; + float3 _217 = ((in.in_var_TEXCOORD3.xyz / float3(in.in_var_TEXCOORD3.w)) * 0.5) + float3(0.5); + float3 _219; + _219.x = _217.x; + float2 _220 = _219.xy; + _220.y = -_217.y; + float _227; + int _230; + int _232; + _227 = 0.0; + _230 = 0; + _232 = -2; float _228; int _231; - int _233; - _228 = 0.0; - _231 = 0; - _233 = -4; - float _229; - int _232; - for (; _233 <= 4; _228 = _229, _231 = _232, _233++) + for (; _232 <= 2; _227 = _228, _230 = _231, _232++) { - _232 = _231; - _229 = _228; - for (int _242 = -4; _242 <= 4; ) + _231 = _230; + _228 = _227; + for (int _241 = -2; _241 <= 2; ) { - _232++; - _229 += float((in.in_var_TEXCOORD3.z - 0.004999999888241291046142578125) > DirectionalShadowDepthMap.sample(DirectionalShadowSampler, (_221 + float2(float(_242) * 0.000244140625, float(_233) * 0.000244140625))).x); - _242++; + _231++; + _228 += float((in.in_var_TEXCOORD3.z - 0.0030000000260770320892333984375) > DirectionalShadowDepthMap.sample(DirectionalShadowSampler, (_220 + float2(float(_241) * 0.000244140625, float(_232) * 0.000244140625))).x); + _241++; continue; } } - float3 _271; - if ((_103 & 2) > 0) + float3 _270; + if ((_102 & 2) > 0) { - _271 = _144.xyz * 2.0; + _270 = _143.xyz * 2.0; } else { - _271 = _144.xyz * ((float3(0.100000001490116119384765625) + _201) + ((Uniforms.directionalLightColor.xyz * precise::max(dot(Uniforms.directionalLight.xyz, in.in_var_TEXCOORD2), 0.0)) * (1.0 - (_228 / float(_231))))); + _270 = _143.xyz * ((float3(0.100000001490116119384765625) + _200) + ((Uniforms.directionalLightColor.xyz * precise::max(dot(Uniforms.directionalLight.xyz, in.in_var_TEXCOORD2), 0.0)) * (1.0 - (_227 / float(_230))))); } - float4 _288; - if (_271.x > 1.0) + float4 _287; + if (_270.x > 1.0) { - float4 _287 = float4(0.0, 0.0, 0.0, 1.0); - _287.x = _271.x; - _288 = _287; + float4 _286 = float4(0.0, 0.0, 0.0, 1.0); + _286.x = _270.x; + _287 = _286; } else { - _288 = float4(0.0, 0.0, 0.0, 1.0); + _287 = float4(0.0, 0.0, 0.0, 1.0); } - float4 _293; - if (_271.y > 1.0) + float4 _292; + if (_270.y > 1.0) { - float4 _292 = _288; - _292.y = _271.y; - _293 = _292; + float4 _291 = _287; + _291.y = _270.y; + _292 = _291; } else { - _293 = _288; + _292 = _287; } - float4 _298; - if (_271.z > 1.0) + float4 _297; + if (_270.z > 1.0) { - float4 _297 = _293; - _297.z = _271.z; - _298 = _297; + float4 _296 = _292; + _296.z = _270.z; + _297 = _296; } else { - _298 = _293; + _297 = _292; } - out.out_var_SV_Target0 = float4(_271, _144.w); - out.out_var_SV_Target1 = _298; + out.out_var_SV_Target0 = float4(_270, _143.w); + out.out_var_SV_Target1 = _297; out.out_var_SV_Target2 = float4(in.in_var_TEXCOORD1, 1.0); out.out_var_SV_Target3 = float4(in.in_var_TEXCOORD5, 1.0); return out; diff --git a/projects/content/_shaders/spv/lit_mesh.frag.spv b/projects/content/_shaders/spv/lit_mesh.frag.spv index 1b321e7bd0e4b3e4d35e17d254e18badb197faea..c6e2acf04b349452e91c28b9b6d79dc16d781118 100644 GIT binary patch literal 8044 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 o=h*v{