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); }
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); }