Ejemplo n.º 1
0
        private void initShaders()
        {
            plane.Effect = GuiController.Instance.Shaders.TgcMeshPhongShader;

            //inicializacion fuego
            string pathFuego = GuiController.Instance.AlumnoEjemplosMediaDir + "Jet_Pilot\\fuego\\";
            Device d3dDevice = GuiController.Instance.D3dDevice;

            efFuego = TgcShaders.loadEffect(pathFuego + "Fire.fx");
            //render target
            g_pRenderTargetFuego = new Texture(d3dDevice,
                                               d3dDevice.PresentationParameters.BackBufferWidth,
                                               d3dDevice.PresentationParameters.BackBufferHeight,
                                               1, Usage.RenderTarget, Format.A16B16G16R16, Pool.Default);
            //cargo texturas
            fuegoBase       = TgcTexture.createTexture(pathFuego + "FireBase.bmp");
            fuegoDistorsion = TgcTexture.createTexture(pathFuego + "FireDistortion.bmp");
            fuegoOpacidad   = TgcTexture.createTexture(pathFuego + "FireOpacity.bmp");

            g_pDepthStencil = d3dDevice.CreateDepthStencilSurface(d3dDevice.PresentationParameters.BackBufferWidth,
                                                                  d3dDevice.PresentationParameters.BackBufferHeight,
                                                                  DepthFormat.D24S8,
                                                                  MultiSampleType.None,
                                                                  0,
                                                                  true);

            //creo un Screen Aligned Quad para renderizar la textura del fuego
            vertexFuego[] vertices = new vertexFuego[]
            {
                new vertexFuego(new Vector3(-1, 1, 1), new Vector2(0, 0), new Vector2(0, 0), new Vector2(0, 0), new Vector2(0, 0)),
                new vertexFuego(new Vector3(1, 1, 1), new Vector2(1, 0), new Vector2(1, 0), new Vector2(1, 0), new Vector2(1, 0)),
                new vertexFuego(new Vector3(-1, -1, 1), new Vector2(0, 1), new Vector2(0, 1), new Vector2(0, 1), new Vector2(0, 1)),
                new vertexFuego(new Vector3(1, -1, 1), new Vector2(1, 1), new Vector2(1, 1), new Vector2(1, 1), new Vector2(1, 1))
            };
            //vertex buffer de los triangulos
            g_pVBV3D = new VertexBuffer(typeof(vertexFuego),
                                        4, d3dDevice, Usage.Dynamic | Usage.WriteOnly,
                                        vertexFuego.Format, Pool.Default);

            g_pVBV3D.SetData(vertices, 0, LockFlags.None);
        }
Ejemplo n.º 2
0
        private void initShaders()
        {
            plane.Effect = GuiController.Instance.Shaders.TgcMeshPhongShader;

            //inicializacion fuego
            string pathFuego = GuiController.Instance.AlumnoEjemplosMediaDir + "Jet_Pilot\\fuego\\";
            Device d3dDevice = GuiController.Instance.D3dDevice;

            efFuego = TgcShaders.loadEffect(pathFuego + "Fire.fx");
            //render target
            g_pRenderTargetFuego = new Texture(d3dDevice,
                                            d3dDevice.PresentationParameters.BackBufferWidth,
                                            d3dDevice.PresentationParameters.BackBufferHeight,
                                            1, Usage.RenderTarget, Format.A16B16G16R16, Pool.Default);
            //cargo texturas
            fuegoBase = TgcTexture.createTexture( pathFuego + "FireBase.bmp");
            fuegoDistorsion = TgcTexture.createTexture(pathFuego + "FireDistortion.bmp");
            fuegoOpacidad = TgcTexture.createTexture(pathFuego + "FireOpacity.bmp");

            g_pDepthStencil = d3dDevice.CreateDepthStencilSurface(d3dDevice.PresentationParameters.BackBufferWidth,
                                                                         d3dDevice.PresentationParameters.BackBufferHeight,
                                                                         DepthFormat.D24S8,
                                                                         MultiSampleType.None,
                                                                         0,
                                                                         true);

            //creo un Screen Aligned Quad para renderizar la textura del fuego
            vertexFuego[] vertices = new vertexFuego[]
            {
                new vertexFuego( new Vector3(-1, 1, 1),new Vector2(0,0), new Vector2(0,0), new Vector2(0,0), new Vector2(0,0) ),
                new vertexFuego(new Vector3(1, 1, 1), new Vector2(1,0), new Vector2(1,0), new Vector2(1,0), new Vector2(1,0) ),
                new vertexFuego(new Vector3(-1, -1, 1), new Vector2(0,1), new Vector2(0,1), new Vector2(0,1), new Vector2(0,1) ),
                new vertexFuego(new Vector3(1,-1, 1), new Vector2(1,1), new Vector2(1,1), new Vector2(1,1), new Vector2(1,1) )
            };
            //vertex buffer de los triangulos
            g_pVBV3D = new VertexBuffer(typeof(vertexFuego),
                    4, d3dDevice, Usage.Dynamic | Usage.WriteOnly,
                        vertexFuego.Format , Pool.Default);

            g_pVBV3D.SetData(vertices, 0, LockFlags.None);
        }