|
Blender
V2.93
|
#include "DRW_engine.h"#include "DRW_render.h"#include "draw_color_management.h"#include "BKE_global.h"#include "BLI_hash.h"#include "BLI_string_utils.h"#include "DEG_depsgraph_query.h"#include "eevee_private.h"Go to the source code of this file.
Macros | |
| #define | EEVEE_RENDERPASSES_WITH_POST_PROCESSING |
| #define | EEVEE_RENDERPASSES_ALL (EEVEE_RENDERPASSES_WITH_POST_PROCESSING | EEVEE_RENDER_PASS_COMBINED) |
| #define | EEVEE_RENDERPASSES_POST_PROCESS_ON_FIRST_SAMPLE (EEVEE_RENDER_PASS_Z | EEVEE_RENDER_PASS_NORMAL) |
| #define | EEVEE_RENDERPASSES_COLOR_PASS |
| #define | EEVEE_RENDERPASSES_LIGHT_PASS (EEVEE_RENDER_PASS_DIFFUSE_LIGHT | EEVEE_RENDER_PASS_SPECULAR_LIGHT) |
| #define | EEVEE_RENDERPASSES_USES_TRANSMITTANCE |
| #define | ENABLE_FROM_LEGACY(name_legacy, name_eevee) |
Typedefs | |
| typedef enum eRenderPassPostProcessType | eRenderPassPostProcessType |
Enumerations | |
| enum | eRenderPassPostProcessType { PASS_POST_UNDEFINED = 0 , PASS_POST_ACCUMULATED_COLOR = 1 , PASS_POST_ACCUMULATED_COLOR_ALPHA = 2 , PASS_POST_ACCUMULATED_LIGHT = 3 , PASS_POST_ACCUMULATED_VALUE = 4 , PASS_POST_DEPTH = 5 , PASS_POST_AO = 6 , PASS_POST_NORMAL = 7 , PASS_POST_TWO_LIGHT_BUFFERS = 8 , PASS_POST_ACCUMULATED_TRANSMITTANCE_COLOR = 9 } |
Functions | |
| bool | EEVEE_renderpasses_only_first_sample_pass_active (EEVEE_Data *vedata) |
| int | EEVEE_renderpasses_aov_hash (const ViewLayerAOV *aov) |
| void | EEVEE_renderpasses_init (EEVEE_Data *vedata) |
| BLI_INLINE bool | eevee_renderpasses_volumetric_active (const EEVEE_EffectsInfo *effects, const EEVEE_PrivateData *g_data) |
| void | EEVEE_renderpasses_output_init (EEVEE_ViewLayerData *sldata, EEVEE_Data *vedata, uint tot_samples) |
| void | EEVEE_renderpasses_cache_finish (EEVEE_ViewLayerData *sldata, EEVEE_Data *vedata) |
| void | EEVEE_renderpasses_postprocess (EEVEE_ViewLayerData *UNUSED(sldata), EEVEE_Data *vedata, eViewLayerEEVEEPassType renderpass_type, int aov_index) |
| void | EEVEE_renderpasses_output_accumulate (EEVEE_ViewLayerData *sldata, EEVEE_Data *vedata, bool post_effect) |
| void | EEVEE_renderpasses_draw (EEVEE_ViewLayerData *sldata, EEVEE_Data *vedata) |
| void | EEVEE_renderpasses_draw_debug (EEVEE_Data *vedata) |
| #define EEVEE_RENDERPASSES_ALL (EEVEE_RENDERPASSES_WITH_POST_PROCESSING | EEVEE_RENDER_PASS_COMBINED) |
Definition at line 56 of file eevee_renderpasses.c.
| #define EEVEE_RENDERPASSES_COLOR_PASS |
Definition at line 62 of file eevee_renderpasses.c.
| #define EEVEE_RENDERPASSES_LIGHT_PASS (EEVEE_RENDER_PASS_DIFFUSE_LIGHT | EEVEE_RENDER_PASS_SPECULAR_LIGHT) |
Definition at line 65 of file eevee_renderpasses.c.
| #define EEVEE_RENDERPASSES_POST_PROCESS_ON_FIRST_SAMPLE (EEVEE_RENDER_PASS_Z | EEVEE_RENDER_PASS_NORMAL) |
Definition at line 59 of file eevee_renderpasses.c.
| #define EEVEE_RENDERPASSES_USES_TRANSMITTANCE |
Definition at line 68 of file eevee_renderpasses.c.
| #define EEVEE_RENDERPASSES_WITH_POST_PROCESSING |
Definition at line 51 of file eevee_renderpasses.c.
| #define ENABLE_FROM_LEGACY | ( | name_legacy, | |
| name_eevee | |||
| ) |
| typedef enum eRenderPassPostProcessType eRenderPassPostProcessType |
Definition at line 37 of file eevee_renderpasses.c.
| int EEVEE_renderpasses_aov_hash | ( | const ViewLayerAOV * | aov | ) |
Definition at line 80 of file eevee_renderpasses.c.
References AOV_TYPE_COLOR, BLI_hash_string(), EEVEE_AOV_HASH_COLOR_TYPE_MASK, hash, ViewLayerAOV::name, SET_FLAG_FROM_TEST, and ViewLayerAOV::type.
Referenced by EEVEE_materials_init(), and EEVEE_renderpasses_init().
| void EEVEE_renderpasses_cache_finish | ( | EEVEE_ViewLayerData * | sldata, |
| EEVEE_Data * | vedata | ||
| ) |
Definition at line 229 of file eevee_renderpasses.c.
References EEVEE_ViewLayerData::combined, EEVEE_ViewLayerData::common_ubo, DefaultTextureList::depth, DRW_cache_fullscreen_quad_get(), DRW_PASS_CREATE, DRW_shgroup_call, DRW_shgroup_create(), DRW_shgroup_uniform_block_ref(), DRW_shgroup_uniform_int(), DRW_shgroup_uniform_texture_ref(), DRW_STATE_WRITE_COLOR, DRW_viewport_texture_list_get(), EEVEE_RENDERPASSES_WITH_POST_PROCESSING, EEVEE_shaders_renderpasses_post_process_sh_get(), EEVEE_StorageList::g_data, NULL, EEVEE_Data::psl, EEVEE_PrivateData::render_passes, EEVEE_PrivateData::renderpass_col_input, EEVEE_PrivateData::renderpass_current_sample, EEVEE_PrivateData::renderpass_input, EEVEE_PrivateData::renderpass_light_input, EEVEE_PassList::renderpass_pass, EEVEE_PrivateData::renderpass_postprocess, EEVEE_PrivateData::renderpass_transmittance_input, EEVEE_PrivateData::renderpass_type, EEVEE_ViewLayerData::renderpass_ubo, and EEVEE_Data::stl.
Referenced by eevee_cache_finish(), and eevee_render_to_image().
| void EEVEE_renderpasses_draw | ( | EEVEE_ViewLayerData * | sldata, |
| EEVEE_Data * | vedata | ||
| ) |
Definition at line 434 of file eevee_renderpasses.c.
References DefaultFramebufferList::default_fb, DRW_state_is_opengl_render(), DRW_transform_none(), DRW_viewport_framebuffer_list_get(), EEVEE_RENDER_PASS_BLOOM, EEVEE_RENDERPASSES_ALL, EEVEE_RENDERPASSES_COLOR_PASS, EEVEE_RENDERPASSES_LIGHT_PASS, EEVEE_RENDERPASSES_POST_PROCESS_ON_FIRST_SAMPLE, EEVEE_renderpasses_postprocess(), EFFECT_BLOOM, EEVEE_StorageList::effects, EEVEE_EffectsInfo::enabled_effects, EEVEE_Data::fbl, EEVEE_StorageList::g_data, GPU_framebuffer_bind(), is_valid, EEVEE_FramebufferList::main_fb, EEVEE_PrivateData::render_passes, EEVEE_TextureList::renderpass, EEVEE_Data::stl, EEVEE_EffectsInfo::taa_current_sample, EEVEE_EffectsInfo::taa_total_sample, EEVEE_Data::txl, and UNUSED_VARS.
Referenced by eevee_draw_scene().
| void EEVEE_renderpasses_draw_debug | ( | EEVEE_Data * | vedata | ) |
Definition at line 480 of file eevee_renderpasses.c.
References EEVEE_TextureList::color_double_buffer, DRW_transform_none(), EEVEE_StorageList::effects, G, EEVEE_EffectsInfo::gtao_horizons_renderpass, EEVEE_TextureList::maxzbuffer, NULL, EEVEE_EffectsInfo::ssr_normal_input, EEVEE_EffectsInfo::ssr_specrough_input, EEVEE_EffectsInfo::sss_albedo, EEVEE_EffectsInfo::sss_irradiance, EEVEE_EffectsInfo::sss_radius, EEVEE_Data::stl, EEVEE_Data::txl, and EEVEE_EffectsInfo::velocity_tx.
Referenced by eevee_draw_scene().
| void EEVEE_renderpasses_init | ( | EEVEE_Data * | vedata | ) |
Definition at line 87 of file eevee_renderpasses.c.
References EEVEE_PrivateData::aov_hash, View3DShading::aov_name, ViewLayer::aovs, BLI_findstring(), BLI_listbase_is_empty(), DRW_context_state_get(), DRW_state_is_image_render(), ViewLayer::eevee, Scene::eevee, EEVEE_AOV_HASH_ALL, EEVEE_cryptomatte_renderpasses_init(), EEVEE_material_renderpasses_init(), EEVEE_RENDER_PASS_AOV, EEVEE_RENDER_PASS_BLOOM, EEVEE_RENDER_PASS_COMBINED, EEVEE_RENDERPASSES_ALL, EEVEE_renderpasses_aov_hash(), ENABLE_FROM_LEGACY, SceneEEVEE::flag, EEVEE_StorageList::g_data, NORMAL, NULL, View3DShading::render_pass, EEVEE_PrivateData::render_passes, ViewLayerEEVEE::render_passes, SCE_EEVEE_BLOOM_ENABLED, scene, DRWContextState::scene, View3D::shading, EEVEE_Data::stl, DRWContextState::v3d, DRWContextState::view_layer, and Z.
Referenced by eevee_engine_init(), and EEVEE_render_modules_init().
| bool EEVEE_renderpasses_only_first_sample_pass_active | ( | EEVEE_Data * | vedata | ) |
Definition at line 71 of file eevee_renderpasses.c.
References EEVEE_RENDERPASSES_POST_PROCESS_ON_FIRST_SAMPLE, EEVEE_StorageList::g_data, EEVEE_PrivateData::render_passes, and EEVEE_Data::stl.
Referenced by EEVEE_temporal_sampling_init().
| void EEVEE_renderpasses_output_accumulate | ( | EEVEE_ViewLayerData * | sldata, |
| EEVEE_Data * | vedata, | ||
| bool | post_effect | ||
| ) |
Definition at line 397 of file eevee_renderpasses.c.
References EEVEE_bloom_output_accumulate(), EEVEE_cryptomatte_output_accumulate(), EEVEE_material_output_accumulate(), EEVEE_mist_output_accumulate(), EEVEE_occlusion_output_accumulate(), EEVEE_RENDER_PASS_AO, EEVEE_RENDER_PASS_BLOOM, EEVEE_RENDER_PASS_CRYPTOMATTE, EEVEE_RENDER_PASS_MIST, EEVEE_RENDER_PASS_SHADOW, EEVEE_RENDERPASSES_MATERIAL, eevee_renderpasses_volumetric_active(), EEVEE_shadow_output_accumulate(), EEVEE_volumes_output_accumulate(), EFFECT_BLOOM, EEVEE_StorageList::effects, EEVEE_EffectsInfo::enabled_effects, EEVEE_StorageList::g_data, EEVEE_PrivateData::render_passes, and EEVEE_Data::stl.
Referenced by EEVEE_draw_effects(), eevee_draw_scene(), and EEVEE_render_draw().
| void EEVEE_renderpasses_output_init | ( | EEVEE_ViewLayerData * | sldata, |
| EEVEE_Data * | vedata, | ||
| uint | tot_samples | ||
| ) |
Definition at line 165 of file eevee_renderpasses.c.
References EEVEE_TextureList::color, DRW_texture_ensure_fullscreen_2d(), DRW_TEXTURE_FREE_SAFE, EEVEE_bloom_output_init(), EEVEE_cryptomatte_output_init(), EEVEE_material_output_init(), EEVEE_mist_output_init(), EEVEE_occlusion_output_init(), EEVEE_RENDER_PASS_AO, EEVEE_RENDER_PASS_BLOOM, EEVEE_RENDER_PASS_CRYPTOMATTE, EEVEE_RENDER_PASS_MIST, EEVEE_RENDER_PASS_SHADOW, EEVEE_RENDERPASSES_MATERIAL, eevee_renderpasses_volumetric_active(), EEVEE_RENDERPASSES_WITH_POST_PROCESSING, EEVEE_shadow_output_init(), EEVEE_volumes_output_init(), EFFECT_BLOOM, EEVEE_StorageList::effects, EEVEE_EffectsInfo::enabled_effects, EEVEE_Data::fbl, EEVEE_StorageList::g_data, GPU_FRAMEBUFFER_FREE_SAFE, GPU_RGBA16F, EEVEE_PrivateData::render_passes, EEVEE_TextureList::renderpass, EEVEE_PrivateData::renderpass_col_input, EEVEE_FramebufferList::renderpass_fb, EEVEE_PrivateData::renderpass_input, EEVEE_PrivateData::renderpass_light_input, EEVEE_PrivateData::renderpass_transmittance_input, EEVEE_Data::stl, and EEVEE_Data::txl.
Referenced by eevee_cache_finish(), and eevee_render_to_image().
| void EEVEE_renderpasses_postprocess | ( | EEVEE_ViewLayerData * | UNUSEDsldata, |
| EEVEE_Data * | vedata, | ||
| eViewLayerEEVEEPassType | renderpass_type, | ||
| int | aov_index | ||
| ) |
Definition at line 269 of file eevee_renderpasses.c.
References EEVEE_TextureList::ao_accum, EEVEE_TextureList::aov_surface_accum, EEVEE_TextureList::bloom_accum, EEVEE_TextureList::color, EEVEE_TextureList::diff_color_accum, EEVEE_TextureList::diff_light_accum, DRW_draw_pass(), DRW_state_is_image_render(), EEVEE_RENDER_PASS_AO, EEVEE_RENDER_PASS_AOV, EEVEE_RENDER_PASS_BLOOM, EEVEE_RENDER_PASS_DIFFUSE_COLOR, EEVEE_RENDER_PASS_DIFFUSE_LIGHT, EEVEE_RENDER_PASS_EMIT, EEVEE_RENDER_PASS_ENVIRONMENT, EEVEE_RENDER_PASS_MIST, EEVEE_RENDER_PASS_NORMAL, EEVEE_RENDER_PASS_SHADOW, EEVEE_RENDER_PASS_SPECULAR_COLOR, EEVEE_RENDER_PASS_SPECULAR_LIGHT, EEVEE_RENDER_PASS_VOLUME_LIGHT, EEVEE_RENDER_PASS_Z, eevee_renderpasses_volumetric_active(), EFFECT_SSR, EFFECT_SSS, EEVEE_StorageList::effects, EEVEE_TextureList::emit_accum, EEVEE_EffectsInfo::enabled_effects, EEVEE_TextureList::env_accum, EEVEE_Data::fbl, EEVEE_StorageList::g_data, GPU_framebuffer_bind(), EEVEE_TextureList::mist_accum, PASS_POST_ACCUMULATED_COLOR, PASS_POST_ACCUMULATED_COLOR_ALPHA, PASS_POST_ACCUMULATED_LIGHT, PASS_POST_ACCUMULATED_TRANSMITTANCE_COLOR, PASS_POST_ACCUMULATED_VALUE, PASS_POST_AO, PASS_POST_DEPTH, PASS_POST_NORMAL, PASS_POST_TWO_LIGHT_BUFFERS, PASS_POST_UNDEFINED, EEVEE_Data::psl, EEVEE_PrivateData::renderpass_col_input, EEVEE_PrivateData::renderpass_current_sample, EEVEE_FramebufferList::renderpass_fb, EEVEE_PrivateData::renderpass_input, EEVEE_PrivateData::renderpass_light_input, EEVEE_PassList::renderpass_pass, EEVEE_PrivateData::renderpass_postprocess, EEVEE_PrivateData::renderpass_transmittance_input, EEVEE_PrivateData::renderpass_type, EEVEE_TextureList::shadow_accum, EEVEE_TextureList::spec_color_accum, EEVEE_TextureList::spec_light_accum, EEVEE_TextureList::ssr_accum, EEVEE_EffectsInfo::ssr_normal_input, EEVEE_TextureList::sss_accum, EEVEE_Data::stl, EEVEE_EffectsInfo::taa_current_sample, EEVEE_Data::txl, EEVEE_TextureList::volume_scatter_accum, and EEVEE_TextureList::volume_transmittance_accum.
Referenced by EEVEE_renderpasses_draw().
| BLI_INLINE bool eevee_renderpasses_volumetric_active | ( | const EEVEE_EffectsInfo * | effects, |
| const EEVEE_PrivateData * | g_data | ||
| ) |
Definition at line 153 of file eevee_renderpasses.c.
References EEVEE_RENDER_PASS_VOLUME_LIGHT, EEVEE_RENDERPASSES_USES_TRANSMITTANCE, EFFECT_VOLUMETRIC, EEVEE_EffectsInfo::enabled_effects, and EEVEE_PrivateData::render_passes.
Referenced by EEVEE_renderpasses_output_accumulate(), EEVEE_renderpasses_output_init(), and EEVEE_renderpasses_postprocess().