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

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

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 234 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 338 of file eevee_raytrace.cc.

◆ debug_pass_sync()

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

Definition at line 336 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 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().

◆ sync()

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


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