Ejemplo n.º 1
0
        public void Render(ShaderResourceView tex, float dt)
        {
            ET += dt * 0.5f;

            //CentrePoint = new Vector2((float)Math.Cos(ET * 3.14f) * 1000 + RenderBase.RenderWidth / 2, (float)Math.Sin(ET) * 1000 + RenderBase.RenderHeight / 2);

            RenderBase.DeviceContext.InputAssembler.SetVertexBuffers(0, 0, IntPtr.Zero, IntPtr.Zero, IntPtr.Zero);
            RenderBase.DeviceContext.InputAssembler.SetIndexBuffer(null, (SharpDX.DXGI.Format) 0, 0);

            vertexShader.Set();
            RenderBase.DeviceContext.PixelShader.Set(pixelShader);
            RenderBase.DeviceContext.PixelShader.SetShaderResource(0, tex);

            RenderBase.DeviceContext.InputAssembler.PrimitiveTopology = PrimitiveTopology.TriangleList;
            //RenderBase.DeviceContext.OutputMerger.BlendState = RenderBase.Additive;

            var ds = cb.Map();

            ds.Write(CentrePoint);
            ds.Write(CutOff);
            //ds.Write((float)Math.Tan(ET * 0.1f * Math.Tan(ET * 2418.241f)) * 1.0f);
            ds.Write(Intensity);
            ds.Write(0);

            ds = null;

            cb.UnMap();

            cb.Set(3);

            RenderBase.DeviceContext.Draw(3, 0);

            //RenderBase.DeviceContext.OutputMerger.BlendState = RenderBase.Default;
        }
        public void Render()
        {
            RenderBase.DeviceContext.InputAssembler.SetVertexBuffers(0, 0, IntPtr.Zero, IntPtr.Zero, IntPtr.Zero);
            RenderBase.DeviceContext.InputAssembler.SetIndexBuffer(null, (SharpDX.DXGI.Format) 0, 0);

            vertexShader.Set();
            RenderBase.DeviceContext.PixelShader.Set(pixelShader);

            RenderBase.DeviceContext.InputAssembler.PrimitiveTopology = PrimitiveTopology.TriangleList;
            RenderBase.DeviceContext.OutputMerger.BlendState          = RenderBase.BlendStates.Additive;

            var ds = cb.Map();

            ds.Write(Manager.FishCount);
            ds.Write(150.0f * (1 + Input.XInputInput.State[0].LeftTrigger / 255.0f * 5) * (1 - Input.XInputInput.State[0].RightTrigger / 255.0f));
            ds.Write(Intensity);//(Input.XInputInput.State[0].LeftThumbY / (float)short.MaxValue + 1.0f) * 0.75f);
            ds.Write((et += (1.0f / 60.0f)) * 100.0f);

            for (int i = 0; i < FishManager.MAX_FISH_COUNT; i++)
            {
                if (Manager.FishList[i] != null)
                {
                    ds.Write(Manager.FishList[i].Position);
                    ds.Write(0.0f);
                    ds.Write(1.0f);
                }
                else
                {
                    ds.Write(Vector4.Zero);
                }
            }
            for (int i = 0; i < FishManager.MAX_FISH_COUNT; i++)
            {
                if (Manager.FishList[i] != null)
                {
                    ds.Write(Manager.FishList[i].Color);
                }
                else
                {
                    ds.Write(Vector4.Zero);
                }
            }
            ds = null;

            cb.UnMap();

            cb.Set(1);

            RenderBase.DeviceContext.Draw(3, 0);

            RenderBase.DeviceContext.OutputMerger.BlendState = RenderBase.BlendStates.Default;
        }
        public void Set(Vector3 dir, Vector3 col, float intensity)
        {
            var ds = cb.Map();

            dir.Normalize();
            ds.Write(dir);
            ds.Write(intensity);
            ds.Write(col);
            ds.Write(0.0f);

            ds = null;
            cb.UnMap();

            cb.Set(4);
        }