Merge pull request #53992 from Calinou/hard-shadow-mapping-allow-dithering
This commit is contained in:
commit
3bebbcacdb
6 changed files with 41 additions and 16 deletions
|
|
@ -2696,9 +2696,14 @@ void RendererSceneRenderRD::shadows_quality_set(RS::ShadowQuality p_quality) {
|
|||
switch (shadows_quality) {
|
||||
case RS::SHADOW_QUALITY_HARD: {
|
||||
penumbra_shadow_samples = 4;
|
||||
soft_shadow_samples = 1;
|
||||
soft_shadow_samples = 0;
|
||||
shadows_quality_radius = 1.0;
|
||||
} break;
|
||||
case RS::SHADOW_QUALITY_SOFT_VERY_LOW: {
|
||||
penumbra_shadow_samples = 4;
|
||||
soft_shadow_samples = 1;
|
||||
shadows_quality_radius = 1.5;
|
||||
} break;
|
||||
case RS::SHADOW_QUALITY_SOFT_LOW: {
|
||||
penumbra_shadow_samples = 8;
|
||||
soft_shadow_samples = 4;
|
||||
|
|
@ -2738,9 +2743,14 @@ void RendererSceneRenderRD::directional_shadow_quality_set(RS::ShadowQuality p_q
|
|||
switch (directional_shadow_quality) {
|
||||
case RS::SHADOW_QUALITY_HARD: {
|
||||
directional_penumbra_shadow_samples = 4;
|
||||
directional_soft_shadow_samples = 1;
|
||||
directional_soft_shadow_samples = 0;
|
||||
directional_shadow_quality_radius = 1.0;
|
||||
} break;
|
||||
case RS::SHADOW_QUALITY_SOFT_VERY_LOW: {
|
||||
directional_penumbra_shadow_samples = 4;
|
||||
directional_soft_shadow_samples = 1;
|
||||
directional_shadow_quality_radius = 1.5;
|
||||
} break;
|
||||
case RS::SHADOW_QUALITY_SOFT_LOW: {
|
||||
directional_penumbra_shadow_samples = 8;
|
||||
directional_soft_shadow_samples = 4;
|
||||
|
|
|
|||
|
|
@ -301,7 +301,7 @@ float sample_directional_pcf_shadow(texture2D shadow, vec2 shadow_pixel_size, ve
|
|||
float depth = coord.z;
|
||||
|
||||
//if only one sample is taken, take it from the center
|
||||
if (sc_directional_soft_shadow_samples == 1) {
|
||||
if (sc_directional_soft_shadow_samples == 0) {
|
||||
return textureProj(sampler2DShadow(shadow, shadow_sampler), vec4(pos, depth, 1.0));
|
||||
}
|
||||
|
||||
|
|
@ -327,7 +327,7 @@ float sample_pcf_shadow(texture2D shadow, vec2 shadow_pixel_size, vec3 coord) {
|
|||
float depth = coord.z;
|
||||
|
||||
//if only one sample is taken, take it from the center
|
||||
if (sc_soft_shadow_samples == 1) {
|
||||
if (sc_soft_shadow_samples == 0) {
|
||||
return textureProj(sampler2DShadow(shadow, shadow_sampler), vec4(pos, depth, 1.0));
|
||||
}
|
||||
|
||||
|
|
@ -350,7 +350,7 @@ float sample_pcf_shadow(texture2D shadow, vec2 shadow_pixel_size, vec3 coord) {
|
|||
|
||||
float sample_omni_pcf_shadow(texture2D shadow, float blur_scale, vec2 coord, vec4 uv_rect, vec2 flip_offset, float depth) {
|
||||
//if only one sample is taken, take it from the center
|
||||
if (sc_soft_shadow_samples == 1) {
|
||||
if (sc_soft_shadow_samples == 0) {
|
||||
vec2 pos = coord * 0.5 + 0.5;
|
||||
pos = uv_rect.xy + pos * uv_rect.zw;
|
||||
return textureProj(sampler2DShadow(shadow, shadow_sampler), vec4(pos, depth, 1.0));
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue