summaryrefslogtreecommitdiff
path: root/servers/rendering/renderer_rd/shaders/forward_mobile
diff options
context:
space:
mode:
authorRémi Verschelde <rverschelde@gmail.com>2022-11-15 10:28:59 +0100
committerRémi Verschelde <rverschelde@gmail.com>2022-11-15 10:28:59 +0100
commit245e6454a03a24bf074eb3715776125842e3b666 (patch)
tree16ce5564be9218f0223bf4e2434c1b63dd8953d1 /servers/rendering/renderer_rd/shaders/forward_mobile
parent077d4831a49b3b3ae2d491c55c735116d6be29c5 (diff)
parent81d8b502cc791674bdaf2cb532eeaf1337ac3aa1 (diff)
Merge pull request #68673 from clayjohn/RD-alpha-hash
Fix alpha hash by correcting typos and doing calculations in object space
Diffstat (limited to 'servers/rendering/renderer_rd/shaders/forward_mobile')
-rw-r--r--servers/rendering/renderer_rd/shaders/forward_mobile/scene_forward_mobile.glsl3
1 files changed, 2 insertions, 1 deletions
diff --git a/servers/rendering/renderer_rd/shaders/forward_mobile/scene_forward_mobile.glsl b/servers/rendering/renderer_rd/shaders/forward_mobile/scene_forward_mobile.glsl
index 9aeaa6d978..cc44cff799 100644
--- a/servers/rendering/renderer_rd/shaders/forward_mobile/scene_forward_mobile.glsl
+++ b/servers/rendering/renderer_rd/shaders/forward_mobile/scene_forward_mobile.glsl
@@ -779,7 +779,8 @@ void main() {
// alpha hash can be used in unison with alpha antialiasing
#ifdef ALPHA_HASH_USED
- if (alpha < compute_alpha_hash_threshold(vertex, alpha_hash_scale)) {
+ vec3 object_pos = (inverse(read_model_matrix) * inv_view_matrix * vec4(vertex, 1.0)).xyz;
+ if (alpha < compute_alpha_hash_threshold(object_pos, alpha_hash_scale)) {
discard;
}
#endif // ALPHA_HASH_USED