Hello terrain dont work

[java]package mygame;

import com.jme3.app.SimpleApplication;

import com.jme3.material.Material;

import com.jme3.renderer.Camera;

import com.jme3.terrain.geomipmap.TerrainLodControl;

import com.jme3.terrain.heightmap.AbstractHeightMap;

import com.jme3.terrain.geomipmap.TerrainQuad;

import com.jme3.terrain.heightmap.HillHeightMap; // is used in example 2

import com.jme3.terrain.heightmap.ImageBasedHeightMap;

import com.jme3.texture.Texture;

import com.jme3.texture.Texture.WrapMode;

import java.util.ArrayList;

import java.util.List;

import jme3tools.converters.ImageToAwt;

public class Main extends SimpleApplication {

private TerrainQuad terrain;

Material mat_terrain;

public static void main(String[] args) {

Main app = new Main();




public void simpleInitApp() {


/** 1. Create terrain material and load four textures into it. /

mat_terrain = new Material(assetManager, "Common/MatDefs/Terrain/Terrain.j3md");

* 1.1) Add ALPHA map (for red-blue-green coded splat textures) /



* 1.2) Add GRASS texture into the red layer (Tex1). /

Texture grass = assetManager.loadTexture("Textures/Terrain/splat/grass.jpg");


mat_terrain.setTexture("Tex1", grass);

mat_terrain.setFloat("Tex1Scale", 64f);

* 1.3) Add DIRT texture into the green layer (Tex2) /

Texture dirt = assetManager.loadTexture("Textures/Terrain/splat/dirt.jpg");


mat_terrain.setTexture("Tex2", dirt);

mat_terrain.setFloat("Tex2Scale", 32f);

* 1.4) Add ROAD texture into the blue layer (Tex3) /

Texture rock = assetManager.loadTexture("Textures/Terrain/splat/road.jpg");


mat_terrain.setTexture("Tex3", rock);

mat_terrain.setFloat("Tex3Scale", 128f);

* 2. Create the height map /

final Texture heightMapImage =


final AbstractHeightMap heightmap =

new ImageBasedHeightMap(


heightMapImage.getImage(), false, true, 0));


* 3. We have prepared material and heightmap. Now we create the actual terrain:

  • 3.1) We create a TerrainQuad and name it "my terrain".
  • 3.2) A good value for terrain tiles is 64x64 – so we supply 64+1=65.
  • 3.3) We prepared a heightmap of size 512x512 – so we supply 512+1=513.
  • 3.4) As LOD step scale we supply Vector3f(1,1,1).
  • 3.5) At last, we supply the prepared heightmap itself.


    terrain = new TerrainQuad(“my terrain”, 65, 513, heightmap.getHeightMap());

    * 4. We give the terrain its material, position & scale it, and attach it. /


    terrain.setLocalTranslation(0, -100, 0);

    terrain.setLocalScale(2f, 1f, 2f);


    * 5. The LOD (level of detail) depends on were the camera is: */

    List<Camera> cameras = new ArrayList<Camera>();


    TerrainLodControl control = new TerrainLodControl(terrain, cameras);






    Description: I tried use alphamap and heightmap not using j3o territorry object, so i tried hello terrain and it dont look like it should. Alpha map and terrain map are other then it created from it

    Before question: I use hello terrain alphamap/ heightmap and textures

It looks like it worked. You have a functioning alpha map and terrain with hills as the demo shows.


i mean diffrence between less and more “gray” affect too many at hills.

but now looking on this images it seem work, but its “UGLY”. And this ugly make me mistake

so if its ok, then sorry. i just see this hello terrain look like it dont work (maybe premeditated). It should have better alphamap for this :wink:

BTW: So if i create alphamap, it must be flipped?

ahh I see what you mean

yup there was a recent change to unflip the alpha map, I just haven’t updated HelloTerrain to handle that yet.

You just have to change the boolean parameters on line 51 of the test example above, set the booleans to false.

Sorry I lied there. It code been updated. The alpha map image just hasn’t been updated to reflect that change. I will change that today.

Sorry for the confusion