Hello Terrain error

Hi all.

I have error.

https://wiki.jmonkeyengine.org/legacy/doku.php/jme3:beginner:hello_terrain



package mygame;

import com.jme3.app.SimpleApplication;

import com.jme3.material.Material;

import com.jme3.terrain.geomipmap.TerrainLodControl;

import com.jme3.terrain.heightmap.AbstractHeightMap;

import com.jme3.terrain.geomipmap.TerrainQuad;

import com.jme3.terrain.geomipmap.lodcalc.DistanceLodCalculator;

import com.jme3.terrain.heightmap.HillHeightMap; // for exercise 2

import com.jme3.terrain.heightmap.ImageBasedHeightMap;

import com.jme3.texture.Texture;

import com.jme3.texture.Texture.WrapMode;

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();

app.start();

}



@Override

public void simpleInitApp() {

flyCam.setMoveSpeed(50);



/** 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) /

mat_terrain.setTexture(“Alpha”, assetManager.loadTexture(

“Textures/Terrain/splat/alphamap.png”));



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

Texture grass = assetManager.loadTexture(

“Textures/Terrain/splat/grass.jpg”);

grass.setWrap(WrapMode.Repeat);

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”);

dirt.setWrap(WrapMode.Repeat);

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”);

rock.setWrap(WrapMode.Repeat);

mat_terrain.setTexture(“Tex3”, rock);

mat_terrain.setFloat(“Tex3Scale”, 128f);



/
* 2. Create the height map /

AbstractHeightMap heightmap = null;

Texture heightMapImage = assetManager.loadTexture(

“Textures/Terrain/splat/mountains512.png”);

heightmap = new ImageBasedHeightMap(

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

heightmap.load();



/
* 3. We have prepared material and heightmap.

  • Now we create the actual terrain:
  • 3.1) 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) We supply the prepared heightmap itself.

    /

    int patchSize = 65;

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



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

    terrain.setMaterial(mat_terrain);

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

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

    rootNode.attachChild(terrain);



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

    TerrainLodControl control = new TerrainLodControl(terrain, getCamera());

    control.setLodCalculator( new DistanceLodCalculator(patchSize, 2.7f) ); // patch size, and a multiplier

    terrain.addControl(control);

    }

    }



    screen

    http://saveimg.ru/pictures/29-09-11/f296530eea88316c6a405247eb68bc49.png

It could be better if you took a print screen of the class with compilation error at this part of the code:

[java]

TerrainLodControl control = new TerrainLodControl(terrain, getCamera());

control.setLodCalculator( new DistanceLodCalculator(patchSize, 2.7f) ); // patch size, and a multiplier

terrain.addControl(control);

[/java]

update to nightly, in jmp: tools > plugins > settings > update to nightly.

wezrule

nightly updates have not been found (

glaucomardano

compilation error :

Compiling 1 source file to C:UsersuserDocumentsjMonkeyProjectsBasicGamebuildclasses

C:UsersuserDocumentsjMonkeyProjectsBasicGamesrcmygameMain.java:83: cannot find symbol

symbol : constructor TerrainLodControl(com.jme3.terrain.geomipmap.TerrainQuad,com.jme3.renderer.Camera)

location: class com.jme3.terrain.geomipmap.TerrainLodControl

TerrainLodControl control = new TerrainLodControl(terrain, getCamera());

C:UsersuserDocumentsjMonkeyProjectsBasicGamesrcmygameMain.java:84: cannot find symbol

symbol : constructor DistanceLodCalculator(int,float)

location: class com.jme3.terrain.geomipmap.lodcalc.DistanceLodCalculator

control.setLodCalculator( new DistanceLodCalculator(patchSize, 2.7f) ); // patch size, and a multiplier

2 errors

C:UsersuserDocumentsjMonkeyProjectsBasicGamenbprojectbuild-impl.xml:597: The following error occurred while executing this line:

C:UsersuserDocumentsjMonkeyProjectsBasicGamenbprojectbuild-impl.xml:282: Compile failed; see the compiler error output for details.

BUILD FAILED (total time: 1 second)

If you really wanna learn something of terrain, create a new TestProject and look at the source code of the terrain tests. I think HelloTerrain is there.

glaucomardano

Thank you. I will learn to test

@nigol: Do you know the “TestProject” is a project template of the jMonkeyPlataform ok? create it via "new---->project


>TestProject".

thanks, found it. I will learn from them.