|
Blender V4.3
|
#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::Sub * | prepass_single_sided_static_ps_ = nullptr |
| PassMain::Sub * | prepass_single_sided_moving_ps_ = nullptr |
| PassMain::Sub * | prepass_double_sided_static_ps_ = nullptr |
| PassMain::Sub * | prepass_double_sided_moving_ps_ = nullptr |
| PassMain | gbuffer_ps_ = {"Shading"} |
| PassMain::Sub * | gbuffer_single_sided_hybrid_ps_ = nullptr |
| PassMain::Sub * | gbuffer_double_sided_hybrid_ps_ = nullptr |
| PassMain::Sub * | gbuffer_single_sided_ps_ = nullptr |
| PassMain::Sub * | gbuffer_double_sided_ps_ = nullptr |
| eClosureBits | closure_bits_ = CLOSURE_NONE |
| int | closure_count_ = 0 |
Definition at line 178 of file eevee_pipeline.hh.
|
strong |
| 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.
|
inline |
Definition at line 215 of file eevee_pipeline.hh.
References closure_bits_, blender::eevee::CLOSURE_CLEARCOAT, blender::eevee::CLOSURE_DIFFUSE, blender::eevee::CLOSURE_REFLECTION, blender::eevee::CLOSURE_REFRACTION, blender::eevee::CLOSURE_SSS, blender::eevee::CLOSURE_TRANSLUCENT, count, and count_bits_i().
Referenced by blender::eevee::DeferredProbePipeline::closure_layer_count().
| 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().
|
inline |
Definition at line 228 of file eevee_pipeline.hh.
References closure_bits_, blender::eevee::CLOSURE_CLEARCOAT, blender::eevee::CLOSURE_DIFFUSE, blender::eevee::CLOSURE_REFLECTION, blender::eevee::CLOSURE_REFRACTION, blender::eevee::CLOSURE_SSS, blender::eevee::CLOSURE_TRANSLUCENT, count, and count_bits_i().
Referenced by blender::eevee::DeferredProbePipeline::normal_layer_count().
| eClosureBits blender::eevee::DeferredLayerBase::closure_bits_ = CLOSURE_NONE |
Definition at line 194 of file eevee_pipeline.hh.
Referenced by blender::eevee::PlanarProbePipeline::begin_sync(), closure_layer_count(), blender::eevee::DeferredLayer::end_sync(), gbuffer_pass_sync(), blender::eevee::DeferredLayer::has_transmission(), blender::eevee::DeferredLayer::material_add(), blender::eevee::DeferredProbePipeline::material_add(), blender::eevee::PlanarProbePipeline::material_add(), normal_layer_count(), and blender::eevee::DeferredLayer::render().
| int blender::eevee::DeferredLayerBase::closure_count_ = 0 |
Definition at line 196 of file eevee_pipeline.hh.
Referenced by blender::eevee::PlanarProbePipeline::begin_sync(), blender::eevee::DeferredLayer::end_sync(), gbuffer_pass_sync(), blender::eevee::DeferredLayer::is_empty(), blender::eevee::DeferredLayer::material_add(), blender::eevee::DeferredProbePipeline::material_add(), blender::eevee::PlanarProbePipeline::material_add(), and blender::eevee::DeferredLayer::render().
| PassMain::Sub* blender::eevee::DeferredLayerBase::gbuffer_double_sided_hybrid_ps_ = nullptr |
Definition at line 189 of file eevee_pipeline.hh.
Referenced by gbuffer_pass_sync(), blender::eevee::DeferredLayer::material_add(), blender::eevee::DeferredProbePipeline::material_add(), and blender::eevee::PlanarProbePipeline::material_add().
| PassMain::Sub* blender::eevee::DeferredLayerBase::gbuffer_double_sided_ps_ = nullptr |
Definition at line 191 of file eevee_pipeline.hh.
Referenced by gbuffer_pass_sync(), blender::eevee::DeferredLayer::material_add(), blender::eevee::DeferredProbePipeline::material_add(), and blender::eevee::PlanarProbePipeline::material_add().
| PassMain blender::eevee::DeferredLayerBase::gbuffer_ps_ = {"Shading"} |
Definition at line 185 of file eevee_pipeline.hh.
Referenced by blender::eevee::DeferredLayer::end_sync(), gbuffer_pass_sync(), blender::eevee::DeferredLayer::render(), blender::eevee::DeferredProbePipeline::render(), and blender::eevee::PlanarProbePipeline::render().
| PassMain::Sub* blender::eevee::DeferredLayerBase::gbuffer_single_sided_hybrid_ps_ = nullptr |
Definition at line 188 of file eevee_pipeline.hh.
Referenced by gbuffer_pass_sync(), blender::eevee::DeferredLayer::material_add(), blender::eevee::DeferredProbePipeline::material_add(), and blender::eevee::PlanarProbePipeline::material_add().
| PassMain::Sub* blender::eevee::DeferredLayerBase::gbuffer_single_sided_ps_ = nullptr |
Definition at line 190 of file eevee_pipeline.hh.
Referenced by gbuffer_pass_sync(), blender::eevee::DeferredLayer::material_add(), blender::eevee::DeferredProbePipeline::material_add(), and blender::eevee::PlanarProbePipeline::material_add().
| PassMain::Sub* blender::eevee::DeferredLayerBase::prepass_double_sided_moving_ps_ = nullptr |
Definition at line 183 of file eevee_pipeline.hh.
Referenced by blender::eevee::DeferredLayer::begin_sync(), and blender::eevee::DeferredLayer::prepass_add().
| PassMain::Sub* blender::eevee::DeferredLayerBase::prepass_double_sided_static_ps_ = nullptr |
Definition at line 182 of file eevee_pipeline.hh.
Referenced by blender::eevee::DeferredLayer::begin_sync(), blender::eevee::DeferredProbePipeline::begin_sync(), blender::eevee::PlanarProbePipeline::begin_sync(), blender::eevee::DeferredLayer::prepass_add(), blender::eevee::DeferredProbePipeline::prepass_add(), and blender::eevee::PlanarProbePipeline::prepass_add().
| PassMain blender::eevee::DeferredLayerBase::prepass_ps_ = {"Prepass"} |
Definition at line 179 of file eevee_pipeline.hh.
Referenced by blender::eevee::DeferredLayer::begin_sync(), blender::eevee::DeferredProbePipeline::begin_sync(), blender::eevee::PlanarProbePipeline::begin_sync(), blender::eevee::DeferredLayer::render(), blender::eevee::DeferredProbePipeline::render(), and blender::eevee::PlanarProbePipeline::render().
| PassMain::Sub* blender::eevee::DeferredLayerBase::prepass_single_sided_moving_ps_ = nullptr |
Definition at line 181 of file eevee_pipeline.hh.
Referenced by blender::eevee::DeferredLayer::begin_sync(), and blender::eevee::DeferredLayer::prepass_add().
| PassMain::Sub* blender::eevee::DeferredLayerBase::prepass_single_sided_static_ps_ = nullptr |
Definition at line 180 of file eevee_pipeline.hh.
Referenced by blender::eevee::DeferredLayer::begin_sync(), blender::eevee::DeferredProbePipeline::begin_sync(), blender::eevee::PlanarProbePipeline::begin_sync(), blender::eevee::DeferredLayer::prepass_add(), blender::eevee::DeferredProbePipeline::prepass_add(), and blender::eevee::PlanarProbePipeline::prepass_add().