123456789101112131415161718192021222324252627282930313233 |
- #version 450
-
- layout (input_attachment_index = 0, binding = 0) uniform subpassInput inputColor;
- layout (input_attachment_index = 1, binding = 1) uniform subpassInput inputDepth;
-
- layout (binding = 2) uniform UBO {
- vec2 brightnessContrast;
- vec2 range;
- int attachmentIndex;
- } ubo;
-
- layout (location = 0) out vec4 outColor;
-
- vec3 brightnessContrast(vec3 color, float brightness, float contrast) {
- return (color - 0.5) * contrast + 0.5 + brightness;
- }
-
- void main()
- {
- // Apply brightness and contrast filer to color input
- if (ubo.attachmentIndex == 0) {
- // Read color from previous color input attachment
- vec3 color = subpassLoad(inputColor).rgb;
- outColor.rgb = brightnessContrast(color, ubo.brightnessContrast[0], ubo.brightnessContrast[1]);
- }
-
- // Visualize depth input range
- if (ubo.attachmentIndex == 1) {
- // Read depth from previous depth input attachment
- float depth = subpassLoad(inputDepth).r;
- outColor.rgb = vec3((depth - ubo.range[0]) * 1.0 / (ubo.range[1] - ubo.range[0]));
- }
- }
|