public override void Execute(ScriptableRenderContext context, ref RenderingData renderingData) { if (renderingData.cameraData.camera.tag.Equals("MainCamera")) { CommandBuffer cmd = CommandBufferPool.Get(m_ProfilerTag); for (int i = 0; i < windDatas.Count; ++i) { var data = windDatas[i]; InteractiveWindManager.FinalizeWindData( cmd, settings.finalizeShader, data ); } context.ExecuteCommandBuffer(cmd); CommandBufferPool.Release(cmd); } }
public void OnEnable() { InteractiveWindManager.Register(GetComponent <VisualEffect>()); }
public override void Execute(ScriptableRenderContext context, ref RenderingData renderingData) { if (renderingData.cameraData.camera.tag.Equals("MainCamera")) { CommandBuffer cmd = CommandBufferPool.Get(m_ProfilerTag); float dt = TIME_STEP; for (int i = 0; i < windDatas.Count; ++i) { var data = windDatas[i]; InteractiveWindManager.ComputeObstacles( cmd, windSettings.m_computeObstacles, data); InteractiveWindManager.ApplyAdvection( cmd, windSettings.m_applyAdvect, data, dt, data.systemData.m_temperatureDissipation, 0.0f, data.m_temperature); if (data.systemData.m_advectionType == WindSystemData.ADVECTION.BFECC) { // do nothing } else if (data.systemData.m_advectionType == WindSystemData.ADVECTION.BFECC) { } else { InteractiveWindManager.ApplyAdvection( cmd, windSettings.m_applyAdvect, data, dt, data.systemData.m_densityDissipation, 0.0f, data.m_density); } InteractiveWindManager.ApplyAdvectionVelocity( cmd, windSettings.m_applyAdvect, data, dt ); InteractiveWindManager.ApplyBuoyancy( cmd, windSettings.m_applyBuoyancy, data, dt ); InteractiveWindManager.ApplyImpulse( cmd, windSettings.m_applyImpulse, data, dt, data.systemData.m_densityAmount, data.m_density ); InteractiveWindManager.ApplyImpulse( cmd, windSettings.m_applyImpulse, data, dt, data.systemData.m_temperatureAmount, data.m_temperature ); InteractiveWindManager.ComputeVorticity( cmd, windSettings.m_computeVorticity, data, dt ); InteractiveWindManager.ComputeConfinement( cmd, windSettings.m_computeConfinement, data, dt ); InteractiveWindManager.ComputeDivergence( cmd, windSettings.m_computeDivergence, data ); InteractiveWindManager.ComputePressure( cmd, windSettings.m_computeJacobi, data ); InteractiveWindManager.ComputeProjection( cmd, windSettings.m_computeProjection, data ); } context.ExecuteCommandBuffer(cmd); CommandBufferPool.Release(cmd); } }