diff options
Diffstat (limited to 'source/blender/draw/engines/eevee/eevee_materials.c')
-rw-r--r-- | source/blender/draw/engines/eevee/eevee_materials.c | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/source/blender/draw/engines/eevee/eevee_materials.c b/source/blender/draw/engines/eevee/eevee_materials.c index 8cd9dd4829d..046a7ea1367 100644 --- a/source/blender/draw/engines/eevee/eevee_materials.c +++ b/source/blender/draw/engines/eevee/eevee_materials.c @@ -358,7 +358,7 @@ void EEVEE_materials_init(EEVEE_StorageList *stl) MEM_freeN(frag_str); /* Textures */ - const int layers = 3; + const int layers = 3 + 16; float (*texels)[4] = MEM_mallocN(sizeof(float[4]) * 64 * 64 * layers, "utils texels"); float (*texels_layer)[4] = texels; @@ -382,6 +382,16 @@ void EEVEE_materials_init(EEVEE_StorageList *stl) texels_layer[i][3] = sinf(blue_noise[i][1] * 2.0 * M_PI); } + for (int j = 0; j < 16; ++j) { + texels_layer += 64 * 64; + for (int i = 0; i < 64 * 64; i++) { + texels_layer[i][0] = btdf_split_sum_ggx[j*2][i]; + texels_layer[i][1] = btdf_split_sum_ggx[j*2][i]; + texels_layer[i][2] = btdf_split_sum_ggx[j*2][i]; + texels_layer[i][3] = btdf_split_sum_ggx[j*2][i]; + } + } + e_data.util_tex = DRW_texture_create_2D_array(64, 64, layers, DRW_TEX_RGBA_16, DRW_TEX_FILTER | DRW_TEX_WRAP, (float *)texels); MEM_freeN(texels); } |