2000 polys?
Blitz3D Forums/Blitz3D Programming/2000 polys?
| ||
i was doing some test on surfaces and polys, and it seems that if an entity has more than 2000 polys, it renders alot slower than if it has 2000 or less. 1800 polys=83 fps 1900 polys=81 fps 2100 polys=70 fps is this normal? is it a direct x limition or something? |
| ||
The drop in speed against increase in polygons is not necessarily going to be linear. I suppose it also depends on the number of vertices, if you have a model with 2000 polys, assuming they are all separate, you need 6000 vertices, 3 for each poly. A model with 1000 polys would need only 3000 vertices. It also depends on textures and other things. Bear in mind I'm no expert on the internal workings of DirectX and 3D graphics cards, but I think I'm on the right lines. |
| ||
you've got a GeF4ti4600 and it's slowing down to 70FPS with a 2100-poly model? maybe it's something wrong with your comp. i have a radeon 9500 (not as good) and doesn't slow down till i've got tens of thousands of polys onscreen. 2100 polys should be no problem. |
| ||
"you've got a GeF4ti4600 and it's slowing down to 70FPS with a 2100-poly model?"> Maybe its a ton of surfaces? Zmatrix |
| ||
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 |
| ||
You know, we're talking about a net difference of around 2ms. That doesn't sound like much of a slowdown to me. When you have relatively high framerates (60+) you can get a seemingly major drop in FPS by adding very little. 83 to 70 FPS looks tragic on the surface, but do the math .. it's really not all that much. |
| ||
ok, well when i run them tests, i make ob=130>>> segsize=20 >>>fps 120 ob=130>>> segsize=21 >>>fps 114 ob=130>>> segsize=22 >>>fps 105 ob=130>>> segsize=23 >>>fps 74 (at this point each sphere has 2100 polys in it ob=130>>> segsize=24 >>>fps 69 ob=130>>> segsize=25 >>>fps 65 so the big drop seems to occur when each object has 2000 or more polys in it |
| ||
another possibility is that your computer has the problem is surfaces not polygons, try this only one object with 99 segs... my computer is still at 215 fps |
| ||
i'm still getting the drop. well, i'll just have to use models with less than 2000 polys. which is fine. just thought it was a bit odd. thanks anyway for your tests and suggestions, very grateful! |
| ||
I don't get a drop. But then I also get like 500fps with the default which is over 2000 polys. |
| ||
Now I could be wrong but, don't some of this depend on your current graphics driver (version) / settings that your card is tring to do ALL those polys? ....just a thought |