Most complaint about performance and possible solution
alster
Join Date: 2003-08-06 Member: 19124Members
There are way to many complaints of "frame rates really bad during combat".
Possible solution that may not have been tried yet:
When 2 enemies get close enough dynamically or statically reduce graphics.
Find center of group of players in combat and dynamically or statically reduce graphics.
If possible base reduction in graphics by max number of players in group.
Take into account the number of structures in group combat area for graphics reduction.
High poly models such as exos, cc, hives, onos have more counts if they are near.
If possible players with gls, jps, flamethrowers reduce graphics.
If possible count cysts, mines, infestation for graphics reduction.
Of course revert graphics to each original player setting when not in combat.
If possible this should make huge improvements in fps during combat.
Possible solution that may not have been tried yet:
When 2 enemies get close enough dynamically or statically reduce graphics.
Find center of group of players in combat and dynamically or statically reduce graphics.
If possible base reduction in graphics by max number of players in group.
Take into account the number of structures in group combat area for graphics reduction.
High poly models such as exos, cc, hives, onos have more counts if they are near.
If possible players with gls, jps, flamethrowers reduce graphics.
If possible count cysts, mines, infestation for graphics reduction.
Of course revert graphics to each original player setting when not in combat.
If possible this should make huge improvements in fps during combat.
Comments
Found the other post: <a href="http://www.unknownworlds.com/ns2/forums/index.php?showtopic=125951" target="_blank">http://www.unknownworlds.com/ns2/forums/in...howtopic=125951</a>
Gforce GTX 580 can do 2 billion triangles a second, which is 3,333,333.3333..... triangles every frame at 60 frames a second. <a href="http://www.geforce.com/hardware/desktop-gpus/geforce-gtx-580/features" target="_blank">http://www.geforce.com/hardware/desktop-gp...tx-580/features</a>
In terms of cysts, that's 11,111 cysts a frame.
Draw calls are the heaviest operation, which is the CPU telling the GPU what to draw.
A far easier way to determine if automated performance optimization should kick in:
<!--c1--><div class='codetop'>CODE</div><div class='codemain'><!--ec1-->var bool bDropDetail;
event Tick(float DeltaTime)
{
bDropDetail = CurrentFPS < 25;
}
[…]
simulated function SpawnFancyEyeCandyParticleEffects()
{
if (bDropDetail)
return;
[…]
}<!--c2--></div><!--ec2-->
Or in other words: check if the frame rate is below a certain threshold. If it is, please for the love of god stop spawning any more expensive particle effects that we don't need!
Stuff that is supposed to block view would not be affected. But you could probably ignore a big part of muzzle flash effects (like those of Exos) if they would be nagging too much on the frame rate.
And it also assumes that effects are not all put into a single particle system but instead into multiple ones with different complexity, so you could leave out some of them and just keep the essential ones.
What I am suggesting is a further LOD level of detail during combat. There are already many conditions being checked for that enemy on radar, motion tracking, footstep sounds, line of sight, etc. Any of those can be checked for combat condition. If an enemy is standing still fps won't drop too much and therefore graphics don't need to take a hit. There's not much more "calculating" the server or client has to do.
The only thing I noticed is that the Occlusion Culling changes with view direction(?) and seems to "leak" sometimes as you change direction but not position. Q3 had Hint brushes which you could use to manually split up the PVS portals to help simplify them and position the boundaries where you wanted.
Some maps might also benefit from simplified Occlusion Geometry like removing Pillars from the OG group.
I think, at least on my computer with a ATI HD 4850, that the engine is vertex/polygon bound, rather than fill rate or CPU bound. According to r_stats I'm GPU bound, not CPU bound, as it's always 'waiting on CPU'. I have everything set to minimum, and reducing the resolution doesn't do anything further. I can reduce right down to 1024x768 and it hardly makes a difference, which implies that the hold up is in the vertex shaders? The biggest 2 improvements I got were from infestation and from texture quality. Lowering infestation I assumed would help, but tex quality suprised me. I suspect they're using the same 'quality' for color textures sampled from the pixel shader as they are for bump maps and other textures sampled from the vertex shader? I think that lowering that further reduces the quality of the infestation.
I also don't think that it's doing <b>too many</b> draw calls, though reducing the number is an obvious improvement. The max amount of draw calls I've seen is 2500 ish, which whilst seeming high, isn't that bad compared to other fancy things. (I think FC2 does about 2000+ or so -- I haven't checked in a few years).
I can't be arsed checking in PIX or anything to see, but does the game have LOD models, or indeed any lower quality models and prefabs for maps we could use? I think that'd really, really help.
Across the board most players are suffering from performance issues from CPU loads, not GPU.
Really? I only have a Quad Core Q9550. No i7 business etc. I wonder why I'm GPU limited :(