Blender V4.5
workbench_effect_antialiasing_info.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_glsl_cpp_stubs.hh"
8
10
11# define SMAA_GLSL_3
12# define SMAA_STAGE 1
13# define SMAA_PRESET_HIGH
14# define SMAA_NO_DISCARD
15# define SMAA_RT_METRICS viewport_metrics
16# define SMAA_LUMA_WEIGHT float4(1.0f, 1.0f, 1.0f, 1.0f)
17#endif
18
20
21/* -------------------------------------------------------------------- */
24
25GPU_SHADER_CREATE_INFO(workbench_taa)
26SAMPLER(0, sampler2D, color_buffer)
27PUSH_CONSTANT_ARRAY(float, samplesWeights, 9)
28FRAGMENT_OUT(0, float4, frag_color)
29FRAGMENT_SOURCE("workbench_effect_taa_frag.glsl")
30ADDITIONAL_INFO(gpu_fullscreen)
33
35
36/* -------------------------------------------------------------------- */
39
40GPU_SHADER_INTERFACE_INFO(workbench_smaa_iface)
41SMOOTH(float2, uvs)
42SMOOTH(float2, pixcoord)
43SMOOTH(float4, offset[3])
45
46GPU_SHADER_CREATE_INFO(workbench_smaa)
47DEFINE("SMAA_GLSL_3")
48DEFINE_VALUE("SMAA_RT_METRICS", "viewport_metrics")
49DEFINE("SMAA_PRESET_HIGH")
50DEFINE_VALUE("SMAA_LUMA_WEIGHT", "float4(1.0f, 1.0f, 1.0f, 1.0f)")
51DEFINE("SMAA_NO_DISCARD")
52VERTEX_OUT(workbench_smaa_iface)
53PUSH_CONSTANT(float4, viewport_metrics)
54VERTEX_SOURCE("workbench_effect_smaa_vert.glsl")
55FRAGMENT_SOURCE("workbench_effect_smaa_frag.glsl")
57
58GPU_SHADER_CREATE_INFO(workbench_smaa_stage_0)
59DEFINE_VALUE("SMAA_STAGE", "0")
60SAMPLER(0, sampler2D, color_tx)
61FRAGMENT_OUT(0, float2, out_edges)
62ADDITIONAL_INFO(workbench_smaa)
65
66GPU_SHADER_CREATE_INFO(workbench_smaa_stage_1)
67DEFINE_VALUE("SMAA_STAGE", "1")
68SAMPLER(0, sampler2D, edges_tx)
69SAMPLER(1, sampler2D, area_tx)
70SAMPLER(2, sampler2D, search_tx)
71FRAGMENT_OUT(0, float4, out_weights)
72ADDITIONAL_INFO(workbench_smaa)
75
76GPU_SHADER_CREATE_INFO(workbench_smaa_stage_2)
77DEFINE_VALUE("SMAA_STAGE", "2")
78SAMPLER(0, sampler2D, color_tx)
79SAMPLER(1, sampler2D, blend_tx)
80PUSH_CONSTANT(float, mix_factor)
81PUSH_CONSTANT(float, taa_accumulated_weight)
82FRAGMENT_OUT(0, float4, out_color)
83ADDITIONAL_INFO(workbench_smaa)
86
VecBase< float, 4 > float4
SamplerBase< float, 2 > sampler2D
#define VERTEX_OUT(stage_interface)
#define SMOOTH(type, name)
#define PUSH_CONSTANT_ARRAY(type, name, array_size)
#define SAMPLER(slot, type, name)
#define GPU_SHADER_INTERFACE_END()
#define FRAGMENT_SOURCE(filename)
#define ADDITIONAL_INFO(info_name)
#define PUSH_CONSTANT(type, name)
#define DEFINE(name)
#define FRAGMENT_OUT(slot, type, name)
#define GPU_SHADER_INTERFACE_INFO(_interface)
#define GPU_SHADER_CREATE_INFO(_info)
#define VERTEX_SOURCE(filename)
#define GPU_SHADER_CREATE_END()
#define DO_STATIC_COMPILATION()
#define DEFINE_VALUE(name, value)