summaryrefslogtreecommitdiff
path: root/servers/rendering/renderer_rd/shaders/forward_clustered
diff options
context:
space:
mode:
authorclayjohn <claynjohn@gmail.com>2022-11-14 17:57:49 -0800
committerclayjohn <claynjohn@gmail.com>2022-11-14 17:57:49 -0800
commit81d8b502cc791674bdaf2cb532eeaf1337ac3aa1 (patch)
tree41021ac1a3b725b414112f2416622aaa802561ea /servers/rendering/renderer_rd/shaders/forward_clustered
parentaa4c286808bbf4b16346de40307fcd5b29f19697 (diff)
Fix alpha hash by correcting typos and doing calculations in object space
Diffstat (limited to 'servers/rendering/renderer_rd/shaders/forward_clustered')
-rw-r--r--servers/rendering/renderer_rd/shaders/forward_clustered/scene_forward_clustered.glsl3
1 files changed, 2 insertions, 1 deletions
diff --git a/servers/rendering/renderer_rd/shaders/forward_clustered/scene_forward_clustered.glsl b/servers/rendering/renderer_rd/shaders/forward_clustered/scene_forward_clustered.glsl
index 0bdf0e50aa..7440c5748b 100644
--- a/servers/rendering/renderer_rd/shaders/forward_clustered/scene_forward_clustered.glsl
+++ b/servers/rendering/renderer_rd/shaders/forward_clustered/scene_forward_clustered.glsl
@@ -826,7 +826,8 @@ void fragment_shader(in SceneData scene_data) {
// 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