assuming your mesh is Mesh_Width verts wide & deep this should work (greyscale ,height =0 to 255 or use all RGB components to allow a much greater range )...I haven't tested this although it is similar to the code I use in my terrain editor
Function BuildHeightMap(mesh)
surface = GetSurface ( mesh, 1 )
min=0:max=0
For index=0 To CountVertices ( surface )-1
If VertexY# ( surface,index )< min Then min = index
If VertexY# ( surface,index )> max Then max = index
Next
factor = (VertexY# ( surface,max)-VertexY# ( surface,min))/256
hm = CreateImage(Mesh_Width,Mesh_Width)
SetBuffer ImageBuffer( hm )
For index=0 To CountVertices ( surface )-1
Color VertexY# ( surface,index )*factor,VertexY# ( surface,index )*factor,VertexY# ( surface,index )*factor
Plot index Mod Mesh_Width,index/ Mesh_Width
Next
Return hm
End Function
|