void Dispatch(bool emit) { Profiler.BeginSample("Dispatch loop"); PartEmitter.UpdateParticleBursts(); BindParticles(); if (emit) { PartEmitter.UpdatePlayEvent(); } if (!NoSimulation) { //Dispatch the update kernel. SetPariclesToKernel(ComputeShader, UpdateAllKernel); Profiler.BeginSample("Main update"); ComputeShader.Dispatch(UpdateAllKernel, DispatchCount, 1, 1); Profiler.EndSample(); ColliderManager.Dispatch(); ForceManager.Dispatch(); } Profiler.EndSample(); }
void Dispatch(bool emit) { Profiler.BeginSample("Simulation loop"); Emitter.UpdateForDispatch(); BindParticles(); if (emit) { Emitter.UpdatePlayEvent(m_prevSystemTime); m_prevSystemTime = SystemTime; } if (!NoSimulation) { Profiler.BeginSample("Pre Extenions update"); if (OnPreSimulationCallback != null) { OnPreSimulationCallback(); } Profiler.EndSample(); Profiler.BeginSample("Main update"); DispatchExtensionKernel(ComputeShader, UpdateAllKernel); Profiler.EndSample(); Profiler.BeginSample("Post Extenions update"); if (OnPostSimulationCallback != null) { OnPostSimulationCallback(); } Profiler.EndSample(); ColliderManager.Dispatch(); ForceManager.Dispatch(); } Profiler.EndSample(); }