Game Development Community

cloud layer performance

by Andy Schatz · in Torque 3D Professional · 06/24/2009 (9:57 am) · 12 replies

Anyone know a reason why rendering the cloudlayer object would cause a 50% drop in fps?

I've having a hard time pitching the game right now because of performance. Even on my dev machine, which isn't awful (2.41 GHz Dual Core, 2GB RAM, Radeon X1600 512 MB VRAM), I really can't run Advanced lighting over 6 fps and even basic lighting struggles to get 15 fps in a simple level with almost nothing in it.

So at any rate, I'm trying to find culprits and cloudLayer seems to be one of them.

#1
06/24/2009 (10:21 am)
Deleting the cloudLayer object in my level raises me from 12.3 to 17.7 fps in basic lighting.
#2
06/24/2009 (10:23 am)
At 800x600 btw.
#3
06/24/2009 (11:12 am)
I'd hazard a guess that you've hit a fillrate bound in your scene. Fullscreen (essentially) alpha blended rendering will chew through that quickly. I'm also on an X1600 in my laptop btw, and the biggest slowdown that I have with it is when I up my resolution in games (ie. 1280x720 is much slower than 800x600 for me).
#4
06/24/2009 (11:30 am)
Yeah, that makes sense... but it brings up a good point -- how is the CloudLayer object supposed to be useful at all? I'm not going to dynamically remove it for mid-range machines -- it is too much a key part of the visuals when present.
#5
06/24/2009 (11:35 am)
The CloudLayer object is using occlusion parallax mapping in an experiment to see if parallax in the cloud layer would be a good feature.

What we've found is that its barely noticeable and as you've found its a fillrate hog on low-medium range GPUs.

I think we'll be removing it for the next beta release or maybe replacing it with a simpler parallax effect... but its really barely visible.
#6
06/24/2009 (12:01 pm)
Hi Tom- Ah, good. Thanks for the response. I'll just remove it for now.

Sorry to quibble about your wording (but I think you are quibbling a little with my "mid-range" statement, so it seems fair to clarify) about 35% of Steam users are still at 256 VRAM or below, while another 39% are at 512 VRAM. I don't believe that my card is low-end for current machines. It's right about in the middle.
#7
06/24/2009 (12:33 pm)
Yeah try commenting out the section in big section the middle of cloudLayerP.hlsl that starts with.
Quote:
//===============================================//
// Parallax occlusion mapping offset computation //
//===============================================//
Let me know if that nets you any fps gain.
#8
06/24/2009 (12:45 pm)
I'm talking about performance compared to the best you can buy at the moment. The X1600 is 4 year old tech... which is why i would put it in a lower end of the mid range category.

As you point out that is very different from the high end you see in most people's machines which is the 8800 GT. Using that scale your card is very much middle of the pack.

Regardless... there is no reason for the cloud layer to be this expensive. Its a waste of fillrate. It will be fixed.
#9
06/24/2009 (1:05 pm)
Yeah, that removes Cloudlayer as the big fps hit (it still is a little heavy for what is essentially a skybox IMO but it's reasonable).

Tom- I just threw in my GeForce 7600XT for comparison's sake -- came out in June 2006, less VRAM but supposedly a better fillrate than my X1600/1650. I get 18.2 fps in the same scene WITH cloudlayer and 20.2 without it. Basic lighting, 800x600.

One of the problems I'm seeing right now with my ability to make the game look good as possible on high end machines as well as low end ones is the square size of the terrain. The game runs much better when the terrain is less dense (squaresize of 8), but it really only looks good on high-end machines with a much more dense appearance (squaresize of 1). The problem is, this really isn't a scalable feature right now. Is there anything that can be done to improve terrain performance on low-end machines?
#10
06/24/2009 (1:16 pm)
Actualy, I'm going to start a new thread for this topic...
#11
06/24/2009 (3:31 pm)
Regarding the terrain density and performance, we're using a terrain size 4 and using the detail textures to give high quality details up close. The diffuse is only used in our case to supply color information to mix things up for the detail textures. If you haven't tried doing that, might be worth exploring.
#12
06/24/2009 (3:38 pm)
JC, I'm gonna repost your thoughts and respond in the other thread...