Ejemplo n.º 1
0
 internal static void Init()
 {
     var threadMacro = new[] { new ShaderMacro("NUMTHREADS", 8) };
     //MyRender11.RegisterSettingsChangedListener(new OnSettingsChangedDelegate(RecreateShadersForSettings));
     m_bloomShader = MyShaders.CreateCs("Postprocess/Bloom/Init.hlsl",threadMacro);
     m_downscale2Shader = MyShaders.CreateCs("Postprocess/Bloom/Downscale2.hlsl", threadMacro);
     m_downscale4Shader = MyShaders.CreateCs("Postprocess/Bloom/Downscale4.hlsl", threadMacro);
     m_blurH = new ComputeShaderId[MAX_GAUSSIAN_SAMPLES];
     m_blurV = new ComputeShaderId[MAX_GAUSSIAN_SAMPLES];
     for (int i = 0; i < MAX_GAUSSIAN_SAMPLES; i ++)
     {
         var macros = new[] {new ShaderMacro("HORIZONTAL", null), new ShaderMacro("NUMTHREADS", 8), 
             new ShaderMacro("NUM_GAUSSIAN_SAMPLES", ((i % 2) > 0)? (i + 1) : i)};
         m_blurH[i] = MyShaders.CreateCs("Postprocess/Bloom/Blur.hlsl", macros);
         macros = new[] {new ShaderMacro("NUMTHREADS", 8), 
             new ShaderMacro("NUM_GAUSSIAN_SAMPLES", ((i % 2) > 0)? (i + 1) : i)};
         m_blurV[i] = MyShaders.CreateCs("Postprocess/Bloom/Blur.hlsl", macros);
     }
 }
Ejemplo n.º 2
0
        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_csEmitSkipFix = MyShaders.CreateCs("Particles/EmitSkipFix.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();
        }