|
Blender V5.0
|
#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::Sub * | prepass_add (::Material *blender_mat, GPUMaterial *gpumat, bool has_motion) |
| PassMain::Sub * | material_add (::Material *blender_mat, GPUMaterial *gpumat) |
| gpu::Texture * | render (View &main_view, View &render_view, Framebuffer &prepass_fb, Framebuffer &combined_fb, Framebuffer &gbuffer_fb, int2 extent, RayTraceBuffer &rt_buffer, gpu::Texture *radiance_behind_tx) |
| static bool | do_merge_direct_indirect_eval (const Instance &inst) |
| static bool | do_split_direct_indirect_radiance (const Instance &inst) |
Definition at line 259 of file eevee_pipeline.hh.
|
inline |
Definition at line 309 of file eevee_pipeline.hh.
References data, GPU_TEXTURE_USAGE_SHADER_READ, and GPU_TEXTURE_USAGE_SHADER_WRITE.
| void blender::eevee::DeferredLayer::begin_sync | ( | ) |
Definition at line 527 of file eevee_pipeline.cc.
References DRW_STATE_CLIP_CONTROL_UNIT_RANGE, DRW_STATE_CULL_BACK, DRW_STATE_STENCIL_ALWAYS, DRW_STATE_WRITE_COLOR, DRW_STATE_WRITE_DEPTH, DRW_STATE_WRITE_STENCIL, blender::eevee::DeferredLayerBase::gbuffer_pass_sync(), blender::eevee::DeferredLayerBase::prepass_double_sided_moving_ps_, blender::eevee::DeferredLayerBase::prepass_double_sided_static_ps_, blender::eevee::DeferredLayerBase::prepass_ps_, blender::eevee::DeferredLayerBase::prepass_single_sided_moving_ps_, blender::eevee::DeferredLayerBase::prepass_single_sided_static_ps_, and RBUFS_UTILITY_TEX_SLOT.
|
static |
Definition at line 569 of file eevee_pipeline.cc.
References blender::eevee::Instance::raytracing, and blender::eevee::RayTraceModule::use_raytracing().
Referenced by do_split_direct_indirect_radiance(), end_sync(), and blender::eevee::Instance::init().
|
static |
Definition at line 574 of file eevee_pipeline.cc.
References do_merge_direct_indirect_eval(), blender::eevee::Instance::sampling, blender::eevee::Sampling::use_clamp_direct(), and blender::eevee::Sampling::use_clamp_indirect().
Referenced by end_sync(), and blender::eevee::Instance::init().
| void blender::eevee::DeferredLayer::end_sync | ( | bool | is_first_pass, |
| bool | is_last_pass, | ||
| bool | next_layer_has_transmission ) |
Definition at line 580 of file eevee_pipeline.cc.
References 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(), 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::DEFERRED_AOV_CLEAR, 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, do_merge_direct_indirect_eval(), do_split_direct_indirect_radiance(), 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, blender::eevee::DeferredLayerBase::gbuffer_ps_, 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(), i, blender::draw::detail::Pass< DrawCommandBufType >::init(), min_ii(), blender::eevee::RenderBuffersInfoData::normal_id, blender::eevee::RenderBuffersInfoData::position_id, blender::eevee::DeferredLayerBase::prepass_ps_, blender::draw::detail::PassBase< DrawCommandBufType >::push_constant(), blender::eevee::ShadowSceneData::ray_count, RBUFS_COLOR_SLOT, RBUFS_UTILITY_TEX_SLOT, RBUFS_VALUE_SLOT, blender::draw::detail::PassBase< DrawCommandBufType >::shader_set(), blender::eevee::RenderBuffersInfoData::shadow_id, blender::draw::detail::PassBase< DrawCommandBufType >::specialize_constant(), blender::eevee::RenderBuffersInfoData::specular_color_id, blender::eevee::RenderBuffersInfoData::specular_light_id, blender::draw::detail::PassBase< DrawCommandBufType >::state_set(), blender::draw::detail::PassBase< DrawCommandBufType >::state_stencil(), blender::eevee::ShadowSceneData::step_count, blender::draw::detail::PassBase< DrawCommandBufType >::sub(), and blender::draw::detail::PassBase< DrawCommandBufType >::subpass_transition().
|
inline |
Definition at line 329 of file eevee_pipeline.hh.
References blender::eevee::DeferredLayerBase::closure_bits_, and blender::eevee::CLOSURE_TRANSMISSION.
|
inline |
Definition at line 324 of file eevee_pipeline.hh.
References blender::eevee::DeferredLayerBase::closure_count_.
| PassMain::Sub * blender::eevee::DeferredLayer::material_add | ( | ::Material * | blender_mat, |
| GPUMaterial * | gpumat ) |
Definition at line 803 of file eevee_pipeline.cc.
References Material::blend_flag, blender::eevee::DeferredLayerBase::closure_bits_, blender::eevee::DeferredLayerBase::closure_count_, blender::eevee::CLOSURE_EMISSION, blender::eevee::CLOSURE_SHADER_TO_RGBA, count_bits_i(), blender::eevee::DeferredLayerBase::gbuffer_double_sided_hybrid_ps_, blender::eevee::DeferredLayerBase::gbuffer_double_sided_ps_, blender::eevee::DeferredLayerBase::gbuffer_single_sided_hybrid_ps_, blender::eevee::DeferredLayerBase::gbuffer_single_sided_ps_, GPU_material_get_name(), MA_BL_CULL_BACKFACE, MA_BL_THICKNESS_FROM_SHADOW, max_ii(), blender::eevee::shader_closure_bits_from_flag(), blender::draw::detail::PassBase< DrawCommandBufType >::state_stencil(), and blender::draw::detail::PassBase< DrawCommandBufType >::sub().
| PassMain::Sub * blender::eevee::DeferredLayer::prepass_add | ( | ::Material * | blender_mat, |
| GPUMaterial * | gpumat, | ||
| bool | has_motion ) |
Definition at line 790 of file eevee_pipeline.cc.
References Material::blend_flag, GPU_material_get_name(), MA_BL_CULL_BACKFACE, blender::eevee::DeferredLayerBase::prepass_double_sided_moving_ps_, blender::eevee::DeferredLayerBase::prepass_double_sided_static_ps_, blender::eevee::DeferredLayerBase::prepass_single_sided_moving_ps_, blender::eevee::DeferredLayerBase::prepass_single_sided_static_ps_, and blender::draw::detail::PassBase< DrawCommandBufType >::sub().
| gpu::Texture * blender::eevee::DeferredLayer::render | ( | View & | main_view, |
| View & | render_view, | ||
| Framebuffer & | prepass_fb, | ||
| Framebuffer & | combined_fb, | ||
| Framebuffer & | gbuffer_fb, | ||
| int2 | extent, | ||
| RayTraceBuffer & | rt_buffer, | ||
| gpu::Texture * | radiance_behind_tx ) |
Definition at line 838 of file eevee_pipeline.cc.
References ARRAY_SIZE, blender::eevee::DeferredLayerBase::closure_bits_, blender::eevee::DeferredLayerBase::closure_count_, blender::eevee::RenderBuffers::combined_tx, blender::eevee::RayTraceBuffer::feedback_ensure(), blender::eevee::DeferredLayerBase::gbuffer_ps_, GPU_framebuffer_bind(), GPU_texture_copy(), GPU_TEXTURE_USAGE_SHADER_READ, GPU_TEXTURE_USAGE_SHADER_WRITE, i, and blender::eevee::DeferredLayerBase::prepass_ps_.