private void UpdateDebugTexture() { if (m_LookupTexture == null || m_DebugShader == null) { return; } if (m_DebugMaterial == null) { m_DebugMaterial = new Material(m_DebugShader); } DebugTexture.DiscardContents(); Graphics.Blit(m_LookupTexture, DebugTexture, m_DebugMaterial); }
void Update() { UpdateComputeShaderSettings(); if (activeTexture != lastActiveTexture) { lastActiveTexture = activeTexture; UpdateActiveTexture(); } if (simulate) { ComputeVelocityAdvection(); Swap(ref velocityTex, ref velocityOutTex); Project(); Viscosity(); ComputeDensityAdvection(); Swap(ref densityTex, ref densityOutTex); Diffusion(); ComputeTemperatureAdvection(); Swap(ref temperatureTex, ref temperatureOutTex); ComputeForces(); Swap(ref velocityTex, ref velocityOutTex); } CheckForMouse(); if (trackedObject != null) { ImpulseFromTrackedObject(); } // Delay to puff if (trackedSpline != null && trackedSplineTime < Time.realtimeSinceStartup - startTime) { ImpulseFromTrackedSpline(); trackedSplineTime = Time.realtimeSinceStartup - startTime + 0.05f; } }