diff options
author | Clément Foucault <foucault.clem@gmail.com> | 2018-01-15 19:14:49 +0300 |
---|---|---|
committer | Clément Foucault <foucault.clem@gmail.com> | 2018-01-16 20:22:24 +0300 |
commit | 84c91be0a4bf83f815406d8f707a60cb51a06d3b (patch) | |
tree | 89785fad1dbe03e004c9475aedd11b9a1b5f60a8 /source/blender/draw/engines/eevee/eevee_materials.c | |
parent | 39af6c27f58df4da3325b843dadb1608181b83bb (diff) |
Eevee: Fix noise correlation in the blue noise update.
Diffstat (limited to 'source/blender/draw/engines/eevee/eevee_materials.c')
-rw-r--r-- | source/blender/draw/engines/eevee/eevee_materials.c | 14 |
1 files changed, 6 insertions, 8 deletions
diff --git a/source/blender/draw/engines/eevee/eevee_materials.c b/source/blender/draw/engines/eevee/eevee_materials.c index 0aea80f5471..5bd7fe979b8 100644 --- a/source/blender/draw/engines/eevee/eevee_materials.c +++ b/source/blender/draw/engines/eevee/eevee_materials.c @@ -432,7 +432,7 @@ static void create_default_shader(int options) MEM_freeN(frag_str); } -void EEVEE_update_util_texture(float offset) +void EEVEE_update_util_texture(double offsets[3]) { /* TODO: split this into 2 functions : one for init, @@ -456,12 +456,9 @@ void EEVEE_update_util_texture(float offset) /* Copy blue noise in 3rd layer */ for (int i = 0; i < 64 * 64; i++) { - float noise; - noise = fmod(blue_noise[i][0] + offset, 1.0f); - texels_layer[i][0] = noise; - - noise = fmod(blue_noise[i][1] + offset, 1.0f); - texels_layer[i][1] = noise * 0.5f + 0.5f; + texels_layer[i][0] = fmod(blue_noise[i][0] + (float)offsets[0], 1.0f); + texels_layer[i][1] = fmod(blue_noise[i][1] + (float)offsets[1], 1.0f); + float noise = fmod(blue_noise[i][1] + (float)offsets[2], 1.0f); texels_layer[i][2] = cosf(noise * 2.0f * M_PI); texels_layer[i][3] = sinf(noise * 2.0f * M_PI); } @@ -549,7 +546,8 @@ void EEVEE_materials_init(EEVEE_StorageList *stl) MEM_freeN(frag_str); - EEVEE_update_util_texture(0.0f); + double offsets[3] = {0.0, 0.0, 0.0}; + EEVEE_update_util_texture(offsets); } { |