wavvy ocean

Blitz3D Forums/Blitz3D Programming/wavvy ocean

The forum is locked. These are the original blitzbasic.com forums, kept so they can still be read. No new topics, replies or edits can be made here. To join in, head over to the Blitz3D+ forums.

Heres a simple demo to get you started



Type water
Field mesh
Field surf
Field size
Field wavedensity
Field wavespeed
End Type

Graphics3D 800,600,32
SetBuffer BackBuffer()
WireFrame True

camera=CreateCamera()
look=CreatePivot()
PositionEntity camera,50,10,10
PositionEntity look,50,0,25
PointEntity camera,look

;createwater meshsize,wavedensity,wavespeed
createwater(100,10,10)

While Not KeyHit(1)
updatewater(MilliSecs())
RenderWorld

Text 0,0,"Simple non random wave motion"
Flip
Wend

Function createwater(s,wd,ws)

w.water=New water
w\size=s
w\wavedensity=wd
w\wavespeed=ws
w\mesh=CreateMesh()
w\surf=CreateSurface(w\mesh)
v=0
For x=0 To w\size
For z=0 To w\size
AddVertex w\surf,x,0,z, x,z,0.5
v=v+1
Next
Next
zs=w\size+1
zm=w\size-1
rd=0
For z=0 To zm 
For v=0 To w\size-1
AddTriangle w\surf,rd+v,rd+v+1,rd+v+1+w\size
AddTriangle w\surf,rd+v+1+w\size,rd+v+1,rd+v+w\size+2
Next
rd=rd+zs
Next
UpdateNormals(w\mesh)
EntityColor w\mesh,150,200,255
End Function

Function updatewater(move)
For w.water=Each water
v=0
For x=0 To w\size
For z=0 To w\size
h#=(Sin(w\wavedensity*x+move/w\wavespeed)+Cos(w\wavedensity*z+move/w\wavespeed))
VertexCoords w\surf,v,x,h#,z
v=v+1
Next
Next
Next
End Function