Eevee: Add precomputed BTDF LUT.
This commit is contained in:
parent
ba4ffe90cd
commit
4ec58659ad
File diff suppressed because it is too large
Load Diff
|
@ -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);
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue