Texture Detail Level
by Scott Doerrfeld · in Torque Game Engine · 10/06/2006 (7:40 am) · 7 replies
I am trying to implement that very common feature which allows a player to adjust his/her own texture detail level. So far I've been playing around with the script command 'setOpenGLMipReduction' (and similar). I managed to adjust the texture detail level by setting the variable '$pref::OpenGL::mipReduction' in the preference file. I was surprised that even with the lowest detail setting (EXTREMELY blurry textures) the framerate in my mission did not improve one bit.
I was hoping to get some guidance from someone with more experience. Am I going in the right direction with this? Shouldn't the lower detail setting produce some bit of frame rate improvement?
Thank you.
I was hoping to get some guidance from someone with more experience. Am I going in the right direction with this? Shouldn't the lower detail setting produce some bit of frame rate improvement?
Thank you.
About the author
#2
Macintosh, Powerbook G4, 1.33GHz, 1GB RAM
ATI Mobility Radeon 9600, 64MB
My framerates are subpar with any decent amount of geometry on-screen, which is why i'm aiming to improve. Also, I am suspect that there is a correlation between video memory and texture resolution. At the time I was doing this test my framerate was around 9-11 fps. This wasn't improved with low-res textures using the aforementioned method.
Also, the reason I want the feature is I am developing my game to accommodate fairly low-spec systems.
10/06/2006 (10:19 am)
Ah. Sorry I shoulda have mentioned my machine specs. (They are kinda outdated. Kinda...) Macintosh, Powerbook G4, 1.33GHz, 1GB RAM
ATI Mobility Radeon 9600, 64MB
My framerates are subpar with any decent amount of geometry on-screen, which is why i'm aiming to improve. Also, I am suspect that there is a correlation between video memory and texture resolution. At the time I was doing this test my framerate was around 9-11 fps. This wasn't improved with low-res textures using the aforementioned method.
Also, the reason I want the feature is I am developing my game to accommodate fairly low-spec systems.
#3
Advanced Options
Also,
preferences variables
10/06/2006 (11:09 am)
This may be helpfull for you then, Advanced Options
Also,
preferences variables
#4
With that system, IMO you should be getting better framerates than 9-11 fps. (I can get nearly that with a Pentium II 450 and a geForce 2! ). This is more likely a driver issue (e.g. is OpenGL using the hardware?) or fill-rate limitation (How much stuff are you trying to render at once?). I seriously doubt it has anything to do with your texture detail level... and I think you've proved that already:
10/06/2006 (11:40 am)
If you are fill limited, which it sounds like you are, adjusting texture detail will do nothing to improve performance. Texture detail is only a factor if you are running low on video memory, i.e. you A) have many unique textures in a scene, B) have very large textures (x512+), C) are trying to run at high screen resolutions (frame buffers and textures share memory), or D) all of the above. With that system, IMO you should be getting better framerates than 9-11 fps. (I can get nearly that with a Pentium II 450 and a geForce 2! ). This is more likely a driver issue (e.g. is OpenGL using the hardware?) or fill-rate limitation (How much stuff are you trying to render at once?). I seriously doubt it has anything to do with your texture detail level... and I think you've proved that already:
Quote:I was surprised that even with the lowest detail setting (EXTREMELY blurry textures) the framerate in my mission did not improve one bit.
#5
That's not true. Texture fetch is limited by memory throughput and latency, which in turn competes with framebuffer fill, blend and draw. Very blurry (magnified) textures will reduce the fill rate impact by a little bit. However, if you don't blur to the point where you magnify, you get no gain, because the MIP mapping hardware will only read MIP levels to attempt to match 1:1 texel:screen resolution.
However, it sounds to me as if you are transform/geometry bound, rather than fill rate bound. One way of testing would be to compare the performance in 640x480 vs 800x600. If there's not much difference, you are T&L, or possibly CPU, bound.
10/06/2006 (3:06 pm)
Quote:If you are fill limited, which it sounds like you are, adjusting texture detail will do nothing to improve performance.
That's not true. Texture fetch is limited by memory throughput and latency, which in turn competes with framebuffer fill, blend and draw. Very blurry (magnified) textures will reduce the fill rate impact by a little bit. However, if you don't blur to the point where you magnify, you get no gain, because the MIP mapping hardware will only read MIP levels to attempt to match 1:1 texel:screen resolution.
However, it sounds to me as if you are transform/geometry bound, rather than fill rate bound. One way of testing would be to compare the performance in 640x480 vs 800x600. If there's not much difference, you are T&L, or possibly CPU, bound.
#6
fill limited
fill rate
texture fetch
memory throughput
latency
framebuffer fill
blend
draw
1:1 texel:screen resolution
Also, can anyone shed any light about what OpenGL functions are associated with culling? I am very interested in learning how to control everything that gets rendered to the screen.
Thanks again.
10/06/2006 (11:37 pm)
Thanks to everyone. This is really useful stuff. Could you please help me define the following terms so I can fully understand:fill limited
fill rate
texture fetch
memory throughput
latency
framebuffer fill
blend
draw
1:1 texel:screen resolution
Also, can anyone shed any light about what OpenGL functions are associated with culling? I am very interested in learning how to control everything that gets rendered to the screen.
Thanks again.
#7
When it comes to texel/screen resolution mapping, check out the function for calculating MIP maps as documented in the OpenGL specification.
10/07/2006 (11:16 am)
My OpenGL performance primer from 2001, still is reasonably accurate (although there are newer things to worry about on newer cards, too).When it comes to texel/screen resolution mapping, check out the function for calculating MIP maps as documented in the OpenGL specification.
Torque 3D Owner Peter Simard
Default Studio Name
I've found the best way to improve FPS is to reduce the view distance.