diff options
| author | Rémi Verschelde <rverschelde@gmail.com> | 2024-06-22 16:22:07 +0200 |
|---|---|---|
| committer | Rémi Verschelde <rverschelde@gmail.com> | 2024-06-22 16:22:07 +0200 |
| commit | 41cc256d6390a13f5d872bd3f7fb06bed970b33e (patch) | |
| tree | d8f51c6dabb0d92ac76c9841638c3e41778d8eec | |
| parent | 16ab5345efed2f1909f8706c13655cc14ae3af3e (diff) | |
| parent | 281e0e6a5bae7165185ed32c65a96b16bfd621ce (diff) | |
| download | redot-engine-41cc256d6390a13f5d872bd3f7fb06bed970b33e.tar.gz | |
Merge pull request #89528 from Calinou/basematerial3d-height-allow-in-compatibility
Allow BaseMaterial3D height/dither fade to work with Compatibility rendering
| -rw-r--r-- | scene/resources/material.cpp | 18 |
1 files changed, 8 insertions, 10 deletions
diff --git a/scene/resources/material.cpp b/scene/resources/material.cpp index 65b97acabf..b2567e431b 100644 --- a/scene/resources/material.cpp +++ b/scene/resources/material.cpp @@ -1337,7 +1337,7 @@ void fragment() {)"; } // Heightmapping isn't supported at the same time as triplanar mapping. - if (!RenderingServer::get_singleton()->is_low_end() && features[FEATURE_HEIGHT_MAPPING] && !flags[FLAG_UV1_USE_TRIPLANAR]) { + if (features[FEATURE_HEIGHT_MAPPING] && !flags[FLAG_UV1_USE_TRIPLANAR]) { // Binormal is negative due to mikktspace. Flipping it "unflips" it. code += R"( { @@ -1637,21 +1637,20 @@ void fragment() {)"; // Use the slightly more expensive circular fade (distance to the object) instead of linear // (Z distance), so that the fade is always the same regardless of the camera angle. if ((distance_fade == DISTANCE_FADE_OBJECT_DITHER || distance_fade == DISTANCE_FADE_PIXEL_DITHER)) { - if (!RenderingServer::get_singleton()->is_low_end()) { - code += "\n {"; + code += "\n {"; - if (distance_fade == DISTANCE_FADE_OBJECT_DITHER) { - code += R"( + if (distance_fade == DISTANCE_FADE_OBJECT_DITHER) { + code += R"( // Distance Fade: Object Dither float fade_distance = length((VIEW_MATRIX * MODEL_MATRIX[3])); )"; - } else { - code += R"( + } else { + code += R"( // Distance Fade: Pixel Dither float fade_distance = length(VERTEX); )"; - } - code += R"( + } + code += R"( // Use interleaved gradient noise, which is fast but still looks good. const vec3 magic = vec3(0.06711056, 0.00583715, 52.9829189); float fade = clamp(smoothstep(distance_fade_min, distance_fade_max, fade_distance), 0.0, 1.0); @@ -1661,7 +1660,6 @@ void fragment() {)"; } } )"; - } } else { code += R"( // Distance Fade: Pixel Alpha |
