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

#include <eevee_pipeline.hh>

Inherits blender::eevee::DeferredLayerBase.

Public Member Functions

 DeferredLayer (Instance &inst)
 
bool is_empty () const
 
bool has_transmission () const
 
Deferred Layer
void begin_sync ()
 
void end_sync (bool is_first_pass, bool is_last_pass, bool next_layer_has_transmission)
 
PassMain::Subprepass_add (::Material *blender_mat, GPUMaterial *gpumat, bool has_motion)
 
PassMain::Submaterial_add (::Material *blender_mat, GPUMaterial *gpumat)
 
GPUTexture * render (View &main_view, View &render_view, Framebuffer &prepass_fb, Framebuffer &combined_fb, Framebuffer &gbuffer_fb, int2 extent, RayTraceBuffer &rt_buffer, GPUTexture *radiance_behind_tx)
 

Detailed Description

Definition at line 246 of file eevee_pipeline.hh.

Constructor & Destructor Documentation

◆ DeferredLayer()

blender::eevee::DeferredLayer::DeferredLayer ( Instance & inst)
inline

Member Function Documentation

◆ begin_sync()

◆ end_sync()

void blender::eevee::DeferredLayer::end_sync ( bool is_first_pass,
bool is_last_pass,
bool next_layer_has_transmission )

Definition at line 559 of file eevee_pipeline.cc.

References blender::eevee::Film::aovs_info, 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(), SceneEEVEE::clamp_surface_direct, SceneEEVEE::clamp_surface_indirect, blender::eevee::DeferredLayerBase::closure_bits_, blender::eevee::DeferredLayerBase::closure_count_, blender::eevee::CLOSURE_DIFFUSE, blender::eevee::CLOSURE_REFLECTION, blender::eevee::CLOSURE_REFRACTION, blender::eevee::CLOSURE_TRANSLUCENT, blender::eevee::CLOSURE_TRANSMISSION, blender::eevee::RayTraceResult::closures, blender::eevee::RenderBuffers::data, blender::eevee::DEFERRED_COMBINE, blender::eevee::DEFERRED_LIGHT_SINGLE, blender::eevee::DEFERRED_THICKNESS_AMEND, blender::eevee::DEFERRED_TILE_CLASSIFY, blender::eevee::RenderBuffersInfoData::diffuse_color_id, blender::eevee::RenderBuffersInfoData::diffuse_light_id, blender::draw::detail::PassBase< DrawCommandBufType >::draw_procedural(), DRW_STATE_BLEND_ADD_FULL, DRW_STATE_DEPTH_GREATER, DRW_STATE_STENCIL_ALWAYS, DRW_STATE_STENCIL_EQUAL, DRW_STATE_STENCIL_NEQUAL, DRW_STATE_WRITE_COLOR, DRW_STATE_WRITE_STENCIL, Scene::eevee, blender::eevee::Instance::film, SceneEEVEE::flag, blender::eevee::HiZBuffer::front, blender::eevee::Instance::gbuffer, blender::eevee::DeferredLayerBase::gbuffer_ps_, blender::eevee::ShadowModule::get_data(), GPU_ATTACHMENT_IGNORE, GPU_ATTACHMENT_READ, GPU_ATTACHMENT_WRITE, GPU_BARRIER_SHADER_IMAGE_ACCESS, GPU_BARRIER_TEXTURE_FETCH, GPU_PRIM_TRIS, GPU_stencil_clasify_buffer_workaround(), GPU_stencil_export_support(), blender::eevee::GBuffer::header_tx, blender::eevee::Instance::hiz_buffer, blender::draw::detail::Pass< DrawCommandBufType >::init(), blender::eevee::Instance::lights, min_ii(), blender::eevee::RenderBuffersInfoData::normal_id, blender::eevee::GBuffer::normal_tx, blender::eevee::Instance::pipelines, blender::draw::detail::PassBase< DrawCommandBufType >::push_constant(), blender::eevee::ShadowSceneData::ray_count, RBUFS_COLOR_SLOT, RBUFS_UTILITY_TEX_SLOT, RBUFS_VALUE_SLOT, blender::eevee::Instance::render_buffers, blender::eevee::RenderBuffers::rp_color_tx, blender::eevee::RenderBuffers::rp_value_tx, blender::eevee::Instance::sampling, SCE_EEVEE_SSR_ENABLED, blender::eevee::Instance::scene, blender::draw::detail::PassBase< DrawCommandBufType >::shader_set(), blender::eevee::Instance::shaders, blender::eevee::RenderBuffersInfoData::shadow_id, blender::eevee::Instance::shadows, blender::draw::detail::PassBase< DrawCommandBufType >::specialize_constant(), blender::eevee::RenderBuffersInfoData::specular_color_id, blender::eevee::RenderBuffersInfoData::specular_light_id, blender::eevee::Instance::sphere_probes, blender::draw::detail::PassBase< DrawCommandBufType >::state_set(), blender::draw::detail::PassBase< DrawCommandBufType >::state_stencil(), blender::eevee::ShaderModule::static_shader_get(), blender::eevee::ShadowSceneData::step_count, blender::draw::detail::PassBase< DrawCommandBufType >::sub(), blender::draw::detail::PassBase< DrawCommandBufType >::subpass_transition(), blender::eevee::Instance::uniform_data, blender::eevee::PipelineModule::utility_tx, and blender::eevee::Instance::volume_probes.

Referenced by blender::eevee::DeferredPipeline::end_sync().

◆ has_transmission()

bool blender::eevee::DeferredLayer::has_transmission ( ) const
inline

◆ is_empty()

bool blender::eevee::DeferredLayer::is_empty ( ) const
inline

◆ material_add()

◆ prepass_add()

◆ render()

GPUTexture * blender::eevee::DeferredLayer::render ( View & main_view,
View & render_view,
Framebuffer & prepass_fb,
Framebuffer & combined_fb,
Framebuffer & gbuffer_fb,
int2 extent,
RayTraceBuffer & rt_buffer,
GPUTexture * radiance_behind_tx )

Definition at line 796 of file eevee_pipeline.cc.

References blender::draw::TextureFromPool::acquire(), blender::eevee::RayTraceModule::alloc_dummy(), blender::eevee::RayTraceModule::alloc_only(), ARRAY_SIZE, blender::eevee::GBuffer::bind(), blender::eevee::DeferredLayerBase::closure_bits_, blender::eevee::DeferredLayerBase::closure_count_, blender::eevee::RayTraceResult::closures, blender::eevee::RenderBuffers::combined_tx, blender::eevee::DeferredPipeline::debug_draw(), blender::eevee::PipelineModule::deferred, DEFERRED_RADIANCE_FORMAT, blender::eevee::RayTraceBuffer::feedback_ensure(), blender::eevee::Instance::gbuffer, blender::eevee::DeferredLayerBase::gbuffer_ps_, GPU_framebuffer_bind(), GPU_texture_copy(), GPU_TEXTURE_USAGE_SHADER_READ, GPU_TEXTURE_USAGE_SHADER_WRITE, blender::eevee::Instance::hiz_buffer, blender::eevee::Instance::manager, blender::eevee::Instance::pipelines, blender::eevee::DeferredLayerBase::prepass_ps_, blender::eevee::Instance::raytracing, blender::draw::TextureFromPool::release(), blender::eevee::RayTraceResult::release(), blender::eevee::RayTraceModule::render(), blender::eevee::SubsurfaceModule::render(), blender::eevee::Instance::render_buffers, blender::eevee::ShadowModule::set_view(), blender::eevee::SphereProbeModule::set_view(), blender::eevee::VolumeProbeModule::set_view(), blender::eevee::Instance::shadows, blender::eevee::Instance::sphere_probes, blender::draw::Manager::submit(), blender::eevee::Instance::subsurface, blender::eevee::HiZBuffer::swap_layer(), blender::eevee::HiZBuffer::update(), and blender::eevee::Instance::volume_probes.

Referenced by blender::eevee::DeferredPipeline::render().


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