Blender V5.0
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, gpu::Texture *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, gpu::FrameBuffer *view_fb)

Detailed Description

Definition at line 143 of file eevee_raytrace.hh.

Constructor & Destructor Documentation

◆ RayTraceModule()

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

Definition at line 241 of file eevee_raytrace.hh.

References data.

Member Function Documentation

◆ alloc_dummy()

RayTraceResult blender::eevee::RayTraceModule::alloc_dummy ( RayTraceBuffer & rt_buffer)

◆ alloc_only()

◆ debug_draw()

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

Definition at line 400 of file eevee_raytrace.cc.

◆ debug_pass_sync()

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

Definition at line 398 of file eevee_raytrace.cc.

◆ init()

◆ render()

RayTraceResult blender::eevee::RayTraceModule::render ( RayTraceBuffer & rt_buffer,
gpu::Texture * 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 402 of file eevee_raytrace.cc.

References BLI_assert, ceil_to_multiple_u(), blender::eevee::CLOSURE_NONE, blender::math::divide_ceil(), GPU_debug_group_begin(), GPU_debug_group_end(), GPU_TEXTURE_USAGE_SHADER_READ, GPU_TEXTURE_USAGE_SHADER_WRITE, blender::eevee::RayTraceBuffer::history_persmat, i, blender::draw::Texture::is_valid(), max_ii(), options, blender::draw::View::persmat(), power_of_2_max_i(), blender::eevee::RayTraceBuffer::radiance_feedback_tx, RAYTRACE_GROUP_SIZE, result, and blender::eevee::SAMPLING_RAYTRACE_V.

◆ sync()

void blender::eevee::RayTraceModule::sync ( )

◆ use_fast_gi()

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

Definition at line 288 of file eevee_raytrace.hh.

References use_raytracing().

◆ use_raytracing()

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

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