Blender  V3.3
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_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)
 

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
Group Output data from inside of a node group A color picker Mix two input colors RGB to Convert a color s luminance to a grayscale value Generate a normal vector and a dot product Bright Control the brightness and contrast of the input color Vector Map an input vectors to used to fine tune the interpolation of the input Camera Retrieve information about the camera and how it relates to the current shading point s position Clamp a value between a minimum and a maximum Vector Perform vector math operation Invert a producing a negative Combine Generate a color from its and blue channels(Deprecated)") DefNode(ShaderNode
Scene scene
SyclQueue void void size_t num_bytes void

◆ 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 387 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 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.

◆ 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 394 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 403 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 430 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 439 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 412 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 421 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 448 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 
)