[Bf-blender-cvs] [621336ba68b] temp-eevee-next-cryptomatte: Fix storing multiple cryptomatte layers.
Jeroen Bakker
noreply at git.blender.org
Wed Aug 24 12:15:31 CEST 2022
Commit: 621336ba68b4956df4b4ccb1b2ca254c52a4761e
Author: Jeroen Bakker
Date: Wed Aug 24 11:23:59 2022 +0200
Branches: temp-eevee-next-cryptomatte
https://developer.blender.org/rB621336ba68b4956df4b4ccb1b2ca254c52a4761e
Fix storing multiple cryptomatte layers.
===================================================================
M source/blender/draw/engines/eevee_next/shaders/eevee_cryptomatte_lib.glsl
===================================================================
diff --git a/source/blender/draw/engines/eevee_next/shaders/eevee_cryptomatte_lib.glsl b/source/blender/draw/engines/eevee_next/shaders/eevee_cryptomatte_lib.glsl
index 1284d5e84c6..8d21f05e9a5 100644
--- a/source/blender/draw/engines/eevee_next/shaders/eevee_cryptomatte_lib.glsl
+++ b/source/blender/draw/engines/eevee_next/shaders/eevee_cryptomatte_lib.glsl
@@ -32,8 +32,15 @@ void film_store_cryptomatte_sample(FilmSample dst,
{
float weight = dst.weight;
+ if (!film_buf.use_history) {
+ for (int i = 0; i < film_buf.cryptomatte_samples_len / 2; i++) {
+ ivec3 img_co = ivec3(dst.texel, cryptomatte_layer_id + i);
+ imageStore(cryptomatte_img, img_co, vec4(0.0));
+ }
+ }
+
for (int i = 0; i < film_buf.cryptomatte_samples_len / 2; i++) {
- ivec3 img_co = ivec3(dst.texel, i);
+ ivec3 img_co = ivec3(dst.texel, cryptomatte_layer_id + i);
vec4 sample_pair = imageLoad(cryptomatte_img, img_co);
if (can_merge_cryptomatte_sample(sample_pair.xy, hash)) {
sample_pair.xy = merge_cryptomatte_sample(sample_pair.xy, hash, weight);
More information about the Bf-blender-cvs
mailing list