Blender
V3.3
|
#include "DRW_render.h"
#include "DNA_camera_types.h"
#include "DNA_screen_types.h"
#include "DNA_view3d_types.h"
#include "DNA_world_types.h"
#include "BKE_camera.h"
#include "BLI_string_utils.h"
#include "DEG_depsgraph.h"
#include "DEG_depsgraph_query.h"
#include "GPU_framebuffer.h"
#include "GPU_texture.h"
#include "eevee_private.h"
Go to the source code of this file.
Macros | |
#define | CAMERA_JITTER_RING_DENSITY 6 |
#define | WITH_FILTERING (GPU_SAMPLER_MIPMAP | GPU_SAMPLER_FILTER) |
#define | NO_FILTERING GPU_SAMPLER_MIPMAP |
#define | COLOR_FORMAT fx->dof_color_format |
#define | FG_TILE_FORMAT GPU_RGBA16F |
#define | BG_TILE_FORMAT GPU_R11F_G11F_B10F |
Depth of field post process effect.
There are 2 methods to achieve this effect.
Definition in file eevee_depth_of_field.c.
#define BG_TILE_FORMAT GPU_R11F_G11F_B10F |
Definition at line 336 of file eevee_depth_of_field.c.
#define CAMERA_JITTER_RING_DENSITY 6 |
Definition at line 35 of file eevee_depth_of_field.c.
#define COLOR_FORMAT fx->dof_color_format |
Definition at line 334 of file eevee_depth_of_field.c.
#define FG_TILE_FORMAT GPU_RGBA16F |
Definition at line 335 of file eevee_depth_of_field.c.
#define NO_FILTERING GPU_SAMPLER_MIPMAP |
Definition at line 333 of file eevee_depth_of_field.c.
#define WITH_FILTERING (GPU_SAMPLER_MIPMAP | GPU_SAMPLER_FILTER) |
Definition at line 332 of file eevee_depth_of_field.c.
Definition at line 67 of file eevee_depth_of_field.c.
References atanf, circle_to_polygon_radius(), floorf, M_PI, and polygon_sides_length().
Referenced by EEVEE_depth_of_field_jitter_get().
Definition at line 57 of file eevee_depth_of_field.c.
References cosf, floorf, and M_PI.
Referenced by circle_to_polygon_angle(), and EEVEE_depth_of_field_jitter_get().
|
static |
Definition at line 37 of file eevee_depth_of_field.c.
References EEVEE_EffectsInfo::dof_coc_params.
Referenced by EEVEE_depth_of_field_init().
|
static |
Create bokeh texture.
Definition at line 341 of file eevee_depth_of_field.c.
References EEVEE_PassList::dof_bokeh, EEVEE_EffectsInfo::dof_bokeh_aniso, EEVEE_EffectsInfo::dof_bokeh_aniso_inv, EEVEE_EffectsInfo::dof_bokeh_blades, EEVEE_FramebufferList::dof_bokeh_fb, EEVEE_EffectsInfo::dof_bokeh_gather_lut_tx, DOF_BOKEH_LUT_SIZE, EEVEE_EffectsInfo::dof_bokeh_resolve_lut_tx, EEVEE_EffectsInfo::dof_bokeh_rotation, EEVEE_EffectsInfo::dof_bokeh_scatter_lut_tx, DRW_PASS_CREATE, DRW_shgroup_call_procedural_triangles(), DRW_shgroup_create(), DRW_shgroup_uniform_float_copy(), DRW_shgroup_uniform_vec2_copy(), DRW_STATE_WRITE_COLOR, DRW_texture_pool_query_2d(), EEVEE_depth_of_field_init(), EEVEE_shaders_depth_of_field_bokeh_get(), GPU_R16F, GPU_RG16F, NULL, sh, and UNPACK2.
Referenced by EEVEE_depth_of_field_cache_init().
|
static |
Definition at line 483 of file eevee_depth_of_field.c.
References ceilf, EEVEE_EffectsInfo::dof_coc_dilated_tiles_bg_tx, EEVEE_EffectsInfo::dof_coc_dilated_tiles_fg_tx, EEVEE_EffectsInfo::dof_coc_tiles_bg_tx, EEVEE_EffectsInfo::dof_coc_tiles_fg_tx, DOF_DILATE_RING_COUNT, EEVEE_EffectsInfo::dof_dilate_ring_count, EEVEE_EffectsInfo::dof_dilate_ring_width_multiplier, EEVEE_EffectsInfo::dof_dilate_slight_focus, EEVEE_FramebufferList::dof_dilate_tiles_fb, EEVEE_PassList::dof_dilate_tiles_minabs, EEVEE_PassList::dof_dilate_tiles_minmax, EEVEE_FramebufferList::dof_flatten_tiles_fb, EEVEE_EffectsInfo::dof_fx_max_coc, DOF_GATHER_RING_COUNT, DOF_TILE_DIVISOR, DRW_draw_pass(), blender::math::floor(), GPU_framebuffer_bind(), min_ii(), and SWAP.
Referenced by EEVEE_depth_of_field_draw().
|
static |
Dilates the min & max COCS to cover maximum COC values. Output format/dimensions should be the same as coc_flatten_pass as they are swapped for doing multiple dilation passes.
Definition at line 448 of file eevee_depth_of_field.c.
References BG_TILE_FORMAT, divide_ceil_u(), EEVEE_EffectsInfo::dof_coc_dilated_tiles_bg_tx, EEVEE_EffectsInfo::dof_coc_dilated_tiles_fg_tx, EEVEE_EffectsInfo::dof_coc_tiles_bg_tx, EEVEE_EffectsInfo::dof_coc_tiles_fg_tx, EEVEE_EffectsInfo::dof_dilate_ring_count, EEVEE_EffectsInfo::dof_dilate_ring_width_multiplier, EEVEE_EffectsInfo::dof_dilate_slight_focus, EEVEE_FramebufferList::dof_dilate_tiles_fb, EEVEE_PassList::dof_dilate_tiles_minabs, EEVEE_PassList::dof_dilate_tiles_minmax, DOF_TILE_DIVISOR, DRW_PASS_CREATE, DRW_shgroup_call_procedural_triangles(), DRW_shgroup_create(), DRW_shgroup_uniform_bool(), DRW_shgroup_uniform_int(), DRW_shgroup_uniform_texture_ref(), DRW_STATE_WRITE_COLOR, DRW_texture_pool_query_2d(), DRW_viewport_size_get(), EEVEE_depth_of_field_init(), EEVEE_shaders_depth_of_field_dilate_tiles_get(), FG_TILE_FORMAT, NULL, sh, and UNPACK2.
Referenced by EEVEE_depth_of_field_cache_init().
|
static |
Filter an input buffer using a median filter to reduce noise. NOTE: We use the holefill texture as our input to reduce memory usage. Thus, the holefill pass cannot be filtered.
Definition at line 777 of file eevee_depth_of_field.c.
References EEVEE_EffectsInfo::dof_fg_holefill_color_tx, EEVEE_EffectsInfo::dof_fg_holefill_weight_tx, EEVEE_PassList::dof_filter, EEVEE_FramebufferList::dof_filter_bg_fb, EEVEE_FramebufferList::dof_filter_fg_fb, DRW_PASS_CREATE, DRW_shgroup_call_procedural_triangles(), DRW_shgroup_create(), DRW_shgroup_uniform_texture_ref_ex(), DRW_STATE_WRITE_COLOR, EEVEE_shaders_depth_of_field_filter_get(), NO_FILTERING, NULL, and sh.
Referenced by EEVEE_depth_of_field_cache_init().
|
static |
Outputs min & max COC in each 8x8 half res pixel tiles (so 1/16th of full resolution).
Definition at line 415 of file eevee_depth_of_field.c.
References BG_TILE_FORMAT, divide_ceil_u(), EEVEE_EffectsInfo::dof_coc_tiles_bg_tx, EEVEE_EffectsInfo::dof_coc_tiles_fg_tx, EEVEE_PassList::dof_flatten_tiles, EEVEE_FramebufferList::dof_flatten_tiles_fb, EEVEE_EffectsInfo::dof_half_res_coc_tx, DOF_TILE_DIVISOR, DRW_PASS_CREATE, DRW_shgroup_call_procedural_triangles(), DRW_shgroup_create(), DRW_shgroup_uniform_texture_ref_ex(), DRW_STATE_WRITE_COLOR, DRW_texture_pool_query_2d(), DRW_viewport_size_get(), EEVEE_depth_of_field_init(), EEVEE_shaders_depth_of_field_flatten_tiles_get(), FG_TILE_FORMAT, NO_FILTERING, NULL, sh, and UNPACK2.
Referenced by EEVEE_depth_of_field_cache_init().
|
static |
Do the gather convolution. For each pixels we gather multiple pixels in its neighborhood depending on the min & max CoC tiles.
Definition at line 651 of file eevee_depth_of_field.c.
References COLOR_FORMAT, divide_ceil_u(), EEVEE_EffectsInfo::dof_bg_color_tx, EEVEE_EffectsInfo::dof_bg_occlusion_tx, EEVEE_EffectsInfo::dof_bg_weight_tx, EEVEE_EffectsInfo::dof_bokeh_aniso, EEVEE_EffectsInfo::dof_bokeh_gather_lut_tx, EEVEE_EffectsInfo::dof_coc_dilated_tiles_bg_tx, EEVEE_EffectsInfo::dof_coc_dilated_tiles_fg_tx, EEVEE_EffectsInfo::dof_fg_color_tx, EEVEE_EffectsInfo::dof_fg_holefill_color_tx, EEVEE_EffectsInfo::dof_fg_holefill_weight_tx, EEVEE_EffectsInfo::dof_fg_occlusion_tx, EEVEE_EffectsInfo::dof_fg_weight_tx, DOF_GATHER_BACKGROUND, 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, DOF_GATHER_FOREGROUND, DOF_GATHER_HOLEFILL, EEVEE_EffectsInfo::dof_half_res_coc_tx, EEVEE_EffectsInfo::dof_half_res_color_tx, EEVEE_TextureList::dof_reduced_coc, EEVEE_TextureList::dof_reduced_color, DRW_PASS_CREATE, DRW_shgroup_call_procedural_triangles(), DRW_shgroup_create(), DRW_shgroup_uniform_texture(), DRW_shgroup_uniform_texture_ref(), DRW_shgroup_uniform_texture_ref_ex(), DRW_shgroup_uniform_vec2_copy(), DRW_STATE_WRITE_COLOR, DRW_texture_pool_query_2d(), DRW_viewport_size_get(), EEVEE_depth_of_field_init(), EEVEE_materials_get_util_tex(), EEVEE_shaders_depth_of_field_gather_get(), float(), GPU_R16F, GPU_texture_get_mipmap_size(), negate_v2(), NO_FILTERING, NULL, sh, UNPACK2, and WITH_FILTERING.
Referenced by EEVEE_depth_of_field_cache_init().
|
static |
Definition at line 88 of file eevee_depth_of_field.c.
Referenced by EEVEE_depth_of_field_jitter_get(), and EEVEE_depth_of_field_sample_count_get().
|
static |
Recombine the result of the foreground and background processing. Also perform a slight out of focus blur to improve geometric continuity.
Definition at line 881 of file eevee_depth_of_field.c.
References DefaultTextureList::depth, EEVEE_EffectsInfo::dof_bg_color_tx, EEVEE_EffectsInfo::dof_bg_weight_tx, EEVEE_EffectsInfo::dof_bokeh_aniso_inv, EEVEE_EffectsInfo::dof_bokeh_gather_lut_tx, EEVEE_EffectsInfo::dof_bokeh_max_size, EEVEE_EffectsInfo::dof_bokeh_resolve_lut_tx, EEVEE_EffectsInfo::dof_coc_dilated_tiles_bg_tx, EEVEE_EffectsInfo::dof_coc_dilated_tiles_fg_tx, EEVEE_EffectsInfo::dof_coc_params, EEVEE_EffectsInfo::dof_fg_color_tx, EEVEE_EffectsInfo::dof_fg_holefill_color_tx, EEVEE_EffectsInfo::dof_fg_holefill_weight_tx, EEVEE_EffectsInfo::dof_fg_weight_tx, EEVEE_EffectsInfo::dof_hq_slight_focus, EEVEE_PassList::dof_resolve, DRW_PASS_CREATE, DRW_shgroup_call_procedural_triangles(), DRW_shgroup_create(), DRW_shgroup_uniform_float_copy(), DRW_shgroup_uniform_texture(), DRW_shgroup_uniform_texture_ref(), DRW_shgroup_uniform_texture_ref_ex(), DRW_shgroup_uniform_vec2_copy(), DRW_shgroup_uniform_vec4_copy(), DRW_STATE_WRITE_COLOR, DRW_viewport_texture_list_get(), EEVEE_materials_get_util_tex(), EEVEE_shaders_depth_of_field_resolve_get(), NO_FILTERING, NULL, sh, and EEVEE_EffectsInfo::source_buffer.
Referenced by EEVEE_depth_of_field_cache_init().
Definition at line 938 of file eevee_depth_of_field.c.
References EEVEE_PassList::dof_reduce, EEVEE_EffectsInfo::dof_reduce_input_coc_tx, EEVEE_EffectsInfo::dof_reduce_input_color_tx, EEVEE_TextureList::dof_reduced_coc, EEVEE_TextureList::dof_reduced_color, and DRW_draw_pass().
Referenced by EEVEE_depth_of_field_draw().
|
static |
Create mipmapped color & COC textures for gather passes.
Definition at line 529 of file eevee_depth_of_field.c.
References COLOR_FORMAT, divide_ceil_u(), EEVEE_EffectsInfo::dof_bokeh_aniso, EEVEE_EffectsInfo::dof_denoise_factor, EEVEE_PassList::dof_downsample, EEVEE_FramebufferList::dof_downsample_fb, EEVEE_EffectsInfo::dof_downsample_tx, EEVEE_EffectsInfo::dof_fx_max_coc, DOF_GATHER_RING_COUNT, EEVEE_PassList::dof_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_TextureList::dof_reduced_coc, EEVEE_TextureList::dof_reduced_color, EEVEE_EffectsInfo::dof_scatter_coc_threshold, EEVEE_EffectsInfo::dof_scatter_color_threshold, EEVEE_EffectsInfo::dof_scatter_neighbor_max_color, EEVEE_EffectsInfo::dof_scatter_src_tx, DRW_PASS_CREATE, DRW_shgroup_call_procedural_triangles(), DRW_shgroup_create(), DRW_shgroup_uniform_float_copy(), DRW_shgroup_uniform_texture_ref_ex(), DRW_shgroup_uniform_vec2_copy(), DRW_STATE_WRITE_COLOR, DRW_TEXTURE_FREE_SAFE, DRW_texture_pool_query_2d(), DRW_viewport_size_get(), EEVEE_depth_of_field_init(), EEVEE_shaders_depth_of_field_downsample_get(), EEVEE_shaders_depth_of_field_reduce_get(), GPU_R11F_G11F_B10F, GPU_R16F, GPU_RGBA16F, GPU_texture_create_2d(), GPU_texture_width(), log2_ceil_u(), max_ii(), NO_FILTERING, NULL, sh, and UNPACK2.
Referenced by EEVEE_depth_of_field_cache_init().
|
static |
Do the Scatter convolution. A sprite is emitted for every 4 pixels but is only expanded if the pixels are bright enough to be scattered.
Definition at line 810 of file eevee_depth_of_field.c.
References EEVEE_EffectsInfo::dof_bg_color_tx, EEVEE_EffectsInfo::dof_bg_occlusion_tx, EEVEE_EffectsInfo::dof_bokeh_aniso, EEVEE_EffectsInfo::dof_bokeh_aniso_inv, EEVEE_EffectsInfo::dof_bokeh_gather_lut_tx, EEVEE_EffectsInfo::dof_bokeh_scatter_lut_tx, EEVEE_EffectsInfo::dof_fg_occlusion_tx, EEVEE_EffectsInfo::dof_half_res_color_tx, EEVEE_TextureList::dof_reduced_coc, EEVEE_PassList::dof_scatter_bg, EEVEE_FramebufferList::dof_scatter_bg_fb, EEVEE_PassList::dof_scatter_fg, EEVEE_FramebufferList::dof_scatter_fg_fb, EEVEE_EffectsInfo::dof_scatter_src_tx, DRW_PASS_CREATE, DRW_shgroup_call_procedural_triangles(), DRW_shgroup_create(), DRW_shgroup_uniform_int_copy(), DRW_shgroup_uniform_texture_ref(), DRW_shgroup_uniform_texture_ref_ex(), DRW_shgroup_uniform_vec2_copy(), DRW_STATE_BLEND_ADD_FULL, DRW_STATE_WRITE_COLOR, EEVEE_shaders_depth_of_field_scatter_get(), GPU_texture_get_mipmap_size(), negate_v2(), NO_FILTERING, NULL, and sh.
Referenced by EEVEE_depth_of_field_cache_init().
|
static |
Outputs halfResColorBuffer and halfResCocBuffer.
Definition at line 381 of file eevee_depth_of_field.c.
References COLOR_FORMAT, DefaultTextureList::depth, divide_ceil_u(), EEVEE_EffectsInfo::dof_bokeh_max_size, EEVEE_EffectsInfo::dof_coc_params, EEVEE_EffectsInfo::dof_half_res_coc_tx, EEVEE_EffectsInfo::dof_half_res_color_tx, EEVEE_PassList::dof_setup, EEVEE_FramebufferList::dof_setup_fb, DRW_PASS_CREATE, DRW_shgroup_call_procedural_triangles(), DRW_shgroup_create(), DRW_shgroup_uniform_float_copy(), DRW_shgroup_uniform_texture_ref_ex(), DRW_shgroup_uniform_vec4_copy(), DRW_STATE_WRITE_COLOR, DRW_texture_pool_query_2d(), DRW_viewport_size_get(), DRW_viewport_texture_list_get(), EEVEE_depth_of_field_init(), EEVEE_shaders_depth_of_field_setup_get(), GPU_RG16F, NO_FILTERING, NULL, sh, EEVEE_EffectsInfo::source_buffer, and UNPACK2.
Referenced by EEVEE_depth_of_field_cache_init().
void EEVEE_depth_of_field_cache_init | ( | EEVEE_ViewLayerData * | UNUSEDsldata, |
EEVEE_Data * | vedata | ||
) |
Definition at line 912 of file eevee_depth_of_field.c.
References dof_bokeh_pass_init(), EEVEE_EffectsInfo::dof_color_format, dof_dilate_tiles_pass_init(), dof_filter_pass_init(), dof_flatten_tiles_pass_init(), dof_gather_pass_init(), dof_recombine_pass_init(), dof_reduce_pass_init(), dof_scatter_pass_init(), dof_setup_pass_init(), EFFECT_DOF, EEVEE_StorageList::effects, EEVEE_EffectsInfo::enabled_effects, EEVEE_Data::fbl, GPU_RGBA16F, EEVEE_Data::psl, EEVEE_Data::stl, and EEVEE_Data::txl.
Referenced by eevee_cache_init(), and EEVEE_render_cache_init().
void EEVEE_depth_of_field_draw | ( | EEVEE_Data * | vedata | ) |
Definition at line 950 of file eevee_depth_of_field.c.
References EEVEE_PassList::dof_bokeh, EEVEE_FramebufferList::dof_bokeh_fb, EEVEE_EffectsInfo::dof_bokeh_gather_lut_tx, dof_dilate_tiles_pass_draw(), EEVEE_PassList::dof_downsample, EEVEE_FramebufferList::dof_downsample_fb, EEVEE_PassList::dof_filter, EEVEE_FramebufferList::dof_filter_bg_fb, EEVEE_FramebufferList::dof_filter_fg_fb, EEVEE_PassList::dof_flatten_tiles, EEVEE_FramebufferList::dof_flatten_tiles_fb, EEVEE_PassList::dof_gather_bg, EEVEE_FramebufferList::dof_gather_bg_fb, EEVEE_PassList::dof_gather_fg, EEVEE_FramebufferList::dof_gather_fg_fb, EEVEE_PassList::dof_gather_fg_holefill, EEVEE_FramebufferList::dof_gather_fg_holefill_fb, EEVEE_EffectsInfo::dof_half_res_coc_tx, EEVEE_EffectsInfo::dof_half_res_color_tx, dof_recursive_reduce(), EEVEE_PassList::dof_reduce_copy, EEVEE_FramebufferList::dof_reduce_copy_fb, EEVEE_FramebufferList::dof_reduce_fb, EEVEE_EffectsInfo::dof_reduce_input_coc_tx, EEVEE_EffectsInfo::dof_reduce_input_color_tx, EEVEE_EffectsInfo::dof_reduce_steps, EEVEE_PassList::dof_resolve, EEVEE_PassList::dof_scatter_bg, EEVEE_FramebufferList::dof_scatter_bg_fb, EEVEE_PassList::dof_scatter_fg, EEVEE_FramebufferList::dof_scatter_fg_fb, EEVEE_PassList::dof_setup, EEVEE_FramebufferList::dof_setup_fb, DRW_draw_pass(), DRW_stats_group_end(), DRW_stats_group_start(), EFFECT_DOF, EEVEE_StorageList::effects, EEVEE_EffectsInfo::enabled_effects, EEVEE_Data::fbl, GPU_framebuffer_bind(), GPU_framebuffer_recursive_downsample(), NULL, EEVEE_Data::psl, EEVEE_Data::stl, SWAP_BUFFERS, EEVEE_EffectsInfo::target_buffer, and EEVEE_Data::txl.
Referenced by EEVEE_draw_effects().
int EEVEE_depth_of_field_init | ( | EEVEE_ViewLayerData * | UNUSEDsldata, |
EEVEE_Data * | vedata, | ||
Object * | camera | ||
) |
Definition at line 180 of file eevee_depth_of_field.c.
References CameraDOFSettings::aperture_blades, CameraDOFSettings::aperture_fstop, CameraDOFSettings::aperture_ratio, CameraDOFSettings::aperture_rotation, BKE_camera_object_dof_distance(), BKE_camera_sensor_size(), SceneEEVEE::bokeh_denoise_fac, SceneEEVEE::bokeh_max_size, SceneEEVEE::bokeh_neighbor_max, SceneEEVEE::bokeh_overblur, SceneEEVEE::bokeh_threshold, CAM_DOF_ENABLED, CAM_ORTHO, camera, clamp_f(), Camera::clip_end, Camera::clip_start, coc_radius_from_camera_depth(), copy_v2_v2(), DEG_get_evaluated_scene(), DRWContextState::depsgraph, Camera::dof, EEVEE_EffectsInfo::dof_bokeh_aniso, EEVEE_EffectsInfo::dof_bokeh_aniso_inv, EEVEE_EffectsInfo::dof_bokeh_blades, EEVEE_EffectsInfo::dof_bokeh_max_size, EEVEE_EffectsInfo::dof_bokeh_rotation, EEVEE_EffectsInfo::dof_coc_far_dist, EEVEE_EffectsInfo::dof_coc_near_dist, EEVEE_EffectsInfo::dof_coc_params, EEVEE_EffectsInfo::dof_denoise_factor, EEVEE_FramebufferList::dof_dilate_tiles_fb, EEVEE_FramebufferList::dof_flatten_tiles_fb, EEVEE_EffectsInfo::dof_fx_max_coc, EEVEE_FramebufferList::dof_gather_bg_fb, EEVEE_FramebufferList::dof_gather_fg_fb, EEVEE_EffectsInfo::dof_hq_slight_focus, EEVEE_EffectsInfo::dof_jitter_blades, EEVEE_EffectsInfo::dof_jitter_focus, EEVEE_EffectsInfo::dof_jitter_radius, EEVEE_EffectsInfo::dof_jitter_ring_count, EEVEE_FramebufferList::dof_reduce_copy_fb, EEVEE_FramebufferList::dof_reduce_fb, EEVEE_TextureList::dof_reduced_coc, EEVEE_TextureList::dof_reduced_color, EEVEE_FramebufferList::dof_scatter_bg_fb, EEVEE_EffectsInfo::dof_scatter_color_threshold, EEVEE_EffectsInfo::dof_scatter_neighbor_max_color, EEVEE_FramebufferList::dof_setup_fb, DRW_context_state_get(), DRW_TEXTURE_FREE_SAFE, DRW_viewport_size_get(), Scene::eevee, EEVEE_depth_of_field_sample_count_get(), EEVEE_temporal_sampling_sample_count_get(), EFFECT_DOF, EFFECT_POST_BUFFER, EEVEE_StorageList::effects, fabsf, EEVEE_Data::fbl, CameraDOFSettings::flag, SceneEEVEE::flag, if(), invert_v2(), Camera::lens, max_ff(), min_ff(), NULL, OB_CAMERA, Camera::ortho_scale, DRWContextState::rv3d, SCE_EEVEE_DOF_HQ_SLIGHT_FOCUS, SCE_EEVEE_DOF_JITTER, Camera::sensor_fit, Camera::sensor_x, Camera::sensor_y, sqrtf, EEVEE_Data::stl, EEVEE_Data::txl, Camera::type, and RegionView3D::viewcamtexcofac.
Referenced by dof_bokeh_pass_init(), dof_dilate_tiles_pass_init(), dof_flatten_tiles_pass_init(), dof_gather_pass_init(), dof_reduce_pass_init(), dof_setup_pass_init(), and EEVEE_effects_init().
bool EEVEE_depth_of_field_jitter_get | ( | EEVEE_EffectsInfo * | fx, |
float | r_jitter[2], | ||
float * | r_focus_distance | ||
) |
Definition at line 93 of file eevee_depth_of_field.c.
References CAMERA_JITTER_RING_DENSITY, circle_to_polygon_angle(), circle_to_polygon_radius(), cosf, EEVEE_EffectsInfo::dof_bokeh_aniso, EEVEE_EffectsInfo::dof_bokeh_rotation, EEVEE_EffectsInfo::dof_jitter_blades, EEVEE_EffectsInfo::dof_jitter_focus, EEVEE_EffectsInfo::dof_jitter_radius, EEVEE_EffectsInfo::dof_jitter_ring_count, dof_jitter_total_sample_count(), float(), M_PI, mul_v2_fl(), mul_v2_v2(), r, sinf, T, and EEVEE_EffectsInfo::taa_current_sample.
Referenced by EEVEE_temporal_sampling_matrices_calc().
int EEVEE_depth_of_field_sample_count_get | ( | EEVEE_EffectsInfo * | effects, |
int | sample_count, | ||
int * | r_ring_count | ||
) |
Definition at line 150 of file eevee_depth_of_field.c.
References CAMERA_JITTER_RING_DENSITY, ceilf, EEVEE_EffectsInfo::dof_jitter_radius, dof_jitter_total_sample_count(), NULL, sqrt(), TAA_MAX_SAMPLE, and x.
Referenced by EEVEE_depth_of_field_init(), and EEVEE_temporal_sampling_sample_count_get().
Definition at line 50 of file eevee_depth_of_field.c.
References M_PI, and KDL::sin().
Referenced by circle_to_polygon_angle().