Closed mgerhardy closed 1 year ago
ERROR: (0) u_viewprojection: offset: 0, type: 35676, size: 1, matrixStride: 16, arrayStride: 0
ERROR: (0) u_model: offset: 64, type: 35676, size: 1, matrixStride: 16, arrayStride: 0
ERROR: (0) u_lightdir: offset: 0, type: 35665, size: 1, matrixStride: 0, arrayStride: 0
ERROR: (0) u_diffuse_color: offset: 16, type: 35665, size: 1, matrixStride: 0, arrayStride: 0
ERROR: (0) u_ambient_color: offset: 32, type: 35665, size: 1, matrixStride: 0, arrayStride: 0
ERROR: (0) u_depthsize: offset: 48, type: 35664, size: 1, matrixStride: 0, arrayStride: 0
ERROR: (0) u_distances: offset: 64, type: 35666, size: 1, matrixStride: 0, arrayStride: 0
ERROR: (0) u_cascades: offset: 80, type: 35676, size: 4, matrixStride: 16, arrayStride: 64
ERROR: (0) u_materialcolor: offset: 0, type: 35666, size: 256, matrixStride: 0, arrayStride: 16
ERROR: (0) u_glowcolor: offset: 4096, type: 35666, size: 256, matrixStride: 0, arrayStride: 16
ERROR: (0) u_viewprojection: offset: 8192, type: 35676, size: 1, matrixStride: 16, arrayStride: 0
ERROR: (0) u_model: offset: 8256, type: 35676, size: 1, matrixStride: 16, arrayStride: 0
ERROR: (0) u_pivot: offset: 8320, type: 35665, size: 1, matrixStride: 0, arrayStride: 0
ERROR: (0) u_gray: offset: 8332, type: 5124, size: 1, matrixStride: 0, arrayStride: 0
ERROR: (0) u_lightviewprojection: offset: 0, type: 35676, size: 1, matrixStride: 16, arrayStride: 0
ERROR: (0) u_model: offset: 64, type: 35676, size: 1, matrixStride: 16, arrayStride: 0
ERROR: (0) u_pivot: offset: 128, type: 35665, size: 1, matrixStride: 0, arrayStride: 0
ERROR: (0) u_coefficients0: offset: 0, type: 5126, size: 1, matrixStride: 0, arrayStride: 0
ERROR: (0) u_coefficients1: offset: 4, type: 5126, size: 1, matrixStride: 0, arrayStride: 0
ERROR: (0) u_coefficients2: offset: 8, type: 5126, size: 1, matrixStride: 0, arrayStride: 0
ERROR: (0) u_offsets0: offset: 16, type: 35664, size: 1, matrixStride: 0, arrayStride: 0
ERROR: (0) u_offsets1: offset: 24, type: 35664, size: 1, matrixStride: 0, arrayStride: 0
ERROR: (0) u_offsets2: offset: 32, type: 35664, size: 1, matrixStride: 0, arrayStride: 0
ERROR: (0) u_viewprojection: offset: 0, type: 35676, size: 1, matrixStride: 16, arrayStride: 0
ERROR: (0) u_model: offset: 64, type: 35676, size: 1, matrixStride: 16, arrayStride: 0
ERROR: (0) u_lightdir: offset: 0, type: 35665, size: 1, matrixStride: 0, arrayStride: 0
ERROR: (0) u_diffuse_color: offset: 16, type: 35665, size: 1, matrixStride: 0, arrayStride: 0
ERROR: (0) u_ambient_color: offset: 32, type: 35665, size: 1, matrixStride: 0, arrayStride: 0
ERROR: (0) u_depthsize: offset: 48, type: 35664, size: 1, matrixStride: 0, arrayStride: 0
ERROR: (0) u_distances: offset: 64, type: 35666, size: 1, matrixStride: 0, arrayStride: 0
ERROR: (0) u_cascades: offset: 64, type: 35666, size: 1, matrixStride: 0, arrayStride: 0
ERROR: (0) Invalid offset found for uniform u_cascades 64 - expected 80
ERROR: (0) u_materialcolor: offset: 64, type: 35666, size: 1, matrixStride: 0, arrayStride: 0
ERROR: (0) Invalid offset found for uniform u_materialcolor 64 - expected 0
ERROR: (0) u_glowcolor: offset: 64, type: 35666, size: 1, matrixStride: 0, arrayStride: 0
ERROR: (0) Invalid offset found for uniform u_glowcolor 64 - expected 4096
ERROR: (0) u_viewprojection: offset: 8192, type: 35676, size: 1, matrixStride: 16, arrayStride: 0
ERROR: (0) u_model: offset: 8256, type: 35676, size: 1, matrixStride: 16, arrayStride: 0
ERROR: (0) u_pivot: offset: 8320, type: 35665, size: 1, matrixStride: 0, arrayStride: 0
ERROR: (0) u_gray: offset: 8332, type: 5124, size: 1, matrixStride: 0, arrayStride: 0
ERROR: (0) u_lightviewprojection: offset: 0, type: 35676, size: 1, matrixStride: 16, arrayStride: 0
ERROR: (0) u_model: offset: 64, type: 35676, size: 1, matrixStride: 16, arrayStride: 0
ERROR: (0) u_pivot: offset: 128, type: 35665, size: 1, matrixStride: 0, arrayStride: 0
ERROR: (0) u_coefficients0: offset: 0, type: 5126, size: 1, matrixStride: 0, arrayStride: 0
ERROR: (0) u_coefficients1: offset: 4, type: 5126, size: 1, matrixStride: 0, arrayStride: 0
ERROR: (0) u_coefficients2: offset: 8, type: 5126, size: 1, matrixStride: 0, arrayStride: 0
ERROR: (0) u_offsets0: offset: 16, type: 35664, size: 1, matrixStride: 0, arrayStride: 0
ERROR: (0) u_offsets1: offset: 24, type: 35664, size: 1, matrixStride: 0, arrayStride: 0
ERROR: (0) u_offsets2: offset: 32, type: 35664, size: 1, matrixStride: 0, arrayStride: 0
removing the array from the voxel shader fixes the problem - so there might be problems with arrays in webgl - resp. the way I query them
diff --git a/src/modules/voxelrender/RawVolumeRenderer.cpp b/src/modules/voxelrender/RawVolumeRenderer.cpp
index 857565a9e..ccb549e69 100644
--- a/src/modules/voxelrender/RawVolumeRenderer.cpp
+++ b/src/modules/voxelrender/RawVolumeRenderer.cpp
@@ -516,8 +516,11 @@ void RawVolumeRenderer::render(RenderContext &renderContext, const video::Camera
}
_voxelShaderFragData.depthsize = _shadow.dimension();
+ _voxelShaderFragData.cascades1 = _shadow.cascades()[0];
+ _voxelShaderFragData.cascades2 = _shadow.cascades()[1];
+ _voxelShaderFragData.cascades3 = _shadow.cascades()[2];
+ _voxelShaderFragData.cascades4 = _shadow.cascades()[3];
for (int i = 0; i < shader::VoxelShaderConstants::getMaxDepthBuffers(); ++i) {
- _voxelShaderFragData.cascades[i] = _shadow.cascades()[i];
_voxelShaderFragData.distances[i] = _shadow.distances()[i];
}
_voxelShaderFragData.lightdir = _shadow.sunDirection();
diff --git a/src/modules/voxelrender/shaders/voxel.frag b/src/modules/voxelrender/shaders/voxel.frag
index 79334ee6b..a98491c49 100644
--- a/src/modules/voxelrender/shaders/voxel.frag
+++ b/src/modules/voxelrender/shaders/voxel.frag
@@ -12,7 +12,10 @@ layout(std140) uniform u_frag {
lowp vec3 u_ambient_color;
vec2 u_depthsize;
vec4 u_distances;
- mat4 u_cascades[4];
+ mat4 u_cascades1;
+ mat4 u_cascades2;
+ mat4 u_cascades3;
+ mat4 u_cascades4;
};
layout(location = 0) $out vec4 o_color;
@@ -49,7 +52,14 @@ float sampleShadowPCF(in float bias, in int cascade, in vec2 uv, in float compar
}
vec3 calculateShadowUVZ(in vec4 lightspacepos, in int cascade) {
- vec4 lightp = u_cascades[cascade] * lightspacepos;
+ mat4 m = u_cascades1;
+ if (cascade == 1)
+ m = u_cascades2;
+ else if (cascade == 2)
+ m = u_cascades3;
+ else if (cascade == 3)
+ m = u_cascades4;
+ vec4 lightp = m * lightspacepos;
/* we manually have to do the perspective divide as there is no
* version of textureProj that can take a sampler2DArrayShadow
* Also bring the ndc into the range [0-1] because the depth map
uniformIndices[0]
:4294967295
too large. (firefox) (0f7e132c90442c42db2ead674695ee8a05f9d400)