21 #define DO_FILE_OUTPUT 0
32 GPU_framebuffer_ensure_config(&
fb,
35 GPU_ATTACHMENT_TEXTURE(
tex),
39 GPU_FRAMEBUFFER_FREE_SAFE(
fb);
45 FILE *f =
BLI_fopen(
"bsdf_split_sum_ggx.h",
"w");
46 fprintf(f,
"const float bsdf_split_sum_ggx[%d * %d * 2] = {", lut_size, lut_size);
47 for (
int i = 0; i < lut_size * lut_size * 2;) {
49 for (
int j = 0; j < 4; j++, i += 2) {
50 fprintf(f,
"%ff, %ff, ",
data[i],
data[i + 1]);
71 for (
int i = 0; i < lut_depth; i++) {
72 GPU_framebuffer_ensure_config(&
fb,
75 GPU_ATTACHMENT_TEXTURE_LAYER(
tex, i),
82 GPU_FRAMEBUFFER_FREE_SAFE(
fb);
89 FILE *f =
BLI_fopen(
"btdf_split_sum_ggx.h",
"w");
90 fprintf(f,
"const float btdf_split_sum_ggx[%d][%d * %d * 2] = {", lut_depth, lut_size, lut_size);
93 for (
int d = 0; d < lut_depth; d++) {
95 for (
int i = 0; i < lut_size * lut_size * 2;) {
96 for (
int j = 0; j < 4; j++, i += 2, ofs += 2) {
97 fprintf(f,
"%ff, %ff, ",
data[ofs],
data[ofs + 1]);
File and directory operations.
FILE * BLI_fopen(const char *filepath, const char *mode) ATTR_WARN_UNUSED_RESULT ATTR_NONNULL()
struct GPUFrameBuffer GPUFrameBuffer
void GPU_framebuffer_bind(GPUFrameBuffer *fb)
struct GPUTexture GPUTexture
void * GPU_texture_read(GPUTexture *tex, eGPUDataFormat data_format, int miplvl)
void GPU_texture_free(GPUTexture *tex)
void DRW_shgroup_uniform_float_copy(DRWShadingGroup *shgroup, const char *name, const float value)
void DRW_shgroup_call_procedural_triangles(DRWShadingGroup *shgroup, Object *ob, uint tri_count)
DRWShadingGroup * DRW_shgroup_create(struct GPUShader *shader, DRWPass *pass)
DRWPass * DRW_pass_create(const char *name, DRWState state)
void DRW_shgroup_uniform_float(DRWShadingGroup *shgroup, const char *name, const float *value, int arraysize)
void DRW_draw_pass(DRWPass *pass)
GPUTexture * DRW_texture_create_2d_array(int w, int h, int d, eGPUTextureFormat format, DRWTextureFlag flags, const float *fpixels)
GPUTexture * DRW_texture_create_2d(int w, int h, eGPUTextureFormat format, DRWTextureFlag flags, const float *fpixels)
float * EEVEE_lut_update_ggx_brdf(int lut_size)
float * EEVEE_lut_update_ggx_btdf(int lut_size, int lut_depth)
struct GPUShader * EEVEE_shaders_ggx_lut_sh_get(void)
struct GPUShader * EEVEE_shaders_ggx_refraction_lut_sh_get(void)
BLI_INLINE float fb(float length, float L)
static const pxr::TfToken roughness("roughness", pxr::TfToken::Immortal)