Blender
V3.3
|
#include "DRW_render.h"
#include "BLI_bitmap.h"
#include "DNA_lightprobe_types.h"
#include "GPU_viewport.h"
#include "BKE_camera.h"
Go to the source code of this file.
Classes | |
struct | EEVEE_PlanarReflection |
struct | EEVEE_BoundBox |
struct | EEVEE_PassList |
struct | EEVEE_FramebufferList |
struct | EEVEE_TextureList |
struct | EEVEE_StorageList |
struct | EEVEE_RenderPassData |
struct | EEVEE_Light |
struct | EEVEE_Shadow |
struct | EEVEE_ShadowCube |
struct | EEVEE_ShadowCascade |
struct | EEVEE_ShadowCascadeRender |
struct | EEVEE_LightsInfo |
struct | EEVEE_LightProbeVisTest |
struct | EEVEE_LightProbesInfo |
struct | EEVEE_MotionBlurData |
struct | EEVEE_ObjectKey |
struct | EEVEE_HairMotionStepData |
struct | EEVEE_HairMotionData |
struct | EEVEE_GeometryMotionData |
struct | EEVEE_ObjectMotionData |
struct | EEVEE_EffectsInfo |
struct | EEVEE_CommonUniformBuffer |
struct | EEVEE_ViewLayerData |
struct | EEVEE_LightEngineData |
struct | EEVEE_LightProbeEngineData |
struct | EEVEE_ObjectEngineData |
struct | EEVEE_WorldEngineData |
struct | EEVEE_CryptomatteSample |
struct | EEVEE_Data |
struct | EEVEE_PrivateData |
Variables | |
struct DrawEngineType | draw_engine_eevee_type |
EEVEE_ShadowCasterBuffer | |
static const float | texcomat [4][4] |
static const float | cubefacemat [6][4][4] |
#define DOF_BOKEH_LUT_SIZE 32 |
Definition at line 198 of file eevee_private.h.
#define DOF_DILATE_RING_COUNT 3 |
Definition at line 200 of file eevee_private.h.
#define DOF_FAST_GATHER_COC_ERROR 0.05 |
Definition at line 201 of file eevee_private.h.
#define DOF_GATHER_RING_COUNT 5 |
Definition at line 199 of file eevee_private.h.
#define DOF_SHADER_DEFINES |
Definition at line 203 of file eevee_private.h.
#define DOF_TILE_DIVISOR 16 |
Definition at line 197 of file eevee_private.h.
#define EEVEE_AOV_HASH_ALL -1 |
Definition at line 155 of file eevee_private.h.
#define EEVEE_AOV_HASH_COLOR_TYPE_MASK 1 |
Definition at line 156 of file eevee_private.h.
#define EEVEE_PROBE_MAX min_ii(MAX_PROBE, GPU_max_texture_layers() / 6) |
Definition at line 73 of file eevee_private.h.
#define EEVEE_RAY_CAMERA 0 |
Definition at line 911 of file eevee_private.h.
#define EEVEE_RAY_DIFFUSE 2 |
Definition at line 913 of file eevee_private.h.
#define EEVEE_RAY_GLOSSY 3 |
Definition at line 914 of file eevee_private.h.
#define EEVEE_RAY_SHADOW 1 |
Definition at line 912 of file eevee_private.h.
#define EEVEE_RENDERPASSES_MATERIAL |
Definition at line 151 of file eevee_private.h.
#define EEVEE_VELOCITY_TILE_SIZE 32 |
Definition at line 74 of file eevee_private.h.
#define IRRADIANCE_HL2 |
Definition at line 50 of file eevee_private.h.
#define LAMPTYPE_AREA_ELLIPSE 100.0f |
Definition at line 481 of file eevee_private.h.
#define LOOK_DEV_STUDIO_LIGHT_ENABLED | ( | v3d | ) |
Definition at line 141 of file eevee_private.h.
#define MAX_AOVS 64 |
Definition at line 41 of file eevee_private.h.
#define MAX_BLOOM_STEP 16 |
Definition at line 40 of file eevee_private.h.
#define MAX_CASCADE_NUM 4 |
Definition at line 36 of file eevee_private.h.
#define MAX_CRYPTOMATTE_LAYERS 3 |
Definition at line 157 of file eevee_private.h.
Definition at line 33 of file eevee_private.h.
Definition at line 35 of file eevee_private.h.
Definition at line 34 of file eevee_private.h.
Definition at line 32 of file eevee_private.h.
#define MAX_SCREEN_BUFFERS_LOD_LEVEL 6 |
Definition at line 148 of file eevee_private.h.
#define MAX_SHADOW 128 /* TODO: Make this depends on #GL_MAX_ARRAY_TEXTURE_LAYERS. */ |
Definition at line 37 of file eevee_private.h.
#define MAX_SHADOW_CASCADE 8 |
Definition at line 38 of file eevee_private.h.
#define MAX_SHADOW_CUBE (MAX_SHADOW - MAX_CASCADE_NUM * MAX_SHADOW_CASCADE) |
Definition at line 39 of file eevee_private.h.
#define MB_CURR 2 |
Definition at line 618 of file eevee_private.h.
#define MB_NEXT 1 |
Definition at line 617 of file eevee_private.h.
#define MB_PREV 0 |
Definition at line 616 of file eevee_private.h.
#define MIN_CUBE_LOD_LEVEL 3 |
Definition at line 147 of file eevee_private.h.
#define SHADER_DEFINES |
Definition at line 60 of file eevee_private.h.
#define SHADER_IRRADIANCE "#define IRRADIANCE_HL2\n" |
Definition at line 55 of file eevee_private.h.
#define SWAP_BUFFERS | ( | ) |
Definition at line 88 of file eevee_private.h.
#define SWAP_BUFFERS_TAA | ( | ) |
Definition at line 103 of file eevee_private.h.
#define SWAP_DOUBLE_BUFFERS | ( | ) |
Definition at line 77 of file eevee_private.h.
#define TAA_MAX_SAMPLE 10000926 |
Definition at line 44 of file eevee_private.h.
#define USE_SCENE_LIGHT | ( | v3d | ) |
Definition at line 137 of file eevee_private.h.
#define USE_VOLUME_OPTI (GPU_shader_image_load_store_support()) |
Definition at line 75 of file eevee_private.h.
typedef enum eEEVEEMotionData eEEVEEMotionData |
typedef struct EEVEE_BoundBox EEVEE_BoundBox |
typedef struct EEVEE_CommonUniformBuffer EEVEE_CommonUniformBuffer |
typedef struct EEVEE_CryptomatteSample EEVEE_CryptomatteSample |
typedef struct EEVEE_Data EEVEE_Data |
typedef enum EEVEE_DofGatherPass EEVEE_DofGatherPass |
typedef enum EEVEE_EffectsFlag EEVEE_EffectsFlag |
typedef struct EEVEE_EffectsInfo EEVEE_EffectsInfo |
typedef struct EEVEE_FramebufferList EEVEE_FramebufferList |
typedef struct EEVEE_GeometryMotionData EEVEE_GeometryMotionData |
typedef struct EEVEE_HairMotionData EEVEE_HairMotionData |
typedef struct EEVEE_HairMotionStepData EEVEE_HairMotionStepData |
typedef struct EEVEE_Light EEVEE_Light |
typedef struct EEVEE_LightEngineData EEVEE_LightEngineData |
typedef LightGridCache EEVEE_LightGrid |
Definition at line 216 of file eevee_private.h.
typedef LightProbeCache EEVEE_LightProbe |
Definition at line 215 of file eevee_private.h.
typedef struct EEVEE_LightProbeEngineData EEVEE_LightProbeEngineData |
typedef struct EEVEE_LightProbesInfo EEVEE_LightProbesInfo |
typedef struct EEVEE_LightProbeVisTest EEVEE_LightProbeVisTest |
typedef struct EEVEE_LightsInfo EEVEE_LightsInfo |
typedef struct EEVEE_MotionBlurData EEVEE_MotionBlurData |
typedef struct EEVEE_ObjectEngineData EEVEE_ObjectEngineData |
typedef struct EEVEE_ObjectKey EEVEE_ObjectKey |
typedef struct EEVEE_ObjectMotionData EEVEE_ObjectMotionData |
typedef struct EEVEE_PassList EEVEE_PassList |
typedef struct EEVEE_PlanarReflection EEVEE_PlanarReflection |
typedef struct EEVEE_PrivateData EEVEE_PrivateData |
typedef struct EEVEE_RenderPassData EEVEE_RenderPassData |
typedef struct EEVEE_Shadow EEVEE_Shadow |
typedef struct EEVEE_ShadowCascade EEVEE_ShadowCascade |
typedef struct EEVEE_ShadowCascadeRender EEVEE_ShadowCascadeRender |
typedef struct EEVEE_ShadowCube EEVEE_ShadowCube |
typedef struct EEVEE_StorageList EEVEE_StorageList |
typedef struct EEVEE_TextureList EEVEE_TextureList |
typedef struct EEVEE_ViewLayerData EEVEE_ViewLayerData |
typedef struct EEVEE_WorldEngineData EEVEE_WorldEngineData |
anonymous enum |
Definition at line 160 of file eevee_private.h.
anonymous enum |
Enumerator | |
---|---|
KEY_CULL | |
KEY_REFRACT | |
KEY_HAIR | |
KEY_SHADOW |
Definition at line 178 of file eevee_private.h.
anonymous enum |
Enumerator | |
---|---|
PROBE_UPDATE_CUBE | |
PROBE_UPDATE_GRID | |
PROBE_UPDATE_ALL |
Definition at line 608 of file eevee_private.h.
enum eEEVEEMotionData |
Enumerator | |
---|---|
EEVEE_MOTION_DATA_MESH | |
EEVEE_MOTION_DATA_HAIR |
Definition at line 657 of file eevee_private.h.
enum EEVEE_DofGatherPass |
Enumerator | |
---|---|
DOF_GATHER_FOREGROUND | |
DOF_GATHER_BACKGROUND | |
DOF_GATHER_HOLEFILL | |
DOF_GATHER_MAX_PASS |
Definition at line 189 of file eevee_private.h.
enum EEVEE_EffectsFlag |
Definition at line 699 of file eevee_private.h.
BLI_STATIC_ASSERT | ( | ) |
Definition at line 519 of file eevee_private.h.
void EEVEE_bloom_cache_init | ( | EEVEE_ViewLayerData * | sldata, |
EEVEE_Data * | vedata | ||
) |
void EEVEE_bloom_draw | ( | EEVEE_Data * | vedata | ) |
Definition at line 234 of file eevee_bloom.c.
References EEVEE_EffectsInfo::blit_texel_size, EEVEE_FramebufferList::bloom_accum_fb, EEVEE_PassList::bloom_blit, EEVEE_EffectsInfo::bloom_blit, EEVEE_FramebufferList::bloom_blit_fb, EEVEE_FramebufferList::bloom_down_fb, EEVEE_PassList::bloom_downsample, EEVEE_EffectsInfo::bloom_downsample, EEVEE_PassList::bloom_downsample_first, EEVEE_EffectsInfo::bloom_iteration_len, EEVEE_PassList::bloom_resolve, EEVEE_PassList::bloom_upsample, EEVEE_EffectsInfo::bloom_upsample, copy_v2_v2(), EEVEE_EffectsInfo::downsamp_texel_size, DRW_draw_pass(), EFFECT_BLOOM, EEVEE_StorageList::effects, EEVEE_EffectsInfo::enabled_effects, EEVEE_Data::fbl, GPU_framebuffer_bind(), EEVEE_Data::psl, EEVEE_EffectsInfo::source_buffer, EEVEE_EffectsInfo::source_texel_size, EEVEE_Data::stl, SWAP_BUFFERS, EEVEE_EffectsInfo::target_buffer, EEVEE_Data::txl, EEVEE_EffectsInfo::unf_base_buffer, EEVEE_EffectsInfo::unf_source_buffer, and EEVEE_EffectsInfo::unf_source_texel_size.
Referenced by EEVEE_draw_effects().
int EEVEE_bloom_init | ( | EEVEE_ViewLayerData * | sldata, |
EEVEE_Data * | vedata | ||
) |
void EEVEE_bloom_output_accumulate | ( | EEVEE_ViewLayerData * | sldata, |
EEVEE_Data * | vedata | ||
) |
void EEVEE_bloom_output_init | ( | EEVEE_ViewLayerData * | sldata, |
EEVEE_Data * | vedata, | ||
uint | tot_samples | ||
) |
Definition at line 99 of file eevee_engine.c.
References Object::base_flag, BASE_FROM_DUPLI, DRW_context_state_get(), DRW_object_is_renderable(), DRW_object_visibility_in_active_context(), EEVEE_lightprobes_cache_add(), EEVEE_lights_cache_add(), EEVEE_materials_cache_populate(), EEVEE_object_curves_cache_populate(), EEVEE_particle_hair_cache_populate(), EEVEE_shadows_caster_register(), EEVEE_view_layer_data_ensure(), EEVEE_volumes_cache_object_add(), ELEM, OB_CURVES, OB_LAMP, OB_LIGHTPROBE, OB_MBALL, OB_MESH, OB_SURF, OB_VISIBLE_PARTICLES, OB_VISIBLE_SELF, OB_VOLUME, DRWContextState::scene, Object::type, USE_SCENE_LIGHT, and DRWContextState::v3d.
void eevee_contact_shadow_setup | ( | const Light * | la, |
EEVEE_Shadow * | evsh | ||
) |
Definition at line 19 of file eevee_shadows.c.
References EEVEE_Shadow::contact_bias, Light::contact_bias, EEVEE_Shadow::contact_dist, Light::contact_dist, EEVEE_Shadow::contact_thickness, Light::contact_thickness, LA_SHAD_CONTACT, and Light::mode.
Referenced by EEVEE_shadows_cascade_add(), and EEVEE_shadows_cube_add().
void EEVEE_create_minmax_buffer | ( | EEVEE_Data * | vedata, |
struct GPUTexture * | depth_src, | ||
int | layer | ||
) |
Definition at line 356 of file eevee_effects.c.
References depth_src, DRW_draw_pass(), DRW_stats_group_end(), DRW_stats_group_start(), e_data, EEVEE_Data::fbl, GPU_DEVICE_INTEL_UHD, GPU_DRIVER_ANY, GPU_flush(), GPU_framebuffer_bind(), GPU_framebuffer_recursive_downsample(), GPU_mip_render_workaround(), GPU_OS_WIN, GPU_type_matches(), EEVEE_FramebufferList::main_fb, max_downsample_cb(), MAX_SCREEN_BUFFERS_LOD_LEVEL, EEVEE_PassList::maxz_copydepth_layer_ps, EEVEE_PassList::maxz_copydepth_ps, EEVEE_FramebufferList::maxzbuffer_fb, and EEVEE_Data::psl.
Referenced by eevee_draw_scene(), EEVEE_occlusion_output_accumulate(), EEVEE_render_draw(), and lightbake_render_scene_reflected().
void EEVEE_cryptomatte_cache_init | ( | EEVEE_ViewLayerData * | sldata, |
EEVEE_Data * | vedata | ||
) |
void EEVEE_cryptomatte_cache_populate | ( | EEVEE_Data * | vedata, |
EEVEE_ViewLayerData * | sldata, | ||
Object * | ob | ||
) |
Definition at line 285 of file eevee_cryptomatte.c.
References BKE_object_material_get_eval(), BLI_array_alloca, DRW_cache_object_material_count_get(), DRW_cache_object_surface_get(), DRW_cache_object_surface_material_get(), DRW_context_state_get(), DRW_shgroup_call, eevee_cryptomatte_active_layers(), eevee_cryptomatte_shading_group_create(), GPUBatch, material, NULL, DRWContextState::view_layer, and VIEW_LAYER_CRYPTOMATTE_MATERIAL.
Referenced by EEVEE_render_cache().
void EEVEE_cryptomatte_free | ( | EEVEE_Data * | vedata | ) |
Definition at line 701 of file eevee_cryptomatte.c.
References BKE_cryptomatte_free(), EEVEE_StorageList::g_data, g_data, MEM_SAFE_FREE, NULL, and EEVEE_Data::stl.
Referenced by eevee_store_metadata().
void EEVEE_cryptomatte_object_curves_cache_populate | ( | EEVEE_Data * | vedata, |
EEVEE_ViewLayerData * | sldata, | ||
Object * | ob | ||
) |
Definition at line 246 of file eevee_cryptomatte.c.
References BKE_object_material_get_eval(), BLI_assert, CURVES_MATERIAL_NR, DRW_shgroup_curves_create_sub(), eevee_cryptomatte_shading_group_create(), material, NULL, OB_CURVES, and Object::type.
Referenced by EEVEE_render_cache().
void EEVEE_cryptomatte_output_accumulate | ( | EEVEE_ViewLayerData * | sldata, |
EEVEE_Data * | vedata | ||
) |
void EEVEE_cryptomatte_output_init | ( | EEVEE_ViewLayerData * | sldata, |
EEVEE_Data * | vedata, | ||
int | tot_samples | ||
) |
void EEVEE_cryptomatte_particle_hair_cache_populate | ( | EEVEE_Data * | vedata, |
EEVEE_ViewLayerData * | sldata, | ||
Object * | ob | ||
) |
Definition at line 257 of file eevee_cryptomatte.c.
References BKE_object_material_get_eval(), ParticleSettings::draw_as, DRW_context_state_get(), DRW_object_is_visible_psys_in_active_context(), eevee_cryptomatte_curves_cache_populate(), eModifierType_ParticleSystem, if(), LISTBASE_FOREACH, material, Object::modifiers, OB_MESH, DRWContextState::object_edit, ParticleSettings::omat, ParticleSystem::part, PART_DRAW_PATH, PART_DRAW_REND, ParticleSettings::ren_as, and Object::type.
Referenced by EEVEE_render_cache().
void EEVEE_cryptomatte_render_result | ( | struct RenderLayer * | rl, |
const char * | viewname, | ||
const rcti * | rect, | ||
EEVEE_Data * | vedata, | ||
EEVEE_ViewLayerData * | sldata | ||
) |
void EEVEE_cryptomatte_renderpasses_init | ( | EEVEE_Data * | vedata | ) |
Definition at line 100 of file eevee_cryptomatte.c.
References BKE_cryptomatte_add_layer(), BKE_cryptomatte_init(), ViewLayer::cryptomatte_flag, DRW_context_state_get(), DRW_state_is_scene_render(), eevee_cryptomatte_active_layers(), EEVEE_RENDER_PASS_CRYPTOMATTE, EEVEE_RENDER_PASS_VOLUME_LIGHT, EEVEE_StorageList::g_data, g_data, EEVEE_Data::stl, DRWContextState::view_layer, VIEW_LAYER_CRYPTOMATTE_ACCURATE, VIEW_LAYER_CRYPTOMATTE_ASSET, VIEW_LAYER_CRYPTOMATTE_MATERIAL, and VIEW_LAYER_CRYPTOMATTE_OBJECT.
Referenced by EEVEE_renderpasses_init().
void EEVEE_cryptomatte_store_metadata | ( | EEVEE_Data * | vedata, |
struct RenderResult * | render_result | ||
) |
Definition at line 689 of file eevee_cryptomatte.c.
References BKE_cryptomatte_store_metadata(), BLI_assert, DRW_context_state_get(), EEVEE_StorageList::g_data, g_data, EEVEE_Data::stl, and DRWContextState::view_layer.
Referenced by eevee_store_metadata().
void EEVEE_cryptomatte_update_passes | ( | struct RenderEngine * | engine, |
struct Scene * | scene, | ||
struct ViewLayer * | view_layer | ||
) |
Register the render passes needed for cryptomatte normally this is done in EEVEE_render_update_passes
, but it has been placed here to keep related code side-by-side for clarity.
Definition at line 423 of file eevee_cryptomatte.c.
References BLI_snprintf_rlen(), ViewLayer::cryptomatte_flag, eevee_cryptomatte_passes_per_layer(), MAX_NAME, RE_engine_register_pass(), scene, SOCK_RGBA, VIEW_LAYER_CRYPTOMATTE_ASSET, VIEW_LAYER_CRYPTOMATTE_MATERIAL, and VIEW_LAYER_CRYPTOMATTE_OBJECT.
Referenced by EEVEE_render_update_passes().
void EEVEE_depth_of_field_cache_init | ( | EEVEE_ViewLayerData * | sldata, |
EEVEE_Data * | vedata | ||
) |
void EEVEE_depth_of_field_draw | ( | EEVEE_Data * | vedata | ) |
Definition at line 950 of file eevee_depth_of_field.c.
References EEVEE_PassList::dof_bokeh, EEVEE_FramebufferList::dof_bokeh_fb, EEVEE_EffectsInfo::dof_bokeh_gather_lut_tx, dof_dilate_tiles_pass_draw(), EEVEE_PassList::dof_downsample, EEVEE_FramebufferList::dof_downsample_fb, EEVEE_PassList::dof_filter, EEVEE_FramebufferList::dof_filter_bg_fb, EEVEE_FramebufferList::dof_filter_fg_fb, EEVEE_PassList::dof_flatten_tiles, EEVEE_FramebufferList::dof_flatten_tiles_fb, EEVEE_PassList::dof_gather_bg, EEVEE_FramebufferList::dof_gather_bg_fb, EEVEE_PassList::dof_gather_fg, EEVEE_FramebufferList::dof_gather_fg_fb, EEVEE_PassList::dof_gather_fg_holefill, EEVEE_FramebufferList::dof_gather_fg_holefill_fb, EEVEE_EffectsInfo::dof_half_res_coc_tx, EEVEE_EffectsInfo::dof_half_res_color_tx, dof_recursive_reduce(), EEVEE_PassList::dof_reduce_copy, EEVEE_FramebufferList::dof_reduce_copy_fb, EEVEE_FramebufferList::dof_reduce_fb, EEVEE_EffectsInfo::dof_reduce_input_coc_tx, EEVEE_EffectsInfo::dof_reduce_input_color_tx, EEVEE_EffectsInfo::dof_reduce_steps, EEVEE_PassList::dof_resolve, EEVEE_PassList::dof_scatter_bg, EEVEE_FramebufferList::dof_scatter_bg_fb, EEVEE_PassList::dof_scatter_fg, EEVEE_FramebufferList::dof_scatter_fg_fb, EEVEE_PassList::dof_setup, EEVEE_FramebufferList::dof_setup_fb, DRW_draw_pass(), DRW_stats_group_end(), DRW_stats_group_start(), EFFECT_DOF, EEVEE_StorageList::effects, EEVEE_EffectsInfo::enabled_effects, EEVEE_Data::fbl, GPU_framebuffer_bind(), GPU_framebuffer_recursive_downsample(), NULL, EEVEE_Data::psl, EEVEE_Data::stl, SWAP_BUFFERS, EEVEE_EffectsInfo::target_buffer, and EEVEE_Data::txl.
Referenced by EEVEE_draw_effects().
int EEVEE_depth_of_field_init | ( | EEVEE_ViewLayerData * | sldata, |
EEVEE_Data * | vedata, | ||
Object * | camera | ||
) |
bool EEVEE_depth_of_field_jitter_get | ( | EEVEE_EffectsInfo * | effects, |
float | r_jitter[2], | ||
float * | r_focus_distance | ||
) |
Definition at line 93 of file eevee_depth_of_field.c.
References CAMERA_JITTER_RING_DENSITY, circle_to_polygon_angle(), circle_to_polygon_radius(), cosf, EEVEE_EffectsInfo::dof_bokeh_aniso, EEVEE_EffectsInfo::dof_bokeh_rotation, EEVEE_EffectsInfo::dof_jitter_blades, EEVEE_EffectsInfo::dof_jitter_focus, EEVEE_EffectsInfo::dof_jitter_radius, EEVEE_EffectsInfo::dof_jitter_ring_count, dof_jitter_total_sample_count(), float(), M_PI, mul_v2_fl(), mul_v2_v2(), r, sinf, T, and EEVEE_EffectsInfo::taa_current_sample.
Referenced by EEVEE_temporal_sampling_matrices_calc().
int EEVEE_depth_of_field_sample_count_get | ( | EEVEE_EffectsInfo * | effects, |
int | sample_count, | ||
int * | r_ring_count | ||
) |
Definition at line 150 of file eevee_depth_of_field.c.
References CAMERA_JITTER_RING_DENSITY, ceilf, EEVEE_EffectsInfo::dof_jitter_radius, dof_jitter_total_sample_count(), NULL, sqrt(), TAA_MAX_SAMPLE, and x.
Referenced by EEVEE_depth_of_field_init(), and EEVEE_temporal_sampling_sample_count_get().
void EEVEE_downsample_cube_buffer | ( | EEVEE_Data * | vedata, |
struct GPUTexture * | texture_src, | ||
int | level | ||
) |
Simple down-sampling algorithm for cube-map. Reconstruct mip chain up to mip level.
Definition at line 415 of file eevee_effects.c.
References EEVEE_FramebufferList::downsample_fb, DRW_stats_group_end(), DRW_stats_group_start(), e_data, EEVEE_Data::fbl, GPU_framebuffer_recursive_downsample(), GPU_framebuffer_texture_attach(), GPU_framebuffer_texture_detach(), and simple_downsample_cube_cb().
Referenced by EEVEE_lightbake_filter_diffuse(), and EEVEE_lightbake_filter_glossy().
void EEVEE_draw_effects | ( | EEVEE_ViewLayerData * | sldata, |
EEVEE_Data * | vedata | ||
) |
Definition at line 450 of file eevee_effects.c.
References EEVEE_TextureList::color, EEVEE_TextureList::color_double_buffer, DRW_state_is_image_render(), DRW_view_persmat_get(), DRW_viewport_request_redraw(), EEVEE_bloom_draw(), EEVEE_depth_of_field_draw(), EEVEE_lookdev_draw(), EEVEE_motion_blur_draw(), EEVEE_renderpasses_output_accumulate(), EEVEE_temporal_sampling_draw(), EEVEE_velocity_resolve(), EEVEE_FramebufferList::effect_color_fb, EFFECT_DOUBLE_BUFFER, EEVEE_FramebufferList::effect_fb, EFFECT_TAA, EEVEE_StorageList::effects, EEVEE_EffectsInfo::enabled_effects, EEVEE_Data::fbl, EEVEE_EffectsInfo::final_fb, EEVEE_EffectsInfo::final_tx, EEVEE_StorageList::g_data, if(), EEVEE_FramebufferList::main_color_fb, EEVEE_FramebufferList::main_fb, NULL, EEVEE_EffectsInfo::prev_persmat, EEVEE_EffectsInfo::source_buffer, EEVEE_Data::stl, EEVEE_EffectsInfo::swap_double_buffer, SWAP_DOUBLE_BUFFERS, EEVEE_TextureList::taa_history, EEVEE_FramebufferList::taa_history_fb, EEVEE_EffectsInfo::taa_view, EEVEE_EffectsInfo::target_buffer, EEVEE_Data::txl, EEVEE_PrivateData::valid_double_buffer, and EEVEE_PrivateData::valid_taa_history.
Referenced by eevee_draw_scene(), and EEVEE_render_draw().
void EEVEE_effects_cache_init | ( | EEVEE_ViewLayerData * | sldata, |
EEVEE_Data * | vedata | ||
) |
Definition at line 222 of file eevee_effects.c.
References EEVEE_MotionBlurData::camera, EEVEE_PassList::color_copy_ps, EEVEE_PassList::color_downsample_cube_ps, EEVEE_PassList::color_downsample_ps, EEVEE_ViewLayerData::combined, EEVEE_ViewLayerData::common_data, EEVEE_ViewLayerData::common_ubo, DRW_cache_fullscreen_quad_get(), DRW_PASS_CREATE, DRW_shgroup_call, DRW_shgroup_call_instances(), DRW_shgroup_call_procedural_triangles(), DRW_shgroup_create(), DRW_shgroup_uniform_block, DRW_shgroup_uniform_float(), DRW_shgroup_uniform_int(), DRW_shgroup_uniform_int_copy(), DRW_shgroup_uniform_mat4(), DRW_shgroup_uniform_texture_ex(), DRW_shgroup_uniform_texture_ref(), DRW_shgroup_uniform_texture_ref_ex(), DRW_shgroup_uniform_vec2(), DRW_STATE_DEPTH_ALWAYS, DRW_STATE_WRITE_COLOR, DRW_STATE_WRITE_DEPTH, e_data, EEVEE_shaders_effect_color_copy_sh_get(), EEVEE_shaders_effect_downsample_cube_sh_get(), EEVEE_shaders_effect_downsample_sh_get(), EEVEE_shaders_effect_maxz_copydepth_layer_sh_get(), EEVEE_shaders_effect_maxz_copydepth_sh_get(), EEVEE_shaders_effect_maxz_downlevel_sh_get(), EEVEE_shaders_velocity_resolve_sh_get(), EFFECT_RADIANCE_BUFFER, EFFECT_VELOCITY_BUFFER, EEVEE_StorageList::effects, EEVEE_EffectsInfo::enabled_effects, EEVEE_TextureList::filtered_radiance, GPU_BACKEND_OPENGL, GPU_DEVICE_INTEL, GPU_DRIVER_ANY, GPU_OS_ANY, GPU_SAMPLER_DEFAULT, GPU_SAMPLER_FILTER, GPU_type_matches_ex(), GPUBatch, EEVEE_PassList::maxz_copydepth_layer_ps, EEVEE_PassList::maxz_copydepth_ps, EEVEE_PassList::maxz_downlevel_ps, EEVEE_TextureList::maxzbuffer, MB_CURR, MB_NEXT, MB_PREV, EEVEE_EffectsInfo::motion_blur, NULL, EEVEE_MotionBlurData::persinv, EEVEE_MotionBlurData::persmat, EEVEE_Data::psl, quad, EEVEE_ViewLayerData::renderpass_ubo, EEVEE_CommonUniformBuffer::ssr_firefly_fac, EEVEE_Data::stl, EEVEE_Data::txl, and EEVEE_PassList::velocity_resolve.
Referenced by eevee_cache_init(), eevee_lightbake_cache_create(), and EEVEE_render_cache_init().
void EEVEE_effects_downsample_radiance_buffer | ( | EEVEE_Data * | vedata, |
struct GPUTexture * | texture_src | ||
) |
Simple down-sampling algorithm. Reconstruct mip chain up to mip level.
Definition at line 399 of file eevee_effects.c.
References EEVEE_PassList::color_copy_ps, downsample_radiance_cb(), DRW_draw_pass(), DRW_stats_group_end(), DRW_stats_group_start(), e_data, EEVEE_Data::fbl, GPU_framebuffer_bind(), GPU_framebuffer_recursive_downsample(), MAX_SCREEN_BUFFERS_LOD_LEVEL, EEVEE_Data::psl, and EEVEE_FramebufferList::radiance_filtered_fb.
Referenced by EEVEE_reflection_compute(), and EEVEE_refraction_compute().
void EEVEE_effects_draw_init | ( | EEVEE_ViewLayerData * | sldata, |
EEVEE_Data * | vedata | ||
) |
void EEVEE_effects_init | ( | EEVEE_ViewLayerData * | sldata, |
EEVEE_Data * | vedata, | ||
Object * | camera, | ||
bool | minimal | ||
) |
MinMax Pyramid
Compute hiZ texel alignment.
Color buffer with correct down-sampling alignment. Used for SSReflections & SSRefractions.
Normal buffer for deferred passes.
Motion vector buffer for correct TAA / motion blur.
Setup depth double buffer.
Definition at line 56 of file eevee_effects.c.
References camera, CLEANUP_BUFFER, EEVEE_ViewLayerData::common_data, EEVEE_TextureList::depth_double_buffer, divide_ceil_u(), EEVEE_FramebufferList::double_buffer_depth_fb, EEVEE_FramebufferList::downsample_fb, draw_engine_eevee_type, DRW_TEX_FILTER, DRW_TEX_MIPMAP, DRW_texture_ensure_2d(), DRW_texture_ensure_fullscreen_2d(), DRW_TEXTURE_FREE_SAFE, DRW_texture_pool_query_2d(), DRW_viewport_size_get(), DRW_viewport_texture_list_get(), EEVEE_bloom_init(), EEVEE_depth_of_field_init(), EEVEE_lookdev_init(), EEVEE_motion_blur_init(), EEVEE_occlusion_init(), EEVEE_RENDER_PASS_NORMAL, EEVEE_screen_raytrace_init(), EEVEE_subsurface_init(), EEVEE_temporal_sampling_init(), EEVEE_temporal_sampling_update_matrices(), EEVEE_volumes_init(), EFFECT_DEPTH_DOUBLE_BUFFER, EFFECT_NORMAL_BUFFER, EFFECT_RADIANCE_BUFFER, EFFECT_TAA, EFFECT_TAA_REPROJECT, EFFECT_VELOCITY_BUFFER, EEVEE_StorageList::effects, EEVEE_EffectsInfo::enabled_effects, EEVEE_Data::fbl, EEVEE_TextureList::filtered_radiance, G, EEVEE_StorageList::g_data, GPU_BACKEND_OPENGL, GPU_DEPTH24_STENCIL8, GPU_DEPTH_COMPONENT24, GPU_DEVICE_INTEL, GPU_DRIVER_ANY, GPU_framebuffer_create(), GPU_framebuffer_texture_attach(), GPU_OS_ANY, GPU_R11F_G11F_B10F, GPU_R32F, GPU_RG16, GPU_RGBA16, GPU_type_matches_ex(), EEVEE_EffectsInfo::hiz_size, EEVEE_CommonUniformBuffer::hiz_uv_scale, EEVEE_FramebufferList::main_fb, MAX_SCREEN_BUFFERS_LOD_LEVEL, EEVEE_TextureList::maxzbuffer, EEVEE_FramebufferList::maxzbuffer_fb, MEM_callocN, NULL, EEVEE_FramebufferList::radiance_filtered_fb, EEVEE_PrivateData::render_passes, SETUP_BUFFER, EEVEE_EffectsInfo::ssr_normal_input, EEVEE_CommonUniformBuffer::ssr_pixelsize, EEVEE_Data::stl, EEVEE_TextureList::taa_history, EEVEE_FramebufferList::taa_history_color_fb, EEVEE_FramebufferList::taa_history_fb, EEVEE_EffectsInfo::taa_render_sample, EEVEE_Data::txl, UNPACK2, EEVEE_FramebufferList::velocity_fb, EEVEE_FramebufferList::velocity_resolve_fb, and EEVEE_EffectsInfo::velocity_tx.
Referenced by eevee_engine_init(), eevee_lightbake_cache_create(), and EEVEE_render_modules_init().
BLI_INLINE bool eevee_hdri_preview_overlay_enabled | ( | const View3D * | v3d | ) |
Definition at line 122 of file eevee_private.h.
References View3DOverlay::flag, View3D::flag2, NULL, OB_MATERIAL, View3D::overlay, View3DShading::render_pass, SCE_PASS_COMBINED, View3D::shading, View3DShading::type, V3D_HIDE_OVERLAYS, and V3D_OVERLAY_LOOK_DEV.
Referenced by EEVEE_lookdev_cache_init(), EEVEE_lookdev_draw(), and EEVEE_lookdev_init().
Definition at line 414 of file eevee_engine.c.
References eevee_id_object_update(), eevee_id_world_update(), GS, id, ID_OB, ID_WO, and ID::name.
Referenced by EEVEE_render_cache().
EEVEE_LightEngineData* EEVEE_light_data_ensure | ( | Object * | ob | ) |
Definition at line 342 of file eevee_data.c.
References BLI_assert, draw_engine_eevee_type, DRW_drawdata_ensure(), eevee_light_data_init(), Object::id, NULL, OB_LAMP, and Object::type.
Referenced by EEVEE_shadows_cube_add().
EEVEE_LightEngineData* EEVEE_light_data_get | ( | Object * | ob | ) |
Definition at line 334 of file eevee_data.c.
References draw_engine_eevee_type, DRW_drawdata_get(), Object::id, NULL, OB_LAMP, and Object::type.
Referenced by eevee_id_object_update().
void eevee_light_matrix_get | ( | const EEVEE_Light * | evli, |
float | r_mat[4][4] | ||
) |
Reconstruct local obmat
from EEVEE_light. (normalized).
Definition at line 16 of file eevee_lights.c.
References copy_v3_v3(), EEVEE_Light::forwardvec, negate_v3_v3(), EEVEE_Light::position, EEVEE_Light::rightvec, and EEVEE_Light::upvec.
Referenced by EEVEE_shadows_cube_setup().
void EEVEE_lightbake_cache_init | ( | EEVEE_ViewLayerData * | sldata, |
EEVEE_Data * | vedata, | ||
GPUTexture * | rt_color, | ||
GPUTexture * | rt_depth | ||
) |
Only initialize the passes useful for rendering the light cache.
Definition at line 190 of file eevee_lightprobes.c.
References EEVEE_ViewLayerData::combined, EEVEE_ViewLayerData::common_ubo, DRW_cache_fullscreen_quad_get(), DRW_PASS_CREATE, DRW_shgroup_call, DRW_shgroup_call_instances(), DRW_shgroup_create(), DRW_shgroup_uniform_block, DRW_shgroup_uniform_float(), DRW_shgroup_uniform_int(), DRW_shgroup_uniform_texture(), DRW_shgroup_uniform_texture_ref(), DRW_STATE_WRITE_COLOR, EEVEE_shaders_probe_filter_diffuse_sh_get(), EEVEE_shaders_probe_filter_glossy_sh_get(), EEVEE_shaders_probe_filter_visibility_sh_get(), EEVEE_shaders_probe_grid_fill_sh_get(), EEVEE_LightProbesInfo::far_clip, EEVEE_LightProbesInfo::firefly_fac, EEVEE_StorageList::g_data, GPUBatch, LightCache::grid_tx, EEVEE_LightProbesInfo::intensity_fac, EEVEE_LightProbesInfo::layer, EEVEE_PrivateData::light_cache, EEVEE_LightProbesInfo::lod_rt_max, EEVEE_LightProbesInfo::lodfactor, EEVEE_LightProbesInfo::near_clip, NULL, EEVEE_LightProbesInfo::padding_size, EEVEE_PassList::probe_diffuse_compute, EEVEE_PassList::probe_glossy_compute, EEVEE_PassList::probe_grid_fill, EEVEE_PassList::probe_visibility_compute, EEVEE_ViewLayerData::probes, EEVEE_Data::psl, EEVEE_ViewLayerData::renderpass_ubo, EEVEE_LightProbesInfo::roughness, EEVEE_LightProbesInfo::samples_len, EEVEE_LightProbesInfo::shres, EEVEE_Data::stl, LightCacheTexture::tex, EEVEE_LightProbesInfo::texel_size, EEVEE_LightProbesInfo::visibility_blur, and EEVEE_LightProbesInfo::visibility_range.
Referenced by eevee_lightbake_cache_create(), and EEVEE_lightbake_update_world_quick().
void EEVEE_lightbake_filter_diffuse | ( | EEVEE_ViewLayerData * | sldata, |
EEVEE_Data * | vedata, | ||
struct GPUTexture * | rt_color, | ||
struct GPUFrameBuffer * | fb, | ||
int | grid_offset, | ||
float | intensity | ||
) |
Diffuse filter rt_color
to light_cache->grid_tx.tex
at index grid_offset
.
Definition at line 1050 of file eevee_lightprobes.c.
References DRW_draw_pass(), EEVEE_downsample_cube_buffer(), fb(), float(), EEVEE_StorageList::g_data, GPU_framebuffer_bind(), GPU_framebuffer_viewport_reset(), GPU_framebuffer_viewport_set(), GPU_texture_width(), LightCache::grid_tx, EEVEE_LightProbesInfo::intensity_fac, EEVEE_PrivateData::light_cache, EEVEE_LightProbesInfo::lod_rt_max, EEVEE_LightProbesInfo::lodfactor, log(), log2_floor_u(), EEVEE_PassList::probe_diffuse_compute, EEVEE_ViewLayerData::probes, EEVEE_Data::psl, EEVEE_LightProbesInfo::samples_len, EEVEE_LightProbesInfo::shres, size(), square_f(), EEVEE_Data::stl, LightCacheTexture::tex, x, and y.
Referenced by eevee_lightbake_render_grid_sample(), eevee_lightbake_render_world_sample(), and EEVEE_lightbake_update_world_quick().
void EEVEE_lightbake_filter_glossy | ( | EEVEE_ViewLayerData * | sldata, |
EEVEE_Data * | vedata, | ||
struct GPUTexture * | rt_color, | ||
struct GPUFrameBuffer * | fb, | ||
int | probe_idx, | ||
float | intensity, | ||
int | maxlevel, | ||
float | filter_quality, | ||
float | firefly_fac | ||
) |
Glossy filter rt_color
to light_cache->cube_tx.tex
at index probe_idx
.
Definition at line 962 of file eevee_lightprobes.c.
References CLAMP, CLAMP_MIN, LightCache::cube_tx, DRW_draw_pass(), EEVEE_downsample_cube_buffer(), fb(), EEVEE_LightProbesInfo::firefly_fac, float(), EEVEE_StorageList::g_data, GPU_framebuffer_bind(), GPU_texture_width(), EEVEE_LightProbesInfo::intensity_fac, EEVEE_LightProbesInfo::layer, EEVEE_PrivateData::light_cache, EEVEE_LightProbesInfo::lod_rt_max, EEVEE_LightProbesInfo::lodfactor, log(), log2_floor_u(), EEVEE_LightProbesInfo::padding_size, EEVEE_PassList::probe_glossy_compute, EEVEE_ViewLayerData::probes, EEVEE_Data::psl, EEVEE_LightProbesInfo::roughness, EEVEE_LightProbesInfo::samples_len, square_f(), EEVEE_Data::stl, LightCacheTexture::tex, and EEVEE_LightProbesInfo::texel_size.
Referenced by eevee_lightbake_render_probe_sample(), eevee_lightbake_render_world_sample(), and EEVEE_lightbake_update_world_quick().
void EEVEE_lightbake_filter_visibility | ( | EEVEE_ViewLayerData * | sldata, |
EEVEE_Data * | vedata, | ||
struct GPUTexture * | rt_depth, | ||
struct GPUFrameBuffer * | fb, | ||
int | grid_offset, | ||
float | clipsta, | ||
float | clipend, | ||
float | vis_range, | ||
float | vis_blur, | ||
int | vis_size | ||
) |
Filter rt_depth
to light_cache->grid_tx.tex
at index grid_offset
.
void EEVEE_lightbake_render_scene | ( | EEVEE_ViewLayerData * | sldata, |
EEVEE_Data * | vedata, | ||
struct GPUFrameBuffer * | face_fb[6], | ||
const float | pos[3], | ||
float | near_clip, | ||
float | far_clip | ||
) |
Render the scene to the probe_rt
texture.
Definition at line 858 of file eevee_lightprobes.c.
References lightbake_render_scene_face(), pos, render_cubemap(), and EEVEE_BakeRenderData::vedata.
Referenced by eevee_lightbake_render_grid_sample(), and eevee_lightbake_render_probe_sample().
void EEVEE_lightbake_render_world | ( | EEVEE_ViewLayerData * | sldata, |
EEVEE_Data * | vedata, | ||
struct GPUFrameBuffer * | face_fb[6] | ||
) |
EEVEE_LightProbeEngineData* EEVEE_lightprobe_data_ensure | ( | Object * | ob | ) |
Definition at line 316 of file eevee_data.c.
References BLI_assert, draw_engine_eevee_type, DRW_drawdata_ensure(), eevee_lightprobe_data_init(), Object::id, NULL, OB_LIGHTPROBE, and Object::type.
Referenced by EEVEE_lightprobes_cache_add().
EEVEE_LightProbeEngineData* EEVEE_lightprobe_data_get | ( | Object * | ob | ) |
Definition at line 308 of file eevee_data.c.
References draw_engine_eevee_type, DRW_drawdata_get(), Object::id, NULL, OB_LIGHTPROBE, and Object::type.
Referenced by eevee_id_object_update().
void EEVEE_lightprobes_cache_add | ( | EEVEE_ViewLayerData * | sldata, |
EEVEE_Data * | vedata, | ||
Object * | ob | ||
) |
Definition at line 427 of file eevee_lightprobes.c.
References Object::data, EEVEE_LightProbesInfo::do_cube_update, EEVEE_LightProbesInfo::do_grid_update, DRW_buffer_add_entry, EEVEE_lightprobe_data_ensure(), eevee_lightprobes_culling_test(), EEVEE_lightprobes_planar_data_from_object(), EEVEE_PROBE_MAX, LightProbe::flag, EEVEE_StorageList::g_data, if(), LIGHTPROBE_FLAG_SHOW_DATA, LIGHTPROBE_TYPE_CUBE, LIGHTPROBE_TYPE_GRID, LIGHTPROBE_TYPE_PLANAR, MAX_PLANAR, EEVEE_LightProbeEngineData::need_update, EEVEE_LightProbesInfo::num_cube, EEVEE_LightProbesInfo::num_grid, EEVEE_LightProbesInfo::num_planar, Object::obmat, EEVEE_LightProbesInfo::planar_data, EEVEE_PrivateData::planar_display_shgrp, EEVEE_LightProbesInfo::planar_vis_tests, EEVEE_ViewLayerData::probes, EEVEE_Data::stl, and LightProbe::type.
Referenced by EEVEE_cache_populate(), and EEVEE_render_cache().
void EEVEE_lightprobes_cache_finish | ( | EEVEE_ViewLayerData * | sldata, |
EEVEE_Data * | vedata | ||
) |
Definition at line 674 of file eevee_lightprobes.c.
References BLI_assert, EEVEE_LightProbesInfo::cache_num_planar, EEVEE_ViewLayerData::common_data, LightCache::cube_len, DEG_get_evaluated_scene(), DEG_get_input_scene(), DRWContextState::depsgraph, EEVEE_LightProbesInfo::do_cube_update, EEVEE_LightProbesInfo::do_grid_update, DRW_context_state_get(), DRW_PASS_CREATE, DRW_shgroup_call_procedural_triangles(), DRW_shgroup_create(), DRW_shgroup_uniform_float(), DRW_shgroup_uniform_texture_ref(), DRW_state_is_image_render(), DRW_state_is_opengl_render(), DRW_STATE_WRITE_COLOR, DRW_TEXTURE_FREE_SAFE, Scene::eevee, eevee_lightprobes_extract_from_cache(), EEVEE_shaders_probe_planar_downsample_sh_get(), DRWContextState::evil_C, LightCache::flag, SceneEEVEE::flag, float(), EEVEE_StorageList::g_data, SceneEEVEE::gi_irradiance_smoothing, GPU_uniformbuf_update(), EEVEE_LightProbesInfo::grid_data, LightCache::grid_len, EEVEE_ViewLayerData::grid_ubo, EEVEE_PrivateData::light_cache, SceneEEVEE::light_cache_data, LIGHTCACHE_UPDATE_AUTO, LIGHTCACHE_UPDATE_CUBE, LIGHTCACHE_UPDATE_GRID, max_ii(), LightCache::mips_len, NC_LIGHTPROBE, NULL, EEVEE_LightProbesInfo::num_planar, EEVEE_TextureList::planar_depth, EEVEE_TextureList::planar_pool, planar_pool_ensure_alloc(), EEVEE_CommonUniformBuffer::prb_irradiance_smooth, EEVEE_CommonUniformBuffer::prb_irradiance_vis_size, EEVEE_CommonUniformBuffer::prb_lod_cube_max, EEVEE_CommonUniformBuffer::prb_num_planar, EEVEE_CommonUniformBuffer::prb_num_render_cube, EEVEE_CommonUniformBuffer::prb_num_render_grid, EEVEE_LightProbesInfo::probe_data, EEVEE_PassList::probe_planar_downsample_ps, EEVEE_ViewLayerData::probe_ubo, EEVEE_ViewLayerData::probes, EEVEE_Data::psl, SCE_EEVEE_GI_AUTOBAKE, DRWContextState::scene, square_f(), EEVEE_CommonUniformBuffer::ssr_firefly_fac, EEVEE_Data::stl, EEVEE_Data::txl, LightCache::vis_res, and WM_event_add_notifier().
Referenced by eevee_cache_finish(), eevee_lightbake_cache_create(), and eevee_render_to_image().
void EEVEE_lightprobes_cache_init | ( | EEVEE_ViewLayerData * | sldata, |
EEVEE_Data * | vedata | ||
) |
Definition at line 275 of file eevee_lightprobes.c.
References EEVEE_LightProbeVisTest::collection, EEVEE_ViewLayerData::combined, EEVEE_ViewLayerData::common_ubo, LightGridCache::corner, LightCache::cube_len, LightCache::cube_tx, DEG_get_evaluated_scene(), DRWContextState::depsgraph, EEVEE_LightProbesInfo::do_cube_update, EEVEE_LightProbesInfo::do_grid_update, DRW_cache_fullscreen_quad_get(), DRW_cache_quad_get(), DRW_context_state_get(), DRW_PASS_CREATE, DRW_shgroup_call, DRW_shgroup_call_buffer_instance(), DRW_shgroup_call_procedural_triangles(), DRW_shgroup_create(), DRW_shgroup_instance_format, DRW_shgroup_material_create(), DRW_shgroup_uniform_block, DRW_shgroup_uniform_block_ref, DRW_shgroup_uniform_float_copy(), DRW_shgroup_uniform_int(), DRW_shgroup_uniform_ivec3(), DRW_shgroup_uniform_texture_ref(), DRW_shgroup_uniform_vec3(), DRW_STATE_CULL_BACK, DRW_STATE_DEPTH_EQUAL, DRW_STATE_DEPTH_LESS_EQUAL, DRW_state_draw_support(), DRW_STATE_WRITE_COLOR, DRW_STATE_WRITE_DEPTH, DRW_viewport_screenvecs_get(), e_data, Scene::eevee, EEVEE_lookdev_cache_init(), EEVEE_material_get(), EEVEE_shaders_probe_cube_display_sh_get(), EEVEE_shaders_probe_grid_display_sh_get(), EEVEE_shaders_probe_planar_display_sh_get(), EEVEE_world_default_get(), SceneEEVEE::flag, EEVEE_StorageList::g_data, SceneEEVEE::gi_cubemap_draw_size, SceneEEVEE::gi_irradiance_draw_size, LightCache::grid_data, LightCache::grid_len, LightCache::grid_tx, EEVEE_ViewLayerData::grid_ubo, LightGridCache::increment_x, LightGridCache::increment_y, LightGridCache::increment_z, EEVEE_PrivateData::light_cache, EEVEE_ViewLayerData::light_ubo, LOOK_DEV_STUDIO_LIGHT_ENABLED, NULL, EEVEE_LightProbesInfo::num_planar, LightGridCache::offset, options, EEVEE_PrivateData::planar_display_shgrp, EEVEE_TextureList::planar_pool, EEVEE_ViewLayerData::planar_ubo, EEVEE_PassList::probe_background, EEVEE_PassList::probe_display, EEVEE_ViewLayerData::probe_ubo, EEVEE_ViewLayerData::probes, EEVEE_Data::psl, EEVEE_ViewLayerData::renderpass_ubo, EEVEE_PrivateData::renderpass_ubo, LightGridCache::resolution, SCE_EEVEE_SHOW_CUBEMAPS, SCE_EEVEE_SHOW_IRRADIANCE, scene, DRWContextState::scene, EEVEE_ViewLayerData::shadow_ubo, state, EEVEE_Data::stl, LightCacheTexture::tex, EEVEE_Data::txl, DRWContextState::v3d, VAR_WORLD_BACKGROUND, VAR_WORLD_PROBE, EEVEE_LightProbesInfo::vis_data, world, and Scene::world.
Referenced by eevee_cache_init(), eevee_lightbake_cache_create(), and EEVEE_render_cache_init().
void EEVEE_lightprobes_cube_data_from_object | ( | Object * | ob, |
EEVEE_LightProbe * | eprobe | ||
) |
Definition at line 527 of file eevee_lightprobes.c.
References LightProbeCache::attenuation_fac, LightProbe::attenuation_type, LightProbeCache::attenuation_type, LightProbeCache::attenuationmat, copy_v3_v3(), Object::data, LightProbe::distinf, LightProbe::distpar, LightProbe::falloff, LightProbe::flag, invert_m4(), LIGHTPROBE_FLAG_CUSTOM_PARALLAX, max_ff(), mul_m4_m4m4(), Object::obmat, LightProbe::parallax_type, LightProbeCache::parallax_type, LightProbeCache::parallaxmat, LightProbeCache::position, scale_m4_fl(), and unit_m4().
Referenced by eevee_lightbake_gather_probes().
Definition at line 1249 of file eevee_lightprobes.c.
References DRW_TEXTURE_FREE_SAFE, e_data, and MEM_SAFE_FREE.
Referenced by eevee_engine_free().
void EEVEE_lightprobes_grid_data_from_object | ( | Object * | ob, |
EEVEE_LightGrid * | egrid, | ||
int * | offset | ||
) |
Definition at line 469 of file eevee_lightprobes.c.
References add_v3_fl(), add_v3_v3(), LightGridCache::attenuation_bias, LightGridCache::attenuation_scale, copy_v3_fl(), copy_v3_fl3(), copy_v3_v3_int(), LightGridCache::corner, Object::data, LightProbe::distinf, LightProbe::falloff, LightProbe::grid_resolution_x, LightGridCache::increment_x, LightGridCache::increment_y, LightGridCache::increment_z, invert_m4_m4(), len_squared_v3(), LightGridCache::mat, max_ff(), max_fff(), mul_m4_v3(), mul_v3_v3fl(), Object::obmat, offset, LightGridCache::offset, LightGridCache::resolution, sqrtf, sub_v3_v3(), LightProbe::vis_bias, LightProbe::vis_bleedbias, LightGridCache::visibility_bias, LightGridCache::visibility_bleed, and LightGridCache::visibility_range.
Referenced by eevee_lightbake_gather_probes().
void EEVEE_lightprobes_init | ( | EEVEE_ViewLayerData * | sldata, |
EEVEE_Data * | vedata | ||
) |
Definition at line 124 of file eevee_lightprobes.c.
References EEVEE_PrivateData::bake_views, BLI_snprintf(), EEVEE_ViewLayerData::common_data, EEVEE_PrivateData::cube_views, DEG_get_evaluated_scene(), DRWContextState::depsgraph, DRW_context_state_get(), DRW_TEX_FILTER, DRW_texture_create_2d_array(), e_data, Scene::eevee, EEVEE_lightcache_create(), EEVEE_lightcache_load(), EEVEE_shaders_material_shaders_init(), EEVEE_ViewLayerData::fallback_lightcache, LightCache::flag, EEVEE_StorageList::g_data, SceneEEVEE::gi_cubemap_resolution, SceneEEVEE::gi_visibility_resolution, GPU_RGBA8, GPU_uniformbuf_create, EEVEE_ViewLayerData::grid_ubo, EEVEE_Data::info, EEVEE_PrivateData::light_cache, SceneEEVEE::light_cache_data, LIGHTCACHE_NOT_USABLE, MAX_GRID, MAX_PLANAR, MAX_PROBE, MEM_callocN, NULL, EEVEE_ViewLayerData::planar_ubo, EEVEE_PrivateData::planar_views, EEVEE_CommonUniformBuffer::prb_num_planar, EEVEE_CommonUniformBuffer::prb_num_render_cube, EEVEE_CommonUniformBuffer::prb_num_render_grid, EEVEE_ViewLayerData::probe_ubo, EEVEE_ViewLayerData::probes, EEVEE_CommonUniformBuffer::spec_toggle, EEVEE_CommonUniformBuffer::ssr_toggle, EEVEE_CommonUniformBuffer::ssrefract_toggle, EEVEE_CommonUniformBuffer::sss_toggle, EEVEE_Data::stl, and EEVEE_PrivateData::world_views.
Referenced by eevee_engine_init(), eevee_lightbake_cache_create(), and EEVEE_render_modules_init().
Definition at line 49 of file eevee_lightprobes.c.
References BKE_collection_has_object_recursive(), EEVEE_LightProbeVisTest::cached, EEVEE_LightProbeVisTest::collection, EEVEE_LightProbeVisTest::invert, NULL, EEVEE_ObjectEngineData::ob, EEVEE_ObjectEngineData::ob_vis, EEVEE_ObjectEngineData::ob_vis_dirty, EEVEE_ObjectEngineData::test_data, and user_data.
Referenced by lightbake_planar_ensure_view().
void EEVEE_lightprobes_planar_data_from_object | ( | Object * | ob, |
EEVEE_PlanarReflection * | eplanar, | ||
EEVEE_LightProbeVisTest * | vis_test | ||
) |
Definition at line 559 of file eevee_lightprobes.c.
References EEVEE_PlanarReflection::attenuation_bias, EEVEE_PlanarReflection::attenuation_scale, EEVEE_LightProbeVisTest::cached, EEVEE_PlanarReflection::clip_edge_x_neg, EEVEE_PlanarReflection::clip_edge_x_pos, EEVEE_PlanarReflection::clip_edge_y_neg, EEVEE_PlanarReflection::clip_edge_y_pos, EEVEE_PlanarReflection::clip_vec_x, EEVEE_PlanarReflection::clip_vec_y, EEVEE_PlanarReflection::clipsta, LightProbe::clipsta, EEVEE_LightProbeVisTest::collection, copy_v3_v3(), cosf, Object::data, LightProbe::distinf, dot_v3v3(), EEVEE_PlanarReflection::facing_bias, EEVEE_PlanarReflection::facing_scale, LightProbe::falloff, LightProbe::flag, EEVEE_LightProbeVisTest::invert, invert_m4_m4(), LIGHTPROBE_FLAG_INVERT_GROUP, M_PI_2, max_ff(), min_ff(), EEVEE_PlanarReflection::mtx, mul_m4_m4m4(), mul_m4_v3(), normalize_m4_m4(), normalize_v3(), normalize_v3_v3(), Object::obmat, EEVEE_PlanarReflection::plane_equation, and LightProbe::visibility_grp.
Referenced by EEVEE_lightprobes_cache_add().
void EEVEE_lightprobes_refresh | ( | EEVEE_ViewLayerData * | sldata, |
EEVEE_Data * | vedata | ||
) |
Definition at line 1237 of file eevee_lightprobes.c.
References DEG_get_evaluated_scene(), DRWContextState::depsgraph, DRW_context_state_get(), EEVEE_lightbake_update_world_quick(), LightCache::flag, EEVEE_StorageList::g_data, EEVEE_PrivateData::light_cache, LIGHTCACHE_BAKED, LIGHTCACHE_UPDATE_WORLD, and EEVEE_Data::stl.
Referenced by eevee_draw_scene(), and EEVEE_render_draw().
void EEVEE_lightprobes_refresh_planar | ( | EEVEE_ViewLayerData * | sldata, |
EEVEE_Data * | vedata | ||
) |
Definition at line 1175 of file eevee_lightprobes.c.
References EEVEE_LightProbeVisTest::collection, EEVEE_ViewLayerData::common_data, EEVEE_ViewLayerData::common_ubo, copy_v2_fl(), copy_v2_v2(), EEVEE_PrivateData::disable_ligthprobes, DRW_pass_sort_shgroup_z(), DRW_state_is_image_render(), EEVEE_lightbake_filter_planar(), eevee_lightbake_render_scene_to_planars(), EEVEE_RAY_GLOSSY, EFFECT_SSR, EEVEE_StorageList::effects, EEVEE_EffectsInfo::enabled_effects, EEVEE_StorageList::g_data, GPU_uniformbuf_update(), EEVEE_CommonUniformBuffer::hiz_uv_scale, NULL, EEVEE_LightProbesInfo::num_planar, EEVEE_LightProbesInfo::planar_data, EEVEE_ViewLayerData::planar_ubo, EEVEE_CommonUniformBuffer::prb_num_planar, EEVEE_CommonUniformBuffer::prb_num_render_cube, EEVEE_CommonUniformBuffer::prb_num_render_grid, EEVEE_ViewLayerData::probes, EEVEE_Data::psl, EEVEE_CommonUniformBuffer::ray_depth, EEVEE_CommonUniformBuffer::ray_type, EEVEE_CommonUniformBuffer::ssr_toggle, EEVEE_CommonUniformBuffer::ssrefract_toggle, EEVEE_CommonUniformBuffer::sss_toggle, EEVEE_Data::stl, EEVEE_PassList::transparent_pass, UNPACK2, EEVEE_PrivateData::valid_double_buffer, and EEVEE_LightProbesInfo::vis_data.
Referenced by eevee_draw_scene(), and EEVEE_render_draw().
void EEVEE_lights_cache_add | ( | EEVEE_ViewLayerData * | sldata, |
struct Object * | ob | ||
) |
Definition at line 200 of file eevee_lights.c.
References Object::data, eevee_light_setup(), EEVEE_shadows_cascade_add(), EEVEE_shadows_cube_add(), ELEM, Light::energy, if(), is_zero_v3(), LA_AREA, LA_LOCAL, LA_SHADOW, LA_SPOT, LA_SUN, EEVEE_LightsInfo::light_data, EEVEE_ViewLayerData::lights, MAX_LIGHT, Light::mode, EEVEE_LightsInfo::num_light, Light::r, and Light::type.
Referenced by EEVEE_cache_populate(), and EEVEE_render_cache().
void EEVEE_lights_cache_finish | ( | EEVEE_ViewLayerData * | sldata, |
EEVEE_Data * | vedata | ||
) |
Definition at line 230 of file eevee_lights.c.
References EEVEE_Light::color, EEVEE_ViewLayerData::common_data, EEVEE_StorageList::effects, GPU_uniformbuf_update(), EEVEE_CommonUniformBuffer::la_num_light, LA_SUN, EEVEE_LightsInfo::light_data, EEVEE_Light::light_type, EEVEE_ViewLayerData::light_ubo, EEVEE_ViewLayerData::lights, max_ff(), max_fff(), EEVEE_LightsInfo::num_light, EEVEE_Light::radius, sqrtf, square_f(), EEVEE_Data::stl, UNPACK3, EEVEE_Light::volume, EEVEE_EffectsInfo::volume_light_clamp, and EEVEE_Light::volume_radius.
Referenced by eevee_cache_finish(), eevee_lightbake_cache_create(), and eevee_render_to_image().
void EEVEE_lights_cache_init | ( | EEVEE_ViewLayerData * | sldata, |
EEVEE_Data * | vedata | ||
) |
Definition at line 192 of file eevee_lights.c.
References EEVEE_shadows_cache_init(), EEVEE_ViewLayerData::lights, and EEVEE_LightsInfo::num_light.
Referenced by eevee_cache_init(), eevee_lightbake_cache_create(), and EEVEE_render_cache_init().
void EEVEE_lookdev_cache_init | ( | EEVEE_Data * | vedata, |
EEVEE_ViewLayerData * | sldata, | ||
DRWPass * | pass, | ||
EEVEE_LightProbesInfo * | pinfo, | ||
DRWShadingGroup ** | r_shgrp | ||
) |
Definition at line 139 of file eevee_lookdev.c.
References axis_angle_to_mat3_single(), BKE_studiolight_ensure_flag(), BKE_studiolight_find(), copy_m3_m3(), copy_m3_m4(), LightCache::cube_data, LightCache::cube_mips, LightCache::cube_tx, DEG_get_evaluated_scene(), DRWContextState::depsgraph, DRW_context_state_get(), DRW_shgroup_create(), DRW_shgroup_uniform_float_copy(), DRW_shgroup_uniform_mat3(), DRW_shgroup_uniform_texture(), DRW_shgroup_uniform_texture_ex(), DRW_view_viewmat_get(), Scene::eevee, eevee_hdri_preview_overlay_enabled(), EEVEE_lightcache_create(), eevee_lookdev_hdri_preview_init(), eevee_lookdev_lightcache_delete(), EEVEE_shaders_studiolight_background_sh_get(), EEVEE_shaders_studiolight_probe_sh_get(), EEVEE_StorageList::effects, equals_m3m3(), StudioLight::equirect_radiance_gputexture, StudioLight::flag, LightCache::flag, View3DShading::flag, EEVEE_StorageList::g_data, g_data, SceneEEVEE::gi_cubemap_resolution, SceneEEVEE::gi_filter_quality, SceneEEVEE::gi_glossy_clamp, GPU_SAMPLER_FILTER, GPU_SAMPLER_REPEAT_S, LightCache::grid_data, LightCache::grid_tx, StudioLight::index, LIGHTCACHE_UPDATE_WORLD, LOOK_DEV_STUDIO_LIGHT_ENABLED, EEVEE_StorageList::lookdev_cube_data, EEVEE_StorageList::lookdev_cube_mips, EEVEE_TextureList::lookdev_cube_tx, EEVEE_StorageList::lookdev_grid_data, EEVEE_TextureList::lookdev_grid_tx, View3DShading::lookdev_light, EEVEE_StorageList::lookdev_lightcache, EEVEE_EffectsInfo::lookdev_view, M_PI_2, MEM_SAFE_FREE, mul_m3_m3m3(), NULL, powf, scene, DRWContextState::scene, View3D::shading, state, EEVEE_Data::stl, View3DShading::studiolight_background, View3DShading::studiolight_blur, STUDIOLIGHT_EQUIRECT_RADIANCE_GPUTEXTURE, View3DShading::studiolight_intensity, STUDIOLIGHT_ORIENTATIONS_MATERIAL_MODE, View3DShading::studiolight_rot_z, STUDIOLIGHT_TYPE_WORLD, LightCacheTexture::tex, EEVEE_Data::txl, DRWContextState::v3d, and V3D_SHADING_STUDIOLIGHT_VIEW_ROTATION.
Referenced by EEVEE_lightprobes_cache_init(), and EEVEE_materials_cache_init().
void EEVEE_lookdev_draw | ( | EEVEE_Data * | vedata | ) |
Definition at line 288 of file eevee_lookdev.c.
References EEVEE_EffectsInfo::anchor, EEVEE_CommonUniformBuffer::ao_dist, EEVEE_CommonUniformBuffer::ao_factor, EEVEE_CommonUniformBuffer::ao_settings, EEVEE_ViewLayerData::common_data, EEVEE_ViewLayerData::common_ubo, DRW_context_state_get(), DRW_draw_pass(), DRW_stats_group_end(), DRW_stats_group_start(), DRW_view_create_sub(), DRW_view_default_get(), DRW_view_set_active(), DRW_view_update_sub(), DRW_view_viewmat_get(), eevee_hdri_preview_overlay_enabled(), eevee_lookdev_apply_taa(), EEVEE_view_layer_data_ensure(), EEVEE_FramebufferList::effect_color_fb, EEVEE_FramebufferList::effect_fb, EEVEE_StorageList::effects, fb(), EEVEE_Data::fbl, GPU_framebuffer_bind(), GPU_framebuffer_viewport_reset(), GPU_framebuffer_viewport_set(), GPU_uniformbuf_update(), EEVEE_CommonUniformBuffer::la_num_light, EEVEE_PassList::lookdev_diffuse_pass, EEVEE_PassList::lookdev_glossy_pass, EEVEE_EffectsInfo::lookdev_view, EEVEE_FramebufferList::main_fb, negate_v3(), NULL, offset, EEVEE_CommonUniformBuffer::prb_num_planar, EEVEE_CommonUniformBuffer::prb_num_render_cube, EEVEE_CommonUniformBuffer::prb_num_render_grid, EEVEE_Data::psl, EEVEE_EffectsInfo::sphere_size, EEVEE_EffectsInfo::target_buffer, unit_m4(), DRWContextState::v3d, and zero_v3().
Referenced by EEVEE_draw_effects().
void EEVEE_lookdev_init | ( | EEVEE_Data * | vedata | ) |
Definition at line 84 of file eevee_lookdev.c.
References EEVEE_EffectsInfo::anchor, BLI_rcti_size_x(), clamp_f(), DRW_context_state_get(), DRW_LOD_HIGH, DRW_LOD_LOW, DRW_LOD_MEDIUM, DRW_state_is_opengl_render(), DRW_viewport_size_get(), ED_region_visible_rect(), eevee_hdri_preview_overlay_enabled(), EEVEE_temporal_sampling_reset(), EEVEE_StorageList::effects, EEVEE_StorageList::g_data, DRWContextState::region, EEVEE_EffectsInfo::sphere_lod, EEVEE_EffectsInfo::sphere_size, EEVEE_Data::stl, DRWContextState::v3d, EEVEE_PrivateData::valid_double_buffer, rcti::xmax, rcti::xmin, rcti::ymax, and rcti::ymin.
Referenced by EEVEE_effects_init().
float* EEVEE_lut_update_ggx_brdf | ( | int | lut_size | ) |
Definition at line 23 of file eevee_lut_gen.c.
References BLI_fopen(), data, DRW_draw_pass(), DRW_pass_create(), DRW_shgroup_call_procedural_triangles(), DRW_shgroup_create(), DRW_shgroup_uniform_float_copy(), DRW_STATE_WRITE_COLOR, DRW_texture_create_2d(), EEVEE_shaders_ggx_lut_sh_get(), fb(), GPU_DATA_FLOAT, GPU_framebuffer_bind(), GPU_RG16F, GPU_texture_free(), GPU_texture_read(), NULL, and tex.
Referenced by eevee_init_util_texture(), and blender::eevee::UtilityTexture::UtilityTexture().
float* EEVEE_lut_update_ggx_btdf | ( | int | lut_size, |
int | lut_depth | ||
) |
Definition at line 60 of file eevee_lut_gen.c.
References BLI_fopen(), data, DRW_draw_pass(), DRW_pass_create(), DRW_shgroup_call_procedural_triangles(), DRW_shgroup_create(), DRW_shgroup_uniform_float(), DRW_shgroup_uniform_float_copy(), DRW_STATE_WRITE_COLOR, DRW_texture_create_2d_array(), EEVEE_shaders_ggx_refraction_lut_sh_get(), fb(), GPU_DATA_FLOAT, GPU_framebuffer_bind(), GPU_RG16F, GPU_texture_free(), GPU_texture_read(), NULL, usdtokens::roughness(), and tex.
Referenced by eevee_init_util_texture(), and blender::eevee::UtilityTexture::UtilityTexture().
void EEVEE_material_bind_resources | ( | DRWShadingGroup * | shgrp, |
struct GPUMaterial * | gpumat, | ||
EEVEE_ViewLayerData * | sldata, | ||
EEVEE_Data * | vedata, | ||
const int * | ssr_id, | ||
const float * | refract_depth, | ||
const float | alpha_clip_threshold, | ||
bool | use_ssrefraction, | ||
bool | use_alpha_blend | ||
) |
ssr_id | Can be null to disable SSR contribution. |
Definition at line 64 of file eevee_materials.c.
References EEVEE_ViewLayerData::common_ubo, LightCache::cube_tx, DRW_shgroup_uniform_block, DRW_shgroup_uniform_block_ref, DRW_shgroup_uniform_float_copy(), DRW_shgroup_uniform_int_copy(), DRW_shgroup_uniform_texture(), DRW_shgroup_uniform_texture_ref(), e_data, EEVEE_StorageList::effects, EEVEE_TextureList::filtered_radiance, EEVEE_StorageList::g_data, GPU_material_flag_get(), GPU_MATFLAG_AO, GPU_MATFLAG_DIFFUSE, GPU_MATFLAG_GLOSSY, GPU_MATFLAG_REFRACT, LightCache::grid_tx, EEVEE_ViewLayerData::grid_ubo, EEVEE_EffectsInfo::gtao_horizons, EEVEE_PrivateData::light_cache, EEVEE_ViewLayerData::light_ubo, EEVEE_TextureList::maxzbuffer, EEVEE_TextureList::planar_pool, EEVEE_ViewLayerData::planar_ubo, EEVEE_ViewLayerData::probe_ubo, EEVEE_PrivateData::renderpass_ubo, EEVEE_ViewLayerData::shadow_cascade_pool, EEVEE_ViewLayerData::shadow_cube_pool, EEVEE_ViewLayerData::shadow_ubo, EEVEE_Data::stl, LightCacheTexture::tex, EEVEE_Data::txl, EEVEE_EffectsInfo::volume_scatter, and EEVEE_EffectsInfo::volume_transmit.
Referenced by eevee_lookdev_hdri_preview_init(), material_opaque(), material_shadow(), and material_transparent().
Definition at line 1190 of file eevee_shaders.c.
References BKE_id_new_nomain(), copy_v3_fl(), bNodeSocket::default_value, e_data, ID_MA, bNodeTreeType::idname, nodeAddLink(), nodeAddStaticNode(), nodeFindSocket(), nodeSetActive(), Material::nodetree, ntree, ntreeAddTree(), ntreeType_Shader, NULL, output, SH_NODE_BSDF_DIFFUSE, SH_NODE_OUTPUT_MATERIAL, SOCK_IN, SOCK_OUT, and Material::use_nodes.
Referenced by eevee_lookdev_hdri_preview_init().
Definition at line 1246 of file eevee_shaders.c.
References BKE_id_new_nomain(), color, copy_v3_fl3(), e_data, ID_MA, bNodeTreeType::idname, nodeAddLink(), nodeAddStaticNode(), nodeFindSocket(), nodeSetActive(), Material::nodetree, ntree, ntreeAddTree(), ntreeType_Shader, NULL, output, SH_NODE_EMISSION, SH_NODE_OUTPUT_MATERIAL, SOCK_IN, SOCK_OUT, and Material::use_nodes.
Referenced by EEVEE_material_get().
struct GPUMaterial* EEVEE_material_default_get | ( | struct Scene * | scene, |
Material * | ma, | ||
int | options | ||
) |
Definition at line 1469 of file eevee_shaders.c.
References BKE_material_default_surface(), BKE_material_default_volume(), BLI_assert, eevee_material_get_ex(), GPUMaterial::ma, Material::nodetree, NULL, options, scene, Material::use_nodes, and VAR_MAT_VOLUME.
Referenced by EEVEE_material_get(), material_opaque(), and material_shadow().
Definition at line 1217 of file eevee_shaders.c.
References BKE_id_new_nomain(), copy_v3_fl(), bNodeSocket::default_value, e_data, ID_MA, bNodeTreeType::idname, nodeAddLink(), nodeAddStaticNode(), nodeFindSocket(), nodeSetActive(), Material::nodetree, ntree, ntreeAddTree(), ntreeType_Shader, NULL, output, usdtokens::roughness(), SH_NODE_BSDF_GLOSSY, SH_NODE_OUTPUT_MATERIAL, SOCK_IN, SOCK_OUT, and Material::use_nodes.
Referenced by eevee_lookdev_hdri_preview_init().
struct GPUMaterial* EEVEE_material_get | ( | EEVEE_Data * | vedata, |
struct Scene * | scene, | ||
Material * | ma, | ||
World * | wo, | ||
int | options | ||
) |
Definition at line 1478 of file eevee_shaders.c.
References BLI_assert, EEVEE_material_default_error_get(), EEVEE_material_default_get(), eevee_material_get_ex(), EEVEE_StorageList::g_data, GPU_MAT_FAILED, GPU_MAT_QUEUED, GPU_MAT_SUCCESS, GPU_material_status(), GPUMaterial::ma, Material::nodetree, World::nodetree, NULL, options, EEVEE_PrivateData::queued_shaders_count, scene, GPUMaterial::status, EEVEE_Data::stl, Material::use_nodes, World::use_nodes, VAR_DEFAULT, VAR_MAT_VOLUME, and VAR_WORLD_PROBE.
Referenced by EEVEE_lightprobes_cache_init(), eevee_lookdev_hdri_preview_init(), EEVEE_materials_cache_init(), EEVEE_materials_init(), EEVEE_volumes_cache_init(), EEVEE_volumes_cache_object_add(), material_opaque(), material_shadow(), and material_transparent().
void EEVEE_material_output_accumulate | ( | EEVEE_ViewLayerData * | sldata, |
EEVEE_Data * | vedata | ||
) |
Definition at line 1064 of file eevee_materials.c.
References EEVEE_TextureList::aov_surface_accum, EEVEE_ViewLayerData::aovs, EEVEE_PassList::background_accum_ps, EEVEE_ViewLayerData::combined, EEVEE_ViewLayerData::common_data, EEVEE_ViewLayerData::common_ubo, EEVEE_ViewLayerData::diff_color, EEVEE_TextureList::diff_color_accum, EEVEE_ViewLayerData::diff_light, EEVEE_TextureList::diff_light_accum, DRW_TEXTURE_FREE_SAFE, EEVEE_reflection_output_accumulate(), EEVEE_RENDER_PASS_AOV, EEVEE_RENDER_PASS_DIFFUSE_COLOR, EEVEE_RENDER_PASS_DIFFUSE_LIGHT, EEVEE_RENDER_PASS_EMIT, EEVEE_RENDER_PASS_ENVIRONMENT, EEVEE_RENDER_PASS_SPECULAR_COLOR, EEVEE_RENDER_PASS_SPECULAR_LIGHT, EEVEE_subsurface_output_accumulate(), EFFECT_SSR, EFFECT_SSS, EEVEE_StorageList::effects, EEVEE_ViewLayerData::emit, EEVEE_TextureList::emit_accum, EEVEE_EffectsInfo::enabled_effects, EEVEE_TextureList::env_accum, EEVEE_ViewLayerData::environment, EEVEE_Data::fbl, EEVEE_StorageList::g_data, GPU_framebuffer_bind(), GPU_uniformbuf_update(), EEVEE_FramebufferList::main_fb, EEVEE_FramebufferList::material_accum_fb, EEVEE_PassList::material_accum_ps, material_renderpass_accumulate(), MAX_AOVS, NULL, EEVEE_PrivateData::num_aovs_used, EEVEE_Data::psl, EEVEE_PrivateData::render_passes, EEVEE_ViewLayerData::renderpass_ubo, EEVEE_PrivateData::renderpass_ubo, EEVEE_ViewLayerData::spec_color, EEVEE_TextureList::spec_color_accum, EEVEE_ViewLayerData::spec_light, EEVEE_TextureList::spec_light_accum, EEVEE_CommonUniformBuffer::ssr_toggle, EEVEE_Data::stl, and EEVEE_Data::txl.
Referenced by EEVEE_renderpasses_output_accumulate().
void EEVEE_material_output_init | ( | EEVEE_ViewLayerData * | sldata, |
EEVEE_Data * | vedata, | ||
uint | tot_samples | ||
) |
Definition at line 994 of file eevee_materials.c.
References EEVEE_TextureList::aov_surface_accum, EEVEE_TextureList::diff_color_accum, EEVEE_TextureList::diff_light_accum, DRW_viewport_texture_list_get(), EEVEE_reflection_output_init(), EEVEE_RENDER_PASS_AOV, EEVEE_RENDER_PASS_DIFFUSE_COLOR, EEVEE_RENDER_PASS_DIFFUSE_LIGHT, EEVEE_RENDER_PASS_EMIT, EEVEE_RENDER_PASS_ENVIRONMENT, EEVEE_RENDER_PASS_SPECULAR_COLOR, EEVEE_RENDER_PASS_SPECULAR_LIGHT, EFFECT_SSR, EEVEE_StorageList::effects, EEVEE_TextureList::emit_accum, EEVEE_EffectsInfo::enabled_effects, EEVEE_TextureList::env_accum, EEVEE_Data::fbl, EEVEE_StorageList::g_data, GPU_RGBA16F, GPU_RGBA32F, EEVEE_FramebufferList::material_accum_fb, material_renderpass_init(), EEVEE_PrivateData::num_aovs_used, EEVEE_PrivateData::render_passes, EEVEE_TextureList::spec_color_accum, EEVEE_TextureList::spec_light_accum, EEVEE_Data::stl, and EEVEE_Data::txl.
Referenced by EEVEE_renderpasses_output_init().
void EEVEE_material_renderpasses_init | ( | EEVEE_Data * | vedata | ) |
Definition at line 974 of file eevee_materials.c.
References EEVEE_RENDER_PASS_DIFFUSE_COLOR, EEVEE_RENDER_PASS_DIFFUSE_LIGHT, EEVEE_RENDER_PASS_SPECULAR_COLOR, EEVEE_RENDER_PASS_SPECULAR_LIGHT, EEVEE_StorageList::g_data, EEVEE_PrivateData::render_passes, and EEVEE_Data::stl.
Referenced by EEVEE_renderpasses_init().
void EEVEE_materials_cache_finish | ( | EEVEE_ViewLayerData * | sldata, |
EEVEE_Data * | vedata | ||
) |
void EEVEE_materials_cache_init | ( | EEVEE_ViewLayerData * | sldata, |
EEVEE_Data * | vedata | ||
) |
Definition at line 348 of file eevee_materials.c.
References ARRAY_SIZE, EEVEE_PassList::background_accum_ps, EEVEE_PrivateData::background_alpha, EEVEE_PassList::background_ps, BLI_ghash_ptr_new(), BLI_memblock_clear(), BLI_memblock_create, EEVEE_ViewLayerData::common_ubo, LightCache::cube_tx, DRW_cache_fullscreen_quad_get(), DRW_context_state_get(), DRW_PASS_CREATE, DRW_pass_create_instance(), DRW_PASS_INSTANCE_CREATE, DRW_pass_link(), DRW_shgroup_call, DRW_shgroup_create(), DRW_shgroup_material_create(), DRW_shgroup_uniform_block, DRW_shgroup_uniform_block_ref, DRW_shgroup_uniform_float(), DRW_shgroup_uniform_texture(), DRW_shgroup_uniform_texture_ref(), DRW_shgroup_uniform_vec3(), DRW_STATE_BLEND_ADD_FULL, DRW_STATE_CLIP_PLANES, DRW_STATE_DEPTH_EQUAL, DRW_STATE_DEPTH_LESS_EQUAL, DRW_STATE_STENCIL_ALWAYS, DRW_STATE_WRITE_COLOR, DRW_STATE_WRITE_DEPTH, DRW_STATE_WRITE_STENCIL, e_data, EEVEE_CLIP_PASS_CREATE, EEVEE_lookdev_cache_init(), EEVEE_material_get(), EEVEE_PASS_CREATE, EEVEE_shaders_update_noise_sh_get(), EEVEE_world_default_get(), EEVEE_StorageList::g_data, LightCache::grid_tx, EEVEE_ViewLayerData::grid_ubo, EEVEE_PrivateData::light_cache, EEVEE_ViewLayerData::light_ubo, material, EEVEE_PassList::material_accum_ps, EEVEE_ViewLayerData::material_cache, EEVEE_PassList::material_cull_ps, EEVEE_PrivateData::material_hash, EEVEE_PassList::material_ps, EEVEE_PassList::material_sss_cull_ps, EEVEE_PassList::material_sss_ps, EEVEE_TextureList::maxzbuffer, NULL, options, GPUMaterial::pass, EEVEE_TextureList::planar_pool, EEVEE_ViewLayerData::planar_ubo, EEVEE_ViewLayerData::probe_ubo, EEVEE_PrivateData::renderpass_ubo, scene, DRWContextState::scene, sh, EEVEE_ViewLayerData::shadow_cascade_pool, EEVEE_ViewLayerData::shadow_cube_pool, EEVEE_ViewLayerData::shadow_ubo, state, LightCacheTexture::tex, EEVEE_PassList::transparent_pass, EEVEE_Data::txl, EEVEE_PassList::update_noise_pass, VAR_WORLD_BACKGROUND, world, and Scene::world.
Referenced by eevee_cache_init(), eevee_lightbake_cache_create(), and EEVEE_render_cache_init().
void EEVEE_materials_cache_populate | ( | EEVEE_Data * | vedata, |
EEVEE_ViewLayerData * | sldata, | ||
Object * | ob, | ||
bool * | cast_shadow | ||
) |
Definition at line 798 of file eevee_materials.c.
References ADD_SHGROUP_CALL, ADD_SHGROUP_CALL_SAFE, Object::base_flag, BASE_FROM_DUPLI, BKE_sculptsession_use_pbvh_draw(), BLI_array_alloca, DRW_cache_object_material_count_get(), DRW_cache_object_surface_material_get(), DRW_context_state_get(), DRW_shgroup_call_sculpt_with_materials(), DRW_state_is_image_render(), DRW_state_is_scene_render(), Object::dt, eevee_material_cache_get(), EEVEE_motion_blur_cache_populate(), EEVEE_object_data_ensure(), EEVEE_volumes_cache_object_add(), ELEM, GPU_material_has_surface_output(), GPU_material_has_volume_output(), GPUBatch, MATCACHE_AS_ARRAY, NULL, EEVEE_ObjectEngineData::ob, OB_MBALL, OB_MESH, OB_SOLID, OB_SURF, EEVEE_ViewLayerData::probes, DRWContextState::rv3d, scene, DRWContextState::scene, EeveeMaterialCache::shading_gpumat, EeveeMaterialCache::shadow_grp, EEVEE_ObjectEngineData::test_data, Object::type, and EEVEE_LightProbesInfo::vis_data.
Referenced by EEVEE_cache_populate(), and EEVEE_render_cache().
Definition at line 964 of file eevee_materials.c.
References DRW_TEXTURE_FREE_SAFE, and e_data.
Referenced by eevee_engine_free().
struct GPUTexture* EEVEE_materials_get_util_tex | ( | void | ) |
Definition at line 59 of file eevee_materials.c.
References e_data.
Referenced by dof_gather_pass_init(), dof_recombine_pass_init(), EEVEE_motion_blur_cache_init(), EEVEE_occlusion_cache_init(), EEVEE_occlusion_output_init(), EEVEE_screen_raytrace_cache_init(), EEVEE_shadow_output_init(), and EEVEE_subsurface_add_pass().
void EEVEE_materials_init | ( | EEVEE_ViewLayerData * | sldata, |
EEVEE_Data * | vedata, | ||
EEVEE_StorageList * | stl, | ||
EEVEE_FramebufferList * | fbl | ||
) |
Definition at line 219 of file eevee_materials.c.
References EEVEE_CommonUniformBuffer::alpha_hash_offset, EEVEE_CommonUniformBuffer::alpha_hash_scale, AOV_CONFLICT, EEVEE_PrivateData::aov_hash, EEVEE_ViewLayerData::aovs, ViewLayer::aovs, BLI_halton_1d(), EEVEE_ViewLayerData::combined, EEVEE_ViewLayerData::common_data, data, EEVEE_ViewLayerData::diff_color, EEVEE_ViewLayerData::diff_light, DRW_context_state_get(), DRW_state_is_image_render(), DRW_UBO_FREE_SAFE, e_data, EEVEE_AOV_HASH_ALL, eevee_init_noise_texture(), eevee_init_util_texture(), EEVEE_material_get(), EEVEE_RENDER_PASS_AOV, EEVEE_RENDER_PASS_ENVIRONMENT, EEVEE_renderpasses_aov_hash(), EEVEE_shaders_material_shaders_init(), EFFECT_TAA, EEVEE_StorageList::effects, EEVEE_ViewLayerData::emit, EEVEE_EffectsInfo::enabled_effects, EEVEE_ViewLayerData::environment, float(), EEVEE_StorageList::g_data, g_data, GPU_uniformbuf_create_ex(), GPU_uniformbuf_update(), LISTBASE_FOREACH, MAX_AOVS, NULL, r, EEVEE_PrivateData::render_passes, EEVEE_ViewLayerData::renderpass_ubo, scene, DRWContextState::scene, EEVEE_ViewLayerData::spec_color, EEVEE_ViewLayerData::spec_light, EEVEE_EffectsInfo::taa_current_sample, EEVEE_FramebufferList::update_noise_fb, World::use_nodes, VAR_WORLD_BACKGROUND, DRWContextState::view_layer, and Scene::world.
Referenced by eevee_draw_scene(), eevee_engine_init(), eevee_lightbake_cache_create(), EEVEE_render_draw(), and EEVEE_render_modules_init().
void EEVEE_mist_output_accumulate | ( | EEVEE_ViewLayerData * | sldata, |
EEVEE_Data * | vedata | ||
) |
void EEVEE_mist_output_init | ( | EEVEE_ViewLayerData * | sldata, |
EEVEE_Data * | vedata | ||
) |
Definition at line 20 of file eevee_mist.c.
References EEVEE_ViewLayerData::combined, EEVEE_ViewLayerData::common_ubo, DefaultTextureList::depth, DRW_cache_fullscreen_quad_get(), DRW_context_state_get(), DRW_PASS_CREATE, DRW_shgroup_call, DRW_shgroup_create(), DRW_shgroup_uniform_block, DRW_shgroup_uniform_texture_ref(), DRW_shgroup_uniform_vec3(), DRW_STATE_BLEND_ADD, DRW_STATE_WRITE_COLOR, DRW_texture_ensure_fullscreen_2d(), DRW_view_far_distance_get(), DRW_view_near_distance_get(), DRW_viewport_texture_list_get(), EEVEE_shaders_effect_mist_sh_get(), fabsf, EEVEE_Data::fbl, EEVEE_StorageList::g_data, g_data, GPU_R32F, EEVEE_TextureList::mist_accum, EEVEE_FramebufferList::mist_accum_fb, EEVEE_PassList::mist_accum_ps, World::mistdist, World::miststa, World::mistype, NULL, EEVEE_Data::psl, EEVEE_ViewLayerData::renderpass_ubo, scene, DRWContextState::scene, EEVEE_Data::stl, EEVEE_Data::txl, WO_MIST_INVERSE_QUADRATIC, WO_MIST_LINEAR, WO_MIST_QUADRATIC, and Scene::world.
Referenced by EEVEE_renderpasses_output_init().
void EEVEE_motion_blur_cache_finish | ( | EEVEE_Data * | vedata | ) |
Definition at line 429 of file eevee_motion_blur.c.
References EEVEE_GeometryMotionData::batch, batch, BLI_ghash_ensure_p(), BLI_ghashIterator_done(), BLI_ghashIterator_getValue(), BLI_ghashIterator_init(), BLI_ghashIterator_step(), DRW_cache_restart(), DRW_curves_update(), DRW_render_instance_buffer_finish(), EFFECT_MOTION_BLUR, EEVEE_StorageList::effects, EEVEE_EffectsInfo::enabled_effects, EEVEE_Data::fbl, EEVEE_ObjectMotionData::geometry_data, GPU_batch_vertbuf_add_ex(), GPU_batch_vertbuf_has(), GPU_framebuffer_bind(), GPU_texture_create_from_vertbuf(), GPU_vertbuf_duplicate(), GPU_vertbuf_get_format(), GPU_vertbuf_get_vertex_len(), GPU_vertbuf_use(), GPU_vertformat_attr_id_get(), GPU_vertformat_attr_rename(), GPUBatch, EEVEE_ObjectMotionData::hair_data, EEVEE_MotionBlurData::hair_motion_step_cache, EEVEE_HairMotionStepData::hair_pos, EEVEE_HairMotionStepData::hair_pos_tx, EEVEE_FramebufferList::main_fb, MB_CURR, MB_NEXT, MB_PREV, MEM_callocN, EEVEE_EffectsInfo::motion_blur, motion_blur_remove_vbo_reference_from_batch(), EEVEE_EffectsInfo::motion_blur_step, NULL, EEVEE_MotionBlurData::object, EEVEE_MotionBlurData::position_vbo_cache, EEVEE_HairMotionData::psys, EEVEE_HairMotionData::psys_len, EEVEE_HairMotionData::step_data, EEVEE_Data::stl, EEVEE_HairMotionData::use_deform, EEVEE_GeometryMotionData::use_deform, and EEVEE_GeometryMotionData::vbo.
Referenced by eevee_render_to_image().
void EEVEE_motion_blur_cache_init | ( | EEVEE_ViewLayerData * | sldata, |
EEVEE_Data * | vedata | ||
) |
void EEVEE_motion_blur_cache_populate | ( | EEVEE_ViewLayerData * | sldata, |
EEVEE_Data * | vedata, | ||
Object * | ob | ||
) |
void EEVEE_motion_blur_curves_cache_populate | ( | EEVEE_ViewLayerData * | sldata, |
EEVEE_Data * | vedata, | ||
Object * | ob | ||
) |
EEVEE_HairMotionData* EEVEE_motion_blur_curves_data_get | ( | EEVEE_ObjectMotionData * | mb_data | ) |
Definition at line 177 of file eevee_data.c.
References EEVEE_MOTION_DATA_HAIR, EEVEE_ObjectMotionData::hair_data, hair_step(), MEM_callocN, and NULL.
Referenced by EEVEE_motion_blur_curves_cache_populate().
void EEVEE_motion_blur_data_free | ( | EEVEE_MotionBlurData * | mb | ) |
Definition at line 98 of file eevee_data.c.
References BLI_ghash_free(), eevee_motion_blur_mesh_data_free(), EEVEE_motion_hair_step_free(), GPU_vertbuf_discard(), EEVEE_MotionBlurData::hair_motion_step_cache, MEM_freeN, NULL, EEVEE_MotionBlurData::object, and EEVEE_MotionBlurData::position_vbo_cache.
Referenced by eevee_render_to_image().
void EEVEE_motion_blur_data_init | ( | EEVEE_MotionBlurData * | mb | ) |
Definition at line 81 of file eevee_data.c.
References BLI_ghash_new(), BLI_ghashutil_ptrcmp(), BLI_ghashutil_ptrhash(), eevee_object_key_cmp(), eevee_object_key_hash(), EEVEE_MotionBlurData::hair_motion_step_cache, NULL, EEVEE_MotionBlurData::object, and EEVEE_MotionBlurData::position_vbo_cache.
Referenced by EEVEE_motion_blur_cache_init().
void EEVEE_motion_blur_draw | ( | EEVEE_Data * | vedata | ) |
Definition at line 616 of file eevee_motion_blur.c.
References DRW_draw_pass(), EEVEE_VELOCITY_TILE_SIZE, EFFECT_MOTION_BLUR, EEVEE_StorageList::effects, EEVEE_EffectsInfo::enabled_effects, EEVEE_Data::fbl, GPU_framebuffer_bind(), GPU_framebuffer_viewport_reset(), GPU_framebuffer_viewport_set(), GPU_texture_height(), GPU_texture_width(), EEVEE_PassList::motion_blur, EEVEE_EffectsInfo::motion_blur_max, EEVEE_Data::psl, EEVEE_Data::stl, SWAP_BUFFERS, EEVEE_EffectsInfo::target_buffer, EEVEE_Data::txl, EEVEE_PassList::velocity_tiles, EEVEE_PassList::velocity_tiles_expand, EEVEE_FramebufferList::velocity_tiles_fb, EEVEE_EffectsInfo::velocity_tiles_tx, EEVEE_PassList::velocity_tiles_x, and w().
Referenced by EEVEE_draw_effects().
EEVEE_GeometryMotionData* EEVEE_motion_blur_geometry_data_get | ( | EEVEE_ObjectMotionData * | mb_data | ) |
Definition at line 153 of file eevee_data.c.
References EEVEE_MOTION_DATA_MESH, EEVEE_ObjectMotionData::geometry_data, MEM_callocN, NULL, and EEVEE_GeometryMotionData::type.
Referenced by EEVEE_motion_blur_cache_populate().
void EEVEE_motion_blur_hair_cache_populate | ( | EEVEE_ViewLayerData * | sldata, |
EEVEE_Data * | vedata, | ||
Object * | ob, | ||
struct ParticleSystem * | psys, | ||
struct ModifierData * | md | ||
) |
EEVEE_HairMotionData* EEVEE_motion_blur_hair_data_get | ( | EEVEE_ObjectMotionData * | mb_data, |
Object * | ob | ||
) |
Definition at line 163 of file eevee_data.c.
References BLI_listbase_count(), EEVEE_MOTION_DATA_HAIR, EEVEE_ObjectMotionData::hair_data, hair_step(), MEM_callocN, Object::modifiers, and NULL.
Referenced by EEVEE_motion_blur_hair_cache_populate().
int EEVEE_motion_blur_init | ( | EEVEE_ViewLayerData * | sldata, |
EEVEE_Data * | vedata | ||
) |
EEVEE_ObjectMotionData* EEVEE_motion_blur_object_data_get | ( | EEVEE_MotionBlurData * | mb, |
Object * | ob, | ||
bool | is_psys | ||
) |
Definition at line 117 of file eevee_data.c.
References BLI_ghash_insert(), BLI_ghash_lookup(), DRW_object_get_dupli(), DRW_object_get_dupli_parent(), EEVEE_ObjectKey::id, MEM_callocN, MEM_mallocN, NULL, EEVEE_ObjectKey::ob, EEVEE_MotionBlurData::object, EEVEE_ObjectKey::parent, and DupliObject::persistent_id.
Referenced by EEVEE_motion_blur_cache_populate(), EEVEE_motion_blur_curves_cache_populate(), and EEVEE_motion_blur_hair_cache_populate().
void EEVEE_motion_blur_step_set | ( | EEVEE_Data * | vedata, |
int | step | ||
) |
Definition at line 89 of file eevee_motion_blur.c.
References BLI_assert, EEVEE_StorageList::effects, EEVEE_EffectsInfo::motion_blur_step, and EEVEE_Data::stl.
Referenced by eevee_render_to_image().
void EEVEE_motion_blur_swap_data | ( | EEVEE_Data * | vedata | ) |
Definition at line 544 of file eevee_motion_blur.c.
References EEVEE_GeometryMotionData::batch, BLI_assert, BLI_ghash_free(), BLI_ghashIterator_done(), BLI_ghashIterator_getValue(), BLI_ghashIterator_init(), BLI_ghashIterator_step(), EEVEE_MotionBlurData::camera, copy_m4_m4(), EEVEE_motion_hair_step_free(), EFFECT_MOTION_BLUR, EEVEE_StorageList::effects, EEVEE_EffectsInfo::enabled_effects, EEVEE_ObjectMotionData::geometry_data, GPU_vertbuf_discard(), GPU_vertbuf_get_format(), GPU_vertformat_attr_id_get(), GPU_vertformat_attr_rename(), EEVEE_ObjectMotionData::hair_data, EEVEE_MotionBlurData::hair_motion_step_cache, EEVEE_HairMotionStepData::hair_pos, EEVEE_HairMotionStepData::hair_pos_tx, MB_NEXT, MB_PREV, EEVEE_EffectsInfo::motion_blur, motion_blur_remove_vbo_reference_from_batch(), NULL, EEVEE_MotionBlurData::object, EEVEE_ObjectMotionData::obmat, EEVEE_MotionBlurData::position_vbo_cache, EEVEE_HairMotionData::psys, EEVEE_HairMotionData::psys_len, EEVEE_HairMotionData::step_data, EEVEE_Data::stl, and EEVEE_GeometryMotionData::vbo.
Referenced by eevee_render_to_image().
void EEVEE_motion_hair_step_free | ( | EEVEE_HairMotionStepData * | step_data | ) |
Definition at line 74 of file eevee_data.c.
References DRW_texture_free(), GPU_vertbuf_discard(), EEVEE_HairMotionStepData::hair_pos, EEVEE_HairMotionStepData::hair_pos_tx, and MEM_freeN.
Referenced by EEVEE_motion_blur_data_free(), and EEVEE_motion_blur_swap_data().
void EEVEE_object_curves_cache_populate | ( | EEVEE_Data * | vedata, |
EEVEE_ViewLayerData * | sldata, | ||
Object * | ob, | ||
bool * | cast_shadow | ||
) |
Definition at line 930 of file eevee_materials.c.
References CURVES_MATERIAL_NR, EeveeMaterialCache::depth_grp, EeveeMaterialCache::depth_grp_p, DRW_shgroup_curves_create_sub(), eevee_material_cache_get(), EEVEE_motion_blur_curves_cache_populate(), NULL, EeveeMaterialCache::shading_gpumat, EeveeMaterialCache::shading_grp, EeveeMaterialCache::shading_grp_p, EeveeMaterialCache::shadow_grp, and EeveeMaterialCache::shadow_grp_p.
Referenced by EEVEE_cache_populate(), and EEVEE_render_cache().
EEVEE_ObjectEngineData* EEVEE_object_data_ensure | ( | Object * | ob | ) |
Definition at line 290 of file eevee_data.c.
References BLI_assert, draw_engine_eevee_type, DRW_drawdata_ensure(), eevee_object_data_init(), ELEM, Object::id, NULL, OB_LAMP, OB_LIGHTPROBE, and Object::type.
Referenced by EEVEE_materials_cache_populate(), and EEVEE_shadows_caster_register().
EEVEE_ObjectEngineData* EEVEE_object_data_get | ( | Object * | ob | ) |
Definition at line 282 of file eevee_data.c.
References draw_engine_eevee_type, DRW_drawdata_get(), ELEM, Object::id, NULL, OB_LAMP, OB_LIGHTPROBE, and Object::type.
Referenced by eevee_id_object_update().
void EEVEE_occlusion_cache_init | ( | EEVEE_ViewLayerData * | sldata, |
EEVEE_Data * | vedata | ||
) |
Occlusion Algorithm Overview:
We separate the computation into 2 steps.
Definition at line 130 of file eevee_occlusion.c.
References EEVEE_PassList::ao_horizon_debug, EEVEE_PassList::ao_horizon_search, EEVEE_ViewLayerData::combined, EEVEE_ViewLayerData::common_ubo, DefaultTextureList::depth, DRW_PASS_CREATE, DRW_shgroup_call_procedural_triangles(), DRW_shgroup_create(), DRW_shgroup_uniform_block, DRW_shgroup_uniform_texture(), DRW_shgroup_uniform_texture_ref(), DRW_STATE_WRITE_COLOR, DRW_viewport_texture_list_get(), EEVEE_materials_get_util_tex(), EEVEE_shaders_effect_ambient_occlusion_debug_sh_get(), EEVEE_shaders_effect_ambient_occlusion_sh_get(), EFFECT_GTAO, EEVEE_StorageList::effects, EEVEE_EffectsInfo::enabled_effects, G, EEVEE_EffectsInfo::gtao_horizons_renderpass, EEVEE_TextureList::maxzbuffer, NULL, EEVEE_Data::psl, EEVEE_ViewLayerData::renderpass_ubo, EEVEE_EffectsInfo::ssr_normal_input, EEVEE_Data::stl, and EEVEE_Data::txl.
Referenced by eevee_cache_init(), and EEVEE_render_cache_init().
void EEVEE_occlusion_compute | ( | EEVEE_ViewLayerData * | sldata, |
EEVEE_Data * | vedata | ||
) |
NOTE(fclem): Kind of fragile. We need this to make sure everything lines up nicely during planar reflection.
Definition at line 176 of file eevee_occlusion.c.
References EEVEE_PassList::ao_horizon_search, EEVEE_ViewLayerData::common_data, DRW_draw_pass(), DRW_stats_group_end(), DRW_stats_group_start(), DRW_viewport_size_get(), EEVEE_RAY_GLOSSY, EFFECT_GTAO, EEVEE_StorageList::effects, EEVEE_EffectsInfo::enabled_effects, EEVEE_Data::fbl, GPU_BACKEND_OPENGL, GPU_DEVICE_INTEL_UHD, GPU_DRIVER_ANY, GPU_flush(), GPU_framebuffer_bind(), GPU_framebuffer_viewport_reset(), GPU_framebuffer_viewport_set(), GPU_mip_render_workaround(), GPU_OS_WIN, GPU_type_matches_ex(), EEVEE_FramebufferList::gtao_fb, EEVEE_FramebufferList::main_fb, EEVEE_Data::psl, EEVEE_CommonUniformBuffer::ray_type, EEVEE_Data::stl, and UNPACK2.
Referenced by eevee_draw_scene(), EEVEE_occlusion_output_accumulate(), EEVEE_render_draw(), and lightbake_render_scene_reflected().
void EEVEE_occlusion_draw_debug | ( | EEVEE_ViewLayerData * | sldata, |
EEVEE_Data * | vedata | ||
) |
Definition at line 264 of file eevee_occlusion.c.
References DRW_TEXTURE_FREE_SAFE, and e_data.
Referenced by eevee_engine_free().
int EEVEE_occlusion_init | ( | EEVEE_ViewLayerData * | sldata, |
EEVEE_Data * | vedata | ||
) |
Definition at line 28 of file eevee_occlusion.c.
References EEVEE_CommonUniformBuffer::ao_bounce_fac, EEVEE_CommonUniformBuffer::ao_dist, EEVEE_CommonUniformBuffer::ao_factor, EEVEE_CommonUniformBuffer::ao_quality, EEVEE_CommonUniformBuffer::ao_settings, EEVEE_ViewLayerData::common_data, DEG_get_evaluated_scene(), DRWContextState::depsgraph, draw_engine_eevee_type, DRW_context_state_get(), DRW_TEX_WRAP, DRW_texture_create_2d(), DRW_texture_pool_query_2d(), DRW_viewport_size_get(), e_data, Scene::eevee, EEVEE_RENDER_PASS_AO, EFFECT_GTAO, EFFECT_NORMAL_BUFFER, EEVEE_StorageList::effects, EEVEE_Data::fbl, SceneEEVEE::flag, G, EEVEE_StorageList::g_data, GPU_RGBA8, EEVEE_FramebufferList::gtao_debug_fb, SceneEEVEE::gtao_distance, SceneEEVEE::gtao_factor, EEVEE_FramebufferList::gtao_fb, EEVEE_EffectsInfo::gtao_horizons, EEVEE_EffectsInfo::gtao_horizons_debug, EEVEE_EffectsInfo::gtao_horizons_renderpass, SceneEEVEE::gtao_quality, EEVEE_EffectsInfo::hiz_size, max_ff(), NULL, EEVEE_PrivateData::render_passes, SCE_EEVEE_GTAO_BENT_NORMALS, SCE_EEVEE_GTAO_BOUNCE, SCE_EEVEE_GTAO_ENABLED, EEVEE_Data::stl, and UNPACK2.
Referenced by EEVEE_effects_init().
void EEVEE_occlusion_output_accumulate | ( | EEVEE_ViewLayerData * | sldata, |
EEVEE_Data * | vedata | ||
) |
Definition at line 236 of file eevee_occlusion.c.
References EEVEE_FramebufferList::ao_accum_fb, EEVEE_PassList::ao_accum_ps, clear(), DefaultTextureList::depth, DRW_draw_pass(), DRW_viewport_texture_list_get(), EEVEE_create_minmax_buffer(), EEVEE_occlusion_compute(), EEVEE_StorageList::effects, EEVEE_Data::fbl, GPU_framebuffer_bind(), EEVEE_FramebufferList::main_fb, NULL, EEVEE_Data::psl, EEVEE_Data::stl, and EEVEE_EffectsInfo::taa_current_sample.
Referenced by EEVEE_renderpasses_output_accumulate().
void EEVEE_occlusion_output_init | ( | EEVEE_ViewLayerData * | sldata, |
EEVEE_Data * | vedata, | ||
uint | tot_samples | ||
) |
Definition at line 97 of file eevee_occlusion.c.
References EEVEE_TextureList::ao_accum, EEVEE_FramebufferList::ao_accum_fb, EEVEE_PassList::ao_accum_ps, EEVEE_ViewLayerData::combined, EEVEE_ViewLayerData::common_ubo, DefaultTextureList::depth, DRW_cache_fullscreen_quad_get(), DRW_PASS_CREATE, DRW_shgroup_call, DRW_shgroup_create(), DRW_shgroup_uniform_block, DRW_shgroup_uniform_texture(), DRW_shgroup_uniform_texture_ref(), DRW_STATE_BLEND_ADD, DRW_STATE_WRITE_COLOR, DRW_texture_ensure_fullscreen_2d(), DRW_viewport_texture_list_get(), EEVEE_materials_get_util_tex(), EEVEE_shaders_effect_ambient_occlusion_debug_sh_get(), EEVEE_StorageList::effects, EEVEE_Data::fbl, GPU_R16F, GPU_R32F, EEVEE_EffectsInfo::gtao_horizons_renderpass, EEVEE_TextureList::maxzbuffer, NULL, EEVEE_Data::psl, EEVEE_ViewLayerData::renderpass_ubo, EEVEE_EffectsInfo::ssr_normal_input, state, EEVEE_Data::stl, and EEVEE_Data::txl.
Referenced by EEVEE_renderpasses_output_init().
void EEVEE_particle_hair_cache_populate | ( | EEVEE_Data * | vedata, |
EEVEE_ViewLayerData * | sldata, | ||
Object * | ob, | ||
bool * | cast_shadow | ||
) |
Definition at line 885 of file eevee_materials.c.
References EeveeMaterialCache::depth_grp, EeveeMaterialCache::depth_grp_p, ParticleSettings::draw_as, DRW_context_state_get(), DRW_object_is_visible_psys_in_active_context(), DRW_shgroup_hair_create_sub(), eevee_material_cache_get(), EEVEE_motion_blur_hair_cache_populate(), eModifierType_ParticleSystem, if(), LISTBASE_FOREACH, Object::modifiers, NULL, OB_MESH, DRWContextState::object_edit, ParticleSettings::omat, ParticleSystem::part, PART_DRAW_PATH, PART_DRAW_REND, ParticleSettings::ren_as, EeveeMaterialCache::shading_gpumat, EeveeMaterialCache::shading_grp, EeveeMaterialCache::shading_grp_p, EeveeMaterialCache::shadow_grp, EeveeMaterialCache::shadow_grp_p, and Object::type.
Referenced by EEVEE_cache_populate(), and EEVEE_render_cache().
Definition at line 93 of file eevee_sampling.c.
References BLI_halton_3d(), and rotate_m4().
Referenced by EEVEE_shadows_cube_setup().
void EEVEE_reflection_compute | ( | EEVEE_ViewLayerData * | sldata, |
EEVEE_Data * | vedata | ||
) |
Referenced by eevee_draw_scene(), and EEVEE_render_draw().
void EEVEE_reflection_output_accumulate | ( | EEVEE_ViewLayerData * | sldata, |
EEVEE_Data * | vedata | ||
) |
Referenced by EEVEE_material_output_accumulate().
void EEVEE_reflection_output_init | ( | EEVEE_ViewLayerData * | sldata, |
EEVEE_Data * | vedata, | ||
uint | tot_samples | ||
) |
Referenced by EEVEE_material_output_init().
void EEVEE_refraction_compute | ( | EEVEE_ViewLayerData * | sldata, |
EEVEE_Data * | vedata | ||
) |
Referenced by eevee_draw_scene(), and EEVEE_render_draw().
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().
void EEVEE_render_draw | ( | EEVEE_Data * | vedata, |
struct RenderEngine * | engine, | ||
struct RenderLayer * | rl, | ||
const struct rcti * | rect | ||
) |
Referenced by eevee_render_to_image().
bool EEVEE_render_init | ( | EEVEE_Data * | ved, |
RenderEngine * | engine, | ||
struct Depsgraph * | depsgraph | ||
) |
Return true if initialized properly.
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, |
struct 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, |
struct RenderEngine * | engine, | ||
struct 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().
void EEVEE_render_update_passes | ( | struct RenderEngine * | engine, |
struct Scene * | scene, | ||
struct 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, |
struct 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().
uint EEVEE_renderpasses_aov_hash | ( | const ViewLayerAOV * | aov | ) |
Calculate the hash for an AOV. The least significant bit is used to store the AOV type the rest of the bits are used for the name hash.
Definition at line 63 of file eevee_renderpasses.c.
References AOV_TYPE_COLOR, BLI_hash_string(), EEVEE_AOV_HASH_COLOR_TYPE_MASK, hash, ViewLayerAOV::name, SET_FLAG_FROM_TEST, and ViewLayerAOV::type.
Referenced by EEVEE_materials_init(), and EEVEE_renderpasses_init().
void EEVEE_renderpasses_cache_finish | ( | EEVEE_ViewLayerData * | sldata, |
EEVEE_Data * | vedata | ||
) |
Definition at line 212 of file eevee_renderpasses.c.
References EEVEE_ViewLayerData::combined, EEVEE_ViewLayerData::common_ubo, DefaultTextureList::depth, DRW_cache_fullscreen_quad_get(), DRW_PASS_CREATE, DRW_shgroup_call, DRW_shgroup_create(), DRW_shgroup_uniform_block_ref, DRW_shgroup_uniform_int(), DRW_shgroup_uniform_texture_ref(), DRW_STATE_WRITE_COLOR, DRW_viewport_texture_list_get(), EEVEE_RENDERPASSES_WITH_POST_PROCESSING, EEVEE_shaders_renderpasses_post_process_sh_get(), EEVEE_StorageList::g_data, g_data, NULL, EEVEE_Data::psl, EEVEE_PassList::renderpass_pass, EEVEE_ViewLayerData::renderpass_ubo, and EEVEE_Data::stl.
Referenced by eevee_cache_finish(), and eevee_render_to_image().
void EEVEE_renderpasses_draw | ( | EEVEE_ViewLayerData * | sldata, |
EEVEE_Data * | vedata | ||
) |
Definition at line 408 of file eevee_renderpasses.c.
References DefaultFramebufferList::default_fb, DRW_state_is_opengl_render(), DRW_transform_none(), DRW_viewport_framebuffer_list_get(), EEVEE_RENDER_PASS_BLOOM, EEVEE_RENDERPASSES_ALL, EEVEE_RENDERPASSES_COLOR_PASS, EEVEE_RENDERPASSES_LIGHT_PASS, EEVEE_RENDERPASSES_POST_PROCESS_ON_FIRST_SAMPLE, EEVEE_renderpasses_postprocess(), EFFECT_BLOOM, EEVEE_StorageList::effects, EEVEE_EffectsInfo::enabled_effects, EEVEE_Data::fbl, EEVEE_StorageList::g_data, GPU_framebuffer_bind(), is_valid, EEVEE_FramebufferList::main_fb, EEVEE_PrivateData::render_passes, EEVEE_TextureList::renderpass, EEVEE_Data::stl, EEVEE_EffectsInfo::taa_current_sample, EEVEE_EffectsInfo::taa_total_sample, EEVEE_Data::txl, and UNUSED_VARS.
Referenced by eevee_draw_scene().
void EEVEE_renderpasses_draw_debug | ( | EEVEE_Data * | vedata | ) |
Definition at line 454 of file eevee_renderpasses.c.
References EEVEE_TextureList::color_double_buffer, DRW_transform_none(), EEVEE_StorageList::effects, G, EEVEE_EffectsInfo::gtao_horizons_renderpass, EEVEE_TextureList::maxzbuffer, NULL, EEVEE_EffectsInfo::ssr_normal_input, EEVEE_EffectsInfo::ssr_specrough_input, EEVEE_EffectsInfo::sss_albedo, EEVEE_EffectsInfo::sss_irradiance, EEVEE_EffectsInfo::sss_radius, EEVEE_Data::stl, EEVEE_Data::txl, and EEVEE_EffectsInfo::velocity_tx.
Referenced by eevee_draw_scene().
void EEVEE_renderpasses_init | ( | EEVEE_Data * | vedata | ) |
Definition at line 70 of file eevee_renderpasses.c.
References View3DShading::aov_name, ViewLayer::aovs, BLI_findstring(), BLI_listbase_is_empty(), DRW_context_state_get(), DRW_state_is_image_render(), ViewLayer::eevee, Scene::eevee, EEVEE_AOV_HASH_ALL, EEVEE_cryptomatte_renderpasses_init(), EEVEE_material_renderpasses_init(), EEVEE_RENDER_PASS_AOV, EEVEE_RENDER_PASS_BLOOM, EEVEE_RENDER_PASS_COMBINED, EEVEE_RENDERPASSES_ALL, EEVEE_renderpasses_aov_hash(), ENABLE_FROM_LEGACY, SceneEEVEE::flag, EEVEE_StorageList::g_data, g_data, NORMAL, NULL, View3DShading::render_pass, ViewLayerEEVEE::render_passes, SCE_EEVEE_BLOOM_ENABLED, scene, DRWContextState::scene, View3D::shading, EEVEE_Data::stl, DRWContextState::v3d, DRWContextState::view_layer, and Z.
Referenced by eevee_engine_init(), and EEVEE_render_modules_init().
bool EEVEE_renderpasses_only_first_sample_pass_active | ( | EEVEE_Data * | vedata | ) |
Definition at line 56 of file eevee_renderpasses.c.
References EEVEE_RENDERPASSES_POST_PROCESS_ON_FIRST_SAMPLE, EEVEE_StorageList::g_data, g_data, and EEVEE_Data::stl.
Referenced by EEVEE_temporal_sampling_init().
void EEVEE_renderpasses_output_accumulate | ( | EEVEE_ViewLayerData * | sldata, |
EEVEE_Data * | vedata, | ||
bool | post_effect | ||
) |
Definition at line 371 of file eevee_renderpasses.c.
References EEVEE_bloom_output_accumulate(), EEVEE_cryptomatte_output_accumulate(), EEVEE_material_output_accumulate(), EEVEE_mist_output_accumulate(), EEVEE_occlusion_output_accumulate(), EEVEE_RENDER_PASS_AO, EEVEE_RENDER_PASS_BLOOM, EEVEE_RENDER_PASS_CRYPTOMATTE, EEVEE_RENDER_PASS_MIST, EEVEE_RENDER_PASS_SHADOW, EEVEE_RENDERPASSES_MATERIAL, eevee_renderpasses_volumetric_active(), EEVEE_shadow_output_accumulate(), EEVEE_volumes_output_accumulate(), EFFECT_BLOOM, EEVEE_StorageList::effects, EEVEE_EffectsInfo::enabled_effects, EEVEE_StorageList::g_data, g_data, and EEVEE_Data::stl.
Referenced by EEVEE_draw_effects(), eevee_draw_scene(), and EEVEE_render_draw().
void EEVEE_renderpasses_output_init | ( | EEVEE_ViewLayerData * | sldata, |
EEVEE_Data * | vedata, | ||
uint | tot_samples | ||
) |
Definition at line 148 of file eevee_renderpasses.c.
References EEVEE_TextureList::color, DRW_texture_ensure_fullscreen_2d(), DRW_TEXTURE_FREE_SAFE, EEVEE_bloom_output_init(), EEVEE_cryptomatte_output_init(), EEVEE_material_output_init(), EEVEE_mist_output_init(), EEVEE_occlusion_output_init(), EEVEE_RENDER_PASS_AO, EEVEE_RENDER_PASS_BLOOM, EEVEE_RENDER_PASS_CRYPTOMATTE, EEVEE_RENDER_PASS_MIST, EEVEE_RENDER_PASS_SHADOW, EEVEE_RENDERPASSES_MATERIAL, eevee_renderpasses_volumetric_active(), EEVEE_RENDERPASSES_WITH_POST_PROCESSING, EEVEE_shadow_output_init(), EEVEE_volumes_output_init(), EFFECT_BLOOM, EEVEE_StorageList::effects, EEVEE_EffectsInfo::enabled_effects, EEVEE_Data::fbl, EEVEE_StorageList::g_data, g_data, GPU_RGBA16F, EEVEE_TextureList::renderpass, EEVEE_FramebufferList::renderpass_fb, EEVEE_Data::stl, and EEVEE_Data::txl.
Referenced by eevee_cache_finish(), and eevee_render_to_image().
void EEVEE_renderpasses_postprocess | ( | EEVEE_ViewLayerData * | sldata, |
EEVEE_Data * | vedata, | ||
eViewLayerEEVEEPassType | renderpass_type, | ||
int | aov_index | ||
) |
Post-process data to construct a specific render-pass
This method will create a shading group to perform the post-processing for the given renderpass_type
. The post-processing will be done and the result will be stored in the vedata->txl->renderpass
texture.
Only invoke this function for passes that need post-processing.
After invoking this function the active frame-buffer is set to vedata->fbl->renderpass_fb
.
Referenced by eevee_render_result_aovs(), eevee_render_result_bloom(), eevee_render_result_mist(), eevee_render_result_normal(), eevee_render_result_occlusion(), eevee_render_result_shadow(), and eevee_render_result_z().
Special ball distribution: Point are distributed in a way that when they are orthogonally projected into any plane, the resulting distribution is (close to) a uniform disc distribution.
Definition at line 12 of file eevee_sampling.c.
References BLI_halton_3d(), cosf, fmaxf, M_PI, mul_v3_fl(), r, sinf, sqrt(), and sqrtf.
Referenced by shadow_cube_random_position_set().
void EEVEE_sample_ellipse | ( | int | sample_ofs, |
const float | x_axis[3], | ||
const float | y_axis[3], | ||
float | size_x, | ||
float | size_y, | ||
float | rsample[3] | ||
) |
Definition at line 64 of file eevee_sampling.c.
References BLI_halton_2d(), cosf, M_PI, madd_v3_v3fl(), r, sinf, sqrtf, and zero_v3().
Referenced by shadow_cascade_random_matrix_set(), and shadow_cube_random_position_set().
void EEVEE_sample_rectangle | ( | int | sample_ofs, |
const float | x_axis[3], | ||
const float | y_axis[3], | ||
float | size_x, | ||
float | size_y, | ||
float | rsample[3] | ||
) |
Definition at line 38 of file eevee_sampling.c.
References BLI_halton_2d(), madd_v3_v3fl(), and zero_v3().
Referenced by shadow_cube_random_position_set().
void EEVEE_screen_raytrace_cache_init | ( | EEVEE_ViewLayerData * | sldata, |
EEVEE_Data * | vedata | ||
) |
Screen space ray-tracing overview
Following Frostbite stochastic SSR.
Definition at line 101 of file eevee_screen_raytrace.c.
References EEVEE_ViewLayerData::combined, EEVEE_ViewLayerData::common_ubo, LightCache::cube_tx, DRW_PASS_CREATE, DRW_shgroup_call_procedural_triangles(), DRW_shgroup_create(), DRW_shgroup_uniform_block, DRW_shgroup_uniform_float_copy(), DRW_shgroup_uniform_int(), DRW_shgroup_uniform_texture(), DRW_shgroup_uniform_texture_ref(), DRW_shgroup_uniform_texture_ref_ex(), DRW_shgroup_uniform_vec2_copy(), DRW_STATE_BLEND_ADD, DRW_STATE_WRITE_COLOR, EEVEE_materials_get_util_tex(), EEVEE_shaders_effect_reflection_resolve_sh_get(), EEVEE_shaders_effect_reflection_trace_sh_get(), EFFECT_SSR, EEVEE_StorageList::effects, EEVEE_EffectsInfo::enabled_effects, EEVEE_TextureList::filtered_radiance, EEVEE_StorageList::g_data, GPU_SAMPLER_DEFAULT, GPU_texture_get_mipmap_size(), EEVEE_ViewLayerData::grid_ubo, EEVEE_EffectsInfo::gtao_horizons, EEVEE_PrivateData::light_cache, EEVEE_ViewLayerData::light_ubo, EEVEE_TextureList::maxzbuffer, NULL, EEVEE_TextureList::planar_depth, EEVEE_TextureList::planar_pool, EEVEE_ViewLayerData::planar_ubo, EEVEE_ViewLayerData::probe_ubo, EEVEE_Data::psl, EEVEE_EffectsInfo::reflection_trace_full, EEVEE_ViewLayerData::renderpass_ubo, EEVEE_ViewLayerData::shadow_cascade_pool, EEVEE_ViewLayerData::shadow_cube_pool, EEVEE_ViewLayerData::shadow_ubo, EEVEE_EffectsInfo::ssr_hit_depth, EEVEE_EffectsInfo::ssr_hit_output, EEVEE_EffectsInfo::ssr_normal_input, EEVEE_PassList::ssr_raytrace, EEVEE_PassList::ssr_resolve, EEVEE_EffectsInfo::ssr_specrough_input, EEVEE_Data::stl, EEVEE_EffectsInfo::taa_current_sample, LightCacheTexture::tex, and EEVEE_Data::txl.
Referenced by eevee_cache_init(), and EEVEE_render_cache_init().
int EEVEE_screen_raytrace_init | ( | EEVEE_ViewLayerData * | sldata, |
EEVEE_Data * | vedata | ||
) |
Definition at line 20 of file eevee_screen_raytrace.c.
References EEVEE_ViewLayerData::common_data, DEG_get_evaluated_scene(), DRWContextState::depsgraph, DRW_context_state_get(), DRW_texture_pool_query_2d(), DRW_view_is_persp_get(), DRW_viewport_request_redraw(), DRW_viewport_size_get(), Scene::eevee, EEVEE_screen_raytrace_init(), EEVEE_temporal_sampling_reset(), EFFECT_DOUBLE_BUFFER, EFFECT_NORMAL_BUFFER, EFFECT_RADIANCE_BUFFER, EFFECT_REFRACT, EFFECT_SSR, EEVEE_StorageList::effects, EEVEE_Data::fbl, SceneEEVEE::flag, float(), EEVEE_StorageList::g_data, GPU_framebuffer_texture_attach(), GPU_R16F, GPU_RGBA16F, GPU_RGBA8, EEVEE_FramebufferList::main_fb, max_ii(), NULL, EEVEE_EffectsInfo::reflection_trace_full, SCE_EEVEE_SSR_ENABLED, SCE_EEVEE_SSR_HALF_RESOLUTION, SCE_EEVEE_SSR_REFRACTION, EEVEE_FramebufferList::screen_tracing_fb, EEVEE_CommonUniformBuffer::ssr_border_fac, SceneEEVEE::ssr_border_fade, EEVEE_CommonUniformBuffer::ssr_brdf_bias, EEVEE_CommonUniformBuffer::ssr_firefly_fac, SceneEEVEE::ssr_firefly_fac, EEVEE_EffectsInfo::ssr_hit_depth, EEVEE_EffectsInfo::ssr_hit_output, EEVEE_CommonUniformBuffer::ssr_max_roughness, SceneEEVEE::ssr_max_roughness, EEVEE_CommonUniformBuffer::ssr_quality, SceneEEVEE::ssr_quality, EEVEE_EffectsInfo::ssr_specrough_input, EEVEE_CommonUniformBuffer::ssr_thickness, SceneEEVEE::ssr_thickness, EEVEE_CommonUniformBuffer::ssr_uv_scale, EEVEE_EffectsInfo::ssr_was_persp, EEVEE_EffectsInfo::ssr_was_valid_double_buffer, EEVEE_Data::stl, UNPACK2, and EEVEE_PrivateData::valid_double_buffer.
Referenced by EEVEE_effects_init(), and EEVEE_screen_raytrace_init().
Configure a default node-tree with the given material.
Definition at line 1274 of file eevee_shaders.c.
References Material::b, copy_v3_fl3(), bNodeSocket::default_value, e_data, Material::g, bNodeTreeType::idname, Material::metallic, nodeAddLink(), nodeAddStaticNode(), nodeFindSocket(), nodeSetActive(), ntree, ntreeAddTree(), ntreeType_Shader, NULL, output, Material::r, Material::roughness, SH_NODE_BSDF_PRINCIPLED, SH_NODE_OUTPUT_MATERIAL, SOCK_IN, SOCK_OUT, and Material::spec.
Referenced by eevee_material_get_ex().
Configure a default node-tree with the given world.
Definition at line 1301 of file eevee_shaders.c.
References copy_v3_fl3(), bNodeSocket::default_value, e_data, World::horb, World::horg, World::horr, bNodeTreeType::idname, nodeAddLink(), nodeAddStaticNode(), nodeFindSocket(), nodeSetActive(), ntree, ntreeAddTree(), ntreeType_Shader, NULL, output, SH_NODE_BACKGROUND, SH_NODE_OUTPUT_WORLD, SOCK_IN, and SOCK_OUT.
Referenced by eevee_material_get_ex().
Definition at line 37 of file eevee_shaders_extra.cc.
References stage_interface.
Referenced by EEVEE_shaders_free().
Definition at line 22 of file eevee_shaders_extra.cc.
References blender::gpu::shader::StageInterfaceInfo::flat(), blender::gpu::shader::INT, blender::gpu::shader::StageInterfaceInfo::smooth(), stage_interface, and blender::gpu::shader::VEC3.
Referenced by EEVEE_shaders_material_shaders_init().
struct DRWShaderLibrary* EEVEE_shader_lib_get | ( | void | ) |
Definition at line 328 of file eevee_shaders.c.
References e_data, and eevee_shader_library_ensure().
void eevee_shader_material_create_info_amend | ( | GPUMaterial * | gpumat, |
GPUCodegenOutput * | codegen, | ||
char * | frag, | ||
char * | vert, | ||
char * | geom, | ||
char * | defines | ||
) |
Hair attributes come from sampler buffer. Transfer attributes to sampler.
Volume grid attributes come from 3D textures. Transfer attributes to samplers.
Definition at line 42 of file eevee_shaders_extra.cc.
References blender::gpu::shader::ShaderCreateInfo::additional_info(), GPUCodegenOutput::attr_load, blender::gpu::shader::ShaderCreateInfo::auto_resource_location(), blender::gpu::shader::BARYCENTRIC_COORD, blender::gpu::shader::BATCH, blender::gpu::shader::ShaderCreateInfo::builtins(), GPUCodegenOutput::create_info, blender::gpu::shader::ShaderCreateInfo::define(), GPUCodegenOutput::displacement, blender::gpu::shader::FLOAT_3D, blender::gpu::shader::FLOAT_BUFFER, blender::gpu::shader::ShaderCreateInfo::fragment_source(), blender::gpu::shader::ShaderCreateInfo::fragment_source_generated, blender::gpu::shader::ShaderCreateInfo::geometry_layout(), blender::gpu::shader::ShaderCreateInfo::geometry_source(), blender::gpu::shader::ShaderCreateInfo::geometry_source_generated, GPU_material_flag_get(), GPU_material_uuid_get(), GPU_MATFLAG_BARYCENTRIC, GPU_MATFLAG_OBJECT_INFO, GPU_MATFLAG_SHADER_TO_RGBA, GPU_MATFLAG_SUBSURFACE, blender::gpu::shader::StageInterfaceInfo::inouts, input, blender::gpu::shader::StageInterfaceInfo::instance_name, blender::gpu::shader::ShaderCreateInfo::legacy_resource_location(), GPUCodegenOutput::material_functions, blender::gpu::shader::StageInterfaceInfo::name, blender::gpu::shader::ShaderCreateInfo::VertIn::name, options, blender::gpu::shader::ShaderCreateInfo::sampler(), stage_interface, GPUCodegenOutput::surface, blender::gpu::shader::TRIANGLE_STRIP, blender::gpu::shader::TRIANGLES, blender::gpu::shader::ShaderCreateInfo::VertIn::type, blender::gpu::shader::ShaderCreateInfo::typedef_source_generated, VAR_MAT_HAIR, VAR_MAT_MESH, VAR_MAT_POINTCLOUD, VAR_MAT_VOLUME, VAR_WORLD_BACKGROUND, VAR_WORLD_PROBE, blender::gpu::shader::ShaderCreateInfo::vertex_inputs_, blender::gpu::shader::ShaderCreateInfo::vertex_out(), blender::gpu::shader::ShaderCreateInfo::vertex_out_interfaces_, blender::gpu::shader::ShaderCreateInfo::vertex_source(), blender::gpu::shader::ShaderCreateInfo::vertex_source_generated, and GPUCodegenOutput::volume.
Referenced by eevee_material_post_eval().
Definition at line 958 of file eevee_shaders.c.
References datatoc_effect_bloom_frag_glsl, define(), DRW_shader_create_fullscreen_with_shaderlib, e_data, and NULL.
Referenced by EEVEE_bloom_cache_init(), and blender::draw::test_eevee_glsl_shaders_static().
Definition at line 972 of file eevee_shaders.c.
References datatoc_effect_bloom_frag_glsl, define(), DRW_shader_create_fullscreen_with_shaderlib, e_data, and NULL.
Referenced by EEVEE_bloom_cache_init(), and blender::draw::test_eevee_glsl_shaders_static().
Definition at line 1000 of file eevee_shaders.c.
References datatoc_effect_bloom_frag_glsl, define(), DRW_shader_create_fullscreen_with_shaderlib, e_data, and NULL.
Referenced by EEVEE_bloom_cache_init(), EEVEE_bloom_output_init(), and blender::draw::test_eevee_glsl_shaders_static().
Definition at line 986 of file eevee_shaders.c.
References datatoc_effect_bloom_frag_glsl, define(), DRW_shader_create_fullscreen_with_shaderlib, e_data, and NULL.
Referenced by EEVEE_bloom_cache_init(), and blender::draw::test_eevee_glsl_shaders_static().
Definition at line 717 of file eevee_shaders.c.
References BLI_dynstr_append(), BLI_dynstr_free(), BLI_dynstr_get_cstring(), BLI_dynstr_new(), datatoc_cryptomatte_frag_glsl, datatoc_cryptomatte_vert_glsl, DRW_shader_create_with_shaderlib, e_data, MEM_freeN, NULL, and SHADER_DEFINES.
Referenced by eevee_cryptomatte_shading_group_create(), and blender::draw::test_eevee_glsl_shaders_static().
Definition at line 1020 of file eevee_shaders.c.
References datatoc_effect_dof_bokeh_frag_glsl, DOF_SHADER_DEFINES, DRW_shader_create_fullscreen_with_shaderlib, e_data, and NULL.
Referenced by dof_bokeh_pass_init(), and blender::draw::test_eevee_glsl_shaders_static().
Definition at line 1047 of file eevee_shaders.c.
References datatoc_effect_dof_dilate_tiles_frag_glsl, DOF_SHADER_DEFINES, DRW_shader_create_fullscreen_with_shaderlib, e_data, and NULL.
Referenced by dof_dilate_tiles_pass_init(), and blender::draw::test_eevee_glsl_shaders_static().
Definition at line 1060 of file eevee_shaders.c.
References datatoc_effect_dof_downsample_frag_glsl, DOF_SHADER_DEFINES, DRW_shader_create_fullscreen_with_shaderlib, e_data, and NULL.
Referenced by dof_reduce_pass_init(), and blender::draw::test_eevee_glsl_shaders_static().
Definition at line 1121 of file eevee_shaders.c.
References datatoc_effect_dof_filter_frag_glsl, DOF_SHADER_DEFINES, DRW_shader_create_fullscreen_with_shaderlib, e_data, and NULL.
Referenced by dof_filter_pass_init(), and blender::draw::test_eevee_glsl_shaders_static().
Definition at line 1038 of file eevee_shaders.c.
References datatoc_effect_dof_flatten_tiles_frag_glsl, DOF_SHADER_DEFINES, DRW_shader_create_fullscreen_with_shaderlib, e_data, and NULL.
Referenced by dof_flatten_tiles_pass_init(), and blender::draw::test_eevee_glsl_shaders_static().
struct GPUShader* EEVEE_shaders_depth_of_field_gather_get | ( | EEVEE_DofGatherPass | pass, |
bool | bokeh_tx | ||
) |
Definition at line 1082 of file eevee_shaders.c.
References BLI_dynstr_append(), BLI_dynstr_free(), BLI_dynstr_get_cstring(), BLI_dynstr_new(), datatoc_effect_dof_gather_frag_glsl, define(), DOF_GATHER_BACKGROUND, DOF_GATHER_FOREGROUND, DOF_GATHER_HOLEFILL, DOF_SHADER_DEFINES, DRW_shader_create_fullscreen_with_shaderlib, e_data, MEM_freeN, and NULL.
Referenced by dof_gather_pass_init(), and blender::draw::test_eevee_glsl_shaders_static().
Definition at line 1069 of file eevee_shaders.c.
References datatoc_effect_dof_reduce_frag_glsl, DOF_SHADER_DEFINES, DRW_shader_create_fullscreen_with_shaderlib, e_data, and NULL.
Referenced by dof_reduce_pass_init(), and blender::draw::test_eevee_glsl_shaders_static().
struct GPUShader* EEVEE_shaders_depth_of_field_resolve_get | ( | bool | use_bokeh_tx, |
bool | use_hq_gather | ||
) |
Definition at line 1160 of file eevee_shaders.c.
References BLI_dynstr_append(), BLI_dynstr_appendf(), BLI_dynstr_free(), BLI_dynstr_get_cstring(), BLI_dynstr_new(), datatoc_effect_dof_resolve_frag_glsl, define(), DOF_SHADER_DEFINES, DRW_shader_create_fullscreen_with_shaderlib, e_data, MEM_freeN, and NULL.
Referenced by dof_recombine_pass_init(), and blender::draw::test_eevee_glsl_shaders_static().
Definition at line 1130 of file eevee_shaders.c.
References BLI_dynstr_append(), BLI_dynstr_free(), BLI_dynstr_get_cstring(), BLI_dynstr_new(), datatoc_effect_dof_scatter_frag_glsl, datatoc_effect_dof_scatter_vert_glsl, define(), DOF_SHADER_DEFINES, DRW_shader_create_with_shaderlib, e_data, MEM_freeN, and NULL.
Referenced by dof_scatter_pass_init(), and blender::draw::test_eevee_glsl_shaders_static().
Definition at line 1029 of file eevee_shaders.c.
References datatoc_effect_dof_setup_frag_glsl, DOF_SHADER_DEFINES, DRW_shader_create_fullscreen_with_shaderlib, e_data, and NULL.
Referenced by dof_setup_pass_init(), and blender::draw::test_eevee_glsl_shaders_static().
Definition at line 684 of file eevee_shaders.c.
References datatoc_effect_gtao_frag_glsl, DRW_shader_create_fullscreen_with_shaderlib, e_data, and NULL.
Referenced by EEVEE_occlusion_cache_init(), EEVEE_occlusion_output_init(), and blender::draw::test_eevee_glsl_shaders_static().
Definition at line 675 of file eevee_shaders.c.
References datatoc_effect_gtao_frag_glsl, DRW_shader_create_fullscreen_with_shaderlib, e_data, and NULL.
Referenced by EEVEE_occlusion_cache_init(), and blender::draw::test_eevee_glsl_shaders_static().
Definition at line 455 of file eevee_shaders.c.
References datatoc_effect_downsample_frag_glsl, DRW_shader_create_fullscreen_with_shaderlib, e_data, and NULL.
Referenced by EEVEE_effects_cache_init().
Definition at line 473 of file eevee_shaders.c.
References datatoc_effect_downsample_cube_frag_glsl, datatoc_lightprobe_geom_glsl, datatoc_lightprobe_vert_glsl, DRW_shader_create_with_shaderlib, e_data, and NULL.
Referenced by EEVEE_effects_cache_init(), and blender::draw::test_eevee_glsl_shaders_static().
Definition at line 464 of file eevee_shaders.c.
References datatoc_effect_downsample_frag_glsl, DRW_shader_create_fullscreen_with_shaderlib, e_data, and NULL.
Referenced by EEVEE_effects_cache_init(), and blender::draw::test_eevee_glsl_shaders_static().
Definition at line 542 of file eevee_shaders.c.
References datatoc_effect_minmaxz_frag_glsl, DRW_shader_create_fullscreen, e_data, and NULL.
Referenced by EEVEE_effects_cache_init(), and blender::draw::test_eevee_glsl_shaders_static().
Definition at line 563 of file eevee_shaders.c.
References datatoc_effect_minmaxz_frag_glsl, DRW_shader_create_fullscreen, e_data, and NULL.
Referenced by EEVEE_effects_cache_init(), and blender::draw::test_eevee_glsl_shaders_static().
Definition at line 532 of file eevee_shaders.c.
References datatoc_effect_minmaxz_frag_glsl, DRW_shader_create_fullscreen, e_data, and NULL.
Referenced by blender::draw::test_eevee_glsl_shaders_static().
Definition at line 513 of file eevee_shaders.c.
References datatoc_effect_minmaxz_frag_glsl, DRW_shader_create_fullscreen, e_data, and NULL.
Referenced by blender::draw::test_eevee_glsl_shaders_static().
Definition at line 495 of file eevee_shaders.c.
References datatoc_effect_minmaxz_frag_glsl, DRW_shader_create_fullscreen, e_data, and NULL.
Referenced by EEVEE_effects_cache_init(), and blender::draw::test_eevee_glsl_shaders_static().
Definition at line 553 of file eevee_shaders.c.
References datatoc_effect_minmaxz_frag_glsl, DRW_shader_create_fullscreen, e_data, and NULL.
Referenced by blender::draw::test_eevee_glsl_shaders_static().
Definition at line 522 of file eevee_shaders.c.
References datatoc_effect_minmaxz_frag_glsl, DRW_shader_create_fullscreen, e_data, and NULL.
Referenced by blender::draw::test_eevee_glsl_shaders_static().
Definition at line 504 of file eevee_shaders.c.
References datatoc_effect_minmaxz_frag_glsl, DRW_shader_create_fullscreen, e_data, and NULL.
Referenced by blender::draw::test_eevee_glsl_shaders_static().
Definition at line 486 of file eevee_shaders.c.
References datatoc_effect_minmaxz_frag_glsl, DRW_shader_create_fullscreen, e_data, and NULL.
Referenced by blender::draw::test_eevee_glsl_shaders_static().
Definition at line 603 of file eevee_shaders.c.
References datatoc_effect_mist_frag_glsl, DRW_shader_create_fullscreen_with_shaderlib, e_data, and NULL.
Referenced by EEVEE_mist_output_init(), and blender::draw::test_eevee_glsl_shaders_static().
Definition at line 637 of file eevee_shaders.c.
References datatoc_object_motion_frag_glsl, datatoc_object_motion_vert_glsl, DRW_shader_create_with_shaderlib, e_data, and NULL.
Referenced by EEVEE_motion_blur_cache_init(), and blender::draw::test_eevee_glsl_shaders_static().
Definition at line 628 of file eevee_shaders.c.
References datatoc_object_motion_frag_glsl, datatoc_object_motion_vert_glsl, DRW_shader_create_with_shaderlib, e_data, and NULL.
Referenced by EEVEE_motion_blur_cache_init(), EEVEE_motion_blur_cache_populate(), and blender::draw::test_eevee_glsl_shaders_static().
Definition at line 619 of file eevee_shaders.c.
References datatoc_effect_motion_blur_frag_glsl, DRW_shader_create_fullscreen_with_shaderlib, e_data, NULL, and TILE_SIZE_STR.
Referenced by EEVEE_motion_blur_cache_init(), and blender::draw::test_eevee_glsl_shaders_static().
Definition at line 658 of file eevee_shaders.c.
References datatoc_effect_velocity_tile_frag_glsl, DRW_shader_create_fullscreen, e_data, NULL, and TILE_SIZE_STR.
Referenced by EEVEE_motion_blur_cache_init(), and blender::draw::test_eevee_glsl_shaders_static().
Definition at line 649 of file eevee_shaders.c.
References datatoc_effect_velocity_tile_frag_glsl, DRW_shader_create_fullscreen, e_data, NULL, and TILE_SIZE_STR.
Referenced by EEVEE_motion_blur_cache_init(), and blender::draw::test_eevee_glsl_shaders_static().
Definition at line 756 of file eevee_shaders.c.
References datatoc_effect_reflection_resolve_frag_glsl, DRW_shader_create_fullscreen_with_shaderlib, e_data, NULL, and SHADER_DEFINES.
Referenced by EEVEE_screen_raytrace_cache_init(), and blender::draw::test_eevee_glsl_shaders_static().
Definition at line 745 of file eevee_shaders.c.
References datatoc_effect_reflection_trace_frag_glsl, DRW_shader_create_fullscreen_with_shaderlib, e_data, NULL, and SHADER_DEFINES.
Referenced by EEVEE_screen_raytrace_cache_init(), and blender::draw::test_eevee_glsl_shaders_static().
Definition at line 1514 of file eevee_shaders.c.
References BKE_id_free(), DOF_GATHER_MAX_PASS, DRW_SHADER_FREE_SAFE, DRW_SHADER_LIB_FREE_SAFE, e_data, eevee_shader_extra_exit(), MEM_freeN, MEM_SAFE_FREE, ntreeFreeEmbeddedTree(), and NULL.
Referenced by eevee_engine_free(), and blender::draw::test_eevee_glsl_shaders_static().
Definition at line 579 of file eevee_shaders.c.
References datatoc_bsdf_lut_frag_glsl, DRW_shader_create_fullscreen_with_shaderlib, e_data, and NULL.
Referenced by EEVEE_lut_update_ggx_brdf(), and blender::draw::test_eevee_glsl_shaders_static().
Definition at line 588 of file eevee_shaders.c.
References datatoc_btdf_lut_frag_glsl, DRW_shader_create_fullscreen_with_shaderlib, e_data, and NULL.
Referenced by EEVEE_lut_update_ggx_btdf(), and blender::draw::test_eevee_glsl_shaders_static().
Definition at line 322 of file eevee_shaders.c.
References eevee_shader_extra_init(), and eevee_shader_library_ensure().
Referenced by EEVEE_lightprobes_init(), EEVEE_materials_init(), and blender::draw::test_eevee_glsl_shaders_static().
Definition at line 412 of file eevee_shaders.c.
References datatoc_lightprobe_cube_display_frag_glsl, datatoc_lightprobe_cube_display_vert_glsl, DRW_shader_create_with_shaderlib, e_data, NULL, and SHADER_DEFINES.
Referenced by EEVEE_lightprobes_cache_init(), and blender::draw::test_eevee_glsl_shaders_static().
Definition at line 347 of file eevee_shaders.c.
References datatoc_lightprobe_filter_diffuse_frag_glsl, DRW_shader_create_fullscreen_with_shaderlib, e_data, filter_defines, and NULL.
Referenced by EEVEE_lightbake_cache_init(), and blender::draw::test_eevee_glsl_shaders_static().
Definition at line 334 of file eevee_shaders.c.
References datatoc_lightprobe_filter_glossy_frag_glsl, datatoc_lightprobe_geom_glsl, datatoc_lightprobe_vert_glsl, DRW_shader_create_with_shaderlib, e_data, filter_defines, and NULL.
Referenced by EEVEE_lightbake_cache_init(), and blender::draw::test_eevee_glsl_shaders_static().
Definition at line 356 of file eevee_shaders.c.
References datatoc_lightprobe_filter_visibility_frag_glsl, DRW_shader_create_fullscreen_with_shaderlib, e_data, filter_defines, and NULL.
Referenced by EEVEE_lightbake_cache_init(), and blender::draw::test_eevee_glsl_shaders_static().
Definition at line 425 of file eevee_shaders.c.
References datatoc_lightprobe_grid_display_frag_glsl, datatoc_lightprobe_grid_display_vert_glsl, DRW_shader_create_with_shaderlib, e_data, filter_defines, and NULL.
Referenced by EEVEE_lightprobes_cache_init(), and blender::draw::test_eevee_glsl_shaders_static().
Definition at line 365 of file eevee_shaders.c.
References datatoc_lightprobe_grid_fill_frag_glsl, DRW_shader_create_fullscreen_with_shaderlib, e_data, filter_defines, and NULL.
Referenced by EEVEE_lightbake_cache_init(), and blender::draw::test_eevee_glsl_shaders_static().
Definition at line 438 of file eevee_shaders.c.
References datatoc_lightprobe_planar_display_frag_glsl, datatoc_lightprobe_planar_display_vert_glsl, DRW_shader_create_with_shaderlib, e_data, and NULL.
Referenced by EEVEE_lightprobes_cache_init(), and blender::draw::test_eevee_glsl_shaders_static().
Definition at line 374 of file eevee_shaders.c.
References datatoc_lightprobe_planar_downsample_frag_glsl, datatoc_lightprobe_planar_downsample_geom_glsl, datatoc_lightprobe_planar_downsample_vert_glsl, DRW_shader_create_with_shaderlib, e_data, and NULL.
Referenced by EEVEE_lightprobes_cache_finish(), and blender::draw::test_eevee_glsl_shaders_static().
Definition at line 702 of file eevee_shaders.c.
References datatoc_renderpass_postprocess_frag_glsl, DRW_shader_create_fullscreen_with_shaderlib, e_data, and NULL.
Referenced by EEVEE_renderpasses_cache_finish(), and blender::draw::test_eevee_glsl_shaders_static().
GPUShader* eevee_shaders_sh_create_helper | ( | const char * | name, |
const char * | vert_name, | ||
const char * | frag_name, | ||
const char * | defines, | ||
bool | use_layered_rendering | ||
) |
Definition at line 782 of file eevee_shaders.c.
References datatoc_shadow_accum_frag_glsl, DRW_shader_create_fullscreen_with_shaderlib, e_data, NULL, and SHADER_DEFINES.
Referenced by EEVEE_shadow_output_init(), and blender::draw::test_eevee_glsl_shaders_static().
Definition at line 773 of file eevee_shaders.c.
References datatoc_shadow_frag_glsl, datatoc_shadow_vert_glsl, DRW_shader_create_with_shaderlib, e_data, and NULL.
Referenced by EEVEE_shadows_cache_init(), and blender::draw::test_eevee_glsl_shaders_static().
Definition at line 399 of file eevee_shaders.c.
References datatoc_background_vert_glsl, datatoc_lookdev_world_frag_glsl, DRW_shader_create_with_shaderlib, e_data, NULL, and SHADER_DEFINES.
Referenced by EEVEE_lookdev_cache_init(), and blender::draw::test_eevee_glsl_shaders_static().
Definition at line 387 of file eevee_shaders.c.
References datatoc_background_vert_glsl, datatoc_lookdev_world_frag_glsl, DRW_shader_create_with_shaderlib, e_data, NULL, and SHADER_DEFINES.
Referenced by EEVEE_lookdev_cache_init(), and blender::draw::test_eevee_glsl_shaders_static().
Definition at line 797 of file eevee_shaders.c.
References datatoc_effect_subsurface_frag_glsl, DRW_shader_create_fullscreen_with_shaderlib, e_data, and NULL.
Referenced by EEVEE_subsurface_add_pass(), and blender::draw::test_eevee_glsl_shaders_static().
Definition at line 806 of file eevee_shaders.c.
References datatoc_effect_subsurface_frag_glsl, DRW_shader_create_fullscreen_with_shaderlib, e_data, and NULL.
Referenced by EEVEE_subsurface_add_pass(), and blender::draw::test_eevee_glsl_shaders_static().
Definition at line 815 of file eevee_shaders.c.
References datatoc_effect_translucency_frag_glsl, DRW_shader_create_fullscreen_with_shaderlib, e_data, NULL, and SHADER_DEFINES.
Referenced by EEVEE_subsurface_add_pass().
struct GPUShader* EEVEE_shaders_taa_resolve_sh_get | ( | EEVEE_EffectsFlag | enabled_effects | ) |
Definition at line 935 of file eevee_shaders.c.
References datatoc_effect_temporal_aa_glsl, define(), DRW_shader_create_fullscreen_with_shaderlib, e_data, EFFECT_TAA_REPROJECT, NULL, and sh.
Referenced by EEVEE_temporal_sampling_cache_init(), and blender::draw::test_eevee_glsl_shaders_static().
Definition at line 926 of file eevee_shaders.c.
References datatoc_update_noise_frag_glsl, DRW_shader_create_fullscreen_with_shaderlib, e_data, and NULL.
Referenced by EEVEE_materials_cache_init(), and blender::draw::test_eevee_glsl_shaders_static().
Definition at line 917 of file eevee_shaders.c.
References datatoc_effect_velocity_resolve_frag_glsl, DRW_shader_create_fullscreen_with_shaderlib, e_data, and NULL.
Referenced by EEVEE_effects_cache_init(), and blender::draw::test_eevee_glsl_shaders_static().
Definition at line 906 of file eevee_shaders.c.
References datatoc_volumetric_accum_frag_glsl, DRW_shader_create_fullscreen_with_shaderlib, e_data, NULL, and SHADER_DEFINES.
Referenced by EEVEE_volumes_output_init(), and blender::draw::test_eevee_glsl_shaders_static().
Definition at line 832 of file eevee_shaders.c.
References datatoc_volumetric_frag_glsl, datatoc_volumetric_geom_glsl, datatoc_volumetric_vert_glsl, DRW_shader_create_with_shaderlib, e_data, NULL, and SHADER_DEFINES.
Referenced by EEVEE_volumes_cache_init(), and blender::draw::test_eevee_glsl_shaders_static().
Definition at line 879 of file eevee_shaders.c.
References datatoc_volumetric_geom_glsl, datatoc_volumetric_integration_frag_glsl, datatoc_volumetric_vert_glsl, DRW_shader_create_with_shaderlib, e_data, NULL, SHADER_DEFINES, and USE_VOLUME_OPTI.
Referenced by EEVEE_volumes_cache_finish(), and blender::draw::test_eevee_glsl_shaders_static().
Definition at line 894 of file eevee_shaders.c.
References datatoc_volumetric_resolve_frag_glsl, DRW_shader_create_fullscreen_with_shaderlib, e_data, NULL, and SHADER_DEFINES.
Referenced by EEVEE_volumes_cache_finish(), EEVEE_volumes_output_init(), and blender::draw::test_eevee_glsl_shaders_static().
Definition at line 847 of file eevee_shaders.c.
References datatoc_volumetric_geom_glsl, datatoc_volumetric_scatter_frag_glsl, datatoc_volumetric_vert_glsl, DRW_shader_create_with_shaderlib, e_data, NULL, and SHADER_DEFINES.
Referenced by EEVEE_volumes_cache_finish(), and blender::draw::test_eevee_glsl_shaders_static().
Definition at line 862 of file eevee_shaders.c.
References datatoc_volumetric_geom_glsl, datatoc_volumetric_scatter_frag_glsl, datatoc_volumetric_vert_glsl, DRW_shader_create_with_shaderlib, e_data, NULL, and SHADER_DEFINES.
Referenced by EEVEE_volumes_cache_finish(), and blender::draw::test_eevee_glsl_shaders_static().
void EEVEE_shadow_output_accumulate | ( | EEVEE_ViewLayerData * | sldata, |
EEVEE_Data * | vedata | ||
) |
Referenced by EEVEE_renderpasses_output_accumulate().
void EEVEE_shadow_output_init | ( | EEVEE_ViewLayerData * | sldata, |
EEVEE_Data * | vedata, | ||
uint | tot_samples | ||
) |
Referenced by EEVEE_renderpasses_output_init().
void EEVEE_shadows_cache_init | ( | EEVEE_ViewLayerData * | sldata, |
EEVEE_Data * | vedata | ||
) |
Definition at line 81 of file eevee_shadows.c.
References BLI_bitmap_set_all(), EEVEE_LightsInfo::cascade_len, EEVEE_LightsInfo::cube_len, DRW_PASS_CREATE, DRW_shgroup_create(), DRW_STATE_DEPTH_LESS_EQUAL, DRW_STATE_SHADOW_OFFSET, DRW_STATE_WRITE_DEPTH, EEVEE_shaders_shadow_sh_get(), EEVEE_ShadowCasterBuffer, EEVEE_StorageList::g_data, INIT_MINMAX, EEVEE_ViewLayerData::lights, EEVEE_LightsInfo::max, EEVEE_LightsInfo::min, EEVEE_LightsInfo::num_cascade_layer, EEVEE_LightsInfo::num_cube_layer, EEVEE_Data::psl, EEVEE_LightsInfo::shadow_len, EEVEE_PassList::shadow_pass, EEVEE_PrivateData::shadow_shgrp, EEVEE_LightsInfo::shcaster_aabb, EEVEE_LightsInfo::shcaster_backbuffer, EEVEE_LightsInfo::shcaster_frontbuffer, state, and EEVEE_Data::stl.
Referenced by EEVEE_lights_cache_init().
void EEVEE_shadows_cascade_add | ( | EEVEE_LightsInfo * | linfo, |
EEVEE_Light * | evli, | ||
struct Object * | ob | ||
) |
Definition at line 17 of file eevee_shadows_cascade.c.
References Light::bias, Light::cascade_count, Light::cascade_exponent, Light::cascade_fade, EEVEE_LightsInfo::cascade_len, Light::cascade_max_dist, Object::data, eevee_contact_shadow_setup(), max_ff(), MAX_SHADOW_CASCADE, EEVEE_LightsInfo::num_cascade_layer, EEVEE_LightsInfo::num_light, sh_data, EEVEE_LightsInfo::shadow_cascade_data, EEVEE_LightsInfo::shadow_cascade_light_indices, EEVEE_LightsInfo::shadow_cascade_render, EEVEE_LightsInfo::shadow_data, EEVEE_Light::shadow_id, and EEVEE_LightsInfo::shadow_len.
Referenced by EEVEE_lights_cache_add().
void EEVEE_shadows_caster_register | ( | EEVEE_ViewLayerData * | sldata, |
struct Object * | ob | ||
) |
Make that object update shadow casting lights inside its influence bounding box.
Definition at line 111 of file eevee_shadows.c.
References add_v3_v3v3(), Object::base_flag, BASE_FROM_DUPLI, BKE_object_boundbox_get(), BLI_BITMAP_ENABLE, BLI_BITMAP_RESIZE, BLI_BITMAP_SET, EEVEE_BoundBox::center, copy_v3_v3(), count, EEVEE_object_data_ensure(), EEVEE_ShadowCasterBuffer, fabsf, EEVEE_BoundBox::halfdim, id, INIT_MINMAX, EEVEE_ViewLayerData::lights, EEVEE_LightsInfo::max, max, MEM_reallocN, min, EEVEE_LightsInfo::min, minmax_v3v3_v3(), mul_m4_v3(), mul_v3_fl(), EEVEE_ObjectEngineData::need_update, Object::obmat, EEVEE_ObjectEngineData::shadow_caster_id, EEVEE_LightsInfo::shcaster_aabb, EEVEE_LightsInfo::shcaster_backbuffer, EEVEE_LightsInfo::shcaster_frontbuffer, sub_v3_v3v3(), update(), and BoundBox::vec.
Referenced by EEVEE_cache_populate(), and EEVEE_render_cache().
void EEVEE_shadows_cube_add | ( | EEVEE_LightsInfo * | linfo, |
EEVEE_Light * | evli, | ||
struct Object * | ob | ||
) |
Definition at line 10 of file eevee_shadows_cube.c.
References Object::base_flag, BASE_FROM_DUPLI, Light::bias, BLI_BITMAP_ENABLE, BoundSphere::center, Light::clipsta, copy_v3_v3(), EEVEE_LightsInfo::cube_len, Object::data, eevee_contact_shadow_setup(), EEVEE_light_data_ensure(), EEVEE_Light::invsqrdist, max_ff(), MAX_SHADOW_CUBE, EEVEE_LightEngineData::need_update, EEVEE_LightsInfo::num_cube_layer, EEVEE_LightsInfo::num_light, EEVEE_Light::position, BoundSphere::radius, EEVEE_LightsInfo::sh_cube_update, sh_data, EEVEE_LightsInfo::shadow_bounds, EEVEE_LightsInfo::shadow_cube_light_indices, EEVEE_LightsInfo::shadow_data, EEVEE_Light::shadow_id, EEVEE_LightsInfo::shadow_len, sqrt(), and update().
Referenced by EEVEE_lights_cache_add().
bool EEVEE_shadows_cube_setup | ( | EEVEE_LightsInfo * | linfo, |
const EEVEE_Light * | evli, | ||
int | sample_ofs | ||
) |
Return true if sample has changed and light needs to be updated.
Anti-Aliasing jitter: Add random rotation.
The 2.0 factor is because texel angular size is not even across the cube-map, so we make the rotation range a bit bigger. This will not blur the shadow even if the spread is too big since we are just rotating the shadow cube-map. Note that this may be a rough approximation an may not converge to a perfectly smooth shadow (because sample distribution is quite non-uniform) but is enough in practice.
Definition at line 83 of file eevee_shadows_cube.c.
References compare_v3v3(), copy_v3_v3(), DEG2RADF, e, eevee_light_matrix_get(), EEVEE_random_rotation_m4(), EEVEE_Shadow::far, float(), invert_m4(), EEVEE_Light::invsqrdist, max_ff(), min_ff(), EEVEE_Shadow::near, EEVEE_LightsInfo::shadow_cube_data, shadow_cube_random_position_set(), EEVEE_LightsInfo::shadow_cube_size, EEVEE_LightsInfo::shadow_data, EEVEE_Light::shadow_id, EEVEE_LightsInfo::soft_shadows, sqrt(), EEVEE_Shadow::type_data_id, and update().
Referenced by EEVEE_shadows_update().
void EEVEE_shadows_draw | ( | EEVEE_ViewLayerData * | sldata, |
EEVEE_Data * | vedata, | ||
struct DRWView * | view | ||
) |
This refresh lights shadow buffers.
Definition at line 285 of file eevee_shadows.c.
References BLI_BITMAP_ENABLE, BLI_BITMAP_NEW_ALLOCA, BLI_BITMAP_TEST, EEVEE_LightsInfo::cascade_len, EEVEE_ViewLayerData::common_data, EEVEE_ViewLayerData::common_ubo, EEVEE_LightsInfo::cube_len, DRW_culling_sphere_test(), DRW_stats_group_end(), DRW_stats_group_start(), DRW_view_set_active(), EEVEE_RAY_SHADOW, EEVEE_shadows_draw_cascades(), EEVEE_shadows_draw_cubemap(), GPU_uniformbuf_update(), EEVEE_ViewLayerData::lights, MAX_SHADOW_CUBE, EEVEE_CommonUniformBuffer::ray_type, EEVEE_LightsInfo::sh_cube_update, EEVEE_LightsInfo::shadow_bounds, EEVEE_LightsInfo::shadow_data, EEVEE_ViewLayerData::shadow_ubo, and view.
Referenced by eevee_draw_scene(), EEVEE_render_draw(), lightbake_render_scene_face(), and lightbake_render_scene_reflected().
void EEVEE_shadows_draw_cascades | ( | EEVEE_ViewLayerData * | sldata, |
EEVEE_Data * | vedata, | ||
DRWView * | view, | ||
int | cascade_index | ||
) |
Definition at line 383 of file eevee_shadows_cascade.c.
References BLI_assert, EEVEE_ShadowCascadeRender::cascade_count, DRW_draw_pass(), DRW_view_far_distance_get(), DRW_view_near_distance_get(), DRW_view_set_active(), eevee_ensure_cascade_views(), eevee_shadow_cascade_setup(), EEVEE_StorageList::effects, EEVEE_StorageList::g_data, g_data, GPU_framebuffer_bind(), GPU_framebuffer_texture_layer_attach(), EEVEE_LightsInfo::light_data, EEVEE_ViewLayerData::lights, MAX_CASCADE_NUM, EEVEE_Data::psl, EEVEE_LightsInfo::shadow_cascade_data, EEVEE_LightsInfo::shadow_cascade_light_indices, EEVEE_ViewLayerData::shadow_cascade_pool, EEVEE_LightsInfo::shadow_cascade_render, EEVEE_LightsInfo::shadow_data, EEVEE_ViewLayerData::shadow_fb, EEVEE_Light::shadow_id, EEVEE_PassList::shadow_pass, EEVEE_Data::stl, EEVEE_EffectsInfo::taa_current_sample, EEVEE_Shadow::type_data_id, and view.
Referenced by EEVEE_shadows_draw().
void EEVEE_shadows_draw_cubemap | ( | EEVEE_ViewLayerData * | sldata, |
EEVEE_Data * | vedata, | ||
int | cube_index | ||
) |
Definition at line 165 of file eevee_shadows_cube.c.
References BLI_BITMAP_SET, DRW_draw_pass(), DRW_view_set_active(), eevee_ensure_cube_views(), EEVEE_Shadow::far, EEVEE_StorageList::g_data, g_data, GPU_framebuffer_bind(), GPU_framebuffer_texture_layer_attach(), LA_LOCAL, LA_SPOT, EEVEE_LightsInfo::light_data, EEVEE_Light::light_type, EEVEE_ViewLayerData::lights, EEVEE_Shadow::near, EEVEE_Data::psl, EEVEE_LightsInfo::sh_cube_update, EEVEE_LightsInfo::shadow_cube_data, EEVEE_LightsInfo::shadow_cube_light_indices, EEVEE_ViewLayerData::shadow_cube_pool, EEVEE_LightsInfo::shadow_cube_size, EEVEE_LightsInfo::shadow_data, EEVEE_ViewLayerData::shadow_fb, EEVEE_Light::shadow_id, EEVEE_PassList::shadow_pass, spot_angle_fit_single_face(), EEVEE_Data::stl, and EEVEE_Shadow::type_data_id.
Referenced by EEVEE_shadows_draw().
void EEVEE_shadows_init | ( | EEVEE_ViewLayerData * | sldata | ) |
Definition at line 26 of file eevee_shadows.c.
References BLI_assert, BLI_BITMAP_NEW, CLAMP, DEG_get_evaluated_scene(), DRW_context_state_get(), DRW_TEXTURE_FREE_SAFE, Scene::eevee, EEVEE_ShadowCasterBuffer, SceneEEVEE::flag, GPU_uniformbuf_create_ex(), EEVEE_ViewLayerData::light_ubo, EEVEE_ViewLayerData::lights, MAX_LIGHT, MAX_SHADOW, MAX_SHADOW_CASCADE, MAX_SHADOW_CUBE, MEM_callocN, MEM_mallocN, NULL, SCE_EEVEE_SHADOW_HIGH_BITDEPTH, SCE_EEVEE_SHADOW_SOFT, SH_CASTER_ALLOC_CHUNK, EEVEE_ViewLayerData::shadow_cascade_pool, EEVEE_LightsInfo::shadow_cascade_size, SceneEEVEE::shadow_cascade_size, EEVEE_ViewLayerData::shadow_cube_pool, EEVEE_LightsInfo::shadow_cube_size, SceneEEVEE::shadow_cube_size, EEVEE_LightsInfo::shadow_high_bitdepth, EEVEE_ViewLayerData::shadow_ubo, EEVEE_LightsInfo::shcaster_backbuffer, EEVEE_LightsInfo::shcaster_frontbuffer, EEVEE_ViewLayerData::shcasters_buffers, EEVEE_LightsInfo::soft_shadows, and SWAP.
Referenced by eevee_engine_init(), eevee_lightbake_cache_create(), and EEVEE_render_modules_init().
void EEVEE_shadows_update | ( | EEVEE_ViewLayerData * | sldata, |
EEVEE_Data * | vedata | ||
) |
Definition at line 188 of file eevee_shadows.c.
References BLI_BITMAP_ENABLE, BLI_BITMAP_RESIZE, BLI_bitmap_set_all(), BLI_BITMAP_TEST, EEVEE_LightsInfo::cache_num_cascade_layer, EEVEE_LightsInfo::cache_num_cube_layer, EEVEE_LightsInfo::cube_len, divide_ceil_u(), DRW_TEX_COMPARE, DRW_TEX_FILTER, DRW_texture_create_2d_array(), DRW_TEXTURE_FREE_SAFE, EEVEE_ShadowCasterBuffer, EEVEE_shadows_cube_setup(), EEVEE_StorageList::effects, GPU_DEPTH_COMPONENT16, GPU_DEPTH_COMPONENT24, GPU_framebuffer_create(), EEVEE_LightsInfo::light_data, EEVEE_ViewLayerData::lights, max_ii(), MAX_LIGHT, MEM_reallocN, NULL, EEVEE_LightsInfo::num_cascade_layer, EEVEE_LightsInfo::num_cube_layer, SH_CASTER_ALLOC_CHUNK, EEVEE_LightsInfo::sh_cube_update, EEVEE_LightsInfo::shadow_bounds, EEVEE_ViewLayerData::shadow_cascade_pool, EEVEE_LightsInfo::shadow_cascade_size, EEVEE_LightsInfo::shadow_cube_light_indices, EEVEE_ViewLayerData::shadow_cube_pool, EEVEE_LightsInfo::shadow_cube_size, EEVEE_ViewLayerData::shadow_fb, EEVEE_LightsInfo::shadow_high_bitdepth, EEVEE_LightsInfo::shcaster_backbuffer, EEVEE_LightsInfo::shcaster_frontbuffer, sphere_bbox_intersect(), EEVEE_Data::stl, and EEVEE_EffectsInfo::taa_current_sample.
Referenced by eevee_draw_scene(), eevee_lightbake_cache_create(), and EEVEE_render_draw().
void EEVEE_subsurface_add_pass | ( | EEVEE_ViewLayerData * | sldata, |
EEVEE_Data * | vedata, | ||
Material * | ma, | ||
DRWShadingGroup * | shgrp, | ||
struct GPUMaterial * | gpumat | ||
) |
Definition at line 163 of file eevee_subsurface.c.
References Material::blend_flag, BLI_assert_msg, EEVEE_ViewLayerData::combined, EEVEE_ViewLayerData::common_ubo, DefaultTextureList::depth, depth_src, DRW_shgroup_call_procedural_triangles(), DRW_shgroup_create(), DRW_shgroup_stencil_mask(), DRW_shgroup_uniform_block, DRW_shgroup_uniform_texture(), DRW_shgroup_uniform_texture_ref(), DRW_shgroup_uniform_texture_ref_ex(), DRW_viewport_texture_list_get(), EEVEE_materials_get_util_tex(), EEVEE_shaders_subsurface_first_pass_sh_get(), EEVEE_shaders_subsurface_second_pass_sh_get(), EEVEE_shaders_subsurface_translucency_sh_get(), EEVEE_StorageList::effects, GPU_depth_blitting_workaround(), GPU_material_sss_profile_get(), GPU_SAMPLER_DEFAULT, EEVEE_ViewLayerData::light_ubo, MA_BL_TRANSLUCENCY, NULL, EEVEE_Data::psl, EEVEE_ViewLayerData::renderpass_ubo, EEVEE_ViewLayerData::shadow_cascade_pool, EEVEE_ViewLayerData::shadow_cube_pool, EEVEE_ViewLayerData::shadow_ubo, EEVEE_EffectsInfo::sss_albedo, EEVEE_EffectsInfo::sss_blur, EEVEE_PassList::sss_blur_ps, EEVEE_EffectsInfo::sss_irradiance, EEVEE_EffectsInfo::sss_radius, EEVEE_PassList::sss_resolve_ps, EEVEE_EffectsInfo::sss_sample_count, EEVEE_EffectsInfo::sss_stencil, EEVEE_EffectsInfo::sss_surface_count, EEVEE_PassList::sss_translucency_ps, state, and EEVEE_Data::stl.
Referenced by material_opaque().
void EEVEE_subsurface_cache_init | ( | EEVEE_ViewLayerData * | sldata, |
EEVEE_Data * | vedata | ||
) |
Screen Space SubSurface Scattering overview TODO
Definition at line 141 of file eevee_subsurface.c.
References EEVEE_ViewLayerData::common_data, DEG_get_evaluated_scene(), DRWContextState::depsgraph, DRW_context_state_get(), DRW_PASS_CREATE, DRW_STATE_BLEND_ADD, DRW_STATE_STENCIL_EQUAL, DRW_STATE_WRITE_COLOR, Scene::eevee, EEVEE_StorageList::effects, EEVEE_Data::psl, EEVEE_PassList::sss_blur_ps, EEVEE_CommonUniformBuffer::sss_jitter_threshold, SceneEEVEE::sss_jitter_threshold, EEVEE_PassList::sss_resolve_ps, EEVEE_EffectsInfo::sss_sample_count, SceneEEVEE::sss_samples, EEVEE_EffectsInfo::sss_surface_count, EEVEE_PassList::sss_translucency_ps, state, and EEVEE_Data::stl.
Referenced by eevee_cache_init(), eevee_lightbake_cache_create(), and EEVEE_render_cache_init().
void EEVEE_subsurface_compute | ( | EEVEE_ViewLayerData * | sldata, |
EEVEE_Data * | vedata | ||
) |
Definition at line 279 of file eevee_subsurface.c.
References clear(), EEVEE_TextureList::color, DRW_draw_pass(), DRW_pass_is_empty(), DRW_stats_group_end(), DRW_stats_group_start(), EFFECT_SSS, EEVEE_StorageList::effects, EEVEE_EffectsInfo::enabled_effects, EEVEE_Data::fbl, GPU_DEPTH_BIT, GPU_depth_blitting_workaround(), GPU_framebuffer_bind(), GPU_framebuffer_blit(), GPU_framebuffer_texture_attach(), GPU_STENCIL_BIT, GPU_texture_compare_mode(), EEVEE_FramebufferList::main_fb, EEVEE_Data::psl, EEVEE_ViewLayerData::shadow_cascade_pool, EEVEE_ViewLayerData::shadow_cube_pool, EEVEE_FramebufferList::sss_blit_fb, EEVEE_FramebufferList::sss_blur_fb, EEVEE_PassList::sss_blur_ps, EEVEE_FramebufferList::sss_resolve_fb, EEVEE_PassList::sss_resolve_ps, EEVEE_FramebufferList::sss_translucency_fb, EEVEE_PassList::sss_translucency_ps, EEVEE_Data::stl, and EEVEE_Data::txl.
Referenced by eevee_draw_scene(), and EEVEE_render_draw().
void EEVEE_subsurface_data_render | ( | EEVEE_ViewLayerData * | sldata, |
EEVEE_Data * | vedata | ||
) |
Referenced by eevee_draw_scene(), and EEVEE_render_draw().
void EEVEE_subsurface_draw_init | ( | EEVEE_ViewLayerData * | sldata, |
EEVEE_Data * | vedata | ||
) |
Definition at line 26 of file eevee_subsurface.c.
References DefaultTextureList::depth, draw_engine_eevee_type, DRW_TEXTURE_FREE_SAFE, DRW_texture_pool_query_2d(), DRW_viewport_size_get(), DRW_viewport_texture_list_get(), EEVEE_RENDER_PASS_DIFFUSE_LIGHT, EEVEE_subsurface_output_init(), EFFECT_SSS, EEVEE_StorageList::effects, EEVEE_EffectsInfo::enabled_effects, EEVEE_Data::fbl, EEVEE_StorageList::g_data, GPU_DEPTH24_STENCIL8, GPU_depth_blitting_workaround(), GPU_R11F_G11F_B10F, GPU_R16F, NULL, EEVEE_PrivateData::render_passes, EEVEE_TextureList::sss_accum, EEVEE_FramebufferList::sss_accum_fb, EEVEE_EffectsInfo::sss_albedo, EEVEE_FramebufferList::sss_blit_fb, EEVEE_EffectsInfo::sss_blur, EEVEE_FramebufferList::sss_blur_fb, EEVEE_FramebufferList::sss_clear_fb, EEVEE_EffectsInfo::sss_irradiance, EEVEE_EffectsInfo::sss_radius, EEVEE_FramebufferList::sss_resolve_fb, EEVEE_EffectsInfo::sss_stencil, EEVEE_FramebufferList::sss_translucency_fb, EEVEE_Data::stl, and EEVEE_Data::txl.
Referenced by eevee_cache_finish(), eevee_lightbake_cache_create(), and eevee_render_to_image().
void EEVEE_subsurface_init | ( | EEVEE_ViewLayerData * | sldata, |
EEVEE_Data * | vedata | ||
) |
Referenced by EEVEE_effects_init().
void EEVEE_subsurface_output_accumulate | ( | EEVEE_ViewLayerData * | sldata, |
EEVEE_Data * | vedata | ||
) |
Referenced by EEVEE_material_output_accumulate().
void EEVEE_subsurface_output_init | ( | EEVEE_ViewLayerData * | sldata, |
EEVEE_Data * | vedata, | ||
uint | tot_samples | ||
) |
void EEVEE_temporal_sampling_cache_init | ( | EEVEE_ViewLayerData * | sldata, |
EEVEE_Data * | vedata | ||
) |
Definition at line 330 of file eevee_temporal_sampling.c.
References EEVEE_ViewLayerData::combined, EEVEE_ViewLayerData::common_ubo, DefaultTextureList::depth, DRW_cache_fullscreen_quad_get(), DRW_PASS_CREATE, DRW_shgroup_call, DRW_shgroup_create(), DRW_shgroup_uniform_block, DRW_shgroup_uniform_float(), DRW_shgroup_uniform_mat4(), DRW_shgroup_uniform_texture_ref(), DRW_STATE_WRITE_COLOR, DRW_viewport_texture_list_get(), EEVEE_shaders_taa_resolve_sh_get(), EFFECT_TAA, EFFECT_TAA_REPROJECT, EEVEE_StorageList::effects, EEVEE_EffectsInfo::enabled_effects, NULL, EEVEE_EffectsInfo::prev_drw_persmat, EEVEE_Data::psl, EEVEE_ViewLayerData::renderpass_ubo, sh, EEVEE_EffectsInfo::source_buffer, EEVEE_Data::stl, EEVEE_EffectsInfo::taa_alpha, EEVEE_TextureList::taa_history, EEVEE_PassList::taa_resolve, and EEVEE_Data::txl.
Referenced by eevee_cache_init(), and EEVEE_render_cache_init().
void EEVEE_temporal_sampling_create_view | ( | EEVEE_Data * | vedata | ) |
Definition at line 206 of file eevee_temporal_sampling.c.
References DRW_view_clip_planes_set(), DRW_view_create_sub(), DRW_view_default_get(), DRW_view_viewmat_get(), DRW_view_winmat_get(), EEVEE_StorageList::effects, NULL, EEVEE_Data::stl, and EEVEE_EffectsInfo::taa_view.
Referenced by eevee_render_to_image(), and EEVEE_temporal_sampling_init().
void EEVEE_temporal_sampling_draw | ( | EEVEE_Data * | vedata | ) |
Definition at line 360 of file eevee_temporal_sampling.c.
References EEVEE_FramebufferList::double_buffer_depth_fb, DRW_draw_pass(), DRW_state_is_image_render(), DRW_state_is_playback(), DRW_view_persmat_get(), DRW_viewport_request_redraw(), EEVEE_FramebufferList::effect_color_fb, EFFECT_TAA, EFFECT_TAA_REPROJECT, EEVEE_StorageList::effects, EEVEE_EffectsInfo::enabled_effects, EEVEE_Data::fbl, float(), EEVEE_StorageList::g_data, GPU_COLOR_BIT, GPU_DEPTH_BIT, GPU_framebuffer_bind(), GPU_framebuffer_blit(), EEVEE_FramebufferList::main_color_fb, EEVEE_FramebufferList::main_fb, NULL, EEVEE_EffectsInfo::prev_drw_persmat, EEVEE_Data::psl, EEVEE_Data::stl, SWAP_BUFFERS_TAA, EEVEE_EffectsInfo::taa_alpha, EEVEE_EffectsInfo::taa_current_sample, EEVEE_FramebufferList::taa_history_color_fb, EEVEE_EffectsInfo::taa_render_sample, EEVEE_PassList::taa_resolve, EEVEE_EffectsInfo::taa_total_sample, EEVEE_EffectsInfo::target_buffer, EEVEE_Data::txl, and EEVEE_PrivateData::valid_taa_history.
Referenced by EEVEE_draw_effects().
int EEVEE_temporal_sampling_init | ( | EEVEE_ViewLayerData * | sldata, |
EEVEE_Data * | vedata | ||
) |
Referenced by EEVEE_effects_init().
void EEVEE_temporal_sampling_matrices_calc | ( | EEVEE_EffectsInfo * | effects, |
const double | ht_point[2] | ||
) |
Definition at line 123 of file eevee_temporal_sampling.c.
References add_v2_v2(), BLI_assert, center, DRW_context_state_get(), DRW_view_persmat_get(), DRW_view_update_sub(), DRW_view_viewmat_get(), DRW_view_winmat_get(), DRW_viewport_size_get(), EEVEE_depth_of_field_jitter_get(), EEVEE_temporal_sampling_offset_calc(), RenderData::gauss, mul_project_m4_v3(), NULL, Scene::r, scene, DRWContextState::scene, sub_v2_v2v2(), EEVEE_EffectsInfo::taa_current_sample, EEVEE_EffectsInfo::taa_view, and window_translate_m4().
Referenced by EEVEE_render_draw(), and EEVEE_temporal_sampling_update_matrices().
void EEVEE_temporal_sampling_offset_calc | ( | const double | ht_point[2], |
float | filter_size, | ||
float | r_offset[2] | ||
) |
Definition at line 115 of file eevee_temporal_sampling.c.
References e_data, and eval_table().
Referenced by eevee_lookdev_apply_taa(), and EEVEE_temporal_sampling_matrices_calc().
void EEVEE_temporal_sampling_reset | ( | EEVEE_Data * | vedata | ) |
Definition at line 200 of file eevee_temporal_sampling.c.
References EEVEE_StorageList::effects, EEVEE_Data::stl, EEVEE_EffectsInfo::taa_current_sample, and EEVEE_EffectsInfo::taa_render_sample.
Referenced by eevee_cache_finish(), eevee_draw_scene(), EEVEE_lookdev_init(), EEVEE_render_draw(), eevee_render_to_image(), and EEVEE_screen_raytrace_init().
int EEVEE_temporal_sampling_sample_count_get | ( | const Scene * | scene, |
const EEVEE_StorageList * | stl | ||
) |
Definition at line 218 of file eevee_temporal_sampling.c.
References divide_ceil_u(), DRW_state_is_image_render(), Scene::eevee, EEVEE_depth_of_field_sample_count_get(), EEVEE_StorageList::effects, EEVEE_StorageList::g_data, max_ii(), NULL, EEVEE_PrivateData::render_timesteps, scene, TAA_MAX_SAMPLE, SceneEEVEE::taa_render_samples, and SceneEEVEE::taa_samples.
Referenced by EEVEE_depth_of_field_init(), eevee_render_to_image(), and EEVEE_temporal_sampling_init().
void EEVEE_temporal_sampling_update_matrices | ( | EEVEE_Data * | vedata | ) |
Update the matrices based on the current sample.
DRW_MAT_PERS
and DRW_MAT_VIEW
needs to read the original matrices. Definition at line 184 of file eevee_temporal_sampling.c.
References BLI_halton_2d(), DRW_view_set_active(), EEVEE_temporal_sampling_matrices_calc(), EEVEE_StorageList::effects, EEVEE_EffectsInfo::taa_current_sample, and EEVEE_EffectsInfo::taa_view.
Referenced by eevee_draw_scene(), and EEVEE_effects_init().
void EEVEE_update_noise | ( | EEVEE_PassList * | psl, |
EEVEE_FramebufferList * | fbl, | ||
const double | offsets[3] | ||
) |
Definition at line 209 of file eevee_materials.c.
References DRW_draw_pass(), e_data, GPU_framebuffer_bind(), EEVEE_FramebufferList::update_noise_fb, and EEVEE_PassList::update_noise_pass.
Referenced by eevee_draw_scene(), and EEVEE_render_draw().
EEVEE_ViewLayerData* EEVEE_view_layer_data_ensure | ( | void | ) |
Definition at line 259 of file eevee_data.c.
References draw_engine_eevee_type, DRW_view_layer_engine_data_ensure(), EEVEE_view_layer_data_free(), eevee_view_layer_init(), MEM_callocN, and NULL.
Referenced by eevee_cache_finish(), eevee_cache_init(), EEVEE_cache_populate(), eevee_draw_scene(), eevee_engine_init(), eevee_lightbake_cache_create(), eevee_lightbake_render_grid_sample(), eevee_lightbake_render_probe_sample(), eevee_lightbake_render_world_sample(), EEVEE_lookdev_draw(), EEVEE_render_cache(), EEVEE_render_cache_init(), EEVEE_render_draw(), EEVEE_render_modules_init(), EEVEE_render_read_result(), and eevee_render_to_image().
EEVEE_ViewLayerData* EEVEE_view_layer_data_ensure_ex | ( | struct ViewLayer * | view_layer | ) |
Definition at line 246 of file eevee_data.c.
References draw_engine_eevee_type, DRW_view_layer_engine_data_ensure_ex(), EEVEE_view_layer_data_free(), eevee_view_layer_init(), MEM_callocN, and NULL.
Definition at line 191 of file eevee_data.c.
References EEVEE_ViewLayerData::aovs, BLI_memblock_destroy(), EEVEE_ViewLayerData::combined, EEVEE_ViewLayerData::common_ubo, EEVEE_ViewLayerData::diff_color, EEVEE_ViewLayerData::diff_light, DRW_TEXTURE_FREE_SAFE, DRW_UBO_FREE_SAFE, EEVEE_lightcache_free(), EEVEE_ViewLayerData::emit, EEVEE_ViewLayerData::environment, EEVEE_ViewLayerData::fallback_lightcache, EEVEE_ViewLayerData::grid_ubo, EEVEE_ViewLayerData::light_ubo, EEVEE_ViewLayerData::lights, EEVEE_ViewLayerData::material_cache, MAX_AOVS, MEM_SAFE_FREE, NULL, EEVEE_ViewLayerData::planar_ubo, EEVEE_ViewLayerData::probe_ubo, EEVEE_ViewLayerData::probes, EEVEE_ViewLayerData::renderpass_ubo, EEVEE_ViewLayerData::shadow_cascade_pool, EEVEE_ViewLayerData::shadow_cube_pool, EEVEE_ViewLayerData::shadow_fb, EEVEE_ViewLayerData::shadow_ubo, EEVEE_ViewLayerData::shcasters_buffers, EEVEE_ViewLayerData::spec_color, and EEVEE_ViewLayerData::spec_light.
Referenced by eevee_lightbake_delete_resources(), EEVEE_view_layer_data_ensure(), and EEVEE_view_layer_data_ensure_ex().
EEVEE_ViewLayerData* EEVEE_view_layer_data_get | ( | void | ) |
Definition at line 236 of file eevee_data.c.
References draw_engine_eevee_type, and DRW_view_layer_engine_data_get().
void EEVEE_volumes_cache_finish | ( | EEVEE_ViewLayerData * | sldata, |
EEVEE_Data * | vedata | ||
) |
Definition at line 341 of file eevee_volumes.c.
References EEVEE_ViewLayerData::combined, EEVEE_ViewLayerData::common_data, EEVEE_ViewLayerData::common_ubo, DRW_PASS_CREATE, DRW_shgroup_call_procedural_triangles(), DRW_shgroup_create(), DRW_shgroup_uniform_block, DRW_shgroup_uniform_image_ref(), DRW_shgroup_uniform_texture_ref(), DRW_STATE_BLEND_CUSTOM, DRW_STATE_WRITE_COLOR, e_data, EEVEE_shaders_volumes_integration_sh_get(), EEVEE_shaders_volumes_resolve_sh_get(), EEVEE_shaders_volumes_scatter_sh_get(), EEVEE_shaders_volumes_scatter_with_lights_sh_get(), EFFECT_VOLUMETRIC, EEVEE_StorageList::effects, EEVEE_EffectsInfo::enabled_effects, EEVEE_StorageList::g_data, LightCache::grid_tx, EEVEE_PrivateData::light_cache, EEVEE_ViewLayerData::light_ubo, NULL, EEVEE_ViewLayerData::probe_ubo, EEVEE_Data::psl, EEVEE_ViewLayerData::renderpass_ubo, sh, EEVEE_ViewLayerData::shadow_cascade_pool, EEVEE_ViewLayerData::shadow_cube_pool, EEVEE_ViewLayerData::shadow_ubo, EEVEE_Data::stl, LightCacheTexture::tex, EEVEE_Data::txl, USE_VOLUME_OPTI, EEVEE_CommonUniformBuffer::vol_tex_size, EEVEE_CommonUniformBuffer::vol_use_lights, EEVEE_TextureList::volume_prop_emission, EEVEE_TextureList::volume_prop_extinction, EEVEE_TextureList::volume_prop_phase, EEVEE_TextureList::volume_prop_scattering, EEVEE_TextureList::volume_scatter, EEVEE_TextureList::volume_scatter_history, EEVEE_TextureList::volume_transmit, EEVEE_TextureList::volume_transmit_history, EEVEE_PassList::volumetric_integration_ps, EEVEE_PassList::volumetric_resolve_ps, and EEVEE_PassList::volumetric_scatter_ps.
Referenced by eevee_cache_finish(), eevee_lightbake_cache_create(), and eevee_render_to_image().
void EEVEE_volumes_cache_init | ( | EEVEE_ViewLayerData * | sldata, |
EEVEE_Data * | vedata | ||
) |
Definition at line 192 of file eevee_volumes.c.
References EEVEE_ViewLayerData::combined, EEVEE_ViewLayerData::common_data, EEVEE_ViewLayerData::common_ubo, DRW_context_state_get(), DRW_PASS_CREATE, DRW_shgroup_call_procedural_triangles(), DRW_shgroup_create(), DRW_shgroup_material_create(), DRW_shgroup_uniform_block, DRW_shgroup_volume_create_sub(), DRW_STATE_BLEND_ADD, DRW_STATE_WRITE_COLOR, EEVEE_material_get(), EEVEE_shaders_volumes_clear_sh_get(), EFFECT_POST_BUFFER, EFFECT_VOLUMETRIC, EEVEE_StorageList::effects, EEVEE_EffectsInfo::enabled_effects, GPU_material_has_volume_output(), EEVEE_ViewLayerData::grid_ubo, EEVEE_ViewLayerData::light_ubo, LOOK_DEV_STUDIO_LIGHT_ENABLED, World::nodetree, NULL, EEVEE_ViewLayerData::planar_ubo, EEVEE_ViewLayerData::probe_ubo, EEVEE_Data::psl, EEVEE_ViewLayerData::renderpass_ubo, scene, DRWContextState::scene, EEVEE_ViewLayerData::shadow_ubo, EEVEE_Data::stl, World::use_nodes, DRWContextState::v3d, VAR_MAT_VOLUME, EEVEE_CommonUniformBuffer::vol_tex_size, EEVEE_PassList::volumetric_objects_ps, EEVEE_PassList::volumetric_world_ps, and Scene::world.
Referenced by eevee_cache_init(), eevee_lightbake_cache_create(), and EEVEE_render_cache_init().
void EEVEE_volumes_cache_object_add | ( | EEVEE_ViewLayerData * | sldata, |
EEVEE_Data * | vedata, | ||
struct Scene * | scene, | ||
Object * | ob | ||
) |
Definition at line 277 of file eevee_volumes.c.
References BKE_material_default_volume(), BKE_object_material_get_eval(), EEVEE_ViewLayerData::combined, EEVEE_ViewLayerData::common_data, EEVEE_ViewLayerData::common_ubo, DRW_shgroup_add_material_resources(), DRW_shgroup_call_procedural_triangles(), DRW_shgroup_create(), DRW_shgroup_uniform_block, DRW_shgroup_volume_create_sub(), EEVEE_material_get(), EFFECT_POST_BUFFER, EFFECT_VOLUMETRIC, EEVEE_StorageList::effects, EEVEE_EffectsInfo::enabled_effects, blender::robust_pred::epsilon, GPU_material_get_shader(), EEVEE_ViewLayerData::grid_ubo, EEVEE_ViewLayerData::light_ubo, GPUMaterial::ma, mat4_to_size(), NULL, OB_VOLUME, Object::obmat, EEVEE_ViewLayerData::planar_ubo, EEVEE_ViewLayerData::probe_ubo, EEVEE_Data::psl, EEVEE_ViewLayerData::renderpass_ubo, scene, sh, EEVEE_ViewLayerData::shadow_ubo, size(), EEVEE_Data::stl, Object::type, VAR_MAT_MESH, VAR_MAT_VOLUME, EEVEE_CommonUniformBuffer::vol_tex_size, and EEVEE_PassList::volumetric_objects_ps.
Referenced by EEVEE_cache_populate(), EEVEE_materials_cache_populate(), and EEVEE_render_cache().
void EEVEE_volumes_compute | ( | EEVEE_ViewLayerData * | sldata, |
EEVEE_Data * | vedata | ||
) |
Definition at line 479 of file eevee_volumes.c.
References DRW_draw_pass(), DRW_stats_group_end(), DRW_stats_group_start(), EFFECT_VOLUMETRIC, EEVEE_StorageList::effects, EEVEE_EffectsInfo::enabled_effects, EEVEE_Data::fbl, GPU_framebuffer_bind(), GPU_texture_compare_mode(), EEVEE_FramebufferList::main_fb, EEVEE_Data::psl, EEVEE_ViewLayerData::shadow_cascade_pool, EEVEE_ViewLayerData::shadow_cube_pool, EEVEE_Data::stl, SWAP, EEVEE_Data::txl, USE_VOLUME_OPTI, EEVEE_TextureList::volume_scatter, EEVEE_EffectsInfo::volume_scatter, EEVEE_TextureList::volume_scatter_history, EEVEE_TextureList::volume_transmit, EEVEE_EffectsInfo::volume_transmit, EEVEE_TextureList::volume_transmit_history, EEVEE_FramebufferList::volumetric_fb, EEVEE_FramebufferList::volumetric_integ_fb, EEVEE_PassList::volumetric_integration_ps, EEVEE_PassList::volumetric_objects_ps, EEVEE_FramebufferList::volumetric_scat_fb, EEVEE_PassList::volumetric_scatter_ps, and EEVEE_PassList::volumetric_world_ps.
Referenced by eevee_draw_scene(), and EEVEE_render_draw().
void EEVEE_volumes_draw_init | ( | EEVEE_ViewLayerData * | sldata, |
EEVEE_Data * | vedata | ||
) |
Definition at line 406 of file eevee_volumes.c.
References EEVEE_ViewLayerData::common_data, DRW_TEX_FILTER, DRW_texture_create_3d(), DRW_TEXTURE_FREE_SAFE, e_data, EFFECT_VOLUMETRIC, EEVEE_StorageList::effects, EEVEE_EffectsInfo::enabled_effects, EEVEE_Data::fbl, GPU_R11F_G11F_B10F, GPU_RG16F, NULL, EEVEE_Data::stl, EEVEE_Data::txl, EEVEE_CommonUniformBuffer::vol_tex_size, EEVEE_TextureList::volume_prop_emission, EEVEE_TextureList::volume_prop_extinction, EEVEE_TextureList::volume_prop_phase, EEVEE_TextureList::volume_prop_scattering, EEVEE_TextureList::volume_scatter, EEVEE_EffectsInfo::volume_scatter, EEVEE_TextureList::volume_scatter_history, EEVEE_TextureList::volume_transmit, EEVEE_EffectsInfo::volume_transmit, EEVEE_TextureList::volume_transmit_history, EEVEE_FramebufferList::volumetric_fb, EEVEE_FramebufferList::volumetric_integ_fb, and EEVEE_FramebufferList::volumetric_scat_fb.
Referenced by eevee_cache_finish(), eevee_lightbake_cache_create(), and eevee_render_to_image().
Definition at line 549 of file eevee_volumes.c.
References DRW_TEXTURE_FREE_SAFE, and e_data.
Referenced by eevee_engine_free().
void EEVEE_volumes_init | ( | EEVEE_ViewLayerData * | sldata, |
EEVEE_Data * | vedata | ||
) |
Definition at line 63 of file eevee_volumes.c.
References ceilf, EEVEE_ViewLayerData::common_data, copy_v3_v3_int(), CTX_wm_manager(), DEG_get_evaluated_scene(), DRWContextState::depsgraph, DRW_context_state_get(), DRW_state_is_image_render(), DRW_TEX_WRAP, DRW_texture_create_3d(), DRW_TEXTURE_FREE_SAFE, DRW_view_far_distance_get(), DRW_view_is_persp_get(), DRW_view_near_distance_get(), DRW_viewport_request_redraw(), DRW_viewport_size_get(), e_data, ED_screen_animation_no_scrub(), Scene::eevee, EEVEE_volumes_set_jitter(), EFFECT_TAA, EEVEE_StorageList::effects, EEVEE_EffectsInfo::enabled_effects, DRWContextState::evil_C, EEVEE_Data::fbl, SceneEEVEE::flag, float(), fmaxf, GPU_RGBA8, if(), max_ff(), max_ii(), min_ff(), NULL, SCE_EEVEE_SHADOW_SOFT, SCE_EEVEE_VOLUMETRIC_LIGHTS, SCE_EEVEE_VOLUMETRIC_SHADOWS, EEVEE_Data::stl, EEVEE_EffectsInfo::taa_current_sample, EEVEE_Data::txl, EEVEE_CommonUniformBuffer::vol_coord_scale, EEVEE_CommonUniformBuffer::vol_depth_param, EEVEE_CommonUniformBuffer::vol_history_alpha, EEVEE_CommonUniformBuffer::vol_inv_tex_size, EEVEE_CommonUniformBuffer::vol_shadow_steps, EEVEE_CommonUniformBuffer::vol_tex_size, EEVEE_CommonUniformBuffer::vol_use_lights, EEVEE_CommonUniformBuffer::vol_use_soft_shadows, EEVEE_EffectsInfo::volume_current_sample, EEVEE_EffectsInfo::volume_light_clamp, EEVEE_TextureList::volume_prop_emission, EEVEE_TextureList::volume_prop_extinction, EEVEE_TextureList::volume_prop_phase, EEVEE_TextureList::volume_prop_scattering, EEVEE_TextureList::volume_scatter, EEVEE_TextureList::volume_scatter_history, EEVEE_TextureList::volume_transmit, EEVEE_TextureList::volume_transmit_history, SceneEEVEE::volumetric_end, EEVEE_FramebufferList::volumetric_fb, EEVEE_FramebufferList::volumetric_integ_fb, SceneEEVEE::volumetric_light_clamp, SceneEEVEE::volumetric_sample_distribution, SceneEEVEE::volumetric_samples, EEVEE_FramebufferList::volumetric_scat_fb, SceneEEVEE::volumetric_shadow_samples, SceneEEVEE::volumetric_start, and SceneEEVEE::volumetric_tile_size.
Referenced by EEVEE_effects_init().
void EEVEE_volumes_output_accumulate | ( | EEVEE_ViewLayerData * | sldata, |
EEVEE_Data * | vedata | ||
) |
Referenced by EEVEE_renderpasses_output_accumulate().
void EEVEE_volumes_output_init | ( | EEVEE_ViewLayerData * | sldata, |
EEVEE_Data * | vedata, | ||
uint | tot_samples | ||
) |
Definition at line 563 of file eevee_volumes.c.
References EEVEE_ViewLayerData::combined, EEVEE_ViewLayerData::common_ubo, DRW_cache_fullscreen_quad_get(), DRW_PASS_CREATE, DRW_shgroup_call, DRW_shgroup_create(), DRW_shgroup_uniform_block, DRW_shgroup_uniform_texture_ref(), DRW_STATE_BLEND_ADD_FULL, DRW_STATE_WRITE_COLOR, DRW_texture_ensure_fullscreen_2d(), e_data, EEVEE_shaders_volumes_accum_sh_get(), EEVEE_shaders_volumes_resolve_sh_get(), EFFECT_VOLUMETRIC, EEVEE_StorageList::effects, EEVEE_EffectsInfo::enabled_effects, EEVEE_Data::fbl, GPU_RGBA16F, GPU_RGBA32F, NULL, EEVEE_Data::psl, EEVEE_ViewLayerData::renderpass_ubo, EEVEE_Data::stl, EEVEE_Data::txl, EEVEE_TextureList::volume_scatter, EEVEE_TextureList::volume_scatter_accum, EEVEE_TextureList::volume_transmit, EEVEE_TextureList::volume_transmittance_accum, EEVEE_FramebufferList::volumetric_accum_fb, and EEVEE_PassList::volumetric_accum_ps.
Referenced by EEVEE_renderpasses_output_init().
void EEVEE_volumes_resolve | ( | EEVEE_ViewLayerData * | sldata, |
EEVEE_Data * | vedata | ||
) |
Referenced by eevee_draw_scene(), and EEVEE_render_draw().
void EEVEE_volumes_set_jitter | ( | EEVEE_ViewLayerData * | sldata, |
uint | current_sample | ||
) |
Definition at line 48 of file eevee_volumes.c.
References BLI_halton_3d(), EEVEE_ViewLayerData::common_data, float(), and EEVEE_CommonUniformBuffer::vol_jitter.
Referenced by eevee_draw_scene(), EEVEE_render_draw(), and EEVEE_volumes_init().
EEVEE_WorldEngineData* EEVEE_world_data_ensure | ( | World * | wo | ) |
Definition at line 365 of file eevee_data.c.
References draw_engine_eevee_type, DRW_drawdata_ensure(), eevee_world_data_init(), World::id, and NULL.
Referenced by eevee_id_world_update().
EEVEE_WorldEngineData* EEVEE_world_data_get | ( | World * | wo | ) |
Definition at line 360 of file eevee_data.c.
References draw_engine_eevee_type, DRW_drawdata_get(), and World::id.
Definition at line 1322 of file eevee_shaders.c.
References BKE_id_new_nomain(), BLI_listbase_clear(), copy_v3_fl(), e_data, ID_WO, and NULL.
Referenced by EEVEE_lightprobes_cache_init(), and EEVEE_materials_cache_init().
|
static |
Definition at line 1647 of file eevee_private.h.
Referenced by eevee_ensure_cube_views(), and render_cubemap().
|
extern |
Definition at line 618 of file eevee_engine.c.
Referenced by EEVEE_bloom_init(), EEVEE_effects_init(), EEVEE_light_data_ensure(), EEVEE_light_data_get(), EEVEE_lightprobe_data_ensure(), EEVEE_lightprobe_data_get(), EEVEE_motion_blur_init(), EEVEE_object_data_ensure(), EEVEE_object_data_get(), EEVEE_occlusion_init(), EEVEE_subsurface_draw_init(), EEVEE_view_layer_data_ensure(), EEVEE_view_layer_data_ensure_ex(), EEVEE_view_layer_data_get(), EEVEE_world_data_ensure(), EEVEE_world_data_get(), and lightbake_do_sample().
EEVEE_ShadowCasterBuffer |
Definition at line 530 of file eevee_private.h.
Referenced by EEVEE_shadows_cache_init(), EEVEE_shadows_caster_register(), EEVEE_shadows_init(), and EEVEE_shadows_update().
|
static |
Definition at line 1638 of file eevee_private.h.