30 #if defined(IRRADIANCE_SH_L2)
31 "#define IRRADIANCE_SH_L2\n";
32 #elif defined(IRRADIANCE_HL2)
33 "#define IRRADIANCE_HL2\n";
344 return e_data.probe_filter_glossy_sh;
353 return e_data.probe_filter_diffuse_sh;
358 if (
e_data.probe_filter_visibility_sh ==
NULL) {
362 return e_data.probe_filter_visibility_sh;
371 return e_data.probe_grid_fill_sh;
376 if (
e_data.probe_planar_downsample_sh ==
NULL) {
384 return e_data.probe_planar_downsample_sh;
396 return e_data.studiolight_probe_sh;
401 if (
e_data.studiolight_background_sh ==
NULL) {
409 return e_data.studiolight_background_sh;
422 return e_data.probe_cube_display_sh;
435 return e_data.probe_grid_display_sh;
448 return e_data.probe_planar_display_sh;
461 return e_data.color_copy_sh;
470 return e_data.downsample_sh;
483 return e_data.downsample_cube_sh;
490 "#define MIN_PASS\n");
492 return e_data.minz_downlevel_sh;
499 "#define MAX_PASS\n");
501 return e_data.maxz_downlevel_sh;
508 "#define MIN_PASS\n");
510 return e_data.minz_downdepth_sh;
517 "#define MAX_PASS\n");
519 return e_data.maxz_downdepth_sh;
527 "#define LAYERED\n");
529 return e_data.minz_downdepth_layer_sh;
537 "#define LAYERED\n");
539 return e_data.maxz_downdepth_layer_sh;
547 "#define COPY_DEPTH\n"
548 "#define LAYERED\n");
550 return e_data.maxz_copydepth_layer_sh;
558 "#define COPY_DEPTH\n");
560 return e_data.minz_copydepth_sh;
568 "#define COPY_DEPTH\n");
570 return e_data.maxz_copydepth_sh;
594 return e_data.ggx_refraction_lut_sh;
618 #define TILE_SIZE_STR "#define EEVEE_VELOCITY_TILE_SIZE " STRINGIFY(EEVEE_VELOCITY_TILE_SIZE) "\n"
625 return e_data.motion_blur_sh;
634 return e_data.motion_blur_object_sh;
646 return e_data.motion_blur_hair_sh;
655 return e_data.velocity_tiles_sh;
660 if (
e_data.velocity_tiles_expand_sh ==
NULL) {
664 return e_data.velocity_tiles_expand_sh;
691 "#define ENABLE_DEFERED_AO");
693 return e_data.gtao_debug_sh;
708 return e_data.postprocess_sh;
719 const int index = is_hair ? 1 : 0;
736 return e_data.cryptomatte_sh[index];
753 return e_data.reflection_trace;
764 return e_data.reflection_resolve;
788 return e_data.shadow_accum_sh;
840 "#define STANDALONE\n"
841 "#define VOLUMETRICS\n"
844 return e_data.volumetric_clear_sh;
855 "#define STANDALONE\n"
856 "#define VOLUMETRICS\n"
857 "#define VOLUME_SHADOW\n");
871 "#define STANDALONE\n"
872 "#define VOLUMETRICS\n"
873 "#define VOLUME_LIGHTING\n"
874 "#define VOLUME_SHADOW\n");
876 return e_data.scatter_with_lights_sh;
881 if (
e_data.volumetric_integration_sh ==
NULL) {
891 return e_data.volumetric_integration_sh;
896 const int index = accum ? 1 : 0;
897 if (
e_data.volumetric_resolve_sh[index] ==
NULL) {
903 return e_data.volumetric_resolve_sh[index];
912 return e_data.volumetric_accum_sh;
923 return e_data.velocity_resolve_sh;
932 return e_data.update_noise_sh;
940 sh = &
e_data.taa_resolve_reproject_sh;
941 define =
"#define USE_REPROJECTION\n";
960 int index = high_quality ? 1 : 0;
963 const char *
define = high_quality ?
"#define STEP_BLIT\n"
964 "#define HIGH_QUALITY\n" :
965 "#define STEP_BLIT\n";
969 return e_data.bloom_blit_sh[index];
974 int index = high_quality ? 1 : 0;
976 if (
e_data.bloom_downsample_sh[index] ==
NULL) {
977 const char *
define = high_quality ?
"#define STEP_DOWNSAMPLE\n"
978 "#define HIGH_QUALITY\n" :
979 "#define STEP_DOWNSAMPLE\n";
983 return e_data.bloom_downsample_sh[index];
988 int index = high_quality ? 1 : 0;
990 if (
e_data.bloom_upsample_sh[index] ==
NULL) {
991 const char *
define = high_quality ?
"#define STEP_UPSAMPLE\n"
992 "#define HIGH_QUALITY\n" :
993 "#define STEP_UPSAMPLE\n";
997 return e_data.bloom_upsample_sh[index];
1002 int index = high_quality ? 1 : 0;
1004 if (
e_data.bloom_resolve_sh[index] ==
NULL) {
1005 const char *
define = high_quality ?
"#define STEP_RESOLVE\n"
1006 "#define HIGH_QUALITY\n" :
1007 "#define STEP_RESOLVE\n";
1011 return e_data.bloom_resolve_sh[index];
1026 return e_data.dof_bokeh_sh;
1035 return e_data.dof_setup_sh;
1044 return e_data.dof_flatten_tiles_sh;
1050 if (
e_data.dof_dilate_tiles_sh[pass] ==
NULL) {
1057 return e_data.dof_dilate_tiles_sh[pass];
1066 return e_data.dof_downsample_sh;
1071 int is_copy_pass = b_is_copy_pass;
1072 if (
e_data.dof_reduce_sh[is_copy_pass] ==
NULL) {
1079 return e_data.dof_reduce_sh[is_copy_pass];
1084 int use_bokeh_tx = b_use_bokeh_tx;
1085 if (
e_data.dof_gather_sh[pass][use_bokeh_tx] ==
NULL) {
1099 "#define DOF_BACKGROUND_PASS\n"
1100 "#define DOF_HOLEFILL_PASS\n");
1118 return e_data.dof_gather_sh[pass][use_bokeh_tx];
1127 return e_data.dof_filter_sh;
1132 int is_foreground = b_is_foreground;
1133 int use_bokeh_tx = b_use_bokeh_tx;
1134 if (
e_data.dof_scatter_sh[is_foreground][use_bokeh_tx] ==
NULL) {
1139 ds, (is_foreground) ?
"#define DOF_FOREGROUND_PASS\n" :
"#define DOF_BACKGROUND_PASS\n");
1157 return e_data.dof_scatter_sh[is_foreground][use_bokeh_tx];
1162 int use_hq_gather = b_use_hq_gather;
1163 int use_bokeh_tx = b_use_bokeh_tx;
1164 if (
e_data.dof_resolve_sh[use_bokeh_tx][use_hq_gather] ==
NULL) {
1174 BLI_dynstr_appendf(ds,
"#define DOF_SLIGHT_FOCUS_DENSITY %d\n", use_hq_gather ? 4 : 2);
1179 e_data.dof_resolve_sh[use_bokeh_tx][use_hq_gather] =
1185 return e_data.dof_resolve_sh[use_bokeh_tx][use_hq_gather];
1192 if (!
e_data.diffuse_mat) {
1214 return e_data.diffuse_mat;
1219 if (!
e_data.glossy_mat) {
1243 return e_data.glossy_mat;
1277 if (!
e_data.surface.ntree) {
1296 e_data.surface.specular_socket->value = ma->
spec;
1298 return e_data.surface.ntree;
1304 if (!
e_data.world.ntree) {
1319 return e_data.world.ntree;
1327 e_data.default_world->use_nodes = 0;
1331 return e_data.default_world;
1595 for (
int i = 0; i < 2; i++) {
1605 if (
e_data.default_world) {
1613 if (
e_data.diffuse_mat) {
1621 if (
e_data.surface.ntree) {
1626 if (
e_data.world.ntree) {
void * BKE_id_new_nomain(short type, const char *name)
void BKE_id_free(struct Main *bmain, void *idv)
struct Material * BKE_material_default_surface(void)
struct Material * BKE_material_default_volume(void)
#define SH_NODE_BSDF_PRINCIPLED
#define SH_NODE_BSDF_DIFFUSE
#define SH_NODE_OUTPUT_MATERIAL
void ntreeFreeEmbeddedTree(struct bNodeTree *ntree)
struct bNodeLink * nodeAddLink(struct bNodeTree *ntree, struct bNode *fromnode, struct bNodeSocket *fromsock, struct bNode *tonode, struct bNodeSocket *tosock)
#define SH_NODE_BACKGROUND
struct bNodeSocket * nodeFindSocket(const struct bNode *node, eNodeSocketInOut in_out, const char *identifier)
#define SH_NODE_BSDF_GLOSSY
struct bNodeTree * ntreeAddTree(struct Main *bmain, const char *name, const char *idname)
struct bNode * nodeAddStaticNode(const struct bContext *C, struct bNodeTree *ntree, int type)
void nodeSetActive(struct bNodeTree *ntree, struct bNode *node)
A dynamically sized string ADT.
DynStr * BLI_dynstr_new(void) ATTR_MALLOC ATTR_WARN_UNUSED_RESULT
char * BLI_dynstr_get_cstring(const DynStr *ds) ATTR_MALLOC ATTR_WARN_UNUSED_RESULT ATTR_NONNULL()
void BLI_dynstr_free(DynStr *ds) ATTR_NONNULL()
void BLI_dynstr_appendf(DynStr *__restrict ds, const char *__restrict format,...) ATTR_PRINTF_FORMAT(2
void BLI_dynstr_append(DynStr *__restrict ds, const char *cstr) ATTR_NONNULL()
BLI_INLINE void BLI_listbase_clear(struct ListBase *lb)
MINLINE void copy_v3_fl3(float v[3], float x, float y, float z)
MINLINE void copy_v3_fl(float r[3], float f)
char * BLI_strdup(const char *str) ATTR_WARN_UNUSED_RESULT ATTR_NONNULL() ATTR_MALLOC
#define DRW_SHADER_LIB_FREE_SAFE(lib)
#define DRW_shader_create_fullscreen(frag, defines)
#define DRW_SHADER_LIB_ADD(lib, lib_name)
#define DRW_SHADER_FREE_SAFE(shader)
#define DRW_shader_create_with_shaderlib(vert, geom, frag, lib, defines)
#define DRW_shader_create_fullscreen_with_shaderlib(frag, lib, defines)
uint64_t GPU_material_uuid_get(GPUMaterial *mat)
void(* GPUCodegenCallbackFn)(void *thunk, GPUMaterial *mat, GPUCodegenOutput *codegen)
eGPUMaterialStatus GPU_material_status(GPUMaterial *mat)
struct GPUShader GPUShader
Read Guarded memory(de)allocation.
struct bNodeTreeType * ntreeType_Shader
Group Output data from inside of a node group A color picker Mix two input colors RGB to Convert a color s luminance to a grayscale value Generate a normal vector and a dot product Bright Control the brightness and contrast of the input color Vector Map an input vectors to used to fine tune the interpolation of the input Camera Retrieve information about the camera and how it relates to the current shading point s position Clamp a value between a minimum and a maximum Vector Perform vector math operation Invert a producing a negative Combine Generate a color from its and blue Hue Saturation Apply a color transformation in the HSV color model Specular Similar to the Principled BSDF node but uses the specular workflow instead of which functions by specifying the so the result may not be physically accurate SH_NODE_OUTPUT_WORLD
Group Output data from inside of a node group A color picker Mix two input colors RGB to Convert a color s luminance to a grayscale value Generate a normal vector and a dot product Bright Control the brightness and contrast of the input color Vector Map an input vectors to used to fine tune the interpolation of the input Camera Retrieve information about the camera and how it relates to the current shading point s position Clamp a value between a minimum and a maximum Vector Perform vector math operation Invert a color
CCL_NAMESPACE_BEGIN struct Options options
GPUMaterial * DRW_shader_from_world(World *wo, struct bNodeTree *ntree, const uint64_t shader_id, const bool is_volume_shader, bool deferred, GPUCodegenCallbackFn callback, void *thunk)
GPUMaterial * DRW_shader_from_material(Material *ma, struct bNodeTree *ntree, const uint64_t shader_id, const bool is_volume_shader, bool deferred, GPUCodegenCallbackFn callback, void *thunk)
DRWShaderLibrary * DRW_shader_library_create(void)
char * DRW_shader_library_create_shader_string(const DRWShaderLibrary *lib, const char *shader_code)
define("MAT_AOV_SUPPORT") .image_array_out(6
void eevee_shader_extra_exit(void)
void eevee_shader_material_create_info_amend(GPUMaterial *gpumat, GPUCodegenOutput *codegen, char *frag, char *vert, char *geom, char *defines)
#define DOF_SHADER_DEFINES
void eevee_shader_extra_init(void)
char datatoc_lightprobe_cube_display_frag_glsl[]
struct GPUShader * EEVEE_shaders_volumes_clear_sh_get()
GPUShader * EEVEE_shaders_effect_motion_blur_velocity_tiles_sh_get(void)
GPUShader * EEVEE_shaders_probe_planar_display_sh_get(void)
char datatoc_object_motion_vert_glsl[]
char datatoc_btdf_lut_frag_glsl[]
static char * eevee_get_geom(int options)
char datatoc_effect_dof_gather_frag_glsl[]
struct GPUShader * volumetric_clear_sh
GPUShader * EEVEE_shaders_effect_maxz_copydepth_sh_get(void)
char datatoc_lightprobe_grid_display_vert_glsl[]
GPUShader * EEVEE_shaders_ggx_refraction_lut_sh_get(void)
char datatoc_lightprobe_grid_display_frag_glsl[]
char datatoc_renderpass_lib_glsl[]
char datatoc_lightprobe_filter_diffuse_frag_glsl[]
struct GPUShader * probe_grid_display_sh
struct GPUShader * maxz_downdepth_sh
void EEVEE_shaders_free(void)
char datatoc_gpu_shader_codegen_lib_glsl[]
char datatoc_prepass_frag_glsl[]
char datatoc_effect_temporal_aa_glsl[]
struct GPUShader * dof_bokeh_sh
char datatoc_cubemap_lib_glsl[]
struct GPUShader * reflection_trace
char datatoc_volumetric_geom_glsl[]
DRWShaderLibrary * EEVEE_shader_lib_get(void)
char datatoc_closure_type_lib_glsl[]
char datatoc_surface_lib_glsl[]
char datatoc_background_vert_glsl[]
struct GPUShader * dof_downsample_sh
char datatoc_effect_downsample_cube_frag_glsl[]
GPUShader * EEVEE_shaders_effect_motion_blur_hair_sh_get(void)
struct GPUShader * probe_filter_diffuse_sh
GPUShader * EEVEE_shaders_depth_of_field_gather_get(EEVEE_DofGatherPass pass, bool b_use_bokeh_tx)
GPUShader * EEVEE_shaders_effect_motion_blur_object_sh_get(void)
char datatoc_surface_frag_glsl[]
char datatoc_closure_eval_lib_glsl[]
char datatoc_effect_velocity_tile_frag_glsl[]
char datatoc_effect_dof_lib_glsl[]
struct GPUShader * downsample_cube_sh
char datatoc_effect_dof_dilate_tiles_frag_glsl[]
bNodeSocketValueFloat * metallic_socket
GPUShader * EEVEE_shaders_effect_ambient_occlusion_debug_sh_get(void)
static char * eevee_get_defines(int options)
struct GPUShader * EEVEE_shaders_subsurface_second_pass_sh_get()
char datatoc_common_uniforms_lib_glsl[]
char datatoc_bsdf_lut_frag_glsl[]
struct GPUShader * motion_blur_hair_sh
struct GPUShader * taa_resolve_reproject_sh
char datatoc_effect_velocity_resolve_frag_glsl[]
char datatoc_shadow_vert_glsl[]
GPUShader * EEVEE_shaders_bloom_upsample_get(bool high_quality)
char datatoc_effect_gtao_frag_glsl[]
struct GPUShader * bloom_resolve_sh[2]
char datatoc_effect_dof_downsample_frag_glsl[]
char datatoc_cryptomatte_frag_glsl[]
GPUShader * EEVEE_shaders_depth_of_field_setup_get(void)
struct GPUShader * reflection_resolve
char datatoc_ssr_lib_glsl[]
struct GPUShader * velocity_tiles_sh
char datatoc_effect_dof_filter_frag_glsl[]
char datatoc_effect_dof_bokeh_frag_glsl[]
char datatoc_irradiance_lib_glsl[]
char datatoc_closure_eval_diffuse_lib_glsl[]
char datatoc_effect_motion_blur_frag_glsl[]
GPUShader * EEVEE_shaders_taa_resolve_sh_get(EEVEE_EffectsFlag enabled_effects)
char datatoc_effect_subsurface_frag_glsl[]
char datatoc_lightprobe_cube_display_vert_glsl[]
struct GPUShader * velocity_tiles_expand_sh
char datatoc_volumetric_resolve_frag_glsl[]
World * EEVEE_world_default_get(void)
GPUShader * EEVEE_shaders_bloom_resolve_get(bool high_quality)
static const char * filter_defines
struct GPUShader * EEVEE_shaders_volumes_scatter_with_lights_sh_get()
GPUShader * EEVEE_shaders_studiolight_background_sh_get(void)
char datatoc_cryptomatte_lib_glsl[]
struct GPUShader * minz_downdepth_sh
char datatoc_effect_reflection_lib_glsl[]
char datatoc_common_utiltex_lib_glsl[]
struct GPUShader * update_noise_sh
struct GPUShader * bloom_downsample_sh[2]
GPUShader * EEVEE_shaders_probe_filter_diffuse_sh_get(void)
struct GPUShader * maxz_downdepth_layer_sh
struct GPUShader * dof_gather_sh[DOF_GATHER_MAX_PASS][2]
struct GPUShader * ggx_refraction_lut_sh
GPUShader * EEVEE_shaders_depth_of_field_reduce_get(bool b_is_copy_pass)
static struct GPUMaterial * eevee_material_get_ex(struct Scene *UNUSED(scene), Material *ma, World *wo, int options, bool deferred)
struct GPUShader * maxz_copydepth_layer_sh
char datatoc_volumetric_scatter_frag_glsl[]
GPUShader * EEVEE_shaders_bloom_downsample_get(bool high_quality)
GPUShader * EEVEE_shaders_depth_of_field_flatten_tiles_get(void)
struct GPUShader * gtao_debug_sh
struct GPUShader * volumetric_integration_sh
struct GPUShader * shadow_accum_sh
struct GPUShader * bloom_upsample_sh[2]
GPUShader * EEVEE_shaders_effect_downsample_sh_get(void)
GPUShader * EEVEE_shaders_effect_mist_sh_get(void)
struct GPUShader * gtao_sh
Material * EEVEE_material_default_diffuse_get(void)
struct GPUShader * maxz_downlevel_sh
struct GPUShader * shadow_sh
GPUShader * EEVEE_shaders_effect_minz_downdepth_sh_get(void)
GPUShader * EEVEE_shaders_effect_ambient_occlusion_sh_get(void)
char datatoc_effect_mist_frag_glsl[]
char * surface_geom_barycentric
struct GPUShader * EEVEE_shaders_effect_reflection_trace_sh_get(void)
struct GPUShader * dof_reduce_sh[2]
static struct @211 e_data
char datatoc_effect_dof_resolve_frag_glsl[]
char datatoc_lightprobe_planar_display_vert_glsl[]
GPUShader * EEVEE_shaders_probe_filter_glossy_sh_get(void)
char datatoc_lightprobe_planar_downsample_frag_glsl[]
Material * EEVEE_material_default_glossy_get(void)
struct GPUShader * EEVEE_shaders_effect_reflection_resolve_sh_get(void)
struct GPUShader * EEVEE_shaders_subsurface_translucency_sh_get()
struct GPUShader * dof_dilate_tiles_sh[2]
struct GPUShader * probe_grid_fill_sh
char datatoc_ltc_lib_glsl[]
GPUShader * EEVEE_shaders_effect_maxz_downdepth_layer_sh_get(void)
struct bNodeTree * EEVEE_shader_default_surface_nodetree(Material *ma)
char datatoc_effect_dof_setup_frag_glsl[]
struct GPUShader * cryptomatte_sh[2]
char datatoc_common_hair_lib_glsl[]
char datatoc_surface_vert_glsl[]
char datatoc_lightprobe_filter_visibility_frag_glsl[]
GPUShader * EEVEE_shaders_effect_minz_copydepth_sh_get(void)
GPUShader * EEVEE_shaders_depth_of_field_resolve_get(bool b_use_bokeh_tx, bool b_use_hq_gather)
char datatoc_effect_dof_flatten_tiles_frag_glsl[]
char datatoc_effect_minmaxz_frag_glsl[]
char datatoc_common_view_lib_glsl[]
struct GPUShader * postprocess_sh
char datatoc_world_vert_glsl[]
static char * eevee_get_vert(int options)
struct GPUShader * ggx_lut_sh
GPUShader * EEVEE_shaders_effect_maxz_downlevel_sh_get(void)
char datatoc_effect_reflection_trace_frag_glsl[]
char datatoc_lightprobe_planar_downsample_vert_glsl[]
struct GPUShader * gtao_layer_sh
struct GPUMaterial * EEVEE_material_default_get(struct Scene *scene, Material *ma, int options)
char datatoc_default_frag_glsl[]
char datatoc_lightprobe_planar_downsample_geom_glsl[]
char datatoc_update_noise_frag_glsl[]
struct GPUShader * motion_blur_object_sh
struct bNodeTree * EEVEE_shader_default_world_nodetree(World *wo)
struct GPUShader * sss_sh[3]
struct GPUShader * probe_planar_downsample_sh
struct GPUShader * dof_flatten_tiles_sh
char datatoc_effect_dof_scatter_frag_glsl[]
char datatoc_random_lib_glsl[]
char * surface_prepass_frag
GPUShader * EEVEE_shaders_effect_minz_downlevel_sh_get(void)
GPUShader * EEVEE_shaders_probe_cube_display_sh_get(void)
GPUShader * EEVEE_shaders_probe_grid_fill_sh_get(void)
struct GPUShader * mist_sh
static char * eevee_get_frag(int options)
struct GPUShader * studiolight_probe_sh
struct GPUShader * probe_cube_display_sh
char datatoc_common_math_lib_glsl[]
GPUShader * EEVEE_shaders_bloom_blit_get(bool high_quality)
char datatoc_lightprobe_grid_fill_frag_glsl[]
GPUShader * EEVEE_shaders_effect_maxz_copydepth_layer_sh_get(void)
GPUShader * EEVEE_shaders_update_noise_sh_get(void)
GPUShader * EEVEE_shaders_studiolight_probe_sh_get(void)
struct GPUShader * bloom_blit_sh[2]
char datatoc_bsdf_sampling_lib_glsl[]
struct GPUShader * probe_planar_display_sh
struct GPUShader * volumetric_accum_sh
struct GPUShader * minz_downlevel_sh
char datatoc_lightprobe_lib_glsl[]
char datatoc_shadow_frag_glsl[]
GPUShader * EEVEE_shaders_effect_downsample_cube_sh_get(void)
struct GPUShader * EEVEE_shaders_shadow_accum_sh_get()
struct GPUShader * EEVEE_shaders_volumes_integration_sh_get()
struct GPUShader * probe_filter_visibility_sh
struct GPUShader * downsample_sh
struct GPUShader * motion_blur_sh
GPUShader * EEVEE_shaders_depth_of_field_bokeh_get(void)
GPUShader * EEVEE_shaders_ggx_lut_sh_get(void)
char datatoc_surface_geom_glsl[]
struct GPUShader * taa_resolve_sh
struct @211::@212 surface
struct GPUShader * EEVEE_shaders_volumes_accum_sh_get()
struct GPUMaterial * EEVEE_material_get(EEVEE_Data *vedata, struct Scene *scene, Material *ma, World *wo, int options)
bNodeSocketValueFloat * specular_socket
Material * EEVEE_material_default_error_get(void)
struct GPUShader * dof_setup_sh
struct GPUShader * studiolight_background_sh
char datatoc_raytrace_lib_glsl[]
GPUShader * EEVEE_shaders_depth_of_field_filter_get(void)
char datatoc_effect_bloom_frag_glsl[]
char datatoc_closure_eval_translucent_lib_glsl[]
struct GPUShader * EEVEE_shaders_subsurface_first_pass_sh_get()
struct GPUShader * velocity_resolve_sh
char datatoc_octahedron_lib_glsl[]
struct GPUShader * maxz_copydepth_sh
GPUShader * EEVEE_shaders_velocity_resolve_sh_get(void)
GPUShader * EEVEE_shaders_renderpasses_post_process_sh_get(void)
char datatoc_closure_eval_surface_lib_glsl[]
char datatoc_object_motion_frag_glsl[]
GPUShader * EEVEE_shaders_cryptomatte_sh_get(bool is_hair)
char datatoc_bsdf_common_lib_glsl[]
GPUShader * EEVEE_shaders_effect_minz_downdepth_layer_sh_get(void)
bNodeSocketValueRGBA * color_socket
char datatoc_lightprobe_planar_display_frag_glsl[]
char datatoc_lightprobe_filter_glossy_frag_glsl[]
GPUShader * EEVEE_shaders_depth_of_field_dilate_tiles_get(bool b_pass)
GPUShader * EEVEE_shaders_effect_maxz_downdepth_sh_get(void)
GPUShader * EEVEE_shaders_probe_grid_display_sh_get(void)
struct GPUShader * scatter_with_lights_sh
struct GPUShader * EEVEE_shaders_volumes_resolve_sh_get(bool accum)
struct GPUShader * color_copy_sh
GPUShader * EEVEE_shaders_effect_motion_blur_sh_get(void)
static void eevee_material_post_eval(void *UNUSED(thunk), GPUMaterial *mat, GPUCodegenOutput *codegen)
struct GPUShader * minz_copydepth_sh
GPUShader * EEVEE_shaders_probe_planar_downsample_sh_get(void)
GPUShader * EEVEE_shaders_effect_color_copy_sh_get(void)
char datatoc_volumetric_integration_frag_glsl[]
struct GPUShader * dof_scatter_sh[2][2]
char datatoc_lookdev_world_frag_glsl[]
char datatoc_closure_eval_volume_lib_glsl[]
char datatoc_cryptomatte_vert_glsl[]
char datatoc_lights_lib_glsl[]
struct GPUShader * dof_filter_sh
char datatoc_effect_reflection_resolve_frag_glsl[]
char datatoc_volumetric_frag_glsl[]
char datatoc_volumetric_vert_glsl[]
char datatoc_lightprobe_geom_glsl[]
char datatoc_effect_dof_reduce_frag_glsl[]
struct GPUShader * minz_downdepth_layer_sh
char datatoc_volumetric_accum_frag_glsl[]
bNodeSocketValueFloat * roughness_socket
char datatoc_effect_downsample_frag_glsl[]
struct GPUShader * probe_filter_glossy_sh
char datatoc_ambient_occlusion_lib_glsl[]
char datatoc_shadow_accum_frag_glsl[]
GPUShader * EEVEE_shaders_probe_filter_visibility_sh_get(void)
char datatoc_renderpass_postprocess_frag_glsl[]
struct GPUShader * dof_resolve_sh[2][2]
char datatoc_volumetric_lib_glsl[]
char datatoc_common_math_geom_lib_glsl[]
GPUShader * EEVEE_shaders_depth_of_field_scatter_get(bool b_is_foreground, bool b_use_bokeh_tx)
char datatoc_effect_translucency_frag_glsl[]
struct GPUShader * scatter_sh
void EEVEE_shaders_material_shaders_init(void)
char datatoc_closure_eval_refraction_lib_glsl[]
GPUShader * EEVEE_shaders_depth_of_field_downsample_get(void)
char datatoc_lightprobe_vert_glsl[]
static void eevee_shader_library_ensure(void)
struct GPUShader * volumetric_resolve_sh[2]
struct GPUShader * EEVEE_shaders_shadow_sh_get()
struct GPUShader * EEVEE_shaders_volumes_scatter_sh_get()
GPUShader * EEVEE_shaders_effect_motion_blur_velocity_tiles_expand_sh_get(void)
struct GPUShader * lookdev_background
char datatoc_closure_eval_glossy_lib_glsl[]
char datatoc_effect_dof_scatter_vert_glsl[]
ccl_global KernelShaderEvalInput ccl_global float * output
ccl_gpu_kernel_postfix ccl_global float int int int int sh
void(* MEM_freeN)(void *vmemh)
static const pxr::TfToken roughness("roughness", pxr::TfToken::Immortal)
unsigned __int64 uint64_t
struct EEVEE_PrivateData * g_data
eGPUMaterialStatus status
struct bNodeTree * nodetree
struct bNodeTree * nodetree