|
Blender V4.5
|
#include <eevee_raytrace.hh>
Public Member Functions | |
| RayTraceModule (Instance &inst, RayTraceData &data) | |
| bool | use_raytracing () const |
| bool | use_fast_gi () const |
Raytracing | |
| void | init () |
| void | sync () |
| RayTraceResult | render (RayTraceBuffer &rt_buffer, GPUTexture *screen_radiance_back_tx, eClosureBits active_closures, View &main_view, View &render_view) |
| RayTraceResult | alloc_only (RayTraceBuffer &rt_buffer) |
| RayTraceResult | alloc_dummy (RayTraceBuffer &rt_buffer) |
| void | debug_pass_sync () |
| void | debug_draw (View &view, GPUFrameBuffer *view_fb) |
Definition at line 138 of file eevee_raytrace.hh.
|
inline |
Definition at line 236 of file eevee_raytrace.hh.
| RayTraceResult blender::eevee::RayTraceModule::alloc_dummy | ( | RayTraceBuffer & | rt_buffer | ) |
Only allocate the RayTraceResult results buffers as dummy texture to ensure correct bindings.
Definition at line 712 of file eevee_raytrace.cc.
References blender::draw::TextureFromPool::acquire(), blender::eevee::RayTraceBuffer::closures, blender::eevee::RayTraceBuffer::DenoiseBuffer::denoised_bilateral_tx, GPU_TEXTURE_USAGE_SHADER_READ, GPU_TEXTURE_USAGE_SHADER_WRITE, RAYTRACE_RADIANCE_FORMAT, and result.
Referenced by blender::eevee::DeferredLayer::render().
| RayTraceResult blender::eevee::RayTraceModule::alloc_only | ( | RayTraceBuffer & | rt_buffer | ) |
Only allocate the RayTraceResult results buffers to be used by other passes.
Definition at line 698 of file eevee_raytrace.cc.
References blender::draw::TextureFromPool::acquire(), blender::eevee::RayTraceBuffer::closures, blender::eevee::RayTraceBuffer::DenoiseBuffer::denoised_bilateral_tx, blender::eevee::Instance::film, GPU_TEXTURE_USAGE_SHADER_READ, GPU_TEXTURE_USAGE_SHADER_WRITE, RAYTRACE_RADIANCE_FORMAT, blender::eevee::Film::render_extent_get(), and result.
Referenced by blender::eevee::DeferredLayer::render().
| void blender::eevee::RayTraceModule::debug_draw | ( | View & | view, |
| GPUFrameBuffer * | view_fb ) |
Definition at line 391 of file eevee_raytrace.cc.
| void blender::eevee::RayTraceModule::debug_pass_sync | ( | ) |
Definition at line 389 of file eevee_raytrace.cc.
| void blender::eevee::RayTraceModule::init | ( | ) |
Definition at line 24 of file eevee_raytrace.cc.
References data, Scene::eevee, blender::draw::Texture::ensure_2d(), FAST_GI_AO_ONLY, SceneEEVEE::fast_gi_method, SceneEEVEE::fast_gi_ray_count, SceneEEVEE::fast_gi_step_count, SceneEEVEE::flag, GPU_TEXTURE_USAGE_SHADER_READ, SceneEEVEE::ray_tracing_method, SceneEEVEE::ray_tracing_options, RAYTRACE_RADIANCE_FORMAT, SCE_EEVEE_FAST_GI_ENABLED, SCE_EEVEE_SSR_ENABLED, blender::eevee::Instance::scene, and RaytraceEEVEE::trace_max_roughness.
Referenced by blender::eevee::Instance::init().
| RayTraceResult blender::eevee::RayTraceModule::render | ( | RayTraceBuffer & | rt_buffer, |
| GPUTexture * | screen_radiance_back_tx, | ||
| eClosureBits | active_closures, | ||
| View & | main_view, | ||
| View & | render_view ) |
RayTrace the scene and resolve radiance buffer for the corresponding closure_bit.
IMPORTANT: Should not be conditionally executed as it manages the RayTraceResult. IMPORTANT: The screen tracing will be using the front and back Hierarchical-Z Buffer in its current state.
Definition at line 393 of file eevee_raytrace.cc.
References blender::draw::TextureFromPool::acquire(), BLI_assert, ceil_to_multiple_u(), blender::draw::Texture::clear(), blender::draw::detail::StorageCommon< T, len, device_only >::clear_to_zero(), blender::eevee::CLOSURE_NONE, blender::math::divide_ceil(), Scene::eevee, blender::draw::Texture::ensure_2d_array(), blender::eevee::Instance::film, blender::eevee::RayTraceData::full_resolution, blender::eevee::RayTraceData::full_resolution_inv, GPU_debug_group_begin(), GPU_debug_group_end(), GPU_RGB10_A2, GPU_RGBA16F, GPU_RGBA8, GPU_TEXTURE_USAGE_SHADER_READ, GPU_TEXTURE_USAGE_SHADER_WRITE, SceneEEVEE::gtao_resolution, blender::eevee::RayTraceBuffer::history_persmat, blender::eevee::RayTraceData::horizon_resolution_bias, blender::eevee::RayTraceData::horizon_resolution_scale, blender::draw::Texture::is_valid(), blender::eevee::Instance::manager, max_ii(), options, blender::draw::View::persmat(), power_of_2_max_i(), blender::eevee::UniformDataModule::push_update(), blender::eevee::RayTraceBuffer::radiance_feedback_tx, blender::eevee::RayTraceData::radiance_persmat, RAYTRACE_GROUP_SIZE, RAYTRACE_RADIANCE_FORMAT, RAYTRACE_TILEMASK_FORMAT, blender::draw::TextureFromPool::release(), blender::eevee::Film::render_extent_get(), blender::draw::StorageArrayBuffer< T, len, device_only >::resize(), blender::eevee::RayTraceData::resolution_bias, blender::eevee::RayTraceData::resolution_scale, result, blender::eevee::Sampling::rng_2d_get(), blender::eevee::RayTraceData::roughness_mask_bias, blender::eevee::RayTraceData::roughness_mask_scale, blender::eevee::Instance::sampling, blender::eevee::SAMPLING_RAYTRACE_V, blender::eevee::Instance::scene, blender::draw::Manager::submit(), blender::eevee::RayTraceData::trace_refraction, and blender::eevee::Instance::uniform_data.
Referenced by blender::eevee::DeferredLayer::render().
| void blender::eevee::RayTraceModule::sync | ( | ) |
Definition at line 45 of file eevee_raytrace.cc.
References blender::eevee::HiZBuffer::back, blender::draw::detail::PassBase< DrawCommandBufType >::barrier(), blender::draw::detail::PassBase< DrawCommandBufType >::bind_image(), blender::draw::detail::PassBase< DrawCommandBufType >::bind_resources(), blender::draw::detail::PassBase< DrawCommandBufType >::bind_ssbo(), blender::draw::detail::PassBase< DrawCommandBufType >::bind_texture(), blender::eevee::RayTraceData::closure_index, GPUSamplerState::default_sampler(), RaytraceEEVEE::denoise_stages, blender::eevee::RenderBuffers::depth_tx, blender::draw::detail::PassBase< DrawCommandBufType >::dispatch(), blender::eevee::PlanarProbeModule::enabled(), RaytraceEEVEE::flag, blender::eevee::HiZBuffer::front, blender::eevee::Instance::gbuffer, GPU_BARRIER_SHADER_IMAGE_ACCESS, GPU_BARRIER_SHADER_STORAGE, GPU_BARRIER_TEXTURE_FETCH, blender::eevee::Instance::hiz_buffer, blender::eevee::HORIZON_DENOISE, blender::eevee::RayTraceData::horizon_resolution_scale, blender::eevee::HORIZON_RESOLVE, blender::eevee::HORIZON_SCAN, blender::eevee::HORIZON_SETUP, blender::draw::detail::Pass< DrawCommandBufType >::init(), blender::eevee::Instance::manager, max_ii(), blender::eevee::Instance::pipelines, blender::eevee::Instance::planar_probes, power_of_2_max_i(), blender::eevee::RAY_DENOISE_BILATERAL, blender::eevee::RAY_DENOISE_SPATIAL, blender::eevee::RAY_DENOISE_TEMPORAL, blender::eevee::RAY_GENERATE, blender::eevee::RAY_TILE_CLASSIFY, blender::eevee::RAY_TILE_COMPACT, blender::eevee::RAY_TRACE_FALLBACK, blender::eevee::RAY_TRACE_PLANAR, blender::eevee::RAY_TRACE_SCREEN, RAYTRACE_EEVEE_DENOISE_BILATERAL, RAYTRACE_EEVEE_DENOISE_SPATIAL, RAYTRACE_EEVEE_DENOISE_TEMPORAL, RAYTRACE_EEVEE_METHOD_SCREEN, RAYTRACE_EEVEE_USE_DENOISE, RBUFS_UTILITY_TEX_SLOT, blender::eevee::HiZBuffer::ref_tx_, blender::eevee::Instance::render_buffers, blender::eevee::RayTraceData::resolution_scale, RaytraceEEVEE::resolution_scale, blender::eevee::Instance::sampling, blender::draw::detail::PassBase< DrawCommandBufType >::shader_set(), blender::eevee::Instance::shaders, blender::eevee::RayTraceData::skip_denoise, blender::draw::detail::PassBase< DrawCommandBufType >::specialize_constant(), blender::eevee::Instance::sphere_probes, blender::eevee::ShaderModule::static_shader_get(), RaytraceEEVEE::trace_max_roughness, blender::eevee::RayTraceData::trace_refraction, blender::eevee::Instance::uniform_data, blender::eevee::PipelineModule::utility_tx, blender::eevee::Instance::volume_probes, and blender::draw::Manager::warm_shader_specialization().
Referenced by blender::eevee::Instance::begin_sync().
|
inline |
Definition at line 283 of file eevee_raytrace.hh.
References RaytraceEEVEE::trace_max_roughness, and use_raytracing().
Referenced by blender::eevee::Instance::init().
|
inline |
Definition at line 278 of file eevee_raytrace.hh.
Referenced by blender::eevee::DeferredLayer::do_merge_direct_indirect_eval(), blender::eevee::DeferredLayer::end_sync(), blender::eevee::Instance::init(), and use_fast_gi().