|
Blender V4.3
|
#include <eevee_raytrace.hh>
Public Member Functions | |
| RayTraceModule (Instance &inst, RayTraceData &data) | |
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 234 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 658 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 644 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 338 of file eevee_raytrace.cc.
| void blender::eevee::RayTraceModule::debug_pass_sync | ( | ) |
Definition at line 336 of file eevee_raytrace.cc.
| void blender::eevee::RayTraceModule::init | ( | ) |
Definition at line 27 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, 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 340 of file eevee_raytrace.cc.
References blender::draw::TextureFromPool::acquire(), 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(), DRW_stats_group_end(), DRW_stats_group_start(), Scene::eevee, blender::draw::Texture::ensure_2d_array(), blender::eevee::Instance::film, blender::eevee::RayTraceData::full_resolution, blender::eevee::RayTraceData::full_resolution_inv, 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 46 of file eevee_raytrace.cc.
References blender::eevee::HiZBuffer::back, blender::eevee::RayTraceData::closure_index, GPUSamplerState::default_sampler(), blender::eevee::RenderBuffers::depth_tx, 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::pipelines, blender::eevee::Instance::planar_probes, 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, RBUFS_UTILITY_TEX_SLOT, blender::eevee::HiZBuffer::ref_tx_, blender::eevee::Instance::render_buffers, blender::eevee::RayTraceData::resolution_scale, blender::eevee::Instance::sampling, blender::eevee::Instance::shaders, blender::eevee::RayTraceData::skip_denoise, blender::eevee::Instance::sphere_probes, blender::eevee::ShaderModule::static_shader_get(), blender::eevee::RayTraceData::trace_refraction, blender::eevee::Instance::uniform_data, blender::eevee::PipelineModule::utility_tx, and blender::eevee::Instance::volume_probes.
Referenced by blender::eevee::Instance::begin_sync().