Blender
V3.3
|
#include "DRW_render.h"
#include "BLI_string_utils.h"
#include "DEG_depsgraph_query.h"
#include "GPU_capabilities.h"
#include "GPU_material.h"
#include "GPU_texture.h"
#include "eevee_private.h"
Go to the source code of this file.
Functions | |
void | EEVEE_subsurface_init (EEVEE_ViewLayerData *UNUSED(sldata), EEVEE_Data *UNUSED(vedata)) |
void | EEVEE_subsurface_draw_init (EEVEE_ViewLayerData *sldata, EEVEE_Data *vedata) |
void | EEVEE_subsurface_output_init (EEVEE_ViewLayerData *UNUSED(sldata), EEVEE_Data *vedata, uint UNUSED(tot_samples)) |
void | EEVEE_subsurface_cache_init (EEVEE_ViewLayerData *sldata, EEVEE_Data *vedata) |
void | EEVEE_subsurface_add_pass (EEVEE_ViewLayerData *sldata, EEVEE_Data *vedata, Material *ma, DRWShadingGroup *shgrp, struct GPUMaterial *gpumat) |
void | EEVEE_subsurface_data_render (EEVEE_ViewLayerData *UNUSED(sldata), EEVEE_Data *vedata) |
void | EEVEE_subsurface_compute (EEVEE_ViewLayerData *sldata, EEVEE_Data *vedata) |
void | EEVEE_subsurface_output_accumulate (EEVEE_ViewLayerData *UNUSED(sldata), EEVEE_Data *vedata) |
Screen space subsurface scattering technique.
Definition in file eevee_subsurface.c.
void EEVEE_subsurface_add_pass | ( | EEVEE_ViewLayerData * | sldata, |
EEVEE_Data * | vedata, | ||
Material * | ma, | ||
DRWShadingGroup * | shgrp, | ||
struct GPUMaterial * | gpumat | ||
) |
Definition at line 163 of file eevee_subsurface.c.
References Material::blend_flag, BLI_assert_msg, EEVEE_ViewLayerData::combined, EEVEE_ViewLayerData::common_ubo, DefaultTextureList::depth, depth_src, DRW_shgroup_call_procedural_triangles(), DRW_shgroup_create(), DRW_shgroup_stencil_mask(), DRW_shgroup_uniform_block, DRW_shgroup_uniform_texture(), DRW_shgroup_uniform_texture_ref(), DRW_shgroup_uniform_texture_ref_ex(), DRW_viewport_texture_list_get(), EEVEE_materials_get_util_tex(), EEVEE_shaders_subsurface_first_pass_sh_get(), EEVEE_shaders_subsurface_second_pass_sh_get(), EEVEE_shaders_subsurface_translucency_sh_get(), EEVEE_StorageList::effects, GPU_depth_blitting_workaround(), GPU_material_sss_profile_get(), GPU_SAMPLER_DEFAULT, EEVEE_ViewLayerData::light_ubo, MA_BL_TRANSLUCENCY, NULL, EEVEE_Data::psl, EEVEE_ViewLayerData::renderpass_ubo, EEVEE_ViewLayerData::shadow_cascade_pool, EEVEE_ViewLayerData::shadow_cube_pool, EEVEE_ViewLayerData::shadow_ubo, EEVEE_EffectsInfo::sss_albedo, EEVEE_EffectsInfo::sss_blur, EEVEE_PassList::sss_blur_ps, EEVEE_EffectsInfo::sss_irradiance, EEVEE_EffectsInfo::sss_radius, EEVEE_PassList::sss_resolve_ps, EEVEE_EffectsInfo::sss_sample_count, EEVEE_EffectsInfo::sss_stencil, EEVEE_EffectsInfo::sss_surface_count, EEVEE_PassList::sss_translucency_ps, state, and EEVEE_Data::stl.
Referenced by material_opaque().
void EEVEE_subsurface_cache_init | ( | EEVEE_ViewLayerData * | sldata, |
EEVEE_Data * | vedata | ||
) |
Screen Space SubSurface Scattering overview TODO
Definition at line 141 of file eevee_subsurface.c.
References EEVEE_ViewLayerData::common_data, DEG_get_evaluated_scene(), DRWContextState::depsgraph, DRW_context_state_get(), DRW_PASS_CREATE, DRW_STATE_BLEND_ADD, DRW_STATE_STENCIL_EQUAL, DRW_STATE_WRITE_COLOR, Scene::eevee, EEVEE_StorageList::effects, EEVEE_Data::psl, EEVEE_PassList::sss_blur_ps, EEVEE_CommonUniformBuffer::sss_jitter_threshold, SceneEEVEE::sss_jitter_threshold, EEVEE_PassList::sss_resolve_ps, EEVEE_EffectsInfo::sss_sample_count, SceneEEVEE::sss_samples, EEVEE_EffectsInfo::sss_surface_count, EEVEE_PassList::sss_translucency_ps, state, and EEVEE_Data::stl.
Referenced by eevee_cache_init(), eevee_lightbake_cache_create(), and EEVEE_render_cache_init().
void EEVEE_subsurface_compute | ( | EEVEE_ViewLayerData * | sldata, |
EEVEE_Data * | vedata | ||
) |
Definition at line 279 of file eevee_subsurface.c.
References clear(), EEVEE_TextureList::color, DRW_draw_pass(), DRW_pass_is_empty(), DRW_stats_group_end(), DRW_stats_group_start(), EFFECT_SSS, EEVEE_StorageList::effects, EEVEE_EffectsInfo::enabled_effects, EEVEE_Data::fbl, GPU_DEPTH_BIT, GPU_depth_blitting_workaround(), GPU_framebuffer_bind(), GPU_framebuffer_blit(), GPU_framebuffer_texture_attach(), GPU_STENCIL_BIT, GPU_texture_compare_mode(), EEVEE_FramebufferList::main_fb, EEVEE_Data::psl, EEVEE_ViewLayerData::shadow_cascade_pool, EEVEE_ViewLayerData::shadow_cube_pool, EEVEE_FramebufferList::sss_blit_fb, EEVEE_FramebufferList::sss_blur_fb, EEVEE_PassList::sss_blur_ps, EEVEE_FramebufferList::sss_resolve_fb, EEVEE_PassList::sss_resolve_ps, EEVEE_FramebufferList::sss_translucency_fb, EEVEE_PassList::sss_translucency_ps, EEVEE_Data::stl, and EEVEE_Data::txl.
Referenced by eevee_draw_scene(), and EEVEE_render_draw().
void EEVEE_subsurface_data_render | ( | EEVEE_ViewLayerData * | UNUSEDsldata, |
EEVEE_Data * | vedata | ||
) |
Definition at line 242 of file eevee_subsurface.c.
References clear(), DRW_draw_pass(), EFFECT_SSS, EEVEE_StorageList::effects, EEVEE_EffectsInfo::enabled_effects, EEVEE_Data::fbl, GPU_framebuffer_bind(), EEVEE_FramebufferList::main_fb, EEVEE_PassList::material_sss_ps, EEVEE_Data::psl, EEVEE_FramebufferList::sss_clear_fb, and EEVEE_Data::stl.
void EEVEE_subsurface_draw_init | ( | EEVEE_ViewLayerData * | sldata, |
EEVEE_Data * | vedata | ||
) |
Definition at line 26 of file eevee_subsurface.c.
References DefaultTextureList::depth, draw_engine_eevee_type, DRW_TEXTURE_FREE_SAFE, DRW_texture_pool_query_2d(), DRW_viewport_size_get(), DRW_viewport_texture_list_get(), EEVEE_RENDER_PASS_DIFFUSE_LIGHT, EEVEE_subsurface_output_init(), EFFECT_SSS, EEVEE_StorageList::effects, EEVEE_EffectsInfo::enabled_effects, EEVEE_Data::fbl, EEVEE_StorageList::g_data, GPU_DEPTH24_STENCIL8, GPU_depth_blitting_workaround(), GPU_R11F_G11F_B10F, GPU_R16F, NULL, EEVEE_PrivateData::render_passes, EEVEE_TextureList::sss_accum, EEVEE_FramebufferList::sss_accum_fb, EEVEE_EffectsInfo::sss_albedo, EEVEE_FramebufferList::sss_blit_fb, EEVEE_EffectsInfo::sss_blur, EEVEE_FramebufferList::sss_blur_fb, EEVEE_FramebufferList::sss_clear_fb, EEVEE_EffectsInfo::sss_irradiance, EEVEE_EffectsInfo::sss_radius, EEVEE_FramebufferList::sss_resolve_fb, EEVEE_EffectsInfo::sss_stencil, EEVEE_FramebufferList::sss_translucency_fb, EEVEE_Data::stl, and EEVEE_Data::txl.
Referenced by eevee_cache_finish(), eevee_lightbake_cache_create(), and eevee_render_to_image().
void EEVEE_subsurface_init | ( | EEVEE_ViewLayerData * | UNUSEDsldata, |
EEVEE_Data * | UNUSEDvedata | ||
) |
Definition at line 22 of file eevee_subsurface.c.
void EEVEE_subsurface_output_accumulate | ( | EEVEE_ViewLayerData * | UNUSEDsldata, |
EEVEE_Data * | vedata | ||
) |
Definition at line 330 of file eevee_subsurface.c.
References DRW_draw_pass(), EFFECT_SSS, EEVEE_StorageList::effects, EEVEE_EffectsInfo::enabled_effects, EEVEE_Data::fbl, GPU_framebuffer_bind(), GPU_framebuffer_blit(), GPU_STENCIL_BIT, EEVEE_FramebufferList::main_fb, NULL, EEVEE_Data::psl, EEVEE_FramebufferList::sss_accum_fb, EEVEE_PassList::sss_resolve_ps, and EEVEE_Data::stl.
void EEVEE_subsurface_output_init | ( | EEVEE_ViewLayerData * | UNUSEDsldata, |
EEVEE_Data * | vedata, | ||
uint | UNUSEDtot_samples | ||
) |
Definition at line 102 of file eevee_subsurface.c.
References clear(), DefaultTextureList::depth, DRW_texture_ensure_fullscreen_2d(), DRW_viewport_texture_list_get(), EEVEE_StorageList::effects, EEVEE_Data::fbl, GPU_depth_blitting_workaround(), GPU_framebuffer_bind(), GPU_RGBA32F, NULL, EEVEE_TextureList::sss_accum, EEVEE_FramebufferList::sss_accum_fb, EEVEE_EffectsInfo::sss_stencil, EEVEE_Data::stl, EEVEE_EffectsInfo::taa_current_sample, and EEVEE_Data::txl.
Referenced by EEVEE_subsurface_draw_init().