Files
com.misaki.ao-volume/Runtime/Shader/VolumeListBuild-Cluster.compute
2025-03-01 16:58:26 +09:00

19 lines
821 B
Plaintext

#pragma kernel CSMain
#include "Packages/com.misaki.ao-volume/Runtime/Shader/Includes/GeometryData.cs.hlsl"
StructuredBuffer<OrientedBoundingBox> _VolumeBounds;
ByteAddressBuffer _VisibleVolumeCount;
ByteAddressBuffer _VisibleVolumeIndices;
// For the volume list buffer, we allocate a buffer with the size of "cluster count" * "max volume count on screen" / 4.
// The first slot of each cluster group is always reserved for the count of volumes in the cluster.
// The rest of the slots are used for the indices of the volumes in the cluster, each slot are packed with 2 16 bits indices.
// To total number of indices in each cluster is "max volume count on screen" / 4 - 1.
RWByteAddressBuffer _VolumeListCluster : register(u0);
[numthreads(64,1,1)]
void CSMain(uint3 dispatchThreadId : SV_DispatchThreadID)
{
}