Blender V4.3
blender::eevee::DeferredLayerBase Struct Reference

#include <eevee_pipeline.hh>

Inherited by blender::eevee::DeferredLayer [private], and blender::eevee::PlanarProbePipeline [private].

Public Types

enum class  StencilBits : uint8_t {
  CLOSURE_COUNT_0 = (1u << 0u) , CLOSURE_COUNT_1 = (1u << 1u) , TRANSMISSION = (1u << 2u) , HEADER_BITS = CLOSURE_COUNT_0 | CLOSURE_COUNT_1 | TRANSMISSION ,
  THICKNESS_FROM_SHADOW = (1u << 3u) , MATERIAL_BITS = THICKNESS_FROM_SHADOW
}
 

Public Member Functions

int closure_layer_count () const
 
int normal_layer_count () const
 
Deferred Layer
void gbuffer_pass_sync (Instance &inst)
 

Public Attributes

PassMain prepass_ps_ = {"Prepass"}
 
PassMain::Subprepass_single_sided_static_ps_ = nullptr
 
PassMain::Subprepass_single_sided_moving_ps_ = nullptr
 
PassMain::Subprepass_double_sided_static_ps_ = nullptr
 
PassMain::Subprepass_double_sided_moving_ps_ = nullptr
 
PassMain gbuffer_ps_ = {"Shading"}
 
PassMain::Subgbuffer_single_sided_hybrid_ps_ = nullptr
 
PassMain::Subgbuffer_double_sided_hybrid_ps_ = nullptr
 
PassMain::Subgbuffer_single_sided_ps_ = nullptr
 
PassMain::Subgbuffer_double_sided_ps_ = nullptr
 
eClosureBits closure_bits_ = CLOSURE_NONE
 
int closure_count_ = 0
 

Detailed Description

Definition at line 178 of file eevee_pipeline.hh.

Member Enumeration Documentation

◆ StencilBits

Enumerator
CLOSURE_COUNT_0 
CLOSURE_COUNT_1 
TRANSMISSION 
HEADER_BITS 

Bits set by the StencilClassify pass. Set per pixel from gbuffer header data.

THICKNESS_FROM_SHADOW 
MATERIAL_BITS 

Bits set by the material gbuffer pass. Set per materials.

Definition at line 199 of file eevee_pipeline.hh.

Member Function Documentation

◆ closure_layer_count()

◆ gbuffer_pass_sync()

void blender::eevee::DeferredLayerBase::gbuffer_pass_sync ( Instance & inst)

Definition at line 471 of file eevee_pipeline.cc.

References blender::draw::detail::PassBase< DrawCommandBufType >::bind_image(), blender::draw::detail::PassBase< DrawCommandBufType >::bind_resources(), blender::draw::detail::PassBase< DrawCommandBufType >::bind_texture(), closure_bits_, closure_count_, blender::eevee::GBuffer::closure_img_tx, blender::eevee::CLOSURE_NONE, blender::eevee::Instance::cryptomatte, blender::eevee::RenderBuffers::cryptomatte_tx, DRW_STATE_CULL_BACK, DRW_STATE_DEPTH_EQUAL, DRW_STATE_STENCIL_ALWAYS, DRW_STATE_WRITE_COLOR, DRW_STATE_WRITE_STENCIL, blender::eevee::HiZBuffer::front, GBUF_CLOSURE_SLOT, GBUF_NORMAL_SLOT, blender::eevee::Instance::gbuffer, gbuffer_double_sided_hybrid_ps_, gbuffer_double_sided_ps_, gbuffer_ps_, gbuffer_single_sided_hybrid_ps_, gbuffer_single_sided_ps_, GPU_ATTACHMENT_WRITE, blender::eevee::Instance::hiz_buffer, blender::draw::detail::Pass< DrawCommandBufType >::init(), blender::eevee::Instance::lights, blender::eevee::GBuffer::normal_img_tx, blender::eevee::Instance::pipelines, RBUFS_COLOR_SLOT, RBUFS_CRYPTOMATTE_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, blender::eevee::Instance::shadows, blender::eevee::Instance::sphere_probes, state, blender::draw::detail::PassBase< DrawCommandBufType >::state_set(), 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::DeferredLayer::begin_sync(), blender::eevee::DeferredProbePipeline::begin_sync(), and blender::eevee::PlanarProbePipeline::begin_sync().

◆ normal_layer_count()

Member Data Documentation

◆ closure_bits_

◆ closure_count_

◆ gbuffer_double_sided_hybrid_ps_

PassMain::Sub* blender::eevee::DeferredLayerBase::gbuffer_double_sided_hybrid_ps_ = nullptr

◆ gbuffer_double_sided_ps_

◆ gbuffer_ps_

◆ gbuffer_single_sided_hybrid_ps_

PassMain::Sub* blender::eevee::DeferredLayerBase::gbuffer_single_sided_hybrid_ps_ = nullptr

◆ gbuffer_single_sided_ps_

◆ prepass_double_sided_moving_ps_

PassMain::Sub* blender::eevee::DeferredLayerBase::prepass_double_sided_moving_ps_ = nullptr

◆ prepass_double_sided_static_ps_

◆ prepass_ps_

◆ prepass_single_sided_moving_ps_

PassMain::Sub* blender::eevee::DeferredLayerBase::prepass_single_sided_moving_ps_ = nullptr

◆ prepass_single_sided_static_ps_


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