I am working with light propagation volumes and I have stumbled upon a problem with WebGL where I need a geometry shader or something to emulate it. I am working with 3D textures and I need to be able to render to a 3D texture. I found this in guide for DirectX 11:
Because of the way DirectX11 handles Render Target Views for 3D textures, you need to pass the vertices to a Geometry Shader, where a depth slice of the 3D texture will be determined based on the grid position. In the Geometry Shader you specify the SV_renderTargetArrayIndex, a variable you have to pass to the Pixel Shader and a variable that is not accessible in the Vertex Shader. This explains why you need the Geometry Shader and not just do a VS->PS call.
How would this be achieved in WebGl where geometry shaders are not available?