; ID: 1609 ; Author: Ross C ; Date: 2006-02-05 07:57:53 ; Title: Mesh LoadTerrain ; Description: Creates a mesh from a heightmap image you choose. Doesn't use blitz terrains. Function load_terrain(file$) temp = LoadImage(file$) If temp = 0 Then Return 0 x = ImageWidth(temp) y = ImageHeight(temp) mesh = CreateMesh() surf = CreateSurface(mesh) For ly = 0 To y For lx = 0 To x AddVertex surf,lx , 0, ly, 1.0/lx, 1.0/ly Next Next RenderWorld For ly = 0 To y-1 For lx = 0 To x-1 AddTriangle surf, lx + ((x+1)*ly), lx + ((x+1)*ly) + (x+1), (lx+1) + ((x+1)*ly) AddTriangle surf, (lx+1) + ((x+1)*ly), lx + ((x+1)*ly) + (x+1), (lx+1) + ((x+1)*ly) + (x+1) Next Next PositionMesh mesh, -x/2.0,0,-y/2.0 SetBuffer ImageBuffer(temp) For lx = 0 To x For ly = 0 To y GetColor lx,ly index = lx + ((x+1)*ly) VertexCoords surf, index , VertexX(surf,index), ColorRed()/20.0, VertexZ(surf,index) Next Next SetBuffer BackBuffer() UpdateNormals mesh End Function