Question by
gamer4717 · Apr 30, 2017 at 02:33 PM ·
terraincolortexture2dterraindataterraintexture
How to convert splat map to regular ol' map of terrain
So I've trying to make just a texture2d of my terrain. What I have done so far is get the average pixel of each surface texture in an array and now I'm stuck. How can I use the splat map(s) to piece together a satellite image of the terrain?
public class TerrainSatteliteCalculator : MonoBehaviour {
public TerrainData td;
public Texture2D[] textures;
public Color[] avgColors;
public Object[] terrainPrefabs;
public void getColorData () {
//grabs terrain data
td = td = Resources.Load("Terrains/" + SelectTerrainMenu.publicTerrainList[SelectTerrainMenu.terrainIndex]) as TerrainData;
//setup arrays
int length = td.splatPrototypes.Length;
textures = new Texture2D[length];
avgColors = new Color[length];
//converts splatprotos to t2d
int i = 0;
foreach(SplatPrototype splt in td.splatPrototypes)
{
textures[i] = splt.texture;
i++;
}
//gets the average color of each t2d
i = 0;
foreach (Texture2D t2d in textures)
{
Color[] colors = t2d.GetPixels();
Color myColor = colors[0];
for (int a = 1; a < colors.Length; a++)
{
myColor = Color.Lerp(myColor, colors[a], .5f);
}
avgColors[i] = myColor;
i++;
}
//this is where im stuck at. Basically I need to figure out how I can use the splatAlpha textures in order to get a sattelite map of my terrain
}
}
Comment
Your answer
Follow this Question
Related Questions
terrain.AddTreeInstance() does not generate collider 0 Answers
Can't Change The Smoothness of Terrain Layers 0 Answers
Terrain Layers cannot be populated at the same time as the splats 3 Answers
How do I set a Render Texture as the HeightMap for a Terrain? 0 Answers
How to modify a Terrain at runtime and get back to original Terrain on exit? 2 Answers