Building and shading a procedural mesh on GPU

HI All. I’m quite new to Unity but have a fair amount of graphics programming experience. I’m planning a project in which a lot of geometry will be generated and then animated on the GPU. This needs to involve dynamic shadows, texture mapping, other shading/post processing effects and dynamic smoothed normal calculation. I’ve achieved this previously using OpenGL via openFrameworks and am excited to try it in Unity with Compute Shaders and DX11.

Is this possible while keeping everything on the GPU? If so, what would be my best route (ideally using Unity’s built in shadows)? My first thought would be to share a ComputeBuffer directly with a MeshFilter but I learned that this is not possible unless you copy the buffer from the GPU and pass it in from CPU. I came across several other limitations (particularly with shading in geometry shaders) which make me wonder if I’m asking too much of the platform.

I haven’t experimented with it myself (Mostly a Mac / iOS developer), but Unity exposes this functionality through Graphics.DrawProceduralIndirect, which should allow you to build geometry within a Compute Shader, and render it without every crossing the GPU / CPU line.