here are some problems that i noticed, they may help you ^^ :
1. the scaling at creation doesnt work and the scaling after creation with setScale does not work good either
2. with patchsize 17 and terrainsize of 256 or greater i get slow framerates with opengl sometimes too. and heightmaps above 512 seem really slow to me, i dont know why.
3. if you scale the terrain bigger with setScale, the terrain sometimes disappears at certain camera angles.
4. the terrain with patch size 17 has edges (is not smooth).
5. if i set maxLod to smaller as 5 or bigger as 5 it gets reaally slow.
6. makePlanarTextureMapping does not work with the terrain, i always get errors.
that was everything that i noticed until now, it seems that its quite stable

keep up the good work! you´re the man!!!
edit: maybe im doing something wrong with the terrain scaling? i post my code here:
Code: Select all
void CGame::CWorld_createGeoTerrain(IGeoMipMapSceneNode* mipmap,
ITexture* terraintexture,
ITexture* terrainlightmap,
const c8* terrainheightmap,
int maxLevelOfDetail,
int maxGridResolution,
vector3df terrainPosition,
vector3df terrainRotation,
vector3df terrainSize,
bool debug)
{
mipmap = CScene->addGeoMipMapSceneNode (0, -1, maxLevelOfDetail, maxGridResolution,
terrainPosition,
terrainRotation,
terrainSize);
mipmap->LoadHeightMap (terrainheightmap);
mipmap->setMaterialTexture (0, terraintexture);
mipmap->setMaterialTexture (1, terrainlightmap);
mipmap->setMaterialFlag (EMF_LIGHTING, true);
mipmap->setMaterialFlag (EMF_FOG_ENABLE, true);
//for testing
mipmap->setScale(vector3df(5.0f, 5.0f, 5.0f));
if(debug == true){mipmap->setMaterialFlag (EMF_WIREFRAME, true);}
if(debug == false){mipmap->setMaterialFlag (EMF_WIREFRAME, false);}
}
and i call the function like this:
Code: Select all
CWorld_createGeoTerrain(terrain1,
terraintexture1,
terrainlightmap1,
terrainheightmap1,
5,
17,
vector3df(0.0f, 0.0f, 0.0f),
vector3df(0.0f, 0.0f, 0.0f),
vector3df(100.0f, 0.0f, 100.0f),
false);