- Home /
Why do programmatically generated textures behave differently than manually added textures when used as Terrain splats?
When I add programmatically generated textures versus manually added textures (jpeg files added through the inspector) as splats to my Terrain object they disappear from view when I am viewing the terrain close up. The textures are each 1x1 pixel. The manually added textures derived from the jpeg files work fine regardless of distance.
public SplatData[] Splats;
public boolean useManualSplat = true;
void BuildSplats(TerrainData terrainData){
if (useManualSplat) {
SplatPrototype[] splatPrototypes = new SplatPrototype[ Splats.Length ];
for (int i = 0; i < Splats.Length; i++){
splatPrototypes[i] = new SplatPrototype();
splatPrototypes[i].texture = Splats[i].Texture;
splatPrototypes[i].tileSize = new Vector2(Splats[i].Size, Splats[i].Size);
}
terrainData.splatPrototypes = splatPrototypes;
} else {
SplatPrototype[] splatPrototypes = new SplatPrototype[ 2 ];
splatPrototypes [0] = new SplatPrototype ();
splatPrototypes[0].texture = new Texture2D(2,2);
splatPrototypes [0].texture.Apply ();
SetSplatColor (splatPrototypes[0].texture, Color.red);
splatPrototypes [0].tileSize = new Vector2 (100f, 100f);
splatPrototypes [1] = new SplatPrototype ();
splatPrototypes[1].texture = new Texture2D(2,2);
splatPrototypes [1].texture.Apply ();
SetSplatColor (splatPrototypes[1].texture, Color.red);
splatPrototypes [1].tileSize = new Vector2 (100f, 100f);
}
}
void SetSplatColor(Texture2D splat, Color c){
for (int i = 0; i < splat.width; i++) {
for (int j = 0; j < splat.height; j++) {
splat.SetPixel (i, j, c);
}
}
}
Programmatic textures used as splats... note the grey/default color is too close and therefore the textures (red/green) are not drawn. If I zoom out more of the terrain is colored and if I zoom in non of it will be colored:
Manually added jpeg derived splats... red/green color is visible from any distance:
I am very curious what makes the textures different so that I can use programmatic textures and to improve my understanding of the Unity's rendering process.
Your answer
Follow this Question
Related Questions
How to change textures on terrain? 2 Answers
Terrain look 1 Answer
TriPlanar Textures Not Working Properly 1 Answer
How do I extract a texture map from a terrain? 1 Answer
Sharper terrain textures 1 Answer