Blender V4.5
blender::eevee::RayTraceModule Class Reference

#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)
 

Detailed Description

Definition at line 138 of file eevee_raytrace.hh.

Constructor & Destructor Documentation

◆ RayTraceModule()

blender::eevee::RayTraceModule::RayTraceModule ( Instance & inst,
RayTraceData & data )
inline

Definition at line 236 of file eevee_raytrace.hh.

Member Function Documentation

◆ alloc_dummy()

◆ alloc_only()

◆ debug_draw()

void blender::eevee::RayTraceModule::debug_draw ( View & view,
GPUFrameBuffer * view_fb )

Definition at line 391 of file eevee_raytrace.cc.

◆ debug_pass_sync()

void blender::eevee::RayTraceModule::debug_pass_sync ( )

Definition at line 389 of file eevee_raytrace.cc.

◆ init()

◆ render()

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.

  • rt_buffer is the layer's permanent storage.
  • screen_radiance_back_tx is the texture used for screen space transmission rays.
  • screen_radiance_front_tx is the texture used for screen space reflection rays.
  • screen_radiance_persmat is the view projection matrix used for screen_radiance_front_tx.
  • active_closures is a mask of all active closures in a deferred layer.
  • main_view is the un-jittered view.
  • render_view is the TAA jittered view.
  • force_no_tracing will run the pipeline without any tracing, relying only on local probes.

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().

◆ sync()

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().

◆ use_fast_gi()

bool blender::eevee::RayTraceModule::use_fast_gi ( ) const
inline

◆ use_raytracing()

bool blender::eevee::RayTraceModule::use_raytracing ( ) const
inline

The documentation for this class was generated from the following files: