Blender  V2.93
Macros | Typedefs | Enumerations | Functions
eevee_renderpasses.c File Reference
#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)
 

Macro Definition Documentation

◆ EEVEE_RENDERPASSES_ALL

#define EEVEE_RENDERPASSES_ALL    (EEVEE_RENDERPASSES_WITH_POST_PROCESSING | EEVEE_RENDER_PASS_COMBINED)

Definition at line 56 of file eevee_renderpasses.c.

◆ EEVEE_RENDERPASSES_COLOR_PASS

#define EEVEE_RENDERPASSES_COLOR_PASS
Value:
EEVEE_RENDER_PASS_BLOOM)
@ EEVEE_RENDER_PASS_DIFFUSE_COLOR
@ EEVEE_RENDER_PASS_SPECULAR_COLOR
@ EEVEE_RENDER_PASS_EMIT

Definition at line 62 of file eevee_renderpasses.c.

◆ EEVEE_RENDERPASSES_LIGHT_PASS

#define EEVEE_RENDERPASSES_LIGHT_PASS    (EEVEE_RENDER_PASS_DIFFUSE_LIGHT | EEVEE_RENDER_PASS_SPECULAR_LIGHT)

Definition at line 65 of file eevee_renderpasses.c.

◆ EEVEE_RENDERPASSES_POST_PROCESS_ON_FIRST_SAMPLE

#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.

◆ EEVEE_RENDERPASSES_USES_TRANSMITTANCE

#define EEVEE_RENDERPASSES_USES_TRANSMITTANCE
Value:

Definition at line 68 of file eevee_renderpasses.c.

◆ EEVEE_RENDERPASSES_WITH_POST_PROCESSING

#define EEVEE_RENDERPASSES_WITH_POST_PROCESSING
Value:
EEVEE_RENDER_PASS_SHADOW | EEVEE_RENDERPASSES_MATERIAL)
@ EEVEE_RENDER_PASS_NORMAL
@ EEVEE_RENDER_PASS_VOLUME_LIGHT
@ EEVEE_RENDER_PASS_BLOOM
@ EEVEE_RENDER_PASS_Z
@ EEVEE_RENDER_PASS_MIST
#define EEVEE_RENDERPASSES_MATERIAL

Definition at line 51 of file eevee_renderpasses.c.

◆ ENABLE_FROM_LEGACY

#define ENABLE_FROM_LEGACY (   name_legacy,
  name_eevee 
)
Value:
SET_FLAG_FROM_TEST(enabled_render_passes, \
(view_layer->passflag & SCE_PASS_##name_legacy) != 0, \
EEVEE_RENDER_PASS_##name_eevee);
#define SET_FLAG_FROM_TEST(value, test, flag)

Typedef Documentation

◆ eRenderPassPostProcessType

Enumeration Type Documentation

◆ eRenderPassPostProcessType

Enumerator
PASS_POST_UNDEFINED 
PASS_POST_ACCUMULATED_COLOR 
PASS_POST_ACCUMULATED_COLOR_ALPHA 
PASS_POST_ACCUMULATED_LIGHT 
PASS_POST_ACCUMULATED_VALUE 
PASS_POST_DEPTH 
PASS_POST_AO 
PASS_POST_NORMAL 
PASS_POST_TWO_LIGHT_BUFFERS 
PASS_POST_ACCUMULATED_TRANSMITTANCE_COLOR 

Definition at line 37 of file eevee_renderpasses.c.

Function Documentation

◆ EEVEE_renderpasses_aov_hash()

int EEVEE_renderpasses_aov_hash ( const ViewLayerAOV aov)

◆ EEVEE_renderpasses_cache_finish()

void EEVEE_renderpasses_cache_finish ( EEVEE_ViewLayerData sldata,
EEVEE_Data vedata 
)

◆ EEVEE_renderpasses_draw()

void EEVEE_renderpasses_draw ( EEVEE_ViewLayerData sldata,
EEVEE_Data vedata 
)

◆ EEVEE_renderpasses_draw_debug()

void EEVEE_renderpasses_draw_debug ( EEVEE_Data vedata)

◆ EEVEE_renderpasses_init()

void EEVEE_renderpasses_init ( EEVEE_Data vedata)

◆ EEVEE_renderpasses_only_first_sample_pass_active()

bool EEVEE_renderpasses_only_first_sample_pass_active ( EEVEE_Data vedata)

◆ EEVEE_renderpasses_output_accumulate()

void EEVEE_renderpasses_output_accumulate ( EEVEE_ViewLayerData sldata,
EEVEE_Data vedata,
bool  post_effect 
)

◆ EEVEE_renderpasses_output_init()

void EEVEE_renderpasses_output_init ( EEVEE_ViewLayerData sldata,
EEVEE_Data vedata,
uint  tot_samples 
)

◆ EEVEE_renderpasses_postprocess()

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().

◆ eevee_renderpasses_volumetric_active()

BLI_INLINE bool eevee_renderpasses_volumetric_active ( const EEVEE_EffectsInfo effects,
const EEVEE_PrivateData g_data 
)