Example #1
0
        public static ParticleRenderableComponent GetParticlesCom()
        {
            var name = "Particle";

            var compiler = new D3DShaderCompilator(null);

            var vertex = new ShaderInMemoryInfo(name + "Vertex", ShaderStructures + VertexShaderText,
                                                compiler.Compile(ShaderStructures + VertexShaderText,
                                                                 "TriangleVS", ShaderStages.Vertex.ToString()),
                                                ShaderStages.Vertex.ToString(), "TriangleVS");

            //var geometry = new ShaderInMemoryInfo(name + "Geometry", ShaderStructures + GeometryShaderText,
            //    compiler.Compile(ShaderStructures + GeometryShaderText,
            //        "TriangleGS", ShaderStages.Geometry.ToString()),
            //    ShaderStages.Geometry.ToString(), "TriangleGS");

            var pixel = new ShaderInMemoryInfo(name + "Pixel", ShaderStructures + PixelShaderText,
                                               compiler.Compile(ShaderStructures + PixelShaderText,
                                                                "TrianglePS", ShaderStages.Fragment.ToString()),
                                               ShaderStages.Fragment.ToString(), "TrianglePS");

            var pass = new ShaderTechniquePass(new IShaderInfo[] { vertex, /*geometry,*/ pixel });

            var shader = new ParticleShaderSpecification(new[] { pass });

            return(new ParticleRenderableComponent(shader, new ParticleDeviceBufferesUpdater(shader)));
        }
Example #2
0
            public ParticleDeviceBufferesUpdater(ParticleShaderSpecification shader) : base(shader)
            {
                particles = new Particle[PARTICLES_COUNT];
                var random = new System.Random();

                for (int i = 0; i < PARTICLES_COUNT; i++)
                {
                    particles[i].Position = random.NextVector3(new Vector3(-30f, -30f, -30f), new Vector3(30f, 30f, 30f));
                }
            }