Here's the Terrain Demo without the LOD popping.
;################################################################### ; ; Basic GL For BlitzBasic © 2004 ; Creator: Albert Khakimov (arkon) arkon@... ; Support: Korolyov Sergey (ventru) ventrual@... ; Sample:Terrain ; Version: 0.2 ; Date: 15.11.04 ; ;################################################################### Include "../../Constants.bb" Include "../../keycodes.bb" Global pMode Global MatLib, Mat_1, Mat_2 Global Camera, Camera_PV, Light Global Terrain, Terrain_Map ;3d Graphics initialization gInitGraphics(640, 480, 32, 0, 0) gCreateText 1, 18, "Press F2 to set polygon mode", 0, 0, 0, 0 ;M A T E R I A L S ;------------------------------------------------------------------------ MatLib = gCreateMaterialLib() Mat_1 = gAddMaterial(MatLib, "snow", "../../media/terrain/snow512.jpg") Mat_2 = gAddMaterial(MatLib, "detailmap", "../../media/terrain/detailmap.jpg") gSetTexture2Name Mat_1, "detailmap" gSetTextureScale Mat_2, 128, 128, 128 gSetBlendingMode Mat_2, 1 gSetDiffuse Mat_1, 1, 1, 1, 1 ;S C E N E ;------------------------------------------------------------------------ ;Set back color gBackColor 0.4,0.6,0.8 ;Ebable fog gEnableFog 1 gFogEnd 500 gFogColor 0.8,0.8,0.8 ;Create Camera Camera = gDefaultCamera() gSetPosition Camera, 0, 25, 0 gSetDepthOfView Camera, 800 ;Camera Pivot Camera_PV = gCreateDummy(0) gSetParent Camera, Camera_PV gPitch Camera, -15 ;Create Light Light = gCreateLight(0) gLightStyle Light, 0 gSetPosition Light, 0, 50, 0 gSetParent Light, Camera_PV ;T E R R A I N ;------------------------------------------------------------------------ gCreateCube(1, 1, 1, 0) Terrain_Map = gCreateHDSBitmap("../../media/terrain/map.bmp", 1) gHDSBitmapPoolSize Terrain_Map, 1024 * 1024 * 8 Terrain = gCreateTerrain(0) gPitch Terrain, 90 gTerrainScale Terrain, 2, 2, 0.2 gTerrainHDS Terrain, Terrain_Map gTerrainTileSize Terrain, 32 gTerrainTilesPerTexture Terrain, 256 / 32 gObjectMaterial Terrain, MatLib, "snow" gTerrainMaxCLODTriangles terrain,10000 gTerrainQualityDistance terrain,400 While gKeyHit(KEY_ESCAPE) = 0 And gProgress() = 1 If gKeyHit(KEY_F2) = 1 ;Polygon mode pMode = pMode + 1 If pMode > 2 Then pMode = 0 gSetPolygonMode Mat_1, pMode End If ;Move Camera newTime# = gGetNewTime() * 50 deltaTime# = gGetDeltaTime() gMove Camera_PV, -deltaTime# * 60 x# = gGetX(Camera_PV) y# = gGetY(Camera_PV) z# = gGetZ(Camera_PV) ty# = gGetTerrainHeight(Terrain, x#, y#, z#) y# = y# + ((ty# + 20) - y#) * deltaTime# * 10 If y# < ty# + 5 Then y# = ty# + 5 gSetPosition Camera_PV, x#, y#, z# gSetRotation Camera_PV, 0, Cos(newTime# / 4.0) * 60, 0 Wend gCloseGraphics()