Exemple #1
0
        private void renderJuego(float elapsedTime, Device d3dDevice)
        {
            //Poner luz a los meshes
            Vector3 posLuz = new Vector3(POS_SHIP.X - 10000, POS_SHIP.Y + 5000, POS_SHIP.Z - 25000);

            lightMesh.Position = posLuz;

            this.cargarLuces(posLuz);

            lightMesh.render();

            //Obtener valor modifier
            heightOlas = (float)GuiController.Instance.Modifiers["heightOlas"];

            //Device device = GuiController.Instance.D3dDevice;
            time += elapsedTime;
            d3dDevice.Clear(ClearFlags.Target | ClearFlags.ZBuffer, Color.DarkSlateBlue, 1.0f, 0);

            update(elapsedTime, time);



            terrain.render();

            skyBox.render();
            //skyBoundingBox.render();

            // Cargar variables de shader, por ejemplo el tiempo transcurrido.
            effect.SetValue("time", time);
            effect.SetValue("height", heightOlas);
            effect.SetValue("menorAltura", terrain.menorVerticeEnY);
            effect.SetValue("offset", (float)(terrain.Center.Y * currentScaleY));
            effect.SetValue("texHeightmap", TerrenoSimple.toTexture(currentHeightmap));
            //GuiController.Instance.Logger.log("OFFSET: " + (terrain.Center.Y * currentScaleY).ToString() + "MENOR ALTURA: " + terrain.menorVerticeEnY);

            efectoSombra.SetValue("time", time);
            efectoSombra.SetValue("height", heightOlas);
            efectoSombra.SetValue("menorAltura", terrain.menorVerticeEnY);
            efectoSombra.SetValue("offset", (float)(terrain.Center.Y * currentScaleY));
            efectoSombra.SetValue("texHeightmap", TerrenoSimple.toTexture(currentHeightmap));

            agua.heightOlas       = heightOlas;
            agua.AlphaBlendEnable = true;
            agua.render();

            d3dDevice.Transform.World = Matrix.Identity;

            TgcD3dInput input = GuiController.Instance.D3dInput;

            if (input.keyPressed(Microsoft.DirectX.DirectInput.Key.L))
            {
                lloviendo = lloviendo ? false : true;
            }

            ship.renderizar();
            shipContrincante.renderizar();
            lluvia.render();
        }