/// <summary> /// Método que se llama cada vez que hay que refrescar la pantalla. /// Escribir aquí todo el código referido al renderizado. /// Borrar todo lo que no haga falta /// </summary> /// <param name="elapsedTime">Tiempo en segundos transcurridos desde el último frame</param> public override void render(float elapsedTime) { GuiController.Instance.FpsCounterEnable = true; if (Utiles.CamaraSumergida) { Postprocesador.CambiarRenderState(); } //Device de DirectX para renderizar Device d3dDevice = GuiController.Instance.D3dDevice; // Procesa los sonidos Sonidos.Procesar(); // las camaras solo se modifican cuando no esta activo el frustum culling // asi podemos usar la fps para culling y la 3rd person para mostrarlo if (!ParametrosDeConfiguracion.VerFrustumCulling) { GuiController.Instance.FpsCamera.Enable = ParametrosDeConfiguracion.CamaraLibre; GuiController.Instance.ThirdPersonCamera.Enable = !ParametrosDeConfiguracion.CamaraLibre; } // Procea Dispositivos de entrada (teclado y mouse) DispositivosDeEntrada.Procesar(); //Renderizar el Rayo //Rayo.Render(); Oceano.RenderRefraccion(); Oceano.RenderReflexion(); d3dDevice.Clear(ClearFlags.ZBuffer | ClearFlags.Target, ParametrosDeConfiguracion.Agua.Color.ToArgb(), 1.0f, 0); // pongo los rendering states d3dDevice.RenderState.ZBufferEnable = true; d3dDevice.RenderState.ZBufferWriteEnable = true; d3dDevice.RenderState.ZBufferFunction = Compare.LessEqual; //d3dDevice.RenderState.AlphaBlendEnable = false; // Renderizar SkyDome SkyDome.Render(); // Renderiza el efecto niebla if (ParametrosDeConfiguracion.Niebla) { Niebla.Render(); } // Renderizar Oceano Oceano.Render(); // Renderizo Barco Barco.Render(EstadoRender.NORMAL); // Render isla y faro Isla.Render(); Faro.Render(); // Seteo el sol como fuente de luz Sol.Render(EstadoRender.NORMAL); Lluvia.Render(); if (ParametrosDeConfiguracion.RenderQuadTree) { QuadTree.Render(); } if (Postprocesador.Trabajando) { Postprocesador.RenderPostProcesado(); } // Proceso logica de juego y dibujo monedas Juego.Procesar(); // Volver a dibujar FPS GuiController.Instance.Text3d.drawText("FPS: " + HighResolutionTimer.Instance.FramesPerSecond, 0, 0, Color.Yellow); GuiController.Instance.AxisLines.render(); }