Blender V5.0
workbench_effect_antialiasing_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
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, offset0)
44SMOOTH(float4, offset1)
45SMOOTH(float4, offset2)
47
48GPU_SHADER_CREATE_INFO(workbench_smaa)
49DEFINE("SMAA_GLSL_3")
50DEFINE_VALUE("SMAA_RT_METRICS", "viewport_metrics")
51DEFINE("SMAA_PRESET_HIGH")
52DEFINE_VALUE("SMAA_LUMA_WEIGHT", "float4(1.0f, 1.0f, 1.0f, 1.0f)")
53DEFINE("SMAA_NO_DISCARD")
54VERTEX_OUT(workbench_smaa_iface)
55PUSH_CONSTANT(float4, viewport_metrics)
56VERTEX_SOURCE("workbench_effect_smaa_vert.glsl")
57FRAGMENT_SOURCE("workbench_effect_smaa_frag.glsl")
59
60GPU_SHADER_CREATE_INFO(workbench_smaa_stage_0)
61DEFINE_VALUE("SMAA_STAGE", "0")
62SAMPLER(0, sampler2D, color_tx)
63FRAGMENT_OUT(0, float2, out_edges)
64ADDITIONAL_INFO(workbench_smaa)
67
68GPU_SHADER_CREATE_INFO(workbench_smaa_stage_1)
69DEFINE_VALUE("SMAA_STAGE", "1")
70SAMPLER(0, sampler2D, edges_tx)
71SAMPLER(1, sampler2D, area_tx)
72SAMPLER(2, sampler2D, search_tx)
73FRAGMENT_OUT(0, float4, out_weights)
74ADDITIONAL_INFO(workbench_smaa)
77
78GPU_SHADER_CREATE_INFO(workbench_smaa_stage_2)
79DEFINE_VALUE("SMAA_STAGE", "2")
80SAMPLER(0, sampler2D, color_tx)
81SAMPLER(1, sampler2D, blend_tx)
82PUSH_CONSTANT(float, mix_factor)
83PUSH_CONSTANT(float, taa_accumulated_weight)
84FRAGMENT_OUT(0, float4, out_color)
85ADDITIONAL_INFO(workbench_smaa)
88
#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 PUSH_CONSTANT_ARRAY(type, name, array_size)
#define SAMPLER(slot, type, name)
#define FRAGMENT_SOURCE(filename)
#define ADDITIONAL_INFO(info_name)
#define PUSH_CONSTANT(type, name)
#define DEFINE(name)
#define FRAGMENT_OUT(slot, type, name)
#define VERTEX_SOURCE(filename)
#define DO_STATIC_COMPILATION()
#define DEFINE_VALUE(name, value)
SamplerBase< float, 2 > sampler2D