diff options
author | clayjohn <claynjohn@gmail.com> | 2022-11-14 17:57:49 -0800 |
---|---|---|
committer | clayjohn <claynjohn@gmail.com> | 2022-11-14 17:57:49 -0800 |
commit | 81d8b502cc791674bdaf2cb532eeaf1337ac3aa1 (patch) | |
tree | 41021ac1a3b725b414112f2416622aaa802561ea /servers/rendering/renderer_rd/shaders/forward_clustered | |
parent | aa4c286808bbf4b16346de40307fcd5b29f19697 (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.glsl | 3 |
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 |