The GeometryBufferRenderer of the scene doesn’t seem to work like expected.
The depth texture doesn’t seem to come through correctly. If I check the inspector, I can see the depth texture working, but if i pass it to a shader it’s the same as the position texture.
Also, both scene.geometryBufferRenderer.getTextureIndex(BABYLON.GeometryBufferRenderer.DEPTH_TEXTURE_INDEX)
and scene.geometryBufferRenderer.getTextureIndex(BABYLON.GeometryBufferRenderer.NORMAL_TEXTURE_INDEX)
return -1 even tough they are in the textures array.
The following example shows the depth texture having the same content as the position texture. I got the indexes for the textures by logging the array to the console and checking the name of the textures.
The constants are DEPTH_TEXTURE_TYPE
/ NORMAL_TEXTURE_TYPE
, not DEPTH_TEXTURE_INDEX
/ NORMAL_TEXTURE_INDEX
.
Also, for some reason, getTextureIndex
only handles POSITION_TEXTURE_TYPE
/ VELOCITY_TEXTURE_TYPE
/ REFLECTIVITY_TEXTURE_TYPE
as parameters… Maybe that’s because the depth and normal textures are always created and are always indices 0 and 1 respectively…
Right, had the wrong constant while I was testing in the playground, but the correct ones in my dev env.
It does seem a bit inconsistent though for the getTextureIndex
not to handle all textures, even if those values will always be the same.
Also, the texture at index 0 (gBuffer_Depth
) seems to be always 100% red for an object at both the near and far clipping planes. I tested this with putting the clipping planes quite close to each other.
The gBuffer_Depth
texture holds the viewPos.z
component. So, except if you are at less than one unit from the object, you will see the texture all red when viewPos.z >= 1
.
1 Like
Hey there just checking in, are you still having issues? @vinhui