Game Development Community

Fps

by arteria3d · in Torque Game Engine Advanced · 12/15/2004 (4:30 am) · 40 replies

I jhave a concern

In TGE at the moment i am finding that any poly count above 30,000 is killing my performance.

In my scene at one camera view is only 44,000 polys - but the FPS goes down to 16. This is crazy.

The computer i have is a P4 2.8 with 1.5 gig ram and an NVIDIA 5700 overclocked graphics card. This system allows me to run DOOM3, Farcry, Everquest 2 etc etc at full graphical options quite smoothly.

Out of interest i went into TSE and inserted 50,000 poly worth of objects. Again the poly count dropped to 16.


Can i anyone point some answers to this???? If i cannot get above this FPS threshold, then games aimed towards a commercial-type market surely cant be achieved?

Steve

About the author

Owner of uk based Ltd company ArteriaMediaLtd. with a trading name of Arteria3d Website;arteria3d.com

Page«First 1 2 Next»
#21
12/15/2004 (6:18 am)
Yes i use LOD

Anything oustide the immediate camera view is changed to a 80 poly tree, then changed to a billboard at less than 60 pixel height - so i have optimised the trees
#22
12/15/2004 (6:25 am)
Much more important than the number of polygons is the number and size of materials. If you have a lot of different materials, this causes a lot of state changes, and this slows down rendering enormously. Depending on the way that torque is structured (and I don't know, since I haven't looked through that part of the code), they could also be changing states when the models/interiors change.
You may want to see if the problem you are experiencing results from having too many materials and/or too many different interior/models rendering.
#23
12/15/2004 (6:44 am)
Luckily my card is new - and i cant take it back.. I have about
#24
12/15/2004 (6:49 am)
You don't need a new video card man, just new drivers :) As I mentioned above, if I knew the exact driver that works well with the 5700 series I would post it, but I don't.

Hopefully someone with strong 5700 drivers can post what driver version they are using, or you could take a look at the nvidia drivers for download and research which are known to work with OpenGL.
#25
12/15/2004 (10:15 am)
A year ago I saw a Gamespy review on ATI Radeon 9800 Pro vs NVidia GeForceFX 5900 Ultra. The 5900 won on OpenGL, getting 30 fps on Serious Sam with all the graphics features maxed out.

With that in mind, I'm very surprised to hear that 5700 is such a drop-out for OpenGL. Is 5700 the only one with such problems?
#26
12/15/2004 (10:32 am)
@Stevie
I think this is a matter of optimizing the maps so you can still have a steady FPS .
If you have a tree map use hills and visible distance and optimize the LOD on the trees for maximized performance.
I been modding alot and i can tell you even the other engines drop fps bad if you place 1000 trees on a flat area with a visible distans of 1024.
How far do you see in a unreal3 or doom3 map its not moore then 50 meters or so.
#27
12/15/2004 (11:20 am)
Again, to make sure I'm not leading anyone down the wrong path--it's not the card, it's certain versions of the drivers that can cause the 5700 to have terrible performance. I wish I had more specifics, but I don't know either what version he has of the drivers (although they were dated 8/2004), nor do I know (wish I did!) which version people that have the 5700 card working great with are using.
#28
12/15/2004 (11:29 am)
I use a 5700 with driver version 66.93 but i can tell i hade really bad crashes with some drivers.
#29
12/15/2004 (11:34 am)
I am gonna change the video card - can anyone tell me a good ati card to get??

Also - How does Farcry get away with it?? The distance of view in that is unreal

Steve
#30
12/15/2004 (12:25 pm)
Can someone advise me on this. I have actually just got a 9800 Se - but not opened the box yet - so i can take it back if need be....

I have since seen the nvidia 6800 and also the ATI x800.

In other posts on these forumns, people speak hightly of the 6800 with open GL and mixed feelings on the x800.

Should i stick with the 9800 SE - or take it back and get one of the above cards??
#31
12/15/2004 (2:32 pm)
Greetings!

I can't help you with your graphics card, but here's some thoughts:

1. Are you using triangle strips within your trees and rocks? I've seen frame rates plummet when rendering large quantities of single triangles vs. using triangle strips.

2. What kinds of collision meshes are you using for your rocks and trees? The simpler the better as collision testing can chew up a significant portion of CPU time (profiling your code could give some insight).

3. Re: Farcry trees: They've spent a lot of time optimizing their engine to do something very specific...rendering large quantities of foliage. There's a reason this game is considered unique at the moment.

Stock TGE is not the best at this right now. It treats every DTS object as a separate entity. This means material and vertex buffer switches with every object, and it can add up. This is a specialized task that the TGE has not been coded to do out of the box - IMHO. There are some great replicater classes that Melv had a hand in, but I believe they mainly save network time rather than rendering time (haven't looked at this code for ages so someone else chime in if I'm wrong).

If this is indeed the reason for your slow down (and you could probably do some profiling to see where your code is spending all its time), there are three solutions that come immediately to mind:

A. Find out more about SpeedTree. These guys specialize in making trees work for games, and from what I can tell, they're doing alright for themselves. This tells you how complex these types of situations can be given that there is a company that exists to do just this. This solution costs big bucks (in indie terms)

B. Wait for Ben's forrest code pack. I personally don't know the ins and outs of it, but he knows what he's doing.

C. Roll your own code or find something out on the net that has a compatible license and will work for this task at hand as well as meld in with TGE's rendering philosophy.

Well, there ya go. Back into the product launch shadows I go...

- LightWave Dave
#32
12/15/2004 (2:39 pm)
Hi Dave,

When u say triangle strips - what exactly do u mean.

For my foilage i am using the foilage replicator - so i guess u would be calling them single triangles?

For the trees - the trunks are meshes, and the leaves are on single plain objects with transparency on.
#33
01/10/2005 (7:01 pm)
I don't know if you've given up already, but something else to try:
In your modeler program replicate the tree to as many times as you are in the engine. Export this huge model ( or several slightly smaller ones, 30k polys might be a max for DTS) and see if the performance is just as bad. But you really haven't said anything about what types of materials you are using.
#34
01/10/2005 (7:14 pm)
Hi David

No i havent given up - and still plodding along trying to get bnetter optimisastion with LODs. I am trying to make suitabe pics of my trees so i can use them as billbnoards for the last LOD level - but the lightpack at the moment is rendering them too bright.

Texture wise they are 256 x 256 or some 512 512 PNGs - with alpha for the leaves, and jpegs for the trunks

Out of interest - will i see a performance boost for some reason - using the method u described, so therefore in each DTS scene there could be like 10 trees or more to export as one model?? and if so why

Steve
#35
01/11/2005 (2:48 pm)
There would be less instances for the scenegraph to traverse, which means less switches in the material and vertex rendering. It's worth a try to see if it helps. Also you said that your second LOD still had the leaves in it. Fill rate on large numbers of transparent objects is one of the biggest hits on framerates.
#36
01/11/2005 (2:50 pm)
Hi David,
as i have a lot of transparent textures for my trees, probs this is why fps is slow. I am just in the process of doing what u say with clumping dts shapes together, so for example i am exporting 5 trees as 1 dts model.

Hope it works!

Steve
#37
01/11/2005 (5:32 pm)
@Stevie - Grouping multiple DTS shapes into a single DTS will help *alot* if your CPU bound. How many total DTS shapes do you say are in your scene? Take a look thru this powerpoint for some help in pinpointing performance bottlenecks:

developer.nvidia.com/docs/IO/8230/GDC2003_PipelinePerformance.pdf

The most interesting bit of information: "~50k DIP/s COMPLETELY saturate 1.5GHz Pentium 4. 50fps means 1k DIP/frame!". Meaning that if you want to maintain 50fps on a 1.5GHz machine you can't make more than 1,000 draw calls to the graphics hardware per frame. Also consider this is if your using 100% of the CPU time for drawing the scene which is unacceptable for most games.

Not saying this is your problem, just one that you can easily forget about.

I'd love to see TSE adopt the new instance rendering API in DX9 which helps increase the amount of draw calls you can make per frame.
#38
01/12/2005 (2:42 am)
Yeah, I haven't done any testing on it myself, but he's definitely either hitting a CPU limit or a fill limit... I would guess almost a third of the polys he's drawing are transparent.
#39
01/12/2005 (3:21 am)
I would think about taking the 9800SE back if i rember its only got half the shader pipelines of the full 9800
#40
01/12/2005 (4:04 am)
I think the key sentence is this
Quote:
This is interestin...... i just took the trees out and guess what..//...

FPS still stays at around 20
Forget about the trees and transparency if taking them out isn't raising your fps. Something else is causing your drop. What else is in the scene?

Try adding your foliage reps to a blank mission, with nothing at all else added. Add them to only one side of the map. Look away, check fps, look towards trees, check fps. Major difference?
Page«First 1 2 Next»