Browse Source

Cleanup of interpolation method

magicbox-1.5.2
MagicBot 1 year ago
parent
commit
7b8cafc8ac
  1. 23
      src/engine/InterestManagement/HeightMap.java

23
src/engine/InterestManagement/HeightMap.java

@ -405,32 +405,29 @@ public class HeightMap { @@ -405,32 +405,29 @@ public class HeightMap {
public float getInterpolatedTerrainHeight(Vector2f zoneLoc) {
Vector2f gridSquare;
float interpolatedHeight;
gridSquare = getGridSquare(zoneLoc);
Vector2f gridSquare = getGridSquare(zoneLoc);
int gridX = (int) gridSquare.x;
int gridY = (int) gridSquare.y;
float offsetX = (gridSquare.x - gridX);
float offsetY = gridSquare.y - gridY;
//get height of the 4 vertices.
//get 4 surrounding vertices from the pixel array.
float topLeftHeight;
float topRightHeight;
float bottomLeftHeight;
float bottomRightHeight;
int nextY = gridY + 1;
int nextX = gridX + 1;
topLeftHeight = pixelColorValues[gridX][gridY];
topRightHeight = pixelColorValues[nextX][gridY];
bottomLeftHeight = pixelColorValues[gridX][nextY];
bottomRightHeight = pixelColorValues[nextX][nextY];
topRightHeight = pixelColorValues[gridX + 1][gridY];
bottomLeftHeight = pixelColorValues[gridX][gridY + 1];
bottomRightHeight = pixelColorValues[gridX + 1][gridY + 1];
float interpolatedHeight;
// Interpolate between the 4 vertices
float offsetX = (gridSquare.x - gridX);
float offsetY = gridSquare.y - gridY;
interpolatedHeight = topRightHeight * (1 - offsetY) * (offsetX);
interpolatedHeight += (bottomRightHeight * offsetY * offsetX);

Loading…
Cancel
Save