3 ms·
Why would using a compute shader mean mesh data is sent every frame? Compute skinning is mostly the same as doing it in the vertex shader but you don't have to
by Jasper_ 6y ago
Why would using a compute shader mean mesh data is sent every frame? Compute skinning is mostly the same as doing it in the vertex shader but you don't have to skin again for the different passes, instead you store to some GPU memory (so up the tradeoff is extra memory bandwidth on the GPU). No extra CPU/GPU traffic should be used here.
- bullen 6y agoWell if you analyze Unity you'll see they send all meshes every frame. It might be because they want to be able to apply the same shaders on characters as on objects, but still vertex GPU skinning is the way to go and Unity does not. So you can't build a MMO with Unity!
- Jasper_ 6y agoI suspect that you're analyzing the frame trace wrong and thinking that since pre-skinned data is showing up in the draw it's being sent from the CPU, but feel free to send me a renderdoc capture or something and I'll take a look. Compute skinning and vertex skinning are both competitive; for games with many passes, zpre, multiple shadow passes compute skinning can beat vertex. Compute skinning is used by Frostbite and most other large engines too.
- _revy 6y ago> So you can't build a MMO with Unity! This has nothing to do with the skinning method, and I agree with the other poster. It should retain the same vertex buffer in GPU RAM and simply deform it in the shader.