13 .sampler(3, ImageType::DEPTH_2D,
"depth_tx")
14 .sampler(4, ImageType::FLOAT_2D,
"normal_tx")
15 .sampler(5, ImageType::FLOAT_2D,
"material_tx")
17 .typedef_source(
"workbench_shader_shared.h")
18 .push_constant(Type::BOOL,
"forceShadowing")
19 .fragment_out(0, Type::VEC4,
"fragColor")
20 .fragment_source(
"workbench_composite_frag.glsl")
21 .additional_info(
"draw_fullscreen",
"draw_view");
28 .define(
"WORKBENCH_LIGHTING_MATCAP")
36 .define(
"WORKBENCH_CURVATURE")
37 .sampler(6, ImageType::UINT_2D,
"object_id_tx");
40 .define(
"WORKBENCH_CAVITY")
43 .sampler(7, ImageType::FLOAT_2D,
"jitter_tx")
44 .uniform_buf(5,
"vec4",
"cavity_samples[512]");
47 .define(
"WORKBENCH_SHADOW")
48 .sampler(8, ImageType::UINT_2D,
"stencil_tx");
52#define WORKBENCH_FINAL_VARIATION(name, ...) \
53 GPU_SHADER_CREATE_INFO(name).additional_info(__VA_ARGS__).do_static_compilation(true);
55#define WORKBENCH_RESOLVE_SHADOW_VARIATION(prefix, ...) \
56 WORKBENCH_FINAL_VARIATION(prefix##_shadow, "workbench_resolve_shadow", __VA_ARGS__) \
57 WORKBENCH_FINAL_VARIATION(prefix##_no_shadow, __VA_ARGS__)
59#define WORKBENCH_CURVATURE_VARIATIONS(prefix, ...) \
60 WORKBENCH_RESOLVE_SHADOW_VARIATION( \
61 prefix##_curvature, "workbench_resolve_curvature", __VA_ARGS__) \
62 WORKBENCH_RESOLVE_SHADOW_VARIATION(prefix##_no_curvature, __VA_ARGS__)
64#define WORKBENCH_CAVITY_VARIATIONS(prefix, ...) \
65 WORKBENCH_CURVATURE_VARIATIONS(prefix##_cavity, "workbench_resolve_cavity", __VA_ARGS__) \
66 WORKBENCH_CURVATURE_VARIATIONS(prefix##_no_cavity, __VA_ARGS__)
68#define WORKBENCH_LIGHTING_VARIATIONS(prefix, ...) \
69 WORKBENCH_CAVITY_VARIATIONS( \
70 prefix##_opaque_studio, "workbench_resolve_opaque_studio", __VA_ARGS__) \
71 WORKBENCH_CAVITY_VARIATIONS( \
72 prefix##_opaque_matcap, "workbench_resolve_opaque_matcap", __VA_ARGS__) \
73 WORKBENCH_CAVITY_VARIATIONS(prefix##_opaque_flat, "workbench_resolve_opaque_flat", __VA_ARGS__)
77#undef WORKBENCH_FINAL_VARIATION
78#undef WORKBENCH_CURVATURE_VARIATIONS
79#undef WORKBENCH_CAVITY_VARIATIONS
80#undef WORKBENCH_LIGHTING_VARIATIONS
#define GPU_SHADER_CREATE_INFO(_info)
#define WORKBENCH_LIGHTING_VARIATIONS(prefix,...)