Blender V5.0
overlay_volume_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
5#ifdef GPU_SHADER
6# pragma once
7# include "gpu_shader_compat.hh"
8
10# include "draw_view_infos.hh"
12
13# define USE_MAC
14# define SHOW_RANGE
15#endif
16
18
19/* -------------------------------------------------------------------- */
22
23GPU_SHADER_INTERFACE_INFO(overlay_volume_velocity_iface)
24SMOOTH(float4, final_color)
26
27GPU_SHADER_CREATE_INFO(overlay_volume_velocity)
28SAMPLER(0, sampler3D, velocity_x)
29SAMPLER(1, sampler3D, velocity_y)
30SAMPLER(2, sampler3D, velocity_z)
31PUSH_CONSTANT(float, display_size)
32PUSH_CONSTANT(float, slice_position)
33PUSH_CONSTANT(int, slice_axis)
34PUSH_CONSTANT(bool, scale_with_magnitude)
35PUSH_CONSTANT(bool, is_cell_centered)
36/* FluidDomainSettings.cell_size */
37PUSH_CONSTANT(float3, cell_size)
38/* FluidDomainSettings.p0 */
39PUSH_CONSTANT(float3, domain_origin_offset)
40/* FluidDomainSettings.res_min */
41PUSH_CONSTANT(int3, adaptive_cell_offset)
42PUSH_CONSTANT(int, in_select_id)
43VERTEX_OUT(overlay_volume_velocity_iface)
44FRAGMENT_OUT(0, float4, frag_color)
45VERTEX_SOURCE("overlay_volume_velocity_vert.glsl")
46FRAGMENT_SOURCE("overlay_varying_color.glsl")
48
49GPU_SHADER_CREATE_INFO(overlay_volume_velocity_streamline)
51ADDITIONAL_INFO(draw_volume)
52ADDITIONAL_INFO(draw_view)
53ADDITIONAL_INFO(overlay_volume_velocity)
55
56OVERLAY_INFO_SELECT_VARIATION(overlay_volume_velocity_streamline)
57
58GPU_SHADER_CREATE_INFO(overlay_volume_velocity_mac)
60DEFINE("USE_MAC")
61PUSH_CONSTANT(bool, draw_macx)
62PUSH_CONSTANT(bool, draw_macy)
63PUSH_CONSTANT(bool, draw_macz)
64ADDITIONAL_INFO(draw_volume)
65ADDITIONAL_INFO(draw_view)
66ADDITIONAL_INFO(overlay_volume_velocity)
68
69OVERLAY_INFO_SELECT_VARIATION(overlay_volume_velocity_mac)
70
71GPU_SHADER_CREATE_INFO(overlay_volume_velocity_needle)
73DEFINE("USE_NEEDLE")
74ADDITIONAL_INFO(draw_volume)
75ADDITIONAL_INFO(draw_view)
76ADDITIONAL_INFO(overlay_volume_velocity)
78
79OVERLAY_INFO_SELECT_VARIATION(overlay_volume_velocity_needle)
80
82
83/* -------------------------------------------------------------------- */
86
87GPU_SHADER_INTERFACE_INFO(overlay_volume_gridlines_iface)
88FLAT(float4, final_color)
90
91GPU_SHADER_CREATE_INFO(overlay_volume_gridlines)
92PUSH_CONSTANT(float, slice_position)
93PUSH_CONSTANT(int, slice_axis)
94/* FluidDomainSettings.res */
95PUSH_CONSTANT(int3, volume_size)
96/* FluidDomainSettings.cell_size */
97PUSH_CONSTANT(float3, cell_size)
98/* FluidDomainSettings.p0 */
99PUSH_CONSTANT(float3, domain_origin_offset)
100/* FluidDomainSettings.res_min */
101PUSH_CONSTANT(int3, adaptive_cell_offset)
102PUSH_CONSTANT(int, in_select_id)
103VERTEX_OUT(overlay_volume_gridlines_iface)
104FRAGMENT_OUT(0, float4, frag_color)
105VERTEX_SOURCE("overlay_volume_gridlines_vert.glsl")
106FRAGMENT_SOURCE("overlay_varying_color.glsl")
108
109GPU_SHADER_CREATE_INFO(overlay_volume_gridlines_flat)
111ADDITIONAL_INFO(draw_volume)
112ADDITIONAL_INFO(draw_view)
113ADDITIONAL_INFO(overlay_volume_gridlines)
115
116OVERLAY_INFO_SELECT_VARIATION(overlay_volume_gridlines_flat)
117
118GPU_SHADER_CREATE_INFO(overlay_volume_gridlines_flags)
120DEFINE("SHOW_FLAGS")
121SAMPLER(0, usampler3D, flag_tx)
122ADDITIONAL_INFO(draw_volume)
123ADDITIONAL_INFO(draw_view)
124ADDITIONAL_INFO(overlay_volume_gridlines)
126
127OVERLAY_INFO_SELECT_VARIATION(overlay_volume_gridlines_flags)
128
129GPU_SHADER_CREATE_INFO(overlay_volume_gridlines_range)
131DEFINE("SHOW_RANGE")
132PUSH_CONSTANT(float, lower_bound)
133PUSH_CONSTANT(float, upper_bound)
134PUSH_CONSTANT(float4, range_color)
135PUSH_CONSTANT(int, cell_filter)
136SAMPLER(0, usampler3D, flag_tx)
137SAMPLER(1, sampler3D, field_tx)
138ADDITIONAL_INFO(draw_volume)
139ADDITIONAL_INFO(draw_view)
140ADDITIONAL_INFO(overlay_volume_gridlines)
142
143OVERLAY_INFO_SELECT_VARIATION(overlay_volume_gridlines_range)
144
#define GPU_SHADER_INTERFACE_END()
#define GPU_SHADER_INTERFACE_INFO(_interface)
#define GPU_SHADER_CREATE_INFO(_info)
#define GPU_SHADER_CREATE_END()
#define VERTEX_OUT(stage_interface)
#define SMOOTH(type, name)
#define SAMPLER(slot, type, name)
#define FRAGMENT_SOURCE(filename)
#define ADDITIONAL_INFO(info_name)
#define PUSH_CONSTANT(type, name)
#define DEFINE(name)
#define FLAT(type, name)
#define FRAGMENT_OUT(slot, type, name)
#define VERTEX_SOURCE(filename)
#define DO_STATIC_COMPILATION()
SamplerBase< float, 3 > sampler3D
SamplerBase< uint, 3 > usampler3D
#define OVERLAY_INFO_SELECT_VARIATION(name)