Im trying to figure out why there isn't any terrain showing in this code its really give me problem :( I can see anything Im asumming that its building the terrain because I have read thru 3 terrain tutorials and they all point out to do this same thing... look at my terrain system first and if you see thats wrong let me know, and if Im setting up the modes wrong i would like to know..
Main.bb
terrain.bb
Main.bb
Framework brl.blitzgl Import brl.pngloader Import brl.system Import brl.linkedlist Import brl.random Include "terrain.bmx" Global TWidth:Int Global THeight:Int Global SWidth:Int = 800 Global SHeight:Int = 600 Global SDepth:Int = 32 glSetup() Global Test = TTerrain.Create(0,0) Function glSetup() bglCreateContext( SWidth, SHeight, SDepth, 0, BGL_BACKBUFFER | BGL_DEPTHBUFFER ) glViewport(0,0,Width,SHeight) glMatrixMode(GL_PROJECTION) glLoadIdentity() gluPerspective(45.0,Float(SWidth)/Float(SHeight),0.1,100.0) glMatrixMode(GL_MODELVIEW) glLoadIdentity() glShadeModel(GL_NICEST) glClearColor(0.0,0.0,0.0,0.0) glClearDepth(1.0) glEnable(GL_DEPTH_TEST) glDepthFunc(GL_LEQUAL) glHint(GL_PERSPECTIVE_CORRECTION_HINT,GL_NICEST) glPolygonMode(GL_FRONT_AND_BACK, GL_LINE) Return True End Function Function glRender() Repeat glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT) glLoadIdentity() For Terrain:TTerrain = EachIn TerrainList Terrain.Render() Next FlushMem bglSwapBuffers Until KeyHit(KEY_ESCAPE) End End Function glRender()
terrain.bb
Global Terrain:TTerrain Global TerrainList:TList = CreateList() Const TERRAIN_STEP = 16 Const TERRAIN_SIZE = 255 Const TERRAIN_SCALE = 16 Type TTerrain Field X:Float, Z:Float Field Height:Float[255,255] Field ID:Int Field HeightMap:TPixmap Method Render() glTranslatef(Terrain.X, 1.0, Terrain.Z) For Local xx = 0 To (TERRAIN_SIZE-TERRAIN_SCALE)-1 Step TERRAIN_STEP glBegin(GL_TRIANGLE_STRIP) For Local zz = 0 To (TERRAIN_SIZE-TERRAIN_SCALE)-1 Step TERRAIN_STEP glVertex3f(xx+TTERRAIN_SCALE,Terrain.Height[xx+TERRAIN_SCALE,zz],zz) glVertex3f(xx,Terrain.Height[xx,zz],zz) Next glEnd() Next End Method Function Create:Int(xx:Int, zz:Int) Terrain:TTerrain = New TTerrain Terrain.X = xx Terrain.Z = zz Terrain.ID = Terrain.ID + 1 For Local xxx = 0 To TERRAIN_SIZE-1 For Local zzz = 0 To TERRAIN_SIZE-1 Terrain.Height[xxx,zzz] = Rnd(255) Next Next ListAddLast(TerrainList,Terrain) Return Terrain.ID End Function Function Load:Int(file:String, xx:Int, zz:Int) Terrain:TTerrain = New TTerrain Terrain.X = xx Terrain.Z = zz Terrain.ID = Terrain.ID + 1 Terrain.HeightMap = LoadPixmap(file) For Local xxx = 0 To TERRAIN_SIZE-1 For Local zzz = 0 To TERRAIN_SIZE-1 Terrain.Height[xxx,zzz] = ReadPixel(Terrain.HeightMap,xxx,zzz) Next Next ListAddLast(TerrainList,Terrain) Return Terrain.ID End Function End Type