1

**Support / Texture Blending on a heightmap/surfacemap**

« **on:**March 04, 2016, 05:34:33 pm »

I am loading a heightmap, and texturing it based upon the data stored in the map format. I would like to apply texture blending to this.

I use the following for preparing the triangles/UV coordinates

Does anyone have any tips or advice they could give me for making this look nicer?

I use the following for preparing the triangles/UV coordinates

Code: [Select]

` /**`

* The terrain heights are calculated now. Now we have to build an

* Object3D from them.

*/

Object3D ground = new Object3D(width * height * 2);

for (int x = 0; x < width - 1; x++) {

for (int z = 0; z < height - 1; z++) {

int x1 = x * 10;

int x2 = (x + 1) * 10;

int z1 = z * 10;

int z2 = (z + 1) * 10;

float southwestY = heights[x][z];

float southeastY = heights[x + 1][z];

float northwestY = heights[x][z + 1];

float northeastY = heights[x + 1][z + 1];

/*

* Triangles start being drawn at the smallest 'x' Cartesian coordinate in jpct.

* You then go clockwise to fill in the rest of the points.

*

*0,1-1,1

* | /|

* | / |

* |/ |

*0,0-1,0

*

* Above is a cheat sheet for the coordinates.

*

*

* TODO: Implement it such we can select the triangle hypotenuse for the tile based

* on surrounding textures. This should improve blending when that finally gets implemented.

*/

// 0,1

// |\

// | \

// | \

// |___\

// 0,0, 1,0

ground.addTriangle(

new SimpleVector(x1, southwestY, z1), 0,0,

new SimpleVector(x2, southeastY, z1),0,1,

new SimpleVector(x1, northwestY, z2), 1,0,

fetchTexture(surfaces[x][z]));

//

//0,1____1,1

// \ |

// \ |

// \|

// 1,0,

ground.addTriangle(

new SimpleVector(x1, northwestY, z2), 1, 0,

new SimpleVector(x2, southeastY, z1), 0, 1,

new SimpleVector(x2, northeastY, z2),1, 1,

fetchTexture(surfaces[x][z]));

// TODO

// ____

// /|

// / |

// / |

// /__ |

}

}

Does anyone have any tips or advice they could give me for making this look nicer?