|
Blender
V2.93
|
#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_ObjectMotionData |
| struct | EEVEE_HairMotionData |
| struct | EEVEE_GeometryMotionData |
| 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 213 of file eevee_private.h.
| #define DOF_DILATE_RING_COUNT 3 |
Definition at line 215 of file eevee_private.h.
| #define DOF_FAST_GATHER_COC_ERROR 0.05 |
Definition at line 216 of file eevee_private.h.
| #define DOF_GATHER_RING_COUNT 5 |
Definition at line 214 of file eevee_private.h.
| #define DOF_SHADER_DEFINES |
Definition at line 218 of file eevee_private.h.
| #define DOF_TILE_DIVISOR 16 |
Definition at line 212 of file eevee_private.h.
| #define EEVEE_AOV_HASH_ALL -1 |
Definition at line 170 of file eevee_private.h.
| #define EEVEE_AOV_HASH_COLOR_TYPE_MASK 1 |
Definition at line 171 of file eevee_private.h.
| #define EEVEE_PROBE_MAX min_ii(MAX_PROBE, GPU_max_texture_layers() / 6) |
Definition at line 88 of file eevee_private.h.
| #define EEVEE_RAY_CAMERA 0 |
Definition at line 900 of file eevee_private.h.
| #define EEVEE_RAY_DIFFUSE 2 |
Definition at line 902 of file eevee_private.h.
| #define EEVEE_RAY_GLOSSY 3 |
Definition at line 903 of file eevee_private.h.
| #define EEVEE_RAY_SHADOW 1 |
Definition at line 901 of file eevee_private.h.
| #define EEVEE_RENDERPASSES_MATERIAL |
Definition at line 166 of file eevee_private.h.
| #define EEVEE_VELOCITY_TILE_SIZE 32 |
Definition at line 89 of file eevee_private.h.
| #define IRRADIANCE_HL2 |
Definition at line 65 of file eevee_private.h.
| #define LAMPTYPE_AREA_ELLIPSE 100.0f |
Definition at line 496 of file eevee_private.h.
| #define LOOK_DEV_STUDIO_LIGHT_ENABLED | ( | v3d | ) |
Definition at line 156 of file eevee_private.h.
| #define MAX_AOVS 64 |
Definition at line 56 of file eevee_private.h.
| #define MAX_BLOOM_STEP 16 |
Definition at line 55 of file eevee_private.h.
| #define MAX_CASCADE_NUM 4 |
Definition at line 51 of file eevee_private.h.
| #define MAX_CRYPTOMATTE_LAYERS 3 |
Definition at line 172 of file eevee_private.h.
Definition at line 48 of file eevee_private.h.
Definition at line 50 of file eevee_private.h.
Definition at line 49 of file eevee_private.h.
Definition at line 47 of file eevee_private.h.
| #define MAX_SCREEN_BUFFERS_LOD_LEVEL 6 |
Definition at line 163 of file eevee_private.h.
| #define MAX_SHADOW 128 /* TODO : Make this depends on GL_MAX_ARRAY_TEXTURE_LAYERS */ |
Definition at line 52 of file eevee_private.h.
| #define MAX_SHADOW_CASCADE 8 |
Definition at line 53 of file eevee_private.h.
| #define MAX_SHADOW_CUBE (MAX_SHADOW - MAX_CASCADE_NUM * MAX_SHADOW_CASCADE) |
Definition at line 54 of file eevee_private.h.
| #define MB_CURR 2 |
Definition at line 633 of file eevee_private.h.
| #define MB_NEXT 1 |
Definition at line 632 of file eevee_private.h.
| #define MB_PREV 0 |
Definition at line 631 of file eevee_private.h.
| #define MIN_CUBE_LOD_LEVEL 3 |
Definition at line 162 of file eevee_private.h.
| #define SHADER_DEFINES |
Definition at line 75 of file eevee_private.h.
| #define SHADER_IRRADIANCE "#define IRRADIANCE_HL2\n" |
Definition at line 70 of file eevee_private.h.
| #define SWAP_BUFFERS | ( | ) |
Definition at line 103 of file eevee_private.h.
| #define SWAP_BUFFERS_TAA | ( | ) |
Definition at line 118 of file eevee_private.h.
| #define SWAP_DOUBLE_BUFFERS | ( | ) |
Definition at line 92 of file eevee_private.h.
| #define TAA_MAX_SAMPLE 10000926 |
Definition at line 59 of file eevee_private.h.
| #define USE_SCENE_LIGHT | ( | v3d | ) |
Definition at line 152 of file eevee_private.h.
| #define USE_VOLUME_OPTI (GPU_shader_image_load_store_support()) |
Definition at line 90 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_Light EEVEE_Light |
| typedef struct EEVEE_LightEngineData EEVEE_LightEngineData |
| typedef LightGridCache EEVEE_LightGrid |
Definition at line 231 of file eevee_private.h.
| typedef LightProbeCache EEVEE_LightProbe |
Definition at line 230 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 175 of file eevee_private.h.
| anonymous enum |
| Enumerator | |
|---|---|
| KEY_CULL | |
| KEY_REFRACT | |
| KEY_HAIR | |
| KEY_SHADOW | |
Definition at line 193 of file eevee_private.h.
| anonymous enum |
| Enumerator | |
|---|---|
| PROBE_UPDATE_CUBE | |
| PROBE_UPDATE_GRID | |
| PROBE_UPDATE_ALL | |
Definition at line 623 of file eevee_private.h.
| enum eEEVEEMotionData |
| Enumerator | |
|---|---|
| EEVEE_MOTION_DATA_MESH | |
| EEVEE_MOTION_DATA_HAIR | |
Definition at line 659 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 204 of file eevee_private.h.
| enum EEVEE_EffectsFlag |
Definition at line 688 of file eevee_private.h.
| BLI_STATIC_ASSERT | ( | ) |
Definition at line 534 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 243 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 | ||
| ) |
| void EEVEE_cache_populate | ( | void * | vedata, |
| Object * | ob | ||
| ) |
Definition at line 112 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_hair_cache_populate(), EEVEE_particle_hair_cache_populate(), EEVEE_shadows_caster_register(), EEVEE_view_layer_data_ensure(), EEVEE_volumes_cache_object_add(), ELEM, OB_CURVE, OB_FONT, OB_HAIR, 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 34 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 371 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 302 of file eevee_cryptomatte.c.
References BKE_object_material_get(), 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 717 of file eevee_cryptomatte.c.
References BKE_cryptomatte_free(), EEVEE_PrivateData::cryptomatte_accum_buffer, EEVEE_PrivateData::cryptomatte_download_buffer, EEVEE_PrivateData::cryptomatte_session, EEVEE_StorageList::g_data, MEM_SAFE_FREE, NULL, and EEVEE_Data::stl.
Referenced by eevee_store_metadata().
| void EEVEE_cryptomatte_object_hair_cache_populate | ( | EEVEE_Data * | vedata, |
| EEVEE_ViewLayerData * | sldata, | ||
| Object * | ob | ||
| ) |
Definition at line 263 of file eevee_cryptomatte.c.
References BLI_assert, Object::data, eevee_cryptomatte_hair_cache_populate(), HAIR_MATERIAL_NR, Hair::mat, material, NULL, OB_HAIR, 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 273 of file eevee_cryptomatte.c.
References Object::data, ParticleSettings::draw_as, DRW_context_state_get(), DRW_object_is_visible_psys_in_active_context(), eevee_cryptomatte_hair_cache_populate(), eModifierType_ParticleSystem, if(), LISTBASE_FOREACH, Mesh::mat, material, mesh, Object::modifiers, NULL, OB_MESH, DRWContextState::object_edit, ParticleSettings::omat, ParticleSystem::part, PART_DRAW_PATH, PART_DRAW_REND, ParticleSettings::ren_as, Mesh::totcol, 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 115 of file eevee_cryptomatte.c.
References BKE_cryptomatte_add_layer(), BKE_cryptomatte_init(), EEVEE_PrivateData::cryptomatte_accurate_mode, ViewLayer::cryptomatte_flag, EEVEE_PrivateData::cryptomatte_session, 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, EEVEE_PrivateData::render_passes, 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 705 of file eevee_cryptomatte.c.
References BKE_cryptomatte_store_metadata(), BLI_assert, EEVEE_PrivateData::cryptomatte_session, DRW_context_state_get(), EEVEE_StorageList::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 | ||
| ) |
Definition at line 443 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 969 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 108 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 165 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, |
| GPUTexture * | texture_src, | ||
| int | level | ||
| ) |
Simple down-sampling algorithm for cube-map. Reconstruct mip chain up to mip level.
Definition at line 436 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 471 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 237 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_DEVICE_INTEL, GPU_DRIVER_ANY, GPU_OS_ANY, GPU_SAMPLER_DEFAULT, GPU_SAMPLER_FILTER, GPU_type_matches(), 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, |
| GPUTexture * | texture_src | ||
| ) |
Simple down-sampling algorithm. Reconstruct mip chain up to mip level.
Definition at line 417 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, | ||
| const 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 71 of file eevee_effects.c.
References 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_DEPTH24_STENCIL8, GPU_DEPTH_COMPONENT24, GPU_DEVICE_INTEL, GPU_DRIVER_ANY, GPU_framebuffer_create(), GPU_FRAMEBUFFER_FREE_SAFE, GPU_framebuffer_texture_attach(), GPU_OS_ANY, GPU_R11F_G11F_B10F, GPU_R32F, GPU_RG16, GPU_RGBA16, GPU_type_matches(), 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 137 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().
| void eevee_id_update | ( | void * | vedata, |
| ID * | id | ||
| ) |
Definition at line 420 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 359 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 351 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] | ||
| ) |
Definition at line 32 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 | ||
| ) |
Definition at line 206 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 | ||
| ) |
Definition at line 1068 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, KDL::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 | ||
| ) |
Definition at line 979 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, KDL::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 | ||
| ) |
| 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 | ||
| ) |
Definition at line 875 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 333 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 325 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 443 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 690 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 291 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 543 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().
| void EEVEE_lightprobes_free | ( | void | ) |
Definition at line 1263 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 485 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, 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 139 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().
| bool EEVEE_lightprobes_obj_visibility_cb | ( | bool | vis_in, |
| void * | user_data | ||
| ) |
Definition at line 64 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 575 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, 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 1251 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 1194 of file eevee_lightprobes.c.
References EEVEE_LightProbeVisTest::collection, EEVEE_ViewLayerData::common_data, EEVEE_ViewLayerData::common_ubo, copy_v2_fl(), copy_v2_v2(), 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_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 216 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 246 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 208 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 154 of file eevee_lookdev.c.
References axis_angle_to_mat3_single(), EEVEE_PrivateData::background_alpha, 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, 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, EEVEE_PrivateData::light_cache, 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, MEM_SAFE_FREE, mul_m3_m3m3(), NULL, powf, LightCache::ref_res, scene, DRWContextState::scene, shader(), View3D::shading, state, EEVEE_Data::stl, View3DShading::studiolight_background, View3DShading::studiolight_blur, EEVEE_PrivateData::studiolight_cubemap_res, STUDIOLIGHT_EQUIRECT_RADIANCE_GPUTEXTURE, EEVEE_PrivateData::studiolight_filter_quality, EEVEE_PrivateData::studiolight_glossy_clamp, EEVEE_PrivateData::studiolight_index, EEVEE_PrivateData::studiolight_intensity, View3DShading::studiolight_intensity, EEVEE_PrivateData::studiolight_matrix, STUDIOLIGHT_ORIENTATIONS_MATERIAL_MODE, EEVEE_PrivateData::studiolight_rot_z, 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 301 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, 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 99 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 38 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_FRAMEBUFFER_FREE_SAFE, GPU_RG16F, GPU_texture_free(), GPU_texture_read(), NULL, and tex.
Referenced by eevee_init_util_texture().
| float* EEVEE_lut_update_ggx_btdf | ( | int | lut_size, |
| int | lut_depth | ||
| ) |
Definition at line 75 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_FRAMEBUFFER_FREE_SAFE, GPU_RG16F, GPU_texture_free(), GPU_texture_read(), NULL, usdtokens::roughness(), and tex.
Referenced by eevee_init_util_texture().
| void EEVEE_material_bind_resources | ( | DRWShadingGroup * | shgrp, |
| GPUMaterial * | gpumat, | ||
| EEVEE_ViewLayerData * | sldata, | ||
| EEVEE_Data * | vedata, | ||
| const int * | ssr_id, | ||
| const float * | refract_depth, | ||
| bool | use_ssrefraction, | ||
| bool | use_alpha_blend | ||
| ) |
ssr_id can be null to disable ssr contribution.
Definition at line 82 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_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().
| Material* EEVEE_material_default_diffuse_get | ( | void | ) |
Definition at line 1193 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().
| Material* EEVEE_material_default_error_get | ( | void | ) |
Definition at line 1249 of file eevee_shaders.c.
References BKE_id_new_nomain(), copy_v3_fl3(), bNodeSocket::default_value, 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 1497 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().
| Material* EEVEE_material_default_glossy_get | ( | void | ) |
Definition at line 1220 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 1506 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, 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 1044 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 974 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 954 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 353 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, 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_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, EEVEE_ViewLayerData::grid_ubo, 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, NULL, options, GPUMaterial::pass, EEVEE_ViewLayerData::planar_ubo, EEVEE_ViewLayerData::probe_ubo, EEVEE_PrivateData::renderpass_ubo, scene, DRWContextState::scene, EEVEE_ViewLayerData::shadow_ubo, state, EEVEE_PassList::transparent_pass, 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 810 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_CURVE, OB_FONT, OB_MBALL, OB_MESH, OB_SOLID, OB_SURF, EEVEE_ViewLayerData::probes, scene, DRWContextState::scene, EeveeMaterialCache::shading_gpumat, EeveeMaterialCache::shadow_grp, EEVEE_ObjectEngineData::test_data, Object::type, DRWContextState::v3d, and EEVEE_LightProbesInfo::vis_data.
Referenced by EEVEE_cache_populate(), and EEVEE_render_cache().
| void EEVEE_materials_free | ( | void | ) |
Definition at line 944 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 74 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 224 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, GPU_uniformbuf_create_ex(), GPU_uniformbuf_update(), LISTBASE_FOREACH, MAX_AOVS, NULL, EEVEE_PrivateData::num_aovs_used, r, EEVEE_PrivateData::render_passes, EEVEE_ViewLayerData::renderpass_ubo, EEVEE_PrivateData::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 35 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, GPU_R32F, EEVEE_TextureList::mist_accum, EEVEE_FramebufferList::mist_accum_fb, EEVEE_PassList::mist_accum_ps, EEVEE_PrivateData::mist_falloff, EEVEE_PrivateData::mist_inv_dist, EEVEE_PrivateData::mist_start, 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 392 of file eevee_motion_blur.c.
References EEVEE_GeometryMotionData::batch, batch, BLI_assert, BLI_ghashIterator_done(), BLI_ghashIterator_getValue(), BLI_ghashIterator_init(), BLI_ghashIterator_step(), DRW_cache_restart(), DRW_hair_update(), DRW_render_instance_buffer_finish(), EEVEE_MOTION_DATA_HAIR, EEVEE_MOTION_DATA_MESH, EFFECT_MOTION_BLUR, EEVEE_StorageList::effects, EEVEE_EffectsInfo::enabled_effects, EEVEE_Data::fbl, EEVEE_MotionBlurData::geom, GPU_batch_vertbuf_add_ex(), GPU_framebuffer_bind(), GPU_texture_create_from_vertbuf(), GPU_VERTBUF_DISCARD_SAFE, 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_HairMotionData::hair_pos, EEVEE_HairMotionData::hair_pos_tx, EEVEE_FramebufferList::main_fb, MB_CURR, MB_NEXT, MB_PREV, EEVEE_EffectsInfo::motion_blur, motion_blur_remove_vbo_reference_from_batch(), EEVEE_EffectsInfo::motion_blur_step, NULL, EEVEE_HairMotionData::psys, EEVEE_HairMotionData::psys_len, EEVEE_Data::stl, EEVEE_GeometryMotionData::type, 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_data_free | ( | EEVEE_MotionBlurData * | mb | ) |
Definition at line 112 of file eevee_data.c.
References BLI_ghash_free(), eevee_motion_blur_mesh_data_free(), EEVEE_MotionBlurData::geom, MEM_freeN, NULL, and EEVEE_MotionBlurData::object.
Referenced by eevee_render_to_image().
| void EEVEE_motion_blur_data_init | ( | EEVEE_MotionBlurData * | mb | ) |
Definition at line 102 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::geom, NULL, and EEVEE_MotionBlurData::object.
Referenced by EEVEE_motion_blur_cache_init().
| void EEVEE_motion_blur_draw | ( | EEVEE_Data * | vedata | ) |
Definition at line 564 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_MotionBlurData * | mb, |
| Object * | ob | ||
| ) |
Definition at line 196 of file eevee_data.c.
References motion_blur_deform_data_get().
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_MotionBlurData * | mb, |
| Object * | ob | ||
| ) |
Definition at line 201 of file eevee_data.c.
References motion_blur_deform_data_get().
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 | hair | ||
| ) |
Definition at line 124 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(), and EEVEE_motion_blur_hair_cache_populate().
| void EEVEE_motion_blur_step_set | ( | EEVEE_Data * | vedata, |
| int | step | ||
| ) |
Definition at line 103 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 500 of file eevee_motion_blur.c.
References EEVEE_GeometryMotionData::batch, BLI_assert, BLI_ghashIterator_done(), BLI_ghashIterator_getValue(), BLI_ghashIterator_init(), BLI_ghashIterator_step(), EEVEE_MotionBlurData::camera, copy_m4_m4(), DRW_TEXTURE_FREE_SAFE, EEVEE_MOTION_DATA_HAIR, EEVEE_MOTION_DATA_MESH, EFFECT_MOTION_BLUR, EEVEE_StorageList::effects, EEVEE_EffectsInfo::enabled_effects, EEVEE_MotionBlurData::geom, GPU_VERTBUF_DISCARD_SAFE, GPU_vertbuf_get_format(), GPU_vertformat_attr_id_get(), GPU_vertformat_attr_rename(), EEVEE_HairMotionData::hair_pos, EEVEE_HairMotionData::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_HairMotionData::psys, EEVEE_HairMotionData::psys_len, EEVEE_Data::stl, EEVEE_GeometryMotionData::type, and EEVEE_GeometryMotionData::vbo.
Referenced by eevee_render_to_image().
| EEVEE_ObjectEngineData* EEVEE_object_data_ensure | ( | Object * | ob | ) |
Definition at line 307 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 299 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_object_hair_cache_populate | ( | EEVEE_Data * | vedata, |
| EEVEE_ViewLayerData * | sldata, | ||
| Object * | ob, | ||
| bool * | cast_shadow | ||
| ) |
Definition at line 925 of file eevee_materials.c.
References eevee_hair_cache_populate(), HAIR_MATERIAL_NR, and NULL.
Referenced by EEVEE_cache_populate(), and EEVEE_render_cache().
| void EEVEE_occlusion_cache_init | ( | EEVEE_ViewLayerData * | sldata, |
| EEVEE_Data * | vedata | ||
| ) |
Occlusion Algorithm Overview:
We separate the computation into 2 steps.
Definition at line 145 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 191 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_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(), 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 | ||
| ) |
| void EEVEE_occlusion_free | ( | void | ) |
Definition at line 278 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 43 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_FRAMEBUFFER_FREE_SAFE, 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 250 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 112 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 897 of file eevee_materials.c.
References ParticleSettings::draw_as, DRW_context_state_get(), DRW_object_is_visible_psys_in_active_context(), eevee_hair_cache_populate(), eModifierType_ParticleSystem, if(), LISTBASE_FOREACH, 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_cache_populate(), and EEVEE_render_cache().
Definition at line 113 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 | ||
| ) |
Definition at line 198 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_hair_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_hair_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, Object::id, EEVEE_LightProbeVisTest::invert, ID::name, NULL, OB_CURVE, OB_FONT, OB_HAIR, 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(), EEVEE_PrivateData::render_passes, 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 179 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 | ||
| ) |
Render functions for final render outputs.
Definition at line 50 of file eevee_render.c.
References EEVEE_PrivateData::background_alpha, BLI_snprintf(), EEVEE_PrivateData::cam_original_ob, EEVEE_PrivateData::camtexcofac, 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, 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, EEVEE_PrivateData::overscan, SceneEEVEE::overscan, EEVEE_PrivateData::overscan_pixels, RenderEngine::re, RE_engine_set_error_message(), RE_GetCamera(), SCE_EEVEE_OVERSCAN, scene, EEVEE_PrivateData::size_orig, EEVEE_Data::stl, EEVEE_Data::txl, and EEVEE_PrivateData::valid_double_buffer.
Referenced by eevee_render_to_image().
| void EEVEE_render_modules_init | ( | EEVEE_Data * | vedata, |
| struct RenderEngine * | engine, | ||
| struct Depsgraph * | depsgraph | ||
| ) |
Definition at line 135 of file eevee_render.c.
References EEVEE_PrivateData::cam_original_ob, 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, 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 671 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 695 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 156 of file eevee_render.c.
References EEVEE_PrivateData::cam_original_ob, EEVEE_PrivateData::camtexcofac, 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, invert_m4_m4(), NULL, EEVEE_PrivateData::overscan, RenderEngine::re, RE_GetCameraModelMatrix(), RE_GetCameraWindow(), RE_GetCameraWindowWithOverscan(), EEVEE_Data::stl, and view.
Referenced by EEVEE_render_modules_init().
| int EEVEE_renderpasses_aov_hash | ( | const ViewLayerAOV * | aov | ) |
Definition at line 80 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 229 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, NULL, EEVEE_Data::psl, EEVEE_PrivateData::render_passes, EEVEE_PrivateData::renderpass_col_input, EEVEE_PrivateData::renderpass_current_sample, EEVEE_PrivateData::renderpass_input, EEVEE_PrivateData::renderpass_light_input, EEVEE_PassList::renderpass_pass, EEVEE_PrivateData::renderpass_postprocess, EEVEE_PrivateData::renderpass_transmittance_input, EEVEE_PrivateData::renderpass_type, EEVEE_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 434 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 480 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 87 of file eevee_renderpasses.c.
References EEVEE_PrivateData::aov_hash, 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, NORMAL, NULL, View3DShading::render_pass, EEVEE_PrivateData::render_passes, 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 71 of file eevee_renderpasses.c.
References EEVEE_RENDERPASSES_POST_PROCESS_ON_FIRST_SAMPLE, EEVEE_StorageList::g_data, EEVEE_PrivateData::render_passes, 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 397 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, EEVEE_PrivateData::render_passes, 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 165 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, GPU_FRAMEBUFFER_FREE_SAFE, GPU_RGBA16F, EEVEE_PrivateData::render_passes, EEVEE_TextureList::renderpass, EEVEE_PrivateData::renderpass_col_input, EEVEE_FramebufferList::renderpass_fb, EEVEE_PrivateData::renderpass_input, EEVEE_PrivateData::renderpass_light_input, EEVEE_PrivateData::renderpass_transmittance_input, 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 | ||
| ) |
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 33 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 85 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 59 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 raytracing overview
Following Frostbite stochastic SSR.
Definition at line 116 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 35 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_FREE_SAFE, 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().
Definition at line 1278 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().
Definition at line 1306 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().
| struct DRWShaderLibrary* EEVEE_shader_lib_get | ( | void | ) |
Definition at line 334 of file eevee_shaders.c.
References e_data, and eevee_shader_library_ensure().
| struct GPUShader* EEVEE_shaders_bloom_blit_get | ( | bool | high_quality | ) |
Definition at line 961 of file eevee_shaders.c.
References datatoc_effect_bloom_frag_glsl, DRW_shader_create_fullscreen_with_shaderlib, e_data, and NULL.
Referenced by EEVEE_bloom_cache_init(), and blender::draw::TEST_F().
| struct GPUShader* EEVEE_shaders_bloom_downsample_get | ( | bool | high_quality | ) |
Definition at line 975 of file eevee_shaders.c.
References datatoc_effect_bloom_frag_glsl, DRW_shader_create_fullscreen_with_shaderlib, e_data, and NULL.
Referenced by EEVEE_bloom_cache_init(), and blender::draw::TEST_F().
| struct GPUShader* EEVEE_shaders_bloom_resolve_get | ( | bool | high_quality | ) |
Definition at line 1003 of file eevee_shaders.c.
References datatoc_effect_bloom_frag_glsl, DRW_shader_create_fullscreen_with_shaderlib, e_data, and NULL.
Referenced by EEVEE_bloom_cache_init(), EEVEE_bloom_output_init(), and blender::draw::TEST_F().
| struct GPUShader* EEVEE_shaders_bloom_upsample_get | ( | bool | high_quality | ) |
Definition at line 989 of file eevee_shaders.c.
References datatoc_effect_bloom_frag_glsl, DRW_shader_create_fullscreen_with_shaderlib, e_data, and NULL.
Referenced by EEVEE_bloom_cache_init(), and blender::draw::TEST_F().
| struct GPUShader* EEVEE_shaders_cryptomatte_sh_get | ( | bool | is_hair | ) |
Definition at line 723 of file eevee_shaders.c.
References BLI_dynstr_append(), BLI_dynstr_free(), BLI_dynstr_get_cstring(), BLI_dynstr_new(), datatoc_cryptomatte_frag_glsl, datatoc_surface_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_F().
| struct GPUShader* EEVEE_shaders_depth_of_field_bokeh_get | ( | void | ) |
Definition at line 1023 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_F().
| struct GPUShader* EEVEE_shaders_depth_of_field_dilate_tiles_get | ( | bool | pass | ) |
Definition at line 1050 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_F().
| struct GPUShader* EEVEE_shaders_depth_of_field_downsample_get | ( | void | ) |
Definition at line 1063 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_F().
| struct GPUShader* EEVEE_shaders_depth_of_field_filter_get | ( | void | ) |
Definition at line 1124 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_F().
| struct GPUShader* EEVEE_shaders_depth_of_field_flatten_tiles_get | ( | void | ) |
Definition at line 1041 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_F().
| struct GPUShader* EEVEE_shaders_depth_of_field_gather_get | ( | EEVEE_DofGatherPass | pass, |
| bool | bokeh_tx | ||
| ) |
Definition at line 1085 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, 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_F().
| struct GPUShader* EEVEE_shaders_depth_of_field_reduce_get | ( | bool | is_copy_pass | ) |
Definition at line 1072 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_F().
| struct GPUShader* EEVEE_shaders_depth_of_field_resolve_get | ( | bool | use_bokeh_tx, |
| bool | use_hq_gather | ||
| ) |
Definition at line 1163 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, 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_F().
| struct GPUShader* EEVEE_shaders_depth_of_field_scatter_get | ( | bool | is_foreground, |
| bool | bokeh_tx | ||
| ) |
Definition at line 1133 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, DOF_SHADER_DEFINES, DRW_shader_create_with_shaderlib, e_data, MEM_freeN, and NULL.
Referenced by dof_scatter_pass_init(), and blender::draw::TEST_F().
| struct GPUShader* EEVEE_shaders_depth_of_field_setup_get | ( | void | ) |
Definition at line 1032 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_F().
| struct GPUShader* EEVEE_shaders_effect_ambient_occlusion_debug_sh_get | ( | void | ) |
Definition at line 690 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_F().
| struct GPUShader* EEVEE_shaders_effect_ambient_occlusion_sh_get | ( | void | ) |
Definition at line 681 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_F().
| struct GPUShader* EEVEE_shaders_effect_color_copy_sh_get | ( | void | ) |
Definition at line 461 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().
| struct GPUShader* EEVEE_shaders_effect_downsample_cube_sh_get | ( | void | ) |
Definition at line 479 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_F().
| struct GPUShader* EEVEE_shaders_effect_downsample_sh_get | ( | void | ) |
Definition at line 470 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_F().
| struct GPUShader* EEVEE_shaders_effect_maxz_copydepth_layer_sh_get | ( | void | ) |
Definition at line 548 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_F().
| struct GPUShader* EEVEE_shaders_effect_maxz_copydepth_sh_get | ( | void | ) |
Definition at line 569 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_F().
| struct GPUShader* EEVEE_shaders_effect_maxz_downdepth_layer_sh_get | ( | void | ) |
Definition at line 538 of file eevee_shaders.c.
References datatoc_effect_minmaxz_frag_glsl, DRW_shader_create_fullscreen, e_data, and NULL.
Referenced by blender::draw::TEST_F().
| struct GPUShader* EEVEE_shaders_effect_maxz_downdepth_sh_get | ( | void | ) |
Definition at line 519 of file eevee_shaders.c.
References datatoc_effect_minmaxz_frag_glsl, DRW_shader_create_fullscreen, e_data, and NULL.
Referenced by blender::draw::TEST_F().
| struct GPUShader* EEVEE_shaders_effect_maxz_downlevel_sh_get | ( | void | ) |
Definition at line 501 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_F().
| struct GPUShader* EEVEE_shaders_effect_minz_copydepth_sh_get | ( | void | ) |
Definition at line 559 of file eevee_shaders.c.
References datatoc_effect_minmaxz_frag_glsl, DRW_shader_create_fullscreen, e_data, and NULL.
Referenced by blender::draw::TEST_F().
| struct GPUShader* EEVEE_shaders_effect_minz_downdepth_layer_sh_get | ( | void | ) |
Definition at line 528 of file eevee_shaders.c.
References datatoc_effect_minmaxz_frag_glsl, DRW_shader_create_fullscreen, e_data, and NULL.
Referenced by blender::draw::TEST_F().
| struct GPUShader* EEVEE_shaders_effect_minz_downdepth_sh_get | ( | void | ) |
Definition at line 510 of file eevee_shaders.c.
References datatoc_effect_minmaxz_frag_glsl, DRW_shader_create_fullscreen, e_data, and NULL.
Referenced by blender::draw::TEST_F().
| struct GPUShader* EEVEE_shaders_effect_minz_downlevel_sh_get | ( | void | ) |
Definition at line 492 of file eevee_shaders.c.
References datatoc_effect_minmaxz_frag_glsl, DRW_shader_create_fullscreen, e_data, and NULL.
Referenced by blender::draw::TEST_F().
| struct GPUShader* EEVEE_shaders_effect_mist_sh_get | ( | void | ) |
Definition at line 609 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_F().
| struct GPUShader* EEVEE_shaders_effect_motion_blur_hair_sh_get | ( | void | ) |
Definition at line 643 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_F().
| struct GPUShader* EEVEE_shaders_effect_motion_blur_object_sh_get | ( | void | ) |
Definition at line 634 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_F().
| struct GPUShader* EEVEE_shaders_effect_motion_blur_sh_get | ( | void | ) |
Definition at line 625 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_F().
| struct GPUShader* EEVEE_shaders_effect_motion_blur_velocity_tiles_expand_sh_get | ( | void | ) |
Definition at line 664 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_F().
| struct GPUShader* EEVEE_shaders_effect_motion_blur_velocity_tiles_sh_get | ( | void | ) |
Definition at line 655 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_F().
| struct GPUShader* EEVEE_shaders_effect_reflection_resolve_sh_get | ( | void | ) |
Definition at line 762 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_F().
| struct GPUShader* EEVEE_shaders_effect_reflection_trace_sh_get | ( | void | ) |
Definition at line 751 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_F().
| void EEVEE_shaders_free | ( | void | ) |
Definition at line 1538 of file eevee_shaders.c.
References BKE_id_free(), DOF_GATHER_MAX_PASS, DRW_SHADER_FREE_SAFE, DRW_SHADER_LIB_FREE_SAFE, e_data, MEM_freeN, MEM_SAFE_FREE, ntreeFreeEmbeddedTree(), and NULL.
Referenced by eevee_engine_free(), and blender::draw::TEST_F().
| struct GPUShader* EEVEE_shaders_ggx_lut_sh_get | ( | void | ) |
Definition at line 585 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_F().
| struct GPUShader* EEVEE_shaders_ggx_refraction_lut_sh_get | ( | void | ) |
Definition at line 594 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_F().
| void EEVEE_shaders_material_shaders_init | ( | void | ) |
Definition at line 329 of file eevee_shaders.c.
References eevee_shader_library_ensure().
Referenced by EEVEE_lightprobes_init(), EEVEE_materials_init(), and blender::draw::TEST_F().
| struct GPUShader* EEVEE_shaders_probe_cube_display_sh_get | ( | void | ) |
Definition at line 418 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_F().
| struct GPUShader* EEVEE_shaders_probe_filter_diffuse_sh_get | ( | void | ) |
Definition at line 353 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_F().
| struct GPUShader* EEVEE_shaders_probe_filter_glossy_sh_get | ( | void | ) |
Definition at line 340 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_F().
| struct GPUShader* EEVEE_shaders_probe_filter_visibility_sh_get | ( | void | ) |
Definition at line 362 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_F().
| struct GPUShader* EEVEE_shaders_probe_grid_display_sh_get | ( | void | ) |
Definition at line 431 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_F().
| struct GPUShader* EEVEE_shaders_probe_grid_fill_sh_get | ( | void | ) |
Definition at line 371 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_F().
| struct GPUShader* EEVEE_shaders_probe_planar_display_sh_get | ( | void | ) |
Definition at line 444 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_F().
| struct GPUShader* EEVEE_shaders_probe_planar_downsample_sh_get | ( | void | ) |
Definition at line 380 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_F().
| struct GPUShader* EEVEE_shaders_renderpasses_post_process_sh_get | ( | void | ) |
Definition at line 708 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_F().
| struct GPUShader* EEVEE_shaders_shadow_accum_sh_get | ( | void | ) |
Definition at line 788 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_F().
| struct GPUShader* EEVEE_shaders_shadow_sh_get | ( | void | ) |
Definition at line 779 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_F().
| struct GPUShader* EEVEE_shaders_studiolight_background_sh_get | ( | void | ) |
Definition at line 405 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_F().
| struct GPUShader* EEVEE_shaders_studiolight_probe_sh_get | ( | void | ) |
Definition at line 393 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_F().
| struct GPUShader* EEVEE_shaders_subsurface_first_pass_sh_get | ( | void | ) |
Definition at line 803 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_F().
| struct GPUShader* EEVEE_shaders_subsurface_second_pass_sh_get | ( | void | ) |
Definition at line 812 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_F().
| struct GPUShader* EEVEE_shaders_subsurface_translucency_sh_get | ( | void | ) |
Definition at line 821 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 938 of file eevee_shaders.c.
References datatoc_effect_temporal_aa_glsl, DRW_shader_create_fullscreen_with_shaderlib, e_data, EFFECT_TAA_REPROJECT, and NULL.
Referenced by EEVEE_temporal_sampling_cache_init(), and blender::draw::TEST_F().
| struct GPUShader* EEVEE_shaders_update_noise_sh_get | ( | void | ) |
Definition at line 929 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_F().
| struct GPUShader* EEVEE_shaders_velocity_resolve_sh_get | ( | void | ) |
Definition at line 920 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_F().
| struct GPUShader* EEVEE_shaders_volumes_accum_sh_get | ( | void | ) |
Definition at line 909 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_F().
| struct GPUShader* EEVEE_shaders_volumes_clear_sh_get | ( | void | ) |
Definition at line 837 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_F().
| struct GPUShader* EEVEE_shaders_volumes_integration_sh_get | ( | void | ) |
Definition at line 881 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_F().
| struct GPUShader* EEVEE_shaders_volumes_resolve_sh_get | ( | bool | accum | ) |
Definition at line 897 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_F().
| struct GPUShader* EEVEE_shaders_volumes_scatter_sh_get | ( | void | ) |
Definition at line 851 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_F().
| struct GPUShader* EEVEE_shaders_volumes_scatter_with_lights_sh_get | ( | void | ) |
Definition at line 865 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_F().
| 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 96 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 32 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 | ||
| ) |
Definition at line 127 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 25 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 | ||
| ) |
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 99 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 | ||
| ) |
Definition at line 304 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 398 of file eevee_shadows_cascade.c.
References BLI_assert, EEVEE_ShadowCascadeRender::cascade_count, EEVEE_PrivateData::cube_views, 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, 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 181 of file eevee_shadows_cube.c.
References BLI_BITMAP_SET, EEVEE_PrivateData::cube_views, DRW_draw_pass(), DRW_view_set_active(), eevee_ensure_cube_views(), EEVEE_Shadow::far, EEVEE_StorageList::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 41 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 204 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, 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 178 of file eevee_subsurface.c.
References Material::blend_flag, BLI_assert, 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 156 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 294 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 41 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_FRAMEBUFFER_FREE_SAFE, 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 347 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, 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 223 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 377 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 138 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], |
| const float | filter_size, | ||
| float | r_offset[2] | ||
| ) |
Definition at line 130 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 217 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(), and EEVEE_screen_raytrace_init().
| int EEVEE_temporal_sampling_sample_count_get | ( | const Scene * | scene, |
| const EEVEE_StorageList * | stl | ||
| ) |
Definition at line 235 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 | ) |
Definition at line 201 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 214 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 276 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 263 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.
| void EEVEE_view_layer_data_free | ( | void * | storage | ) |
Definition at line 208 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, GPU_FRAMEBUFFER_FREE_SAFE, 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 253 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 564 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, 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 234 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_uniform_texture(), DRW_STATE_BLEND_ADD, DRW_STATE_WRITE_COLOR, e_data, eevee_create_textures_volumes(), EEVEE_material_get(), EEVEE_shaders_volumes_clear_sh_get(), eevee_volume_default_texture(), EFFECT_POST_BUFFER, EFFECT_VOLUMETRIC, EEVEE_StorageList::effects, EEVEE_EffectsInfo::enabled_effects, GPU_material_has_volume_output(), GPU_material_volume_grids(), EEVEE_ViewLayerData::grid_ubo, EEVEE_ViewLayerData::light_ubo, LISTBASE_FOREACH, 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 499 of file eevee_volumes.c.
References BKE_material_default_volume(), BKE_object_material_get(), EEVEE_ViewLayerData::combined, EEVEE_ViewLayerData::common_data, EEVEE_ViewLayerData::common_ubo, DRW_shgroup_call_procedural_triangles(), DRW_shgroup_material_create(), DRW_shgroup_uniform_block(), EEVEE_material_get(), eevee_volume_object_grids_init(), eevee_volume_object_mesh_init(), EFFECT_POST_BUFFER, EFFECT_VOLUMETRIC, EEVEE_StorageList::effects, EEVEE_EffectsInfo::enabled_effects, blender::robust_pred::epsilon, GPU_MAT_SUCCESS, GPU_material_status(), GPU_material_volume_grids(), 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, EEVEE_ViewLayerData::shadow_ubo, size(), GPUMaterial::status, 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 701 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 628 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_FRAMEBUFFER_FREE_SAFE, 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().
| void EEVEE_volumes_free | ( | void | ) |
Definition at line 781 of file eevee_volumes.c.
References DRW_TEXTURE_FREE_SAFE, and e_data.
Referenced by eevee_engine_free().
| void EEVEE_volumes_free_smoke_textures | ( | void | ) |
Definition at line 771 of file eevee_volumes.c.
References BLI_freelistN(), DRW_smoke_free(), e_data, and LISTBASE_FOREACH.
Referenced by eevee_draw_scene(), EEVEE_lightbake_job(), and eevee_render_to_image().
| void EEVEE_volumes_init | ( | EEVEE_ViewLayerData * | sldata, |
| EEVEE_Data * | vedata | ||
| ) |
Definition at line 105 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_FRAMEBUFFER_FREE_SAFE, 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 795 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 90 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 382 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 377 of file eevee_data.c.
References draw_engine_eevee_type, DRW_drawdata_get(), and World::id.
| World* EEVEE_world_default_get | ( | void | ) |
Definition at line 1327 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 1514 of file eevee_private.h.
Referenced by eevee_ensure_cube_views(), and render_cubemap().
|
extern |
Definition at line 622 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 545 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 1505 of file eevee_private.h.