Blender V5.0
compositor_glare_infos.hh
Go to the documentation of this file.
1/* SPDX-FileCopyrightText: 2023 Blender Authors
2 *
3 * SPDX-License-Identifier: GPL-2.0-or-later */
4
6
7/* -------
8 * Common.
9 * ------- */
10
11GPU_SHADER_CREATE_INFO(compositor_glare_highlights)
12LOCAL_GROUP_SIZE(16, 16)
13PUSH_CONSTANT(float, threshold)
14PUSH_CONSTANT(float, highlights_smoothness)
15PUSH_CONSTANT(float, max_brightness)
16PUSH_CONSTANT(int, quality)
17SAMPLER(0, sampler2D, input_tx)
18IMAGE(0, SFLOAT_16_16_16_16, write, image2D, output_img)
19COMPUTE_SOURCE("compositor_glare_highlights.glsl")
22
23GPU_SHADER_CREATE_INFO(compositor_glare_mix)
24LOCAL_GROUP_SIZE(16, 16)
25PUSH_CONSTANT(float, saturation)
27SAMPLER(0, sampler2D, input_tx)
28SAMPLER(1, sampler2D, glare_tx)
29IMAGE(0, SFLOAT_16_16_16_16, write, image2D, output_img)
30COMPUTE_SOURCE("compositor_glare_mix.glsl")
33
34GPU_SHADER_CREATE_INFO(compositor_glare_write_glare_output)
35LOCAL_GROUP_SIZE(16, 16)
36PUSH_CONSTANT(float, saturation)
38SAMPLER(0, sampler2D, input_tx)
39IMAGE(0, SFLOAT_16_16_16_16, write, image2D, output_img)
40COMPUTE_SOURCE("compositor_glare_write_glare_output.glsl")
43
44GPU_SHADER_CREATE_INFO(compositor_glare_write_highlights_output)
45LOCAL_GROUP_SIZE(16, 16)
46SAMPLER(0, sampler2D, input_tx)
47IMAGE(0, SFLOAT_16_16_16_16, write, image2D, output_img)
48COMPUTE_SOURCE("compositor_glare_write_highlights_output.glsl")
51
52/* ------------
53 * Ghost Glare.
54 * ------------ */
55
56GPU_SHADER_CREATE_INFO(compositor_glare_ghost_base)
57LOCAL_GROUP_SIZE(16, 16)
58SAMPLER(0, sampler2D, small_ghost_tx)
59SAMPLER(1, sampler2D, big_ghost_tx)
60IMAGE(0, SFLOAT_16_16_16_16, write, image2D, combined_ghost_img)
61COMPUTE_SOURCE("compositor_glare_ghost_base.glsl")
64
65GPU_SHADER_CREATE_INFO(compositor_glare_ghost_accumulate)
66LOCAL_GROUP_SIZE(16, 16)
67PUSH_CONSTANT(float4, scales)
68PUSH_CONSTANT_ARRAY(float4, color_modulators, 4)
69SAMPLER(0, sampler2D, input_ghost_tx)
70IMAGE(0, SFLOAT_16_16_16_16, read_write, image2D, accumulated_ghost_img)
71COMPUTE_SOURCE("compositor_glare_ghost_accumulate.glsl")
74
75/* -----------
76 * Simple Star
77 * ----------- */
78
79GPU_SHADER_CREATE_INFO(compositor_glare_simple_star_horizontal_pass)
81PUSH_CONSTANT(int, iterations)
82PUSH_CONSTANT(float, fade_factor)
83IMAGE(0, SFLOAT_16_16_16_16, read_write, image2D, horizontal_img)
84COMPUTE_SOURCE("compositor_glare_simple_star_horizontal_pass.glsl")
87
88GPU_SHADER_CREATE_INFO(compositor_glare_simple_star_vertical_pass)
90PUSH_CONSTANT(int, iterations)
91PUSH_CONSTANT(float, fade_factor)
92SAMPLER(0, sampler2D, horizontal_tx)
93IMAGE(0, SFLOAT_16_16_16_16, read_write, image2D, vertical_img)
94COMPUTE_SOURCE("compositor_glare_simple_star_vertical_pass.glsl")
97
98GPU_SHADER_CREATE_INFO(compositor_glare_simple_star_diagonal_pass)
100PUSH_CONSTANT(int, iterations)
101PUSH_CONSTANT(float, fade_factor)
102IMAGE(0, SFLOAT_16_16_16_16, read_write, image2D, diagonal_img)
103COMPUTE_SOURCE("compositor_glare_simple_star_diagonal_pass.glsl")
106
107GPU_SHADER_CREATE_INFO(compositor_glare_simple_star_anti_diagonal_pass)
109PUSH_CONSTANT(int, iterations)
110PUSH_CONSTANT(float, fade_factor)
111SAMPLER(0, sampler2D, diagonal_tx)
112IMAGE(0, SFLOAT_16_16_16_16, read_write, image2D, anti_diagonal_img)
113COMPUTE_SOURCE("compositor_glare_simple_star_anti_diagonal_pass.glsl")
116
117/* -------
118 * Streaks
119 * ------- */
120
121GPU_SHADER_CREATE_INFO(compositor_glare_streaks_filter)
122LOCAL_GROUP_SIZE(16, 16)
123PUSH_CONSTANT(float, color_modulator)
124PUSH_CONSTANT(float3, fade_factors)
125PUSH_CONSTANT(float2, streak_vector)
126SAMPLER(0, sampler2D, input_streak_tx)
127IMAGE(0, SFLOAT_16_16_16_16, write, image2D, output_streak_img)
128COMPUTE_SOURCE("compositor_glare_streaks_filter.glsl")
131
132GPU_SHADER_CREATE_INFO(compositor_glare_streaks_accumulate)
133LOCAL_GROUP_SIZE(16, 16)
134PUSH_CONSTANT(float, attenuation_factor)
135SAMPLER(0, sampler2D, streak_tx)
136IMAGE(0, SFLOAT_16_16_16_16, read_write, image2D, accumulated_streaks_img)
137COMPUTE_SOURCE("compositor_glare_streaks_accumulate.glsl")
140
141/* -----
142 * Bloom
143 * ----- */
144
145GPU_SHADER_CREATE_INFO(compositor_glare_bloom_downsample_shared)
146LOCAL_GROUP_SIZE(16, 16)
147SAMPLER(0, sampler2D, input_tx)
148IMAGE(0, SFLOAT_16_16_16_16, write, image2D, output_img)
149COMPUTE_SOURCE("compositor_glare_bloom_downsample.glsl")
151
152GPU_SHADER_CREATE_INFO(compositor_glare_bloom_downsample_simple_average)
153DEFINE("SIMPLE_AVERAGE")
154ADDITIONAL_INFO(compositor_glare_bloom_downsample_shared)
157
158GPU_SHADER_CREATE_INFO(compositor_glare_bloom_downsample_karis_average)
159DEFINE("KARIS_AVERAGE")
160ADDITIONAL_INFO(compositor_glare_bloom_downsample_shared)
163
164GPU_SHADER_CREATE_INFO(compositor_glare_bloom_upsample)
165LOCAL_GROUP_SIZE(16, 16)
166SAMPLER(0, sampler2D, input_tx)
167IMAGE(0, SFLOAT_16_16_16_16, read_write, image2D, output_img)
168COMPUTE_SOURCE("compositor_glare_bloom_upsample.glsl")
171
172/* -----
173 * Sun Beams
174 * ----- */
175
176GPU_SHADER_CREATE_INFO(compositor_glare_sun_beams_shared)
177LOCAL_GROUP_SIZE(16, 16)
178PUSH_CONSTANT(float2, source)
179PUSH_CONSTANT(int, max_steps)
180SAMPLER(0, sampler2D, input_tx)
181IMAGE(0, SFLOAT_16_16_16_16, write, image2D, output_img)
182COMPUTE_SOURCE("compositor_glare_sun_beams.glsl")
184
185GPU_SHADER_CREATE_INFO(compositor_glare_sun_beams)
186ADDITIONAL_INFO(compositor_glare_sun_beams_shared)
189
190GPU_SHADER_CREATE_INFO(compositor_glare_sun_beams_jitter)
191ADDITIONAL_INFO(compositor_glare_sun_beams_shared)
192DEFINE("JITTER")
193PUSH_CONSTANT(float, jitter_factor)
#define GPU_SHADER_CREATE_INFO(_info)
#define GPU_SHADER_CREATE_END()
#define PUSH_CONSTANT_ARRAY(type, name, array_size)
#define SAMPLER(slot, type, name)
#define ADDITIONAL_INFO(info_name)
#define PUSH_CONSTANT(type, name)
#define DEFINE(name)
#define LOCAL_GROUP_SIZE(...)
#define IMAGE(slot, format, qualifiers, type, name)
#define COMPUTE_SOURCE(filename)
#define DO_STATIC_COMPILATION()
ImageBase< float, 2 > image2D
SamplerBase< float, 2 > sampler2D