|
Blender V4.3
|
#include <eevee_depth_of_field.hh>
Public Member Functions | |
| DepthOfField (Instance &inst) | |
| ~DepthOfField () | |
| bool | postfx_enabled () const |
Depth of field | |
| void | init () |
| void | sync () |
| void | jitter_apply (float4x4 &winmat, float4x4 &viewmat) |
Post-FX Rendering. | |
| void | render (View &view, GPUTexture **input_tx, GPUTexture **output_tx, DepthOfFieldBuffer &dof_buffer) |
Definition at line 43 of file eevee_depth_of_field.hh.
|
inline |
Definition at line 151 of file eevee_depth_of_field.hh.
|
inline |
Definition at line 152 of file eevee_depth_of_field.hh.
| void blender::eevee::DepthOfField::init | ( | ) |
Definition at line 43 of file eevee_depth_of_field.cc.
References blender::eevee::DepthOfFieldData::bokeh_blades, SceneEEVEE::bokeh_max_size, SceneEEVEE::bokeh_neighbor_max, SceneEEVEE::bokeh_overblur, SceneEEVEE::bokeh_threshold, blender::eevee::Instance::camera_eval_object, Object::data, Scene::eevee, SceneEEVEE::flag, float, OB_CAMERA, blender::eevee::DepthOfFieldData::scatter_color_threshold, blender::eevee::DepthOfFieldData::scatter_neighbor_max_color, SCE_EEVEE_DOF_JITTER, blender::eevee::Instance::scene, and Object::type.
Referenced by blender::eevee::Instance::init(), and blender::eevee::Instance::init_light_bake().
Apply Depth Of Field jittering to the view and projection matrices..
Definition at line 189 of file eevee_depth_of_field.cc.
References add_v2_v2(), blender::eevee::DepthOfFieldData::bokeh_anisotropic_scale, blender::eevee::DepthOfFieldData::bokeh_blades, blender::eevee::DepthOfFieldData::bokeh_rotation, blender::eevee::circle_to_polygon_angle(), blender::eevee::circle_to_polygon_radius(), cosf, blender::eevee::Sampling::dof_disk_sample_get(), mul_project_m4_v3(), blender::MatBase< T, NumCol, NumRow, Alignment >::ptr(), sample, blender::eevee::Instance::sampling, sinf, sub_v2_v2(), and UNPACK2.
|
inline |
Definition at line 172 of file eevee_depth_of_field.hh.
| void blender::eevee::DepthOfField::render | ( | View & | view, |
| GPUTexture ** | input_tx, | ||
| GPUTexture ** | output_tx, | ||
| DepthOfFieldBuffer & | dof_buffer ) |
Will swap input and output texture if rendering happens. The actual output of this function is in input_tx.
Definition at line 505 of file eevee_depth_of_field.cc.
References blender::draw::TextureFromPool::acquire(), blender::eevee::Instance::camera, blender::eevee::CAMERA_ORTHO, blender::eevee::DepthOfFieldData::camera_type, ceilf, blender::draw::Texture::clear(), blender::draw::detail::StorageCommon< T, len, device_only >::clear_to_zero(), blender::eevee::CameraData::clip_far, blender::eevee::CameraData::clip_near, blender::eevee::DepthOfFieldData::coc_abs_max, blender::eevee::DepthOfFieldData::coc_bias, blender::eevee::DepthOfFieldData::coc_mul, blender::eevee::coc_radius_from_camera_depth(), color_tx, blender::draw::SwapChain< T, len >::current(), blender::eevee::Camera::data_get(), blender::math::divide_ceil(), DOF_BOKEH_LUT_SIZE, DOF_DEFAULT_GROUP_SIZE, DOF_DILATE_RING_COUNT, DOF_FILTER_GROUP_SIZE, DOF_GATHER_GROUP_SIZE, DOF_GATHER_RING_COUNT, DOF_MAX_SLIGHT_FOCUS_RADIUS, DOF_REDUCE_GROUP_SIZE, DOF_RESOLVE_GROUP_SIZE, DOF_STABILIZE_GROUP_SIZE, DOF_TILES_DILATE_GROUP_SIZE, DOF_TILES_SIZE, DRW_stats_group_end(), DRW_stats_group_start(), blender::draw::Framebuffer::ensure(), blender::draw::Texture::ensure_2d(), fabsf, floorf, GPU_ATTACHMENT_NONE, GPU_ATTACHMENT_TEXTURE, GPU_BACKEND_OPENGL, GPU_BARRIER_FRAMEBUFFER, GPU_DEVICE_ATI, GPU_DRIVER_ANY, GPU_flush(), GPU_framebuffer_bind(), GPU_memory_barrier(), GPU_OS_UNIX, GPU_R11F_G11F_B10F, GPU_R16F, GPU_RG16F, GPU_RGBA16F, GPU_texture_height(), GPU_TEXTURE_USAGE_ATTACHMENT, GPU_TEXTURE_USAGE_SHADER_READ, GPU_TEXTURE_USAGE_SHADER_WRITE, GPU_texture_width(), GPU_type_matches_ex(), input_tx, blender::eevee::Camera::is_orthographic(), blender::eevee::Instance::manager, max_ff(), min_ff(), min_ii(), mul_project_m4_v3(), blender::draw::SwapChain< T, len >::previous(), blender::MatBase< T, NumCol, NumRow, Alignment >::ptr(), blender::draw::detail::UniformCommon< T, len, device_only >::push_update(), blender::draw::TextureFromPool::release(), blender::eevee::DepthOfFieldData::scatter_coc_threshold, blender::eevee::DepthOfFieldBuffer::stabilize_history_tx_, blender::draw::Manager::submit(), blender::draw::SwapChain< T, len >::swap(), blender::draw::TextureFromPool::swap(), blender::eevee::CameraData::type, view, and blender::eevee::CameraData::winmat.
| void blender::eevee::DepthOfField::sync | ( | ) |
Definition at line 65 of file eevee_depth_of_field.cc.
References BKE_camera_object_dof_distance(), blender::eevee::DepthOfFieldData::bokeh_anisotropic_scale, blender::eevee::DepthOfFieldData::bokeh_anisotropic_scale_inv, blender::eevee::DepthOfFieldData::bokeh_rotation, CAM_DOF_ENABLED, blender::eevee::Instance::camera, blender::eevee::Instance::camera_eval_object, blender::math::ceil_to_multiple(), clamp_f(), Object::data, blender::eevee::DEBUG_DOF_PLANES, blender::eevee::Instance::debug_mode, blender::math::divide_ceil(), DOF_MIP_COUNT, DOF_REDUCE_GROUP_SIZE, blender::eevee::Sampling::dof_ring_count_get(), blender::eevee::Sampling::dof_sample_count_get(), blender::draw::Texture::ensure_2d(), blender::draw::Texture::ensure_mip_views(), blender::eevee::Instance::film, blender::eevee::DepthOfFieldData::gather_uv_fac, GPU_R16F, GPU_RGBA16F, GPU_TEXTURE_USAGE_ATTACHMENT, GPU_TEXTURE_USAGE_SHADER_READ, GPU_TEXTURE_USAGE_SHADER_WRITE, blender::eevee::Instance::info_append(), blender::eevee::Instance::is_viewport(), max_ff(), OB_CAMERA, blender::draw::Texture::pixel_count(), blender::eevee::Film::render_extent_get(), blender::draw::StorageArrayBuffer< T, len, device_only >::resize(), blender::eevee::Instance::sampling, blender::eevee::DepthOfFieldData::scatter_max_rect, sqrtf, and Object::type.
Referenced by blender::eevee::Instance::begin_sync().