Rendering Lod Transitions and Textures

Hi,

I was wondering if anyone could help with any info on how the engine processes rendering (just some rough ideas), as I’m looking to really optimise the project. It’ll involve zooming extremely quickly in and out of scenes using a lot of textures and lots of characters with several LoDs. (please see game specs below) and could really do with the help of a rendering Guru:…

Ok. Here goes…

  1. The textures are in png format. As png is encoded to reduce file size, does graphics rendering have to decode any texture back to a type of per pixel format in order to render it (e.g. bmp)?

  2. What sort of processing is involved in rendering textures when they’re at a distance? I’m guessing the engine does some parsing/filtering through the texture to only pick out every x pixels. Is it worth creating a smaller resolution texture for the low LoD models only viewed at distance to reduce on texture (don’t know the term - parsing?). Would this improve processing loads or just mean there’s an extra texture to load?

  3. Does LoD switching involve a lot of processing? Is it simply a matter of loading the LoD mesh and texture into the graphics card (if not already there) and marking as obsolete anything that is no longer needed. Is there any way of marking textures as high priority to keep them in memory if you know they’re going to be needed again pretty soon? So if I had 40 different character types on screen at once and zoomed in/out extremely quickly would having 3 LoD levels for each character improve (or even decrease) performance?

Sorry to ask, but I think these three points will be the projects main processing overheads, so really need to know how to optimise them. Are there any other issues you know of that I haven’t thought of?

Any help would be really great.

Background:

The project is a top-down map-based strategy, with possibly up to five hundred characters on screen at once. Players will be able to camera fly around the map at sky level then zoom in/out to close-ups of the characters as fast as possible (most of the time the characters will be at long to medium range, but players can zoom in close for individual skirmishes).

Specs:

Character Models: 3 LoDs: LoD0 = 6,000 tris, LoD1 = 3,000 tris, LoD2 = 500 tris (also thinking of using paper sprites for extra long-distances).
Character Textures: Probably 1024x1024 png depending on performance (48 different character materials - diffuse and normals (96 textures)).
Character Rig: 64 bone

Scenario:

Zooming into a scene as quickly as possible with maybe 300 characters, 40 character types. My thinking is 40 materials = 80 textures @ 1024 png (~1MB) = 80MB. 40 meshes @ 6k tris = 40 * 800kB = 32MB. Total = 110MB. So, aiming at a PS3 equivalent platform, would this blow up the graphics card? (PCIe2.0/QPI/Main bus 5GTs?)(PS3 250MB GDDR3 / ATI-Radeon-HD4890 1GB GDDR5) => Could load (110MB @ 5GTs) into graphics memory in 0.022s (45 fps) and running out of GDDR wouldn’t be an issue… Is this correct or is there something major I’m missing?

Any help would be really great.

Many thanks, Mach45