Blender
V3.3
|
#include "DRW_render.h"
#include "BLI_alloca.h"
#include "BLI_ghash.h"
#include "BLI_listbase.h"
#include "BLI_math_bits.h"
#include "BLI_memblock.h"
#include "BLI_rand.h"
#include "BLI_string_utils.h"
#include "BKE_paint.h"
#include "BKE_particle.h"
#include "DNA_curves_types.h"
#include "DNA_modifier_types.h"
#include "DNA_view3d_types.h"
#include "DNA_world_types.h"
#include "GPU_material.h"
#include "DEG_depsgraph_query.h"
#include "eevee_engine.h"
#include "eevee_lut.h"
#include "eevee_private.h"
Go to the source code of this file.
Classes | |
struct | EeveeMaterialCache |
Macros | |
#define | RUNTIME_LUT_CREATION 0 |
#define | EEVEE_PASS_CREATE(pass, state) |
#define | EEVEE_CLIP_PASS_CREATE(pass, state) |
#define | ADD_SHGROUP_CALL(shgrp, ob, geom, oedata) |
#define | ADD_SHGROUP_CALL_SAFE(shgrp, ob, geom, oedata) |
#define | MATCACHE_AS_ARRAY(matcache, member, materials_len, output_array) |
Typedefs | |
typedef struct EeveeMaterialCache | EeveeMaterialCache |
Variables | |
struct { | |
struct GPUTexture * util_tex | |
struct GPUTexture * noise_tex | |
float noise_offsets [3] | |
} | e_data = {NULL} |
#define ADD_SHGROUP_CALL | ( | shgrp, | |
ob, | |||
geom, | |||
oedata | |||
) |
Definition at line 776 of file eevee_materials.c.
#define ADD_SHGROUP_CALL_SAFE | ( | shgrp, | |
ob, | |||
geom, | |||
oedata | |||
) |
Definition at line 786 of file eevee_materials.c.
#define MATCACHE_AS_ARRAY | ( | matcache, | |
member, | |||
materials_len, | |||
output_array | |||
) |
Definition at line 793 of file eevee_materials.c.
#define RUNTIME_LUT_CREATION 0 |
Definition at line 141 of file eevee_materials.c.
typedef struct EeveeMaterialCache EeveeMaterialCache |
Definition at line 136 of file eevee_materials.c.
References blue_noise, DRW_texture_create_2d(), e_data, and GPU_RGBA16F.
Referenced by EEVEE_materials_init().
Definition at line 143 of file eevee_materials.c.
References blue_noise, bsdf_split_sum_ggx, btdf_split_sum_ggx, cosf, DRW_TEX_FILTER, DRW_TEX_WRAP, DRW_texture_create_2d_array(), e_data, EEVEE_lut_update_ggx_brdf(), EEVEE_lut_update_ggx_btdf(), float(), GPU_RGBA16F, ltc_disk_integral, ltc_mag_ggx, ltc_mat_ggx, M_PI, MEM_freeN, MEM_mallocN, and sinf.
Referenced by EEVEE_materials_init().
void EEVEE_material_bind_resources | ( | DRWShadingGroup * | shgrp, |
struct GPUMaterial * | gpumat, | ||
EEVEE_ViewLayerData * | sldata, | ||
EEVEE_Data * | vedata, | ||
const int * | ssr_id, | ||
const float * | refract_depth, | ||
const float | alpha_clip_threshold, | ||
bool | use_ssrefraction, | ||
bool | use_alpha_blend | ||
) |
ssr_id | Can be null to disable SSR contribution. |
Definition at line 64 of file eevee_materials.c.
References EEVEE_ViewLayerData::common_ubo, LightCache::cube_tx, DRW_shgroup_uniform_block, DRW_shgroup_uniform_block_ref, DRW_shgroup_uniform_float_copy(), DRW_shgroup_uniform_int_copy(), DRW_shgroup_uniform_texture(), DRW_shgroup_uniform_texture_ref(), e_data, EEVEE_StorageList::effects, EEVEE_TextureList::filtered_radiance, EEVEE_StorageList::g_data, GPU_material_flag_get(), GPU_MATFLAG_AO, GPU_MATFLAG_DIFFUSE, GPU_MATFLAG_GLOSSY, GPU_MATFLAG_REFRACT, LightCache::grid_tx, EEVEE_ViewLayerData::grid_ubo, EEVEE_EffectsInfo::gtao_horizons, EEVEE_PrivateData::light_cache, EEVEE_ViewLayerData::light_ubo, EEVEE_TextureList::maxzbuffer, EEVEE_TextureList::planar_pool, EEVEE_ViewLayerData::planar_ubo, EEVEE_ViewLayerData::probe_ubo, EEVEE_PrivateData::renderpass_ubo, EEVEE_ViewLayerData::shadow_cascade_pool, EEVEE_ViewLayerData::shadow_cube_pool, EEVEE_ViewLayerData::shadow_ubo, EEVEE_Data::stl, LightCacheTexture::tex, EEVEE_Data::txl, EEVEE_EffectsInfo::volume_scatter, and EEVEE_EffectsInfo::volume_transmit.
Referenced by eevee_lookdev_hdri_preview_init(), material_opaque(), material_shadow(), and material_transparent().
BLI_INLINE EeveeMaterialCache eevee_material_cache_get | ( | EEVEE_Data * | vedata, |
EEVEE_ViewLayerData * | sldata, | ||
Object * | ob, | ||
int | slot, | ||
bool | is_hair | ||
) |
Definition at line 752 of file eevee_materials.c.
References ATTR_FALLTHROUGH, Object::base_flag, BASE_HOLDOUT, Material::blend_method, eevee_object_material_get(), MA_BM_BLEND, MA_BM_CLIP, MA_BM_HASHED, MA_BM_SOLID, material_opaque(), material_transparent(), OB_HOLDOUT, and Object::visibility_flag.
Referenced by EEVEE_materials_cache_populate(), EEVEE_object_curves_cache_populate(), and EEVEE_particle_hair_cache_populate().
void EEVEE_material_output_accumulate | ( | EEVEE_ViewLayerData * | sldata, |
EEVEE_Data * | vedata | ||
) |
Definition at line 1064 of file eevee_materials.c.
References EEVEE_TextureList::aov_surface_accum, EEVEE_ViewLayerData::aovs, EEVEE_PassList::background_accum_ps, EEVEE_ViewLayerData::combined, EEVEE_ViewLayerData::common_data, EEVEE_ViewLayerData::common_ubo, EEVEE_ViewLayerData::diff_color, EEVEE_TextureList::diff_color_accum, EEVEE_ViewLayerData::diff_light, EEVEE_TextureList::diff_light_accum, DRW_TEXTURE_FREE_SAFE, EEVEE_reflection_output_accumulate(), EEVEE_RENDER_PASS_AOV, EEVEE_RENDER_PASS_DIFFUSE_COLOR, EEVEE_RENDER_PASS_DIFFUSE_LIGHT, EEVEE_RENDER_PASS_EMIT, EEVEE_RENDER_PASS_ENVIRONMENT, EEVEE_RENDER_PASS_SPECULAR_COLOR, EEVEE_RENDER_PASS_SPECULAR_LIGHT, EEVEE_subsurface_output_accumulate(), EFFECT_SSR, EFFECT_SSS, EEVEE_StorageList::effects, EEVEE_ViewLayerData::emit, EEVEE_TextureList::emit_accum, EEVEE_EffectsInfo::enabled_effects, EEVEE_TextureList::env_accum, EEVEE_ViewLayerData::environment, EEVEE_Data::fbl, EEVEE_StorageList::g_data, GPU_framebuffer_bind(), GPU_uniformbuf_update(), EEVEE_FramebufferList::main_fb, EEVEE_FramebufferList::material_accum_fb, EEVEE_PassList::material_accum_ps, material_renderpass_accumulate(), MAX_AOVS, NULL, EEVEE_PrivateData::num_aovs_used, EEVEE_Data::psl, EEVEE_PrivateData::render_passes, EEVEE_ViewLayerData::renderpass_ubo, EEVEE_PrivateData::renderpass_ubo, EEVEE_ViewLayerData::spec_color, EEVEE_TextureList::spec_color_accum, EEVEE_ViewLayerData::spec_light, EEVEE_TextureList::spec_light_accum, EEVEE_CommonUniformBuffer::ssr_toggle, EEVEE_Data::stl, and EEVEE_Data::txl.
Referenced by EEVEE_renderpasses_output_accumulate().
void EEVEE_material_output_init | ( | EEVEE_ViewLayerData * | sldata, |
EEVEE_Data * | vedata, | ||
uint | tot_samples | ||
) |
Definition at line 994 of file eevee_materials.c.
References EEVEE_TextureList::aov_surface_accum, EEVEE_TextureList::diff_color_accum, EEVEE_TextureList::diff_light_accum, DRW_viewport_texture_list_get(), EEVEE_reflection_output_init(), EEVEE_RENDER_PASS_AOV, EEVEE_RENDER_PASS_DIFFUSE_COLOR, EEVEE_RENDER_PASS_DIFFUSE_LIGHT, EEVEE_RENDER_PASS_EMIT, EEVEE_RENDER_PASS_ENVIRONMENT, EEVEE_RENDER_PASS_SPECULAR_COLOR, EEVEE_RENDER_PASS_SPECULAR_LIGHT, EFFECT_SSR, EEVEE_StorageList::effects, EEVEE_TextureList::emit_accum, EEVEE_EffectsInfo::enabled_effects, EEVEE_TextureList::env_accum, EEVEE_Data::fbl, EEVEE_StorageList::g_data, GPU_RGBA16F, GPU_RGBA32F, EEVEE_FramebufferList::material_accum_fb, material_renderpass_init(), EEVEE_PrivateData::num_aovs_used, EEVEE_PrivateData::render_passes, EEVEE_TextureList::spec_color_accum, EEVEE_TextureList::spec_light_accum, EEVEE_Data::stl, and EEVEE_Data::txl.
Referenced by EEVEE_renderpasses_output_init().
void EEVEE_material_renderpasses_init | ( | EEVEE_Data * | vedata | ) |
Definition at line 974 of file eevee_materials.c.
References EEVEE_RENDER_PASS_DIFFUSE_COLOR, EEVEE_RENDER_PASS_DIFFUSE_LIGHT, EEVEE_RENDER_PASS_SPECULAR_COLOR, EEVEE_RENDER_PASS_SPECULAR_LIGHT, EEVEE_StorageList::g_data, EEVEE_PrivateData::render_passes, and EEVEE_Data::stl.
Referenced by EEVEE_renderpasses_init().
void EEVEE_materials_cache_finish | ( | EEVEE_ViewLayerData * | UNUSEDsldata, |
EEVEE_Data * | vedata | ||
) |
Definition at line 953 of file eevee_materials.c.
References BLI_ghash_free(), EFFECT_SSS, EEVEE_StorageList::effects, EEVEE_EffectsInfo::enabled_effects, EEVEE_StorageList::g_data, EEVEE_PrivateData::material_hash, NULL, SET_FLAG_FROM_TEST, EEVEE_EffectsInfo::sss_surface_count, and EEVEE_Data::stl.
Referenced by eevee_cache_finish(), eevee_lightbake_cache_create(), and eevee_render_to_image().
void EEVEE_materials_cache_init | ( | EEVEE_ViewLayerData * | sldata, |
EEVEE_Data * | vedata | ||
) |
Definition at line 348 of file eevee_materials.c.
References ARRAY_SIZE, EEVEE_PassList::background_accum_ps, EEVEE_PrivateData::background_alpha, EEVEE_PassList::background_ps, BLI_ghash_ptr_new(), BLI_memblock_clear(), BLI_memblock_create, EEVEE_ViewLayerData::common_ubo, LightCache::cube_tx, DRW_cache_fullscreen_quad_get(), DRW_context_state_get(), DRW_PASS_CREATE, DRW_pass_create_instance(), DRW_PASS_INSTANCE_CREATE, DRW_pass_link(), DRW_shgroup_call, DRW_shgroup_create(), DRW_shgroup_material_create(), DRW_shgroup_uniform_block, DRW_shgroup_uniform_block_ref, DRW_shgroup_uniform_float(), DRW_shgroup_uniform_texture(), DRW_shgroup_uniform_texture_ref(), DRW_shgroup_uniform_vec3(), DRW_STATE_BLEND_ADD_FULL, DRW_STATE_CLIP_PLANES, DRW_STATE_DEPTH_EQUAL, DRW_STATE_DEPTH_LESS_EQUAL, DRW_STATE_STENCIL_ALWAYS, DRW_STATE_WRITE_COLOR, DRW_STATE_WRITE_DEPTH, DRW_STATE_WRITE_STENCIL, e_data, EEVEE_CLIP_PASS_CREATE, EEVEE_lookdev_cache_init(), EEVEE_material_get(), EEVEE_PASS_CREATE, EEVEE_shaders_update_noise_sh_get(), EEVEE_world_default_get(), EEVEE_StorageList::g_data, LightCache::grid_tx, EEVEE_ViewLayerData::grid_ubo, EEVEE_PrivateData::light_cache, EEVEE_ViewLayerData::light_ubo, material, EEVEE_PassList::material_accum_ps, EEVEE_ViewLayerData::material_cache, EEVEE_PassList::material_cull_ps, EEVEE_PrivateData::material_hash, EEVEE_PassList::material_ps, EEVEE_PassList::material_sss_cull_ps, EEVEE_PassList::material_sss_ps, EEVEE_TextureList::maxzbuffer, NULL, options, GPUMaterial::pass, EEVEE_TextureList::planar_pool, EEVEE_ViewLayerData::planar_ubo, EEVEE_ViewLayerData::probe_ubo, EEVEE_PrivateData::renderpass_ubo, scene, DRWContextState::scene, sh, EEVEE_ViewLayerData::shadow_cascade_pool, EEVEE_ViewLayerData::shadow_cube_pool, EEVEE_ViewLayerData::shadow_ubo, state, LightCacheTexture::tex, EEVEE_PassList::transparent_pass, EEVEE_Data::txl, EEVEE_PassList::update_noise_pass, VAR_WORLD_BACKGROUND, world, and Scene::world.
Referenced by eevee_cache_init(), eevee_lightbake_cache_create(), and EEVEE_render_cache_init().
void EEVEE_materials_cache_populate | ( | EEVEE_Data * | vedata, |
EEVEE_ViewLayerData * | sldata, | ||
Object * | ob, | ||
bool * | cast_shadow | ||
) |
Definition at line 798 of file eevee_materials.c.
References ADD_SHGROUP_CALL, ADD_SHGROUP_CALL_SAFE, Object::base_flag, BASE_FROM_DUPLI, BKE_sculptsession_use_pbvh_draw(), BLI_array_alloca, DRW_cache_object_material_count_get(), DRW_cache_object_surface_material_get(), DRW_context_state_get(), DRW_shgroup_call_sculpt_with_materials(), DRW_state_is_image_render(), DRW_state_is_scene_render(), Object::dt, eevee_material_cache_get(), EEVEE_motion_blur_cache_populate(), EEVEE_object_data_ensure(), EEVEE_volumes_cache_object_add(), ELEM, GPU_material_has_surface_output(), GPU_material_has_volume_output(), GPUBatch, MATCACHE_AS_ARRAY, NULL, EEVEE_ObjectEngineData::ob, OB_MBALL, OB_MESH, OB_SOLID, OB_SURF, EEVEE_ViewLayerData::probes, DRWContextState::rv3d, scene, DRWContextState::scene, EeveeMaterialCache::shading_gpumat, EeveeMaterialCache::shadow_grp, EEVEE_ObjectEngineData::test_data, Object::type, and EEVEE_LightProbesInfo::vis_data.
Referenced by EEVEE_cache_populate(), and EEVEE_render_cache().
Definition at line 964 of file eevee_materials.c.
References DRW_TEXTURE_FREE_SAFE, and e_data.
Referenced by eevee_engine_free().
struct GPUTexture* EEVEE_materials_get_util_tex | ( | void | ) |
Definition at line 59 of file eevee_materials.c.
References e_data.
Referenced by dof_gather_pass_init(), dof_recombine_pass_init(), EEVEE_motion_blur_cache_init(), EEVEE_occlusion_cache_init(), EEVEE_occlusion_output_init(), EEVEE_screen_raytrace_cache_init(), EEVEE_shadow_output_init(), and EEVEE_subsurface_add_pass().
void EEVEE_materials_init | ( | EEVEE_ViewLayerData * | sldata, |
EEVEE_Data * | vedata, | ||
EEVEE_StorageList * | stl, | ||
EEVEE_FramebufferList * | fbl | ||
) |
Definition at line 219 of file eevee_materials.c.
References EEVEE_CommonUniformBuffer::alpha_hash_offset, EEVEE_CommonUniformBuffer::alpha_hash_scale, AOV_CONFLICT, EEVEE_PrivateData::aov_hash, EEVEE_ViewLayerData::aovs, ViewLayer::aovs, BLI_halton_1d(), EEVEE_ViewLayerData::combined, EEVEE_ViewLayerData::common_data, data, EEVEE_ViewLayerData::diff_color, EEVEE_ViewLayerData::diff_light, DRW_context_state_get(), DRW_state_is_image_render(), DRW_UBO_FREE_SAFE, e_data, EEVEE_AOV_HASH_ALL, eevee_init_noise_texture(), eevee_init_util_texture(), EEVEE_material_get(), EEVEE_RENDER_PASS_AOV, EEVEE_RENDER_PASS_ENVIRONMENT, EEVEE_renderpasses_aov_hash(), EEVEE_shaders_material_shaders_init(), EFFECT_TAA, EEVEE_StorageList::effects, EEVEE_ViewLayerData::emit, EEVEE_EffectsInfo::enabled_effects, EEVEE_ViewLayerData::environment, float(), EEVEE_StorageList::g_data, g_data, GPU_uniformbuf_create_ex(), GPU_uniformbuf_update(), LISTBASE_FOREACH, MAX_AOVS, NULL, r, EEVEE_PrivateData::render_passes, EEVEE_ViewLayerData::renderpass_ubo, scene, DRWContextState::scene, EEVEE_ViewLayerData::spec_color, EEVEE_ViewLayerData::spec_light, EEVEE_EffectsInfo::taa_current_sample, EEVEE_FramebufferList::update_noise_fb, World::use_nodes, VAR_WORLD_BACKGROUND, DRWContextState::view_layer, and Scene::world.
Referenced by eevee_draw_scene(), eevee_engine_init(), eevee_lightbake_cache_create(), EEVEE_render_draw(), and EEVEE_render_modules_init().
void EEVEE_object_curves_cache_populate | ( | EEVEE_Data * | vedata, |
EEVEE_ViewLayerData * | sldata, | ||
Object * | ob, | ||
bool * | cast_shadow | ||
) |
Definition at line 930 of file eevee_materials.c.
References CURVES_MATERIAL_NR, EeveeMaterialCache::depth_grp, EeveeMaterialCache::depth_grp_p, DRW_shgroup_curves_create_sub(), eevee_material_cache_get(), EEVEE_motion_blur_curves_cache_populate(), NULL, EeveeMaterialCache::shading_gpumat, EeveeMaterialCache::shading_grp, EeveeMaterialCache::shading_grp_p, EeveeMaterialCache::shadow_grp, and EeveeMaterialCache::shadow_grp_p.
Referenced by EEVEE_cache_populate(), and EEVEE_render_cache().
BLI_INLINE Material* eevee_object_material_get | ( | Object * | ob, |
int | slot, | ||
bool | holdout | ||
) |
Definition at line 735 of file eevee_materials.c.
References BKE_material_default_holdout(), BKE_material_default_surface(), BKE_material_default_volume(), BKE_object_material_get_eval(), NULL, OB_VOLUME, and Object::type.
Referenced by eevee_material_cache_get().
void EEVEE_particle_hair_cache_populate | ( | EEVEE_Data * | vedata, |
EEVEE_ViewLayerData * | sldata, | ||
Object * | ob, | ||
bool * | cast_shadow | ||
) |
Definition at line 885 of file eevee_materials.c.
References EeveeMaterialCache::depth_grp, EeveeMaterialCache::depth_grp_p, ParticleSettings::draw_as, DRW_context_state_get(), DRW_object_is_visible_psys_in_active_context(), DRW_shgroup_hair_create_sub(), eevee_material_cache_get(), EEVEE_motion_blur_hair_cache_populate(), eModifierType_ParticleSystem, if(), LISTBASE_FOREACH, Object::modifiers, NULL, OB_MESH, DRWContextState::object_edit, ParticleSettings::omat, ParticleSystem::part, PART_DRAW_PATH, PART_DRAW_REND, ParticleSettings::ren_as, EeveeMaterialCache::shading_gpumat, EeveeMaterialCache::shading_grp, EeveeMaterialCache::shading_grp_p, EeveeMaterialCache::shadow_grp, EeveeMaterialCache::shadow_grp_p, and Object::type.
Referenced by EEVEE_cache_populate(), and EEVEE_render_cache().
void EEVEE_update_noise | ( | EEVEE_PassList * | psl, |
EEVEE_FramebufferList * | fbl, | ||
const double | offsets[3] | ||
) |
Definition at line 209 of file eevee_materials.c.
References DRW_draw_pass(), e_data, GPU_framebuffer_bind(), EEVEE_FramebufferList::update_noise_fb, and EEVEE_PassList::update_noise_pass.
Referenced by eevee_draw_scene(), and EEVEE_render_draw().
|
static |
Definition at line 526 of file eevee_materials.c.
References Material::alpha_threshold, Material::blend_flag, Material::blend_method, BLI_assert, BLI_ghash_ensure_p(), BLI_memblock_alloc(), EEVEE_PassList::depth_cull_ps, EeveeMaterialCache::depth_grp, EeveeMaterialCache::depth_grp_p, EEVEE_PassList::depth_ps, EEVEE_PassList::depth_refract_cull_ps, EEVEE_PassList::depth_refract_ps, DRW_context_state_get(), DRW_shgroup_add_material_resources(), DRW_shgroup_create(), DRW_shgroup_create_sub(), DRW_shgroup_uniform_float_copy(), EEVEE_material_bind_resources(), EEVEE_material_default_get(), EEVEE_material_get(), EEVEE_subsurface_add_pass(), EFFECT_REFRACT, EFFECT_SSR, EEVEE_StorageList::effects, ELEM, EEVEE_EffectsInfo::enabled_effects, EEVEE_StorageList::g_data, GPU_material_flag_get(), GPU_material_get_shader(), GPU_MATFLAG_SUBSURFACE, KEY_CULL, KEY_HAIR, KEY_REFRACT, MA_BL_CULL_BACKFACE, MA_BL_SS_REFRACTION, MA_BM_CLIP, MA_BM_HASHED, EEVEE_ViewLayerData::material_cache, EEVEE_PassList::material_cull_ps, EEVEE_PrivateData::material_hash, EEVEE_PassList::material_ps, EEVEE_PassList::material_refract_cull_ps, EEVEE_PassList::material_refract_ps, material_shadow(), EEVEE_PassList::material_sss_cull_ps, EEVEE_PassList::material_sss_ps, Material::nodetree, NULL, EEVEE_Data::psl, Material::refract_depth, scene, DRWContextState::scene, SET_FLAG_FROM_TEST, sh, EeveeMaterialCache::shading_gpumat, EeveeMaterialCache::shading_grp, EeveeMaterialCache::shading_grp_p, EEVEE_Data::stl, Material::use_nodes, VAR_MAT_DEPTH, VAR_MAT_HAIR, VAR_MAT_HASH, VAR_MAT_MESH, and VAR_MAT_REFRACT.
Referenced by eevee_material_cache_get().
|
static |
Definition at line 1039 of file eevee_materials.c.
References clear(), DRW_draw_pass(), GPU_framebuffer_bind(), GPU_framebuffer_texture_attach(), GPU_framebuffer_texture_detach(), EEVEE_FramebufferList::material_accum_fb, EEVEE_PrivateData::renderpass_ubo, and EEVEE_EffectsInfo::taa_current_sample.
Referenced by EEVEE_material_output_accumulate().
|
static |
Definition at line 989 of file eevee_materials.c.
References DRW_texture_ensure_fullscreen_2d().
Referenced by EEVEE_material_output_init().
BLI_INLINE void material_shadow | ( | EEVEE_Data * | vedata, |
EEVEE_ViewLayerData * | sldata, | ||
Material * | ma, | ||
bool | is_hair, | ||
EeveeMaterialCache * | emc | ||
) |
Definition at line 471 of file eevee_materials.c.
References Material::alpha_threshold, Material::blend_shadow, BLI_ghash_ensure_p(), DRW_context_state_get(), DRW_shgroup_add_material_resources(), DRW_shgroup_create(), DRW_shgroup_create_sub(), EEVEE_material_bind_resources(), EEVEE_material_default_get(), EEVEE_material_get(), ELEM, EEVEE_StorageList::g_data, GPU_material_get_shader(), KEY_HAIR, KEY_SHADOW, GPUMaterial::ma, MA_BS_CLIP, MA_BS_HASHED, MA_BS_NONE, EEVEE_PrivateData::material_hash, Material::nodetree, NULL, EEVEE_Data::psl, scene, DRWContextState::scene, SET_FLAG_FROM_TEST, sh, EeveeMaterialCache::shadow_grp, EeveeMaterialCache::shadow_grp_p, EEVEE_PassList::shadow_pass, EEVEE_Data::stl, Material::use_nodes, VAR_MAT_DEPTH, VAR_MAT_HAIR, VAR_MAT_HASH, and VAR_MAT_MESH.
Referenced by material_opaque(), and material_transparent().
|
static |
Definition at line 664 of file eevee_materials.c.
References Material::blend_flag, EeveeMaterialCache::depth_grp, DRW_context_state_get(), DRW_shgroup_add_material_resources(), DRW_shgroup_create(), DRW_shgroup_state_disable(), DRW_shgroup_state_enable(), DRW_STATE_BLEND_CUSTOM, DRW_STATE_CULL_BACK, DRW_STATE_DEPTH_EQUAL, DRW_STATE_DEPTH_LESS_EQUAL, DRW_STATE_WRITE_COLOR, DRW_STATE_WRITE_DEPTH, EEVEE_material_bind_resources(), EEVEE_material_get(), EFFECT_REFRACT, EEVEE_StorageList::effects, EEVEE_EffectsInfo::enabled_effects, GPU_material_get_shader(), MA_BL_CULL_BACKFACE, MA_BL_HIDE_BACKFACE, MA_BL_SS_REFRACTION, material_shadow(), Material::nodetree, NULL, EEVEE_Data::psl, Material::refract_depth, scene, DRWContextState::scene, SET_FLAG_FROM_TEST, sh, EeveeMaterialCache::shading_gpumat, EeveeMaterialCache::shading_grp, EEVEE_Data::stl, EEVEE_PassList::transparent_pass, Material::use_nodes, VAR_MAT_BLEND, VAR_MAT_DEPTH, VAR_MAT_MESH, and VAR_MAT_REFRACT.
Referenced by eevee_material_cache_get().
struct { ... } e_data |
float noise_offsets[3] |
Definition at line 41 of file eevee_materials.c.
struct GPUTexture* noise_tex |
Definition at line 39 of file eevee_materials.c.
struct GPUTexture* util_tex |
Definition at line 38 of file eevee_materials.c.