;note another possiblity of terrain editor ;duckstab ;left mouse sellect triangle ;q vert up ;a vert down ;arrow keys rotate map ;page up and down zoom ;create a texture with a black background and a white circle outline for target (30 by 30) ;create a texture with a green background with a 1 pixle border for vertile (30 by 30) Graphics3D 1024,768,32,1 ClearWorld(1,1,1) Global cam1=CreateCamera() Global lgt1=CreateLight() Global mesh Global picked#,tri,surface Global v1x#,v1y#,v1z#,v1 Global v2x#,v2y#,v2z#,v2 Global v3x#,v3y#,v3z#,v3 PositionEntity cam1,0,2,-40 Global tex=LoadBrush("vertile.png") target=LoadImage("target.png") mesh_create2 RotateEntity mesh,90,0,0 While Not KeyHit(1) If KeyDown(200) Then TurnEntity mesh,.1,0,0 If KeyDown(203) Then TurnEntity mesh,0,-.1,0 If KeyDown(208) Then TurnEntity mesh,-.1,0,0 If KeyDown(205) Then TurnEntity mesh,0,.1,0 If KeyDown(201) Then MoveEntity cam1,0,0,.1 If KeyDown(209) Then MoveEntity cam1,0,0,-.1 If KeyDown(16) And picked>0 Then movevert1 If KeyDown(30) And picked>0 Then movevert2 If MouseHit(1) Then getpicked UpdateWorld RenderWorld Text 100,100,"picked="+picked Text 100,115,"Tri="+tri Text 100,130,"vert1 x="+v1x+" y="+v1y+" z="+v1z DrawImage target,MouseX(),MouseY() Flip 0 Wend End Function mesh_create1() mesh=CreateMesh() For x=1 To 10 For z=1 To 10 surf=CreateSurface(mesh) v1=AddVertex(surf,x-5,0,z-4) v2=AddVertex(surf,x-5,0,z-5) v3=AddVertex(surf,x-4,0,z-5) v4=AddVertex(surf,x-4,0,z-4) t1=AddTriangle(surf,v1,v2,v3) t2=AddTriangle(surf,v3,v4,v1) Next Next UpdateNormals Mesh EntityColor mesh,50,255,30 End Function Function mesh_create2() mesh=CreateMesh() surf=CreateSurface(mesh,tex) For x=1 To 20 For z=1 To 20 v1=AddVertex(surf,x-10,0,z-9,0,0) v2=AddVertex(surf,x-10,0,z-10,0,1) v3=AddVertex(surf,x-9,0,z-10,1,1) v4=AddVertex(surf,x-9,0,z-9,1,0) t1=AddTriangle(surf,v1,v2,v3) t2=AddTriangle(surf,v3,v4,v1) Next Next UpdateNormals Mesh EntityColor mesh,50,255,30 EntityPickMode mesh,2 End Function Function mesh_create2b() mesh=CreateMesh() surf=CreateSurface(mesh,tex) For x=1 To 20 For z=1 To 20 v1=AddVertex(surf,x-10,0,z-9,0,0) v2=AddVertex(surf,x-10,0,z-10,0,1) v3=AddVertex(surf,x-9,0,z-10,1,1) v4=AddVertex(surf,x-9,0,z-9,1,0) t1=AddTriangle(surf,v1,v2,v3) t2=AddTriangle(surf,v3,v4,v1) Next Next UpdateNormals Mesh EntityColor mesh,50,255,30 EntityPickMode mesh,2 End Function Function mesh_create3() mesh=CreateMesh() For x=1 To 10 For z=1 To 10 surf=CreateSurface(mesh) v1=AddVertex(surf,x-5,0,z-4) v2=AddVertex(surf,x-5,0,z-5) v3=AddVertex(surf,x-4,0,z-5) v4=AddVertex(surf,x-4,0,z-4) t1=AddTriangle(surf,v1,v2,v3) t2=AddTriangle(surf,v3,v4,v1) t3=AddTriangle(surf,v3,v2,v1) t4=AddTriangle(surf,v1,v4,v3) Next Next UpdateNormals Mesh EntityColor mesh,50,255,30 End Function Function mesh_create4() mesh=CreateMesh() surf=CreateSurface(mesh) For x=1 To 90 For z=1 To 98 v1=AddVertex(surf,x-5,0,z-4,0,0) v2=AddVertex(surf,x-5,0,z-5) v3=AddVertex(surf,x-4,0,z-5) v4=AddVertex(surf,x-4,0,z-4) t1=AddTriangle(surf,v1,v2,v3) t2=AddTriangle(surf,v3,v4,v1) t3=AddTriangle(surf,v3,v2,v1) t4=AddTriangle(surf,v1,v4,v3) Next Next UpdateNormals Mesh EntityColor mesh,50,255,30 End Function Function Getpicked() picked=CameraPick(cam1,MouseX()+15,MouseY()+15) If picked>0 Then getvert End Function Function Getvert() tri=PickedTriangle() surface=GetSurface(mesh,1) v1=TriangleVertex(surface,tri,0) v1x=VertexX(surface,v1) v1y=VertexY(surface,v1) V1z=VertexZ(surface,v1) End Function Function movevert1() v1y=v1y+.001 VertexCoords (surface,v1,v1x,v1y,v1z) End Function Function movevert2() v1y=v1y+-.001 VertexCoords (surface,v1,v1x,v1y,v1z) UpdateNormals mesh End Function
working on another possible method of terrain gen
what would does the public think would suit them better
i know the verts are not morphing properly added to many verts in testing code