Overte C++ Documentation
render-utils/src/render-utils/ShaderConstants.h
1 // <!
2 // Created by Bradley Austin Davis on 2018/05/25
3 // Copyright 2013-2018 High Fidelity, Inc.
4 //
5 // Distributed under the Apache License, Version 2.0.
6 // See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html
7 // !>
8 
9 // <@if not RENDER_UTILS_SHADER_CONSTANTS_H@>
10 // <@def RENDER_UTILS_SHADER_CONSTANTS_H@>
11 
12 // Hack comment to absorb the extra '//' scribe prepends
13 
14 #ifndef RENDER_UTILS_SHADER_CONSTANTS_H
15 #define RENDER_UTILS_SHADER_CONSTANTS_H
16 
17 // Feature enabling flags (possibly need to rebuild shaders if this changes)
18 #define RENDER_UTILS_ENABLE_AMBIENT_FRESNEL_LUT 1
19 
20 // Binding slots
21 #define RENDER_UTILS_ATTR_TEXCOORD01 0
22 #define RENDER_UTILS_ATTR_COLOR 1
23 
24 // World space
25 #define RENDER_UTILS_ATTR_POSITION_WS 2
26 #define RENDER_UTILS_ATTR_NORMAL_WS 3
27 #define RENDER_UTILS_ATTR_TANGENT_WS 4
28 
29 // Model space
30 #define RENDER_UTILS_ATTR_POSITION_MS 5
31 #define RENDER_UTILS_ATTR_NORMAL_MS 6
32 
33 // Eye space
34 #define RENDER_UTILS_ATTR_POSITION_ES 7
35 
36 // don't conflict with GPU_ATTR_V2F_STEREO_SIDE in the GPU shader constants
37 #define RENDER_UTILS_ATTR_DO_NOT_USE 8
38 
39 // Fade
40 #define RENDER_UTILS_ATTR_FADE1 9
41 #define RENDER_UTILS_ATTR_FADE2 10
42 #define RENDER_UTILS_ATTR_FADE3 11
43 
44 
45 #define RENDER_UTILS_BUFFER_DEFERRED_FRAME_TRANSFORM 0
46 #define RENDER_UTILS_BUFFER_LIGHT_MODEL 3
47 #define RENDER_UTILS_BUFFER_AMBIENT_LIGHT 6
48 #define RENDER_UTILS_BUFFER_LIGHT_INDEX 7
49 
50 // Deferred lighting resolution
51 #define RENDER_UTILS_TEXTURE_DEFERRRED_COLOR 0
52 #define RENDER_UTILS_TEXTURE_DEFERRRED_NORMAL 1
53 #define RENDER_UTILS_TEXTURE_DEFERRRED_SPECULAR 2
54 #define RENDER_UTILS_TEXTURE_DEFERRRED_DEPTH 3
55 #define RENDER_UTILS_TEXTURE_DEFERRED_OBSCURANCE 4
56 #define RENDER_UTILS_TEXTURE_DEFERRRED_LINEAR_Z_EYE 5
57 #define RENDER_UTILS_TEXTURE_DEFERRED_CURVATURE 6
58 #define RENDER_UTILS_TEXTURE_DEFERRED_DIFFUSED_CURVATURE 7
59 #define RENDER_UTILS_TEXTURE_DEFERRED_LIGHTING 10
60 #define RENDER_UTILS_TEXTURE_SKYBOX 11
61 #define RENDER_UTILS_TEXTURE_AMBIENT_FRESNEL 14
62 
63 #define RENDER_UTILS_BUFFER_SHADOW_PARAMS 2
64 #define RENDER_UTILS_TEXTURE_SHADOW 12
65 
66 #define RENDER_UTILS_BUFFER_LIGHT_CLUSTER_FRUSTUM_GRID 10
67 #define RENDER_UTILS_BUFFER_LIGHT_CLUSTER_GRID 11
68 #define RENDER_UTILS_BUFFER_LIGHT_CLUSTER_CONTENT 12
69 
70 // Haze
71 #define RENDER_UTILS_TEXTURE_HAZE_COLOR 0
72 #define RENDER_UTILS_TEXTURE_HAZE_LINEAR_DEPTH 1
73 
74 // Fading
75 #define RENDER_UTILS_BUFFER_FADE_PARAMS 8
76 #define RENDER_UTILS_BUFFER_FADE_OBJECT_PARAMS 9
77 #define RENDER_UTILS_TEXTURE_FADE_MASK 10
78 
79 // Highlighting
80 #define RENDER_UTILS_BUFFER_HIGHLIGHT_PARAMS 2
81 #define RENDER_UTILS_TEXTURE_HIGHLIGHT_SCENE_DEPTH 0
82 #define RENDER_UTILS_TEXTURE_HIGHLIGHT_DEPTH 1
83 
84 // Subsurface scattering
85 #define RENDER_UTILS_BUFFER_SSSC_PARAMS 13
86 #define RENDER_UTILS_TEXTURE_SSSC_PROFILE 12
87 #define RENDER_UTILS_TEXTURE_SSSC_LUT 8
88 #define RENDER_UTILS_TEXTURE_SSSC_SPECULAR_BECKMANN 9
89 
90 // Ambient occlusion
91 #define RENDER_UTILS_BUFFER_SSAO_PARAMS 2
92 #define RENDER_UTILS_BUFFER_SSAO_DEBUG_PARAMS 3
93 #define RENDER_UTILS_BUFFER_SSAO_BLUR_PARAMS 4
94 #define RENDER_UTILS_BUFFER_SSAO_FRAME_PARAMS 5
95 #define RENDER_UTILS_TEXTURE_SSAO_DEPTH 1
96 #define RENDER_UTILS_TEXTURE_SSAO_NORMAL 2
97 #define RENDER_UTILS_TEXTURE_SSAO_OCCLUSION 0
98 
99 // Temporal anti-aliasing
100 #define RENDER_UTILS_BUFFER_TAA_PARAMS 2
101 #define RENDER_UTILS_TEXTURE_TAA_HISTORY 0
102 #define RENDER_UTILS_TEXTURE_TAA_SOURCE 1
103 #define RENDER_UTILS_TEXTURE_TAA_VELOCITY 2
104 #define RENDER_UTILS_TEXTURE_TAA_DEPTH 3
105 #define RENDER_UTILS_TEXTURE_TAA_NEXT 4
106 
107 // Surface Geometry
108 #define RENDER_UTILS_BUFFER_SG_PARAMS 1
109 #define RENDER_UTILS_TEXTURE_SG_DEPTH 0
110 #define RENDER_UTILS_TEXTURE_SG_NORMAL 1
111 
112 // Blur
113 #define RENDER_UTILS_BUFFER_BLUR_PARAMS 0
114 #define RENDER_UTILS_TEXTURE_BLUR_SOURCE 0
115 #define RENDER_UTILS_TEXTURE_BLUR_DEPTH 1
116 
117 // Tone Mapping
118 #define RENDER_UTILS_BUFFER_TM_PARAMS 0
119 #define RENDER_UTILS_TEXTURE_TM_COLOR 0
120 
121 // Bloom
122 #define RENDER_UTILS_BUFFER_BLOOM_PARAMS 1
123 #define RENDER_UTILS_TEXTURE_BLOOM_COLOR 0
124 
125 // SDF Text rendering
126 #define RENDER_UTILS_TEXTURE_TEXT_FONT 0
127 #define RENDER_UTILS_UNIFORM_TEXT_COLOR 0
128 #define RENDER_UTILS_UNIFORM_TEXT_OUTLINE 1
129 
130 // Debugging
131 #define RENDER_UTILS_BUFFER_DEBUG_SKYBOX 5
132 #define RENDER_UTILS_DEBUG_TEXTURE0 11
133 #define RENDER_UTILS_BUFFER_DEBUG_DEFERRED_PARAMS 1
134 
135 // <!
136 #include <gpu/ShaderConstants.h>
137 
138 namespace render_utils { namespace slot {
139 
140 namespace buffer {
141 enum Buffer {
142  DeferredFrameTransform = RENDER_UTILS_BUFFER_DEFERRED_FRAME_TRANSFORM,
143  LightModel = RENDER_UTILS_BUFFER_LIGHT_MODEL,
144  AmbientLight = RENDER_UTILS_BUFFER_AMBIENT_LIGHT,
145  FadeParameters = RENDER_UTILS_BUFFER_FADE_PARAMS,
146  FadeObjectParameters = RENDER_UTILS_BUFFER_FADE_OBJECT_PARAMS,
147  LightClusterFrustumGrid = RENDER_UTILS_BUFFER_LIGHT_CLUSTER_FRUSTUM_GRID,
148  LightClusterGrid = RENDER_UTILS_BUFFER_LIGHT_CLUSTER_GRID,
149  LightClusterContent = RENDER_UTILS_BUFFER_LIGHT_CLUSTER_CONTENT,
150  SsscParams = RENDER_UTILS_BUFFER_SSSC_PARAMS,
151  SsaoParams = RENDER_UTILS_BUFFER_SSAO_PARAMS,
152  SsaoFrameParams = RENDER_UTILS_BUFFER_SSAO_FRAME_PARAMS,
153  SsaoDebugParams = RENDER_UTILS_BUFFER_SSAO_DEBUG_PARAMS,
154  SsaoBlurParams = RENDER_UTILS_BUFFER_SSAO_BLUR_PARAMS,
155  LightIndex = RENDER_UTILS_BUFFER_LIGHT_INDEX,
156  TaaParams = RENDER_UTILS_BUFFER_TAA_PARAMS,
157  HighlightParams = RENDER_UTILS_BUFFER_HIGHLIGHT_PARAMS,
158  DebugSkyboxParams = RENDER_UTILS_BUFFER_DEBUG_SKYBOX,
159  SurfaceGeometryParams = RENDER_UTILS_BUFFER_SG_PARAMS,
160  BlurParams = RENDER_UTILS_BUFFER_BLUR_PARAMS,
161  BloomParams = RENDER_UTILS_BUFFER_BLOOM_PARAMS,
162  ToneMappingParams = RENDER_UTILS_BUFFER_TM_PARAMS,
163  ShadowParams = RENDER_UTILS_BUFFER_SHADOW_PARAMS,
164  DebugDeferredParams = RENDER_UTILS_BUFFER_DEBUG_DEFERRED_PARAMS,
165 };
166 } // namespace buffer
167 
168 namespace texture {
169 enum Texture {
170  DeferredColor = RENDER_UTILS_TEXTURE_DEFERRRED_COLOR,
171  DeferredNormal = RENDER_UTILS_TEXTURE_DEFERRRED_NORMAL,
172  DeferredSpecular = RENDER_UTILS_TEXTURE_DEFERRRED_SPECULAR,
173  DeferredDepth = RENDER_UTILS_TEXTURE_DEFERRRED_DEPTH,
174  DeferredLinearZEye = RENDER_UTILS_TEXTURE_DEFERRRED_LINEAR_Z_EYE,
175  DeferredObscurance = RENDER_UTILS_TEXTURE_DEFERRED_OBSCURANCE,
176  DeferredLighting = RENDER_UTILS_TEXTURE_DEFERRED_LIGHTING,
177  DeferredCurvature = RENDER_UTILS_TEXTURE_DEFERRED_CURVATURE,
178  DeferredDiffusedCurvature = RENDER_UTILS_TEXTURE_DEFERRED_DIFFUSED_CURVATURE,
179  SsscLut = RENDER_UTILS_TEXTURE_SSSC_LUT,
180  SsscSpecularBeckmann = RENDER_UTILS_TEXTURE_SSSC_SPECULAR_BECKMANN,
181  SsscProfile = RENDER_UTILS_TEXTURE_SSSC_PROFILE,
182  FadeMask = RENDER_UTILS_TEXTURE_FADE_MASK,
183  Skybox = RENDER_UTILS_TEXTURE_SKYBOX,
184  HazeColor = RENDER_UTILS_TEXTURE_HAZE_COLOR,
185  HazeLinearDepth = RENDER_UTILS_TEXTURE_HAZE_LINEAR_DEPTH,
186  Shadow = RENDER_UTILS_TEXTURE_SHADOW,
187  TaaHistory = RENDER_UTILS_TEXTURE_TAA_HISTORY,
188  TaaSource = RENDER_UTILS_TEXTURE_TAA_SOURCE,
189  TaaVelocity = RENDER_UTILS_TEXTURE_TAA_VELOCITY,
190  TaaDepth = RENDER_UTILS_TEXTURE_TAA_DEPTH,
191  TaaNext = RENDER_UTILS_TEXTURE_TAA_NEXT,
192  SsaoOcclusion = RENDER_UTILS_TEXTURE_SSAO_OCCLUSION,
193  SsaoDepth = RENDER_UTILS_TEXTURE_SSAO_DEPTH,
194  SsaoNormal = RENDER_UTILS_TEXTURE_SSAO_NORMAL,
195  HighlightSceneDepth = RENDER_UTILS_TEXTURE_HIGHLIGHT_SCENE_DEPTH,
196  HighlightDepth = RENDER_UTILS_TEXTURE_HIGHLIGHT_DEPTH,
197  SurfaceGeometryDepth = RENDER_UTILS_TEXTURE_SG_DEPTH,
198  SurfaceGeometryNormal = RENDER_UTILS_TEXTURE_SG_NORMAL,
199  BlurSource = RENDER_UTILS_TEXTURE_BLUR_SOURCE,
200  BlurDepth = RENDER_UTILS_TEXTURE_BLUR_DEPTH,
201  BloomColor = RENDER_UTILS_TEXTURE_BLOOM_COLOR,
202  ToneMappingColor = RENDER_UTILS_TEXTURE_TM_COLOR,
203  TextFont = RENDER_UTILS_TEXTURE_TEXT_FONT,
204  AmbientFresnel = RENDER_UTILS_TEXTURE_AMBIENT_FRESNEL,
205  DebugTexture0 = RENDER_UTILS_DEBUG_TEXTURE0,
206 };
207 } // namespace texture
208 
209 } } // namespace render_utils::slot
210 
211 // !>
212 // Hack Comment
213 
214 #endif // RENDER_UTILS_SHADER_CONSTANTS_H
215 
216 // <@if 1@>
217 // Trigger Scribe include
218 // <@endif@> <!def that !>
219 
220 // <@endif@>
221 
222 // Hack Comment
A simple object wrapper for an OpenGL texture.
Definition: material-networking/src/material-networking/TextureCache.h:39