Changeset View
Changeset View
Standalone View
Standalone View
source/blender/draw/engines/workbench/workbench_effect_cavity.c
| Show First 20 Lines • Show All 159 Lines • ▼ Show 20 Lines | if (CAVITY_ENABLED(wpd)) { | ||||
| int state = DRW_STATE_WRITE_COLOR | DRW_STATE_BLEND_MUL; | int state = DRW_STATE_WRITE_COLOR | DRW_STATE_BLEND_MUL; | ||||
| DRW_PASS_CREATE(psl->cavity_ps, state); | DRW_PASS_CREATE(psl->cavity_ps, state); | ||||
| sh = workbench_shader_cavity_get(SSAO_ENABLED(wpd), CURVATURE_ENABLED(wpd)); | sh = workbench_shader_cavity_get(SSAO_ENABLED(wpd), CURVATURE_ENABLED(wpd)); | ||||
| grp = DRW_shgroup_create(sh, psl->cavity_ps); | grp = DRW_shgroup_create(sh, psl->cavity_ps); | ||||
| DRW_shgroup_uniform_texture(grp, "normalBuffer", wpd->normal_buffer_tx); | DRW_shgroup_uniform_texture(grp, "normalBuffer", wpd->normal_buffer_tx); | ||||
| DRW_shgroup_uniform_block(grp, "samples_block", wpd->vldata->cavity_sample_ubo); | DRW_shgroup_uniform_block(grp, "samples_block", wpd->vldata->cavity_sample_ubo); | ||||
| DRW_shgroup_uniform_block(grp, "world_block", wpd->world_ubo); | DRW_shgroup_uniform_block(grp, "world_data", wpd->world_ubo); | ||||
| if (SSAO_ENABLED(wpd)) { | if (SSAO_ENABLED(wpd)) { | ||||
| DRW_shgroup_uniform_texture(grp, "depthBuffer", dtxl->depth); | DRW_shgroup_uniform_texture(grp, "depthBuffer", dtxl->depth); | ||||
| DRW_shgroup_uniform_texture(grp, "cavityJitter", wpd->vldata->cavity_jitter_tx); | DRW_shgroup_uniform_texture(grp, "cavityJitter", wpd->vldata->cavity_jitter_tx); | ||||
| } | } | ||||
| if (CURVATURE_ENABLED(wpd)) { | if (CURVATURE_ENABLED(wpd)) { | ||||
| DRW_shgroup_uniform_texture(grp, "objectIdBuffer", wpd->object_id_tx); | DRW_shgroup_uniform_texture(grp, "objectIdBuffer", wpd->object_id_tx); | ||||
| } | } | ||||
| DRW_shgroup_call_procedural_triangles(grp, NULL, 1); | DRW_shgroup_call_procedural_triangles(grp, NULL, 1); | ||||
| } | } | ||||
| else { | else { | ||||
| psl->cavity_ps = NULL; | psl->cavity_ps = NULL; | ||||
| } | } | ||||
| } | } | ||||