Blender
V3.3
|
Go to the source code of this file.
Functions | |
void | workbench_opaque_engine_init (WORKBENCH_Data *data) |
void | workbench_opaque_cache_init (WORKBENCH_Data *vedata) |
Opaque Pipeline:
Use deferred shading to render opaque surfaces. This decouple the shading cost from scene complexity.
The rendering is broken down in two passes:
Definition in file workbench_opaque.c.
void workbench_opaque_cache_init | ( | WORKBENCH_Data * | vedata | ) |
Definition at line 45 of file workbench_opaque.c.
References BKE_studiolight_ensure_flag(), BLI_ghash_ptr_new(), WORKBENCH_PrivateData::clip_state, WORKBENCH_Prepass::common_shgrp, WORKBENCH_PassList::composite_ps, WORKBENCH_PrivateData::cull_state, data, DefaultTextureList::depth_in_front, DRW_PASS_CREATE, DRW_shgroup_call_procedural_triangles(), DRW_shgroup_create(), DRW_shgroup_create_sub(), DRW_shgroup_state_disable(), DRW_shgroup_state_enable(), DRW_shgroup_stencil_mask(), DRW_shgroup_uniform_block, DRW_shgroup_uniform_bool_copy(), DRW_shgroup_uniform_int_copy(), DRW_shgroup_uniform_texture(), DRW_shgroup_uniform_texture_ref(), DRW_STATE_DEPTH_ALWAYS, DRW_STATE_DEPTH_GREATER, DRW_STATE_DEPTH_LESS_EQUAL, DRW_STATE_STENCIL_ALWAYS, DRW_STATE_STENCIL_EQUAL, DRW_STATE_STENCIL_NEQUAL, DRW_STATE_WRITE_COLOR, DRW_STATE_WRITE_DEPTH, DRW_STATE_WRITE_STENCIL, DRW_viewport_texture_list_get(), StudioLightImage::gputexture, WORKBENCH_Prepass::image_shgrp, WORKBENCH_Prepass::image_tiled_shgrp, View3DShading::light, StudioLight::matcap_diffuse, StudioLight::matcap_specular, WORKBENCH_PrivateData::material_buffer_tx, WORKBENCH_Prepass::material_hash, WORKBENCH_PrivateData::material_ubo_curr, WORKBENCH_PassList::merge_infront_ps, WORKBENCH_PrivateData::normal_buffer_tx, NULL, WORKBENCH_PassList::opaque_infront_ps, WORKBENCH_PassList::opaque_ps, WORKBENCH_PrivateData::prepass, WORKBENCH_Data::psl, sh, WORKBENCH_PrivateData::shading, SHADOW_ENABLED, state, WORKBENCH_Data::stl, WORKBENCH_PrivateData::studio_light, STUDIOLIGHT_MATCAP_DIFFUSE_GPUTEXTURE, STUDIOLIGHT_MATCAP_SPECULAR_GPUTEXTURE, STUDIOLIGHT_TYPE_MATCAP_ENABLED, V3D_LIGHTING_MATCAP, WORKBENCH_Prepass::vcol_shgrp, WORKBENCH_DATATYPE_MAX, workbench_is_specular_highlight_enabled(), workbench_shader_composite_get(), workbench_shader_merge_infront_get(), workbench_shader_opaque_get(), workbench_shader_opaque_image_get(), WORKBENCH_PrivateData::world_ubo, and WORKBENCH_StorageList::wpd.
Referenced by workbench_cache_init().
void workbench_opaque_engine_init | ( | WORKBENCH_Data * | data | ) |
Definition at line 22 of file workbench_opaque.c.
References data, DRW_texture_pool_query_fullscreen(), DRW_viewport_texture_list_get(), GPU_RG16F, GPU_RGBA16F, WORKBENCH_PrivateData::material_buffer_tx, WORKBENCH_PrivateData::normal_buffer_tx, NORMAL_ENCODING_ENABLED, and WORKBENCH_FramebufferList::opaque_fb.
Referenced by workbench_engine_init().