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 
)