As I said, I could post one.
;;;;;;;;;;;EXAMPLE
Graphics3D 800,600,32,2
C = CreateCamera()
Grid = CreateGrid(8,32,.5)
Repeat
If KeyHit(1) Then : ClearWorld : End : EndIf
MoveEntity C,0,0,Float(KeyDown(2)-KeyDown(3))/2
Pan# = Pan# - Float(MouseXSpeed())/3
Tilt# = Tilt# + Float(MouseYSpeed())/3
MoveMouse GraphicsWidth()/2,GraphicsHeight()/2
RotateEntity C,Tilt,Pan,0
UpdateWorld
RenderWorld
Flip False
Forever
;;;;;;;;;;;;CREATEGRID
Function CreateGrid(GridSize%,Segments%=10,LineWidth#=.1)
M = CreateMesh()
Surf = CreateSurface(M)
GridSize = Abs(GridSize)
Segments = Abs(Segments)
N# = -(GridSize*Segments)+GridSize/2
While N < GridSize*Segments
V = AddVertex(Surf,N,0,GridSize*Segments)
AddVertex(Surf,N+LineWidth#,0,GridSize*Segments)
AddVertex(Surf,N+LineWidth#,0,-GridSize*Segments)
AddVertex(Surf,N,0,-GridSize*Segments)
AddTriangle Surf,V,V+1,V+2
AddTriangle Surf,V+2,V+3,V
N = N + GridSize
Wend
N# = -(GridSize*Segments)+GridSize/2
While N < GridSize*Segments
V = AddVertex(Surf,GridSize*Segments,0,N)
AddVertex(Surf,GridSize*Segments,0,N+LineWidth#)
AddVertex(Surf,-GridSize*Segments,0,N+LineWidth#)
AddVertex(Surf,-GridSize*Segments,0,N)
AddTriangle Surf,V,V+1,V+2
AddTriangle Surf,V+2,V+3,V
N = N + GridSize
Wend
UpdateNormals M
EntityFX M,16
Return M
End Function
|