looking for a water effect

Blitz3D Forums/Blitz3D Programming/looking for a water effect

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.

Graphics3D 1024,768
cam = CreateCamera()
light = CreateLight()
MoveEntity cam,0,45,-15
TurnEntity cam,15,0,0
;WireFrame enable

Global WATER_GRID_SIZE = 32
Global WATER_HEIGHT# = 16
Dim WaterY(WATER_GRID_SIZE+1,WATER_GRID_SIZE+1)
Global wz,wx
Global hite#
Global waterlevel#
Global waterangle#
Global water
Global watert
Global curdetail


		For q = 0 To WATER_GRID_SIZE
							For j = 0 To WATER_GRID_SIZE
									WaterY(q,j) = Rnd(0,360)
								Next 
							Next
					; Create some terrain and load the water texture onto it
					water = CreateTerrain(WATER_GRID_SIZE)
					;watert = LoadTexture("wswirl.jpg")
					watert = CreateTexture(256,256)
					
					SetBuffer TextureBuffer(watert)
						Color  0,0,255 
						Rect 0,0,256,256
						Color 255,255,255
						For i = 1 To 75
							circle = Rnd(2,25)
							Oval Rnd(0,225),Rnd(0,225),circle,circle,0
						Next
					;waterg = LoadTexture("wswirl.jpg")
					waterg = CreateTexture(256,256)

						SetBuffer TextureBuffer(waterg)
						Color  0,200,0 
						Rect 0,0,256,256
						
						For i = 1 To 10000
						    Color 0,Rnd(5,135),0
							Plot Rnd(0,255),Rnd(0,255)
							;Oval Rnd(0,225),Rnd(0,225),circle,circle,0
							
						
						Next
					SetBuffer BackBuffer()
					TextureBlend watert,3
					ScaleTexture watert,.2,.2
					ScaleTexture waterg,.5,.5

					EntityTexture water,watert,0,1
					EntityTexture water,waterg,0,0
					EntityAlpha water,.9
					
					; Resize and position the water
					PositionEntity water,-1000,8,-1000
					;MoveEntity water,0,5,0
					ScaleEntity water,WATER_GRID_SIZE*4,WATER_HEIGHT#,WATER_GRID_SIZE*4
					
					; Modify the detail of the terrain
					TerrainShading water,False
					curdetail = 500
					TerrainDetail water,curdetail,False


Repeat
water_wave()

	
	RenderWorld
	Flip
	

Until KeyHit(1) = 1


Function water_wave()
; Here we itterate through all the cells on the terrain grid (switch wireframe on to
	; see them) and then make them simply bounce up and down.
	For wz = 0 To WATER_GRID_SIZE-1
		For wx = 0 To WATER_GRID_SIZE-1
			hite# = Sin(WaterY(wz,wx))
			ModifyTerrain water,wx,wz,(hite#/4)+.5,False
			WaterY(wz,wx) = WaterY(wz,wx) + 2
			If watery(wz,wx)>3439 Then watery(wz,wx) = 1
		Next
	Next
	
waterangle# = waterangle# +.2
If waterangle#>360 Then waterangle#=.2
RotateTexture watert,Sin(waterangle#)
 ;;RotateTexture cloudmask,waterangle#
End Function