forked from LeenkxTeam/LNXSDK
Update Files
This commit is contained in:
18
leenkx/Shaders/std/clusters.glsl
Normal file
18
leenkx/Shaders/std/clusters.glsl
Normal file
@ -0,0 +1,18 @@
|
||||
|
||||
const vec3 clusterSlices = vec3(16, 16, 16);
|
||||
|
||||
int getClusterI(vec2 tc, float viewz, vec2 cameraPlane) {
|
||||
int sliceZ = 0;
|
||||
float cnear = clusterNear + cameraPlane.x;
|
||||
if (viewz >= cnear) {
|
||||
float z = log(viewz - cnear + 1.0) / log(cameraPlane.y - cnear + 1.0);
|
||||
sliceZ = int(z * (clusterSlices.z - 1)) + 1;
|
||||
}
|
||||
// address gap between near plane and cluster near offset
|
||||
else if (viewz >= cameraPlane.x) {
|
||||
sliceZ = 1;
|
||||
}
|
||||
return int(tc.x * clusterSlices.x) +
|
||||
int(int(tc.y * clusterSlices.y) * clusterSlices.x) +
|
||||
int(sliceZ * clusterSlices.x * clusterSlices.y);
|
||||
}
|
Reference in New Issue
Block a user