Client Physics Pipeline
I am re-doing physics as a compute based system.
Currently I just use PhysX but the doesn't handle distant NPCs well because of the lack of fidelity with distant height maps.
Server Based Physics
While the GPU has an up to date version of where it thinks things are, the CPU has to mediate between its version, the GPUs and the servers.
The camera position is rendered directly without CPU setting its position so there is no lag in the client physics operations and rendered results.
Every several seconds, the CPU gets the particle buffer to determine the positions of NPC's.
It compares this to the servers version of where things should be.
The server version has windows of plausability for positions.
Correction of position based on server distribution