4 name=
"ClusterShadingStage"
6 library=
"ContribTechniques"
7 pointerfieldtypes=
"none"
10 parentsystemcomponent=
"true"
12 useLocalIncludes=
"false"
25 The number of compute shader work group threads per xy-direction
36 The number of pixel per cluster tile per xy-direction. The overall number if
37 clusters is then tileSize^
2 * numClusterZ.
48 The number of clusters in the z direction. The overall number if
49 clusters is then tileSize^
2 * numClusterZ.
53 name=
"nearPlaneOffset"
60 z-coords below of zNear + near_plane_offset are mapped to cluster key
0, i.e.
61 the logarithmic clustering starts at zNear + near_plane_offset with key
1. Key
0
62 is therefor artificially. With this parameter you can enhance the cluster utilization.
66 name=
"dispatchDataBindingPnt"
73 The fragment shader binding point for the clustering data UBO.
77 name=
"clusterDataBindingPnt"
84 The fragment shader binding point for the clustering data UBO.
88 name=
"lightBindingPnt"
95 The fragment shader SSBO binding point for the multi light chunk.
99 name=
"affectedLightIndexListBindingPnt"
102 visibility=
"external"
106 The fragment shader binding point for the index list SSBO of the view frustum affecting lights.
110 name=
"frustumBindingPnt"
113 visibility=
"external"
117 The frustum and cull light computation shader binding point for the SSBO frustum buffer.
121 name=
"lightIndexListBindingPnt"
124 visibility=
"external"
128 The fragment shader binding point for the index list SSBO of the cluster shading lights.
132 name=
"lightIndexCounterBindingPnt"
135 visibility=
"external"
139 The fragment shader binding point for the index list global counter SSBO.
143 name=
"lightGridBindingPnt"
146 visibility=
"external"
150 The fragment shader binding point for the texture image of the light grid.
154 name=
"affectedLightIndexListBlockName"
157 visibility=
"external"
159 defaultValue='
"AffectedLightIndexList"'
161 The shader storage buffer block name for the affected light index buffer.
165 name=
"affectedLightIndexListVariableName"
168 visibility=
"external"
170 defaultValue='
"affectedLightIndexList"'
172 The variable name for the affected light index buffer.
176 name=
"lightIndexListBlockName"
179 visibility=
"external"
181 defaultValue='
"LightIndexList"'
183 The shader storage buffer block name for the global light index buffer.
187 name=
"lightIndexListVariableName"
190 visibility=
"external"
192 defaultValue='
"lightIndexList"'
194 The variable name for the global light index buffer.
198 name=
"clusteringDataBlockName"
201 visibility=
"external"
203 defaultValue='
"ClusteringData"'
205 The uniform buffer block name for the clustering data buffer.
209 name=
"clusteringDataVariableName"
212 visibility=
"external"
214 defaultValue='
"clusteringData"'
216 The variable name for the clustering data buffer.
220 name=
"lightGridVariableName"
223 visibility=
"external"
225 defaultValue='
"light_grid"'
227 The variable name for the uniform light grid image array .
231 name=
"calcFrustumsOnCPU"
234 visibility=
"external"
238 Calculate the view frustums on the CPU.
242 name=
"cullLighsOnCPU"
245 visibility=
"external"
249 Cull the lights on the CPU.
256 visibility=
"external"
260 Disable the stage completely. The geometry fragment shaders must act accordingly.
264 name=
"maxLightIndexListSize"
267 visibility=
"external"
268 defaultValue=
"2097152"
271 The maximal number of light indices, i.e. the accumulated sum of all cluster lights. If the light index
272 list is completely filled all additional lights are silently dropped.
276 name=
"maxClusterLightCount"
279 visibility=
"external"
283 The maximal number of lights that can be attributed to one specific cluster. Realize, that
284 the accumulated sum of all cluster attributed lights must not exceed the maxLightIndexListSize.
285 If the number of lights for one cluster exceeds this limit the excessive lights are silently dropped.
292 visibility=
"internal"
296 The frustum computation node.
300 name=
"frustAlgoElement"
301 type=
"AlgorithmComputeElementPtr"
303 visibility=
"internal"
307 The frustum algorithm computation element.
311 name=
"frustCompShaderAlgo"
312 type=
"ComputeShaderAlgorithmPtr"
314 visibility=
"internal"
318 The frustum computation shader algorithm.
325 visibility=
"internal"
329 The frustum computation node.
333 name=
"cullAlgoElement"
334 type=
"AlgorithmComputeElementPtr"
336 visibility=
"internal"
340 The frustum algorithm computation element.
344 name=
"cullCompShaderAlgo"
345 type=
"ComputeShaderAlgorithmPtr"
347 visibility=
"internal"
351 The frustum computation shader algorithm.
355 name=
"multiLightChunk"
356 type=
"MultiLightChunkPtr"
358 visibility=
"external"
362 The multi light chunk.
366 name=
"shaderProgChunk"
367 type=
"ShaderProgramChunkPtr"
369 visibility=
"internal"
373 The shader program chunk.