Blender  V2.93
Macros | Functions
eevee_render.c File Reference
#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_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)
 

Functions

bool EEVEE_render_init (EEVEE_Data *ved, RenderEngine *engine, struct Depsgraph *depsgraph)
 
void EEVEE_render_modules_init (EEVEE_Data *vedata, RenderEngine *engine, struct Depsgraph *depsgraph)
 
void EEVEE_render_view_sync (EEVEE_Data *vedata, RenderEngine *engine, struct Depsgraph *depsgraph)
 
void EEVEE_render_cache_init (EEVEE_ViewLayerData *sldata, EEVEE_Data *vedata)
 
void EEVEE_render_cache (void *vedata, struct Object *ob, struct RenderEngine *engine, struct Depsgraph *depsgraph)
 
static void eevee_render_color_result (RenderLayer *rl, const char *viewname, const rcti *rect, const char *render_pass_name, int num_channels, GPUFrameBuffer *framebuffer, EEVEE_Data *vedata)
 
static void eevee_render_result_combined (RenderLayer *rl, const char *viewname, const rcti *rect, EEVEE_Data *vedata, EEVEE_ViewLayerData *UNUSED(sldata))
 
static void eevee_render_result_normal (RenderLayer *rl, const char *viewname, const rcti *rect, EEVEE_Data *vedata, EEVEE_ViewLayerData *sldata)
 
static void eevee_render_result_z (RenderLayer *rl, const char *viewname, const rcti *rect, EEVEE_Data *vedata, EEVEE_ViewLayerData *sldata)
 
static void eevee_render_result_mist (RenderLayer *rl, const char *viewname, const rcti *rect, EEVEE_Data *vedata, EEVEE_ViewLayerData *sldata)
 
static void eevee_render_result_shadow (RenderLayer *rl, const char *viewname, const rcti *rect, EEVEE_Data *vedata, EEVEE_ViewLayerData *sldata)
 
static void eevee_render_result_occlusion (RenderLayer *rl, const char *viewname, const rcti *rect, EEVEE_Data *vedata, EEVEE_ViewLayerData *sldata)
 
static void eevee_render_result_bloom (RenderLayer *rl, const char *viewname, const rcti *rect, EEVEE_Data *vedata, EEVEE_ViewLayerData *sldata)
 
static void eevee_render_result_diffuse_color (RenderLayer *rl, const char *viewname, const rcti *rect, EEVEE_Data *vedata, EEVEE_ViewLayerData *sldata)
 
static void eevee_render_result_diffuse_direct (RenderLayer *rl, const char *viewname, const rcti *rect, EEVEE_Data *vedata, EEVEE_ViewLayerData *sldata)
 
static void eevee_render_result_specular_color (RenderLayer *rl, const char *viewname, const rcti *rect, EEVEE_Data *vedata, EEVEE_ViewLayerData *sldata)
 
static void eevee_render_result_specular_direct (RenderLayer *rl, const char *viewname, const rcti *rect, EEVEE_Data *vedata, EEVEE_ViewLayerData *sldata)
 
static void eevee_render_result_emission (RenderLayer *rl, const char *viewname, const rcti *rect, EEVEE_Data *vedata, EEVEE_ViewLayerData *sldata)
 
static void eevee_render_result_environment (RenderLayer *rl, const char *viewname, const rcti *rect, EEVEE_Data *vedata, EEVEE_ViewLayerData *sldata)
 
static void eevee_render_result_volume_light (RenderLayer *rl, const char *viewname, const rcti *rect, EEVEE_Data *vedata, EEVEE_ViewLayerData *sldata)
 
static void eevee_render_result_aovs (RenderLayer *rl, const char *viewname, const rcti *rect, EEVEE_Data *vedata, EEVEE_ViewLayerData *sldata)
 
static void eevee_render_result_cryptomatte (RenderLayer *rl, const char *viewname, const rcti *rect, EEVEE_Data *vedata, EEVEE_ViewLayerData *sldata)
 
static void eevee_render_draw_background (EEVEE_Data *vedata)
 
void EEVEE_render_draw (EEVEE_Data *vedata, RenderEngine *engine, RenderLayer *rl, const rcti *rect)
 
void EEVEE_render_read_result (EEVEE_Data *vedata, RenderEngine *engine, RenderLayer *rl, const rcti *rect)
 
void EEVEE_render_update_passes (RenderEngine *engine, Scene *scene, ViewLayer *view_layer)
 

Macro Definition Documentation

◆ CHECK_PASS_EEVEE

#define CHECK_PASS_EEVEE (   name,
  type,
  channels,
  chanid 
)
Value:
if (view_layer->eevee.render_passes & (EEVEE_RENDER_PASS_##name)) { \
RE_engine_register_pass( \
engine, scene, view_layer, RE_PASSNAME_##name, channels, chanid, type); \
} \
((void)0)
_GL_VOID GLfloat value _GL_VOID_RET _GL_VOID const GLuint GLboolean *residences _GL_BOOL_RET _GL_VOID GLsizei GLfloat GLfloat GLfloat GLfloat const GLubyte *bitmap _GL_VOID_RET _GL_VOID GLenum type
Scene scene

◆ CHECK_PASS_LEGACY

#define CHECK_PASS_LEGACY (   name,
  type,
  channels,
  chanid 
)
Value:
if (view_layer->passflag & (SCE_PASS_##name)) { \
RE_engine_register_pass( \
engine, scene, view_layer, RE_PASSNAME_##name, channels, chanid, type); \
} \
((void)0)

◆ EEVEE_RENDER_RESULT_MATERIAL_PASS

#define EEVEE_RENDER_RESULT_MATERIAL_PASS (   pass_name,
  eevee_pass_type 
)
Value:
if ((vedata->stl->g_data->render_passes & EEVEE_RENDER_PASS_##eevee_pass_type) != 0) { \
EEVEE_renderpasses_postprocess(sldata, vedata, EEVEE_RENDER_PASS_##eevee_pass_type, 0); \
eevee_render_color_result( \
rl, viewname, rect, RE_PASSNAME_##pass_name, 3, vedata->fbl->renderpass_fb, vedata); \
}

Definition at line 403 of file eevee_render.c.

Function Documentation

◆ EEVEE_render_cache()

void EEVEE_render_cache ( void *  vedata,
struct Object ob,
struct RenderEngine engine,
struct Depsgraph depsgraph 
)

◆ EEVEE_render_cache_init()

void EEVEE_render_cache_init ( EEVEE_ViewLayerData sldata,
EEVEE_Data vedata 
)

◆ eevee_render_color_result()

static void eevee_render_color_result ( RenderLayer rl,
const char *  viewname,
const rcti rect,
const char *  render_pass_name,
int  num_channels,
GPUFrameBuffer framebuffer,
EEVEE_Data vedata 
)
static

◆ EEVEE_render_draw()

void EEVEE_render_draw ( EEVEE_Data vedata,
RenderEngine engine,
RenderLayer rl,
const rcti rect 
)

Definition at line 546 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_draw_pass(), DRW_hair_update(), 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_uniformbuf_update(), EEVEE_FramebufferList::main_color_fb, EEVEE_FramebufferList::main_fb, EEVEE_PassList::material_ps, EEVEE_PassList::material_refract_ps, NULL, 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.

◆ eevee_render_draw_background()

static void eevee_render_draw_background ( EEVEE_Data vedata)
static

◆ EEVEE_render_init()

bool EEVEE_render_init ( EEVEE_Data ved,
RenderEngine engine,
struct Depsgraph depsgraph 
)

◆ EEVEE_render_modules_init()

void EEVEE_render_modules_init ( EEVEE_Data vedata,
RenderEngine engine,
struct Depsgraph depsgraph 
)

◆ EEVEE_render_read_result()

void EEVEE_render_read_result ( EEVEE_Data vedata,
RenderEngine engine,
RenderLayer rl,
const rcti rect 
)

◆ eevee_render_result_aovs()

static void eevee_render_result_aovs ( RenderLayer rl,
const char *  viewname,
const rcti rect,
EEVEE_Data vedata,
EEVEE_ViewLayerData sldata 
)
static

◆ eevee_render_result_bloom()

static void eevee_render_result_bloom ( RenderLayer rl,
const char *  viewname,
const rcti rect,
EEVEE_Data vedata,
EEVEE_ViewLayerData sldata 
)
static

◆ eevee_render_result_combined()

static void eevee_render_result_combined ( RenderLayer rl,
const char *  viewname,
const rcti rect,
EEVEE_Data vedata,
EEVEE_ViewLayerData UNUSEDsldata 
)
static

◆ eevee_render_result_cryptomatte()

static void eevee_render_result_cryptomatte ( RenderLayer rl,
const char *  viewname,
const rcti rect,
EEVEE_Data vedata,
EEVEE_ViewLayerData sldata 
)
static

◆ eevee_render_result_diffuse_color()

static void eevee_render_result_diffuse_color ( RenderLayer rl,
const char *  viewname,
const rcti rect,
EEVEE_Data vedata,
EEVEE_ViewLayerData sldata 
)
static

Definition at line 410 of file eevee_render.c.

References EEVEE_RENDER_RESULT_MATERIAL_PASS.

Referenced by EEVEE_render_read_result().

◆ eevee_render_result_diffuse_direct()

static void eevee_render_result_diffuse_direct ( RenderLayer rl,
const char *  viewname,
const rcti rect,
EEVEE_Data vedata,
EEVEE_ViewLayerData sldata 
)
static

Definition at line 419 of file eevee_render.c.

References EEVEE_RENDER_RESULT_MATERIAL_PASS.

Referenced by EEVEE_render_read_result().

◆ eevee_render_result_emission()

static void eevee_render_result_emission ( RenderLayer rl,
const char *  viewname,
const rcti rect,
EEVEE_Data vedata,
EEVEE_ViewLayerData sldata 
)
static

Definition at line 446 of file eevee_render.c.

References EEVEE_RENDER_RESULT_MATERIAL_PASS.

Referenced by EEVEE_render_read_result().

◆ eevee_render_result_environment()

static void eevee_render_result_environment ( RenderLayer rl,
const char *  viewname,
const rcti rect,
EEVEE_Data vedata,
EEVEE_ViewLayerData sldata 
)
static

Definition at line 455 of file eevee_render.c.

References EEVEE_RENDER_RESULT_MATERIAL_PASS.

Referenced by EEVEE_render_read_result().

◆ eevee_render_result_mist()

static void eevee_render_result_mist ( RenderLayer rl,
const char *  viewname,
const rcti rect,
EEVEE_Data vedata,
EEVEE_ViewLayerData sldata 
)
static

◆ eevee_render_result_normal()

static void eevee_render_result_normal ( RenderLayer rl,
const char *  viewname,
const rcti rect,
EEVEE_Data vedata,
EEVEE_ViewLayerData sldata 
)
static

◆ eevee_render_result_occlusion()

static void eevee_render_result_occlusion ( RenderLayer rl,
const char *  viewname,
const rcti rect,
EEVEE_Data vedata,
EEVEE_ViewLayerData sldata 
)
static

◆ eevee_render_result_shadow()

static void eevee_render_result_shadow ( RenderLayer rl,
const char *  viewname,
const rcti rect,
EEVEE_Data vedata,
EEVEE_ViewLayerData sldata 
)
static

◆ eevee_render_result_specular_color()

static void eevee_render_result_specular_color ( RenderLayer rl,
const char *  viewname,
const rcti rect,
EEVEE_Data vedata,
EEVEE_ViewLayerData sldata 
)
static

Definition at line 428 of file eevee_render.c.

References EEVEE_RENDER_RESULT_MATERIAL_PASS.

Referenced by EEVEE_render_read_result().

◆ eevee_render_result_specular_direct()

static void eevee_render_result_specular_direct ( RenderLayer rl,
const char *  viewname,
const rcti rect,
EEVEE_Data vedata,
EEVEE_ViewLayerData sldata 
)
static

Definition at line 437 of file eevee_render.c.

References EEVEE_RENDER_RESULT_MATERIAL_PASS.

Referenced by EEVEE_render_read_result().

◆ eevee_render_result_volume_light()

static void eevee_render_result_volume_light ( RenderLayer rl,
const char *  viewname,
const rcti rect,
EEVEE_Data vedata,
EEVEE_ViewLayerData sldata 
)
static

Definition at line 464 of file eevee_render.c.

References EEVEE_RENDER_RESULT_MATERIAL_PASS.

Referenced by EEVEE_render_read_result().

◆ eevee_render_result_z()

static void eevee_render_result_z ( RenderLayer rl,
const char *  viewname,
const rcti rect,
EEVEE_Data vedata,
EEVEE_ViewLayerData sldata 
)
static

◆ EEVEE_render_update_passes()

void EEVEE_render_update_passes ( RenderEngine engine,
Scene scene,
ViewLayer view_layer 
)

◆ EEVEE_render_view_sync()

void EEVEE_render_view_sync ( EEVEE_Data vedata,
RenderEngine engine,
struct Depsgraph depsgraph 
)