yeah, it's a test with many surfaces. but check this out anyway. segsize 22 is a sphere with 1800 odd polys in it, seg size 23 has 2100 odd. you'll notice the difference in fps.
key 1 to generate lots more spheres.
key 2 to generate spheres one at a time
key 3 to increase the segsize (increase poly count in each sphere)
key4 to decrease segsize
please DON'T make the poly count go to high, some computer wil crash at different amounts. mines goes at 700,000
Graphics3D 800,600
SetBuffer BackBuffer()
cam=CreatePivot()
camera=CreateCamera(cam)
PositionEntity camera,0,0,-20
light=CreateLight()
;tex=LoadTexture("fire.bmp")
Dim objects(1200)
ssize=22
ob=0
For loop=0 To ob
objects(loop)=CreateSphere(ssize)
; EntityTexture objects(loop),tex
PositionEntity objects(loop),Rnd(-10,10),Rnd(-10,10),Rnd(-10,10)
; EntityAlpha objects(loop),Rnd(0.1,1)
Next
While Not KeyHit(1)
For loop=0 To ob
temp=Rnd(0.25,8)
TurnEntity objects(loop),temp,temp,temp
Next
If KeyDown(2) Then
objects(loop)=CreateSphere(ssize)
; EntityTexture objects(loop),tex
PositionEntity objects(loop),Rnd(-10,10),Rnd(-10,10),Rnd(-10,10)
; EntityAlpha objects(loop),Rnd(0.1,1)
ob=ob+1
End If
If KeyHit(3) Then
objects(loop)=CreateSphere(ssize)
; EntityTexture objects(loop),tex
PositionEntity objects(loop),Rnd(-10,10),Rnd(-10,10),Rnd(-10,10)
; EntityAlpha objects(loop),Rnd(0.1,1)
ob=ob+1
End If
If KeyHit(4) Then
ssize=ssize+1
For loop=0 To ob
FreeEntity objects(loop)
objects(loop)=CreateSphere(ssize)
PositionEntity objects(loop),Rnd(-10,10),Rnd(-10,10),Rnd(-10,10)
; EntityTexture objects(loop),tex
Next
End If
If KeyHit(5) Then
ssize=ssize-1
For loop=0 To ob
FreeEntity objects(loop)
objects(loop)=CreateSphere(ssize)
PositionEntity objects(loop),Rnd(-10,10),Rnd(-10,10),Rnd(-10,10)
; EntityTexture objects(loop),tex
Next
End If
If KeyDown(203) Then TurnEntity cam,0,-1,0
If KeyDown(205) Then TurnEntity cam,0,1,0
If KeyDown(200) Then MoveEntity camera,0,0,1
If KeyDown(208) Then MoveEntity camera,0,0,-1
UpdateWorld
RenderWorld
If MilliSecs()<timer+1000 Then
frame=frame+1
Else
fps=frame
frame=0
timer=MilliSecs()
End If
Text 0,0,"tris="+TrisRendered()+" ob="+ob+" FPS="+fps+" seg size="+ssize+" vid mem="+AvailVidMem()
Flip False
Wend
End