internal static void Init() { MyGPUEmitters.Init(); m_resetSystem = true; m_csInitDeadList = MyShaders.CreateCs("Transparent/GPUParticles/InitDeadList.hlsl", null); m_csResetParticles = MyShaders.CreateCs("Transparent/GPUParticles/Reset.hlsl", null); m_csEmit = MyShaders.CreateCs("Transparent/GPUParticles/Emit.hlsl", null); m_csEmitSkipFix = MyShaders.CreateCs("Transparent/GPUParticles/EmitSkipFix.hlsl", null); m_csSimulate = MyShaders.CreateCs("Transparent/GPUParticles/Simulation.hlsl", null); var macrosRender = new[] { new ShaderMacro("STREAKS", null), new ShaderMacro("LIT_PARTICLE", null) }; var macrosRenderOIT = new[] { new ShaderMacro("STREAKS", null), new ShaderMacro("LIT_PARTICLE", null), new ShaderMacro("OIT", null) }; m_vs = MyShaders.CreateVs("Transparent/GPUParticles/Render.hlsl", macrosRender); m_ps = MyShaders.CreatePs("Transparent/GPUParticles/Render.hlsl", macrosRender); m_psOIT = MyShaders.CreatePs("Transparent/GPUParticles/Render.hlsl", macrosRenderOIT); var macroDebug = new[] { new ShaderMacro("DEBUG_UNIFORM_ACCUM", null) }; m_psDebugUniformAccum = MyShaders.CreatePs("Transparent/GPUParticles/Render.hlsl", MyShaders.ConcatenateMacros(macrosRender, macroDebug)); m_psDebugUniformAccumOIT = MyShaders.CreatePs("Transparent/GPUParticles/Render.hlsl", MyShaders.ConcatenateMacros(macrosRenderOIT, macroDebug)); InitDevice(); }
internal static void Init() { MyGPUEmitters.Init(); m_resetSystem = true; m_csInitDeadList = MyShaders.CreateCs("Particles/InitDeadList.hlsl", null); m_csResetParticles = MyShaders.CreateCs("Particles/Reset.hlsl", null); m_csEmit = MyShaders.CreateCs("Particles/Emit.hlsl", null); m_csSimulate = MyShaders.CreateCs("Particles/Simulation.hlsl", null); var macrosRender = new[] { new ShaderMacro("STREAKS", null), new ShaderMacro("LIT_PARTICLE", null) }; var macrosRenderOIT = new[] { new ShaderMacro("STREAKS", null), new ShaderMacro("LIT_PARTICLE", null), new ShaderMacro("OIT", null) }; m_vs = MyShaders.CreateVs("Particles/Render.hlsl", macrosRender); m_ps = MyShaders.CreatePs("Particles/Render.hlsl", macrosRender); m_psOIT = MyShaders.CreatePs("Particles/Render.hlsl", macrosRenderOIT); InitDevice(); }