Blender
V3.3
|
#include "DRW_engine.h"
#include "DRW_render.h"
#include "DNA_node_types.h"
#include "DNA_object_types.h"
#include "BKE_global.h"
#include "BKE_object.h"
#include "BLI_rand.h"
#include "BLI_rect.h"
#include "DEG_depsgraph_query.h"
#include "GPU_capabilities.h"
#include "GPU_context.h"
#include "GPU_framebuffer.h"
#include "GPU_state.h"
#include "RE_pipeline.h"
#include "eevee_private.h"
Go to the source code of this file.
Macros | |
#define | EEVEE_RENDER_RESULT_MATERIAL_PASS(pass_name, eevee_pass_type) |
#define | CHECK_PASS_LEGACY(name, type, channels, chanid) |
#define | CHECK_PASS_EEVEE(name, type, channels, chanid) |
#define EEVEE_RENDER_RESULT_MATERIAL_PASS | ( | pass_name, | |
eevee_pass_type | |||
) |
Definition at line 387 of file eevee_render.c.
void EEVEE_render_cache | ( | void * | vedata, |
struct Object * | ob, | ||
struct RenderEngine * | engine, | ||
struct Depsgraph * | depsgraph | ||
) |
Used by light cache. in this case engine is NULL.
Definition at line 182 of file eevee_render.c.
References Object::base_flag, BASE_FROM_DUPLI, BKE_collection_has_object_recursive(), BLI_snprintf(), EEVEE_LightProbeVisTest::collection, data, DEG_get_evaluated_scene(), depsgraph, DRW_object_visibility_in_active_context(), EEVEE_cryptomatte_cache_populate(), EEVEE_cryptomatte_object_curves_cache_populate(), EEVEE_cryptomatte_particle_hair_cache_populate(), eevee_id_update(), EEVEE_lightprobes_cache_add(), EEVEE_lights_cache_add(), EEVEE_materials_cache_populate(), EEVEE_object_curves_cache_populate(), EEVEE_particle_hair_cache_populate(), EEVEE_RENDER_PASS_CRYPTOMATTE, EEVEE_shadows_caster_register(), EEVEE_view_layer_data_ensure(), EEVEE_volumes_cache_object_add(), ELEM, EEVEE_StorageList::g_data, g_data, Object::id, EEVEE_LightProbeVisTest::invert, ID::name, NULL, OB_CURVES, OB_LAMP, OB_LIGHTPROBE, OB_MBALL, OB_MESH, OB_SURF, OB_VISIBLE_PARTICLES, OB_VISIBLE_SELF, OB_VOLUME, EEVEE_ViewLayerData::probes, RE_engine_update_stats(), scene, Object::type, and EEVEE_LightProbesInfo::vis_data.
Referenced by eevee_lightbake_cache_create(), and eevee_render_to_image().
void EEVEE_render_cache_init | ( | EEVEE_ViewLayerData * | sldata, |
EEVEE_Data * | vedata | ||
) |
Definition at line 164 of file eevee_render.c.
References EEVEE_bloom_cache_init(), EEVEE_cryptomatte_cache_init(), EEVEE_depth_of_field_cache_init(), EEVEE_effects_cache_init(), EEVEE_lightprobes_cache_init(), EEVEE_lights_cache_init(), EEVEE_materials_cache_init(), EEVEE_motion_blur_cache_init(), EEVEE_occlusion_cache_init(), EEVEE_screen_raytrace_cache_init(), EEVEE_subsurface_cache_init(), EEVEE_temporal_sampling_cache_init(), EEVEE_view_layer_data_ensure(), and EEVEE_volumes_cache_init().
Referenced by eevee_render_to_image().
|
static |
Definition at line 256 of file eevee_render.c.
References BLI_rcti_size_x(), BLI_rcti_size_y(), EEVEE_StorageList::g_data, GPU_DATA_FLOAT, GPU_framebuffer_bind(), GPU_framebuffer_read_color(), NULL, EEVEE_PrivateData::overscan_pixels, RE_pass_find_by_name(), RenderPass::rect, EEVEE_Data::stl, rcti::xmin, and rcti::ymin.
Referenced by eevee_render_result_aovs(), eevee_render_result_bloom(), eevee_render_result_combined(), eevee_render_result_mist(), eevee_render_result_normal(), eevee_render_result_occlusion(), eevee_render_result_shadow(), and eevee_render_result_z().
void EEVEE_render_draw | ( | EEVEE_Data * | vedata, |
RenderEngine * | engine, | ||
RenderLayer * | rl, | ||
const rcti * | rect | ||
) |
Definition at line 529 of file eevee_render.c.
References BLI_halton_3d(), BLI_snprintf(), EEVEE_ViewLayerData::common_data, EEVEE_ViewLayerData::common_ubo, copy_m4_m4(), DefaultTextureList::depth, EEVEE_PassList::depth_ps, EEVEE_PassList::depth_refract_ps, DRW_curves_update(), DRW_draw_pass(), DRW_pass_sort_shgroup_z(), DRW_render_instance_buffer_finish(), DRW_view_set_active(), DRW_viewport_texture_list_get(), EEVEE_create_minmax_buffer(), EEVEE_draw_effects(), EEVEE_lightprobes_refresh(), EEVEE_lightprobes_refresh_planar(), EEVEE_materials_init(), EEVEE_occlusion_compute(), EEVEE_RAY_CAMERA, EEVEE_reflection_compute(), EEVEE_refraction_compute(), eevee_render_draw_background(), eevee_render_result_normal(), eevee_render_result_z(), EEVEE_renderpasses_output_accumulate(), EEVEE_shadows_draw(), EEVEE_shadows_update(), EEVEE_subsurface_compute(), EEVEE_subsurface_data_render(), EEVEE_temporal_sampling_matrices_calc(), EEVEE_temporal_sampling_reset(), EEVEE_update_noise(), EEVEE_view_layer_data_ensure(), EEVEE_volumes_compute(), EEVEE_volumes_resolve(), EEVEE_volumes_set_jitter(), EFFECT_SSR, EEVEE_StorageList::effects, EEVEE_EffectsInfo::enabled_effects, EEVEE_Data::fbl, EEVEE_StorageList::g_data, GPU_finish(), GPU_framebuffer_bind(), GPU_framebuffer_texture_attach(), GPU_framebuffer_texture_detach(), GPU_render_step(), GPU_uniformbuf_update(), EEVEE_FramebufferList::main_color_fb, EEVEE_FramebufferList::main_fb, EEVEE_PassList::material_ps, EEVEE_PassList::material_refract_ps, NULL, offset, EEVEE_EffectsInfo::prev_persmat, EEVEE_CommonUniformBuffer::prev_persmat, EEVEE_Data::psl, r, EEVEE_CommonUniformBuffer::ray_depth, EEVEE_CommonUniformBuffer::ray_type, RenderEngine::re, RE_engine_test_break(), RE_engine_update_progress(), RE_engine_update_stats(), RE_GetActiveRenderView(), EEVEE_PrivateData::render_sample_count_per_timestep, EEVEE_EffectsInfo::ssr_was_valid_double_buffer, EEVEE_Data::stl, EEVEE_EffectsInfo::taa_current_sample, EEVEE_EffectsInfo::taa_view, EEVEE_PassList::transparent_pass, and EEVEE_PrivateData::valid_double_buffer.
|
static |
Definition at line 499 of file eevee_render.c.
References EEVEE_PassList::background_ps, DRW_draw_pass(), EEVEE_Data::fbl, GPU_framebuffer_bind(), EEVEE_FramebufferList::main_fb, EEVEE_Data::psl, and EEVEE_Data::stl.
Referenced by EEVEE_render_draw().
bool EEVEE_render_init | ( | EEVEE_Data * | ved, |
RenderEngine * | engine, | ||
struct Depsgraph * | depsgraph | ||
) |
Render functions for final render outputs.
Definition at line 35 of file eevee_render.c.
References BLI_snprintf(), EEVEE_TextureList::color, copy_v2_v2(), copy_v4_fl4(), DefaultFramebufferList::default_fb, DEG_get_evaluated_scene(), depsgraph, DefaultTextureList::depth, DRW_render_viewport_size_set(), DRW_state_draw_background(), DRW_TEX_FILTER, DRW_texture_ensure_fullscreen_2d(), DRW_viewport_framebuffer_list_get(), DRW_viewport_size_get(), DRW_viewport_texture_list_get(), Scene::eevee, EEVEE_Data::fbl, SceneEEVEE::flag, G, EEVEE_StorageList::g_data, g_data, GPU_DEPTH24_STENCIL8, GPU_max_texture_size(), GPU_RGBA32F, madd_v2_v2v2fl(), EEVEE_FramebufferList::main_color_fb, EEVEE_FramebufferList::main_fb, max_ff(), max_ii(), MEM_callocN, SceneEEVEE::overscan, RenderEngine::re, RE_engine_set_error_message(), RE_GetCamera(), SCE_EEVEE_OVERSCAN, scene, EEVEE_Data::stl, and EEVEE_Data::txl.
Referenced by eevee_render_to_image().
void EEVEE_render_modules_init | ( | EEVEE_Data * | vedata, |
RenderEngine * | engine, | ||
struct Depsgraph * | depsgraph | ||
) |
Definition at line 120 of file eevee_render.c.
References DEG_get_evaluated_object(), depsgraph, EEVEE_effects_init(), EEVEE_lightprobes_init(), EEVEE_materials_init(), EEVEE_render_view_sync(), EEVEE_renderpasses_init(), EEVEE_shadows_init(), EEVEE_view_layer_data_ensure(), EEVEE_Data::fbl, EEVEE_StorageList::g_data, g_data, and EEVEE_Data::stl.
Referenced by eevee_render_to_image().
void EEVEE_render_read_result | ( | EEVEE_Data * | vedata, |
RenderEngine * | engine, | ||
RenderLayer * | rl, | ||
const rcti * | rect | ||
) |
Definition at line 658 of file eevee_render.c.
References eevee_render_result_aovs(), eevee_render_result_bloom(), eevee_render_result_combined(), eevee_render_result_cryptomatte(), eevee_render_result_diffuse_color(), eevee_render_result_diffuse_direct(), eevee_render_result_emission(), eevee_render_result_environment(), eevee_render_result_mist(), eevee_render_result_occlusion(), eevee_render_result_shadow(), eevee_render_result_specular_color(), eevee_render_result_specular_direct(), eevee_render_result_volume_light(), EEVEE_view_layer_data_ensure(), RenderEngine::re, and RE_GetActiveRenderView().
Referenced by eevee_render_to_image().
|
static |
Definition at line 457 of file eevee_render.c.
References AOV_CONFLICT, AOV_TYPE_COLOR, AOV_TYPE_VALUE, ViewLayer::aovs, DRW_context_state_get(), eevee_render_color_result(), EEVEE_RENDER_PASS_AOV, EEVEE_renderpasses_postprocess(), EEVEE_Data::fbl, EEVEE_StorageList::g_data, LISTBASE_FOREACH, EEVEE_PrivateData::render_passes, EEVEE_FramebufferList::renderpass_fb, EEVEE_Data::stl, and DRWContextState::view_layer.
Referenced by EEVEE_render_read_result().
|
static |
Definition at line 369 of file eevee_render.c.
References eevee_render_color_result(), EEVEE_RENDER_PASS_BLOOM, EEVEE_renderpasses_postprocess(), EFFECT_BLOOM, EEVEE_StorageList::effects, EEVEE_EffectsInfo::enabled_effects, EEVEE_Data::fbl, EEVEE_StorageList::g_data, RE_PASSNAME_BLOOM, EEVEE_PrivateData::render_passes, EEVEE_FramebufferList::renderpass_fb, and EEVEE_Data::stl.
Referenced by EEVEE_render_read_result().
|
static |
Definition at line 280 of file eevee_render.c.
References eevee_render_color_result(), EEVEE_StorageList::effects, EEVEE_EffectsInfo::final_fb, RE_PASSNAME_COMBINED, and EEVEE_Data::stl.
Referenced by EEVEE_render_read_result().
|
static |
Definition at line 488 of file eevee_render.c.
References EEVEE_cryptomatte_render_result(), EEVEE_RENDER_PASS_CRYPTOMATTE, EEVEE_StorageList::g_data, EEVEE_PrivateData::render_passes, and EEVEE_Data::stl.
Referenced by EEVEE_render_read_result().
|
static |
Definition at line 394 of file eevee_render.c.
References EEVEE_RENDER_RESULT_MATERIAL_PASS.
Referenced by EEVEE_render_read_result().
|
static |
Definition at line 403 of file eevee_render.c.
References EEVEE_RENDER_RESULT_MATERIAL_PASS.
Referenced by EEVEE_render_read_result().
|
static |
Definition at line 430 of file eevee_render.c.
References EEVEE_RENDER_RESULT_MATERIAL_PASS.
Referenced by EEVEE_render_read_result().
|
static |
Definition at line 439 of file eevee_render.c.
References EEVEE_RENDER_RESULT_MATERIAL_PASS.
Referenced by EEVEE_render_read_result().
|
static |
Definition at line 330 of file eevee_render.c.
References eevee_render_color_result(), EEVEE_RENDER_PASS_MIST, EEVEE_renderpasses_postprocess(), EEVEE_Data::fbl, EEVEE_StorageList::g_data, RE_PASSNAME_MIST, EEVEE_PrivateData::render_passes, EEVEE_FramebufferList::renderpass_fb, and EEVEE_Data::stl.
Referenced by EEVEE_render_read_result().
|
static |
Definition at line 290 of file eevee_render.c.
References eevee_render_color_result(), EEVEE_RENDER_PASS_NORMAL, EEVEE_renderpasses_postprocess(), EEVEE_StorageList::effects, EEVEE_Data::fbl, EEVEE_StorageList::g_data, RE_PASSNAME_NORMAL, EEVEE_PrivateData::render_passes, EEVEE_FramebufferList::renderpass_fb, EEVEE_Data::stl, and EEVEE_EffectsInfo::taa_current_sample.
Referenced by EEVEE_render_draw().
|
static |
Definition at line 356 of file eevee_render.c.
References eevee_render_color_result(), EEVEE_RENDER_PASS_AO, EEVEE_renderpasses_postprocess(), EEVEE_Data::fbl, EEVEE_StorageList::g_data, RE_PASSNAME_AO, EEVEE_PrivateData::render_passes, EEVEE_FramebufferList::renderpass_fb, and EEVEE_Data::stl.
Referenced by EEVEE_render_read_result().
|
static |
Definition at line 343 of file eevee_render.c.
References eevee_render_color_result(), EEVEE_RENDER_PASS_SHADOW, EEVEE_renderpasses_postprocess(), EEVEE_Data::fbl, EEVEE_StorageList::g_data, RE_PASSNAME_SHADOW, EEVEE_PrivateData::render_passes, EEVEE_FramebufferList::renderpass_fb, and EEVEE_Data::stl.
Referenced by EEVEE_render_read_result().
|
static |
Definition at line 412 of file eevee_render.c.
References EEVEE_RENDER_RESULT_MATERIAL_PASS.
Referenced by EEVEE_render_read_result().
|
static |
Definition at line 421 of file eevee_render.c.
References EEVEE_RENDER_RESULT_MATERIAL_PASS.
Referenced by EEVEE_render_read_result().
|
static |
Definition at line 448 of file eevee_render.c.
References EEVEE_RENDER_RESULT_MATERIAL_PASS.
Referenced by EEVEE_render_read_result().
|
static |
Definition at line 310 of file eevee_render.c.
References eevee_render_color_result(), EEVEE_RENDER_PASS_Z, EEVEE_renderpasses_postprocess(), EEVEE_StorageList::effects, EEVEE_Data::fbl, EEVEE_StorageList::g_data, RE_PASSNAME_Z, EEVEE_PrivateData::render_passes, EEVEE_FramebufferList::renderpass_fb, EEVEE_Data::stl, and EEVEE_EffectsInfo::taa_current_sample.
Referenced by EEVEE_render_draw().
void EEVEE_render_update_passes | ( | RenderEngine * | engine, |
Scene * | scene, | ||
ViewLayer * | view_layer | ||
) |
Definition at line 682 of file eevee_render.c.
References AOV_CONFLICT, AOV_TYPE_COLOR, AOV_TYPE_VALUE, ViewLayer::aovs, CHECK_PASS_EEVEE, CHECK_PASS_LEGACY, EEVEE_cryptomatte_update_passes(), LISTBASE_FOREACH, ViewLayer::name, NORMAL, RE_engine_register_pass(), RE_PASSNAME_COMBINED, scene, SOCK_FLOAT, SOCK_RGBA, SOCK_VECTOR, and Z.
void EEVEE_render_view_sync | ( | EEVEE_Data * | vedata, |
RenderEngine * | engine, | ||
struct Depsgraph * | depsgraph | ||
) |
Definition at line 141 of file eevee_render.c.
References DEG_get_evaluated_object(), depsgraph, DRW_view_camtexco_set(), DRW_view_create(), DRW_view_default_set(), DRW_view_reset(), DRW_view_set_active(), EEVEE_StorageList::g_data, g_data, invert_m4_m4(), NULL, RenderEngine::re, RE_GetCameraModelMatrix(), RE_GetCameraWindow(), RE_GetCameraWindowWithOverscan(), EEVEE_Data::stl, and view.
Referenced by EEVEE_render_modules_init().