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