예제 #1
0
        //metodo que se ayuda del SmartTerrain para calcular la altura en un punto...no se si va en esta clase
        //la idea inicial era que el interaction manager conozca al terreno y le pregunten a el, pero la verdad
        //que el que conoce su posicion es el colisionable para pedirsela al terreno
        public float alturaEnPunto(float X, float Z)
        {
            float Y;

            SmartTerrain terreno = (SmartTerrain)GuiController.Instance.UserVars.getValue("terreno");

            terreno.interpoledHeight(this.Position.X, this.Position.Z, out Y);

            return(Y);
        }
예제 #2
0
        //refactorear esto...
        //dice la altura de un punto sobre el mar tomando en cuenta al shader
        public static float alturaEnPunto(float X, float Z)
        {
            SmartTerrain terrain = (SmartTerrain)GuiController.Instance.UserVars.getValue("terreno");
            float        time    = (float)GuiController.Instance.UserVars.getValue("time");
            float        heighM  = 90;
            float        scaleY  = (float)GuiController.Instance.Modifiers.getValue("AlturaMarea");
            Vector2      texCoords;

            terrain.xzToHeightmapCoords(X, Z, out texCoords);
            float frecuencia = 10;
            float ola        = frecuencia * FastMath.Sin(texCoords.X / 5 - time) * frecuencia * FastMath.Cos(texCoords.Y / 2 - time);

            //float olita = (frecuencia / 3) * FastMath.Cos(texCoords.X     - time * 3) * (frecuencia / 2.5f) * FastMath.Sin(texCoords.Y     - time * 3);
            return((ola + heighM) * scaleY);
        }
예제 #3
0
        public void crearHeightmaps()
        {
            //crea el plano del oceano
            currentHeightmap = GuiController.Instance.AlumnoEjemplosMediaDir + "RenderGroup\\texturas\\PerlinNoise.jpg";
            currentTexture   = GuiController.Instance.AlumnoEjemplosMediaDir + "RenderGroup\\\\texturas\\color_agua5.png";
            terrain          = new SmartTerrain();
            terrain.loadHeightmap(currentHeightmap, currentScaleXZ, /* (float)GuiController.Instance.Modifiers["WorldSize"], (float)GuiController.Instance.Modifiers["AlturaMarea"]*/ 0, new Vector3(0, 0, 0));
            terrain.loadTexture(currentTexture);

            GuiController.Instance.UserVars.addVar("terreno", terrain); //NO TOCAR LINEA - HERE BE DRAGONS - EL TP EXPLOTA

            //crea el plano de la cascada
            currentHeightmap2 = GuiController.Instance.AlumnoEjemplosMediaDir + "RenderGroup\\texturas\\cascadaAltura.jpg";
            currentTexture2   = GuiController.Instance.AlumnoEjemplosMediaDir + "RenderGroup\\\\texturas\\cascada.png";
            terrain2          = new SmartTerrain();
            terrain2.loadHeightmap(currentHeightmap2, currentScaleXZ /*(float)GuiController.Instance.Modifiers["WorldSize"]*/, 5.7f, new Vector3(0, -30, 0));
            terrain2.loadTexture(currentTexture2);
        }
예제 #4
0
        public void crearHeightmaps()
        {
            //crea el plano del oceano
            currentHeightmap = GuiController.Instance.AlumnoEjemplosMediaDir + "RenderGroup\\texturas\\PerlinNoise.jpg";
            currentTexture = GuiController.Instance.AlumnoEjemplosMediaDir + "RenderGroup\\\\texturas\\color_agua5.png";
            terrain = new SmartTerrain();
            terrain.loadHeightmap(currentHeightmap, currentScaleXZ,/* (float)GuiController.Instance.Modifiers["WorldSize"], (float)GuiController.Instance.Modifiers["AlturaMarea"]*/0, new Vector3(0, 0, 0));
            terrain.loadTexture(currentTexture);

            GuiController.Instance.UserVars.addVar("terreno", terrain); //NO TOCAR LINEA - HERE BE DRAGONS - EL TP EXPLOTA

            //crea el plano de la cascada
            currentHeightmap2 = GuiController.Instance.AlumnoEjemplosMediaDir + "RenderGroup\\texturas\\cascadaAltura.jpg";
            currentTexture2 = GuiController.Instance.AlumnoEjemplosMediaDir + "RenderGroup\\\\texturas\\cascada.png";
            terrain2 = new SmartTerrain();
            terrain2.loadHeightmap(currentHeightmap2, currentScaleXZ /*(float)GuiController.Instance.Modifiers["WorldSize"]*/, 5.7f, new Vector3(0, -30, 0));
            terrain2.loadTexture(currentTexture2);
        }