I'm working on my senior project in school. I'm trying to use some 'next gen' techniques, and fleshing out my environment around something along the lines of a gears or UT3 set of restrictions.
My question:
What is the general rule for poly budgets for games of this caliber?
Hero props?
Tubes/Pipes (how many sides)?
Minor props (crates, computer terminals)
Just looking for an estimate, or guideline, so that I might keep these numbers in mind while creating my low poly models for my current project.
Thanks for your time Polycount
cheers!
ADM
Replies
My suggestions would be to pick up a copy of UT3 or Gears for pc and look at the editor and look at the polys, textures, etc.
Polycount changes from game to game, engine to engine.
correction: current gen
was thinking along the lines of the types of models that Kevin Johnstone makes. Like the badass goo tank and shit like that. He posts his high poly models but I haven't seen the low wire-frames yet.
Ugh, formatted the drive last week, *starts searching for unreal3 disks*
I've built levels in Unreal 3 that have ASTRONOMICAL amounts of polygons and have yet to find a limit to waht it can handle.
started this thread looking for a 'ballpark' idea, i'll be installing ut3 tomorrow to get that answer, unless someone else has an idea of what a really large UT3 object would be before then.
o wells
The best thing of unreal engine is that it uses excellent compression techniques,which allows the usage of larger texture sizes.(like 2k).
If you notice,a lot of assets use 2k,just like that.Then the engine will decide on the best mip map and things like that.
Vj
you cant put a number on something like that anymore, the number could change by 5x depending on how your rendering them. for the most part poly counts havent changed in 6 years, the only difference has been shader complexity and render passes.
The actual number doesn't matter until you go higher than what the rasterizing hardware you are running on can handle efficiently in batch. The programs that send this stuff to be drawn today are more worried about sorting states and batching than the number of polygons.
Problems that used to eat up time and triangles don't exist anymore. The above poster mentioned 1997. In 1997 a game like Quake 2 in some cases had to draw the level geometry twice, because of the shadows being their own texture.
The level would be rendered with the base texture.
The level would then be rendered again with the lightmap textures.
This doubled the amount of triangles. And required a texture state change in between.
In this day in age, we have 'texture units', and each vertex can have unique UV coords for each texture unit, meaning that a level and it's lightmap can be drawn at the same time. We can go way beyond that, and assign a unique texture to each texture unit and tell the shader how to mix them achieving any effect you want, but only drawing the model once. The GPU doesn't really care if the model with the x number of textures had 600 or 6000 triangles, as long as you didn't overshoot the batch size. Especially since the GPU will operate on many vertices at once.
Of course, some new real time lighting techniques require drawing the scene multiple times to make shadow buffers (sometimes once per light!) But this can be done with lower quality models, and no textures changes.
Vertex data is also stored on the GPU most of the time these days. In the past all the vertices had to be sent form the PC to the GPU which was a bottleneck. We keep getting better, faster, ways to batch up stuff and store in in video memory.
So the draw calls an engine makes to the GPU are instructions for it to get to work on a buffer of vertex data after it has gone done setting up the state (draw switches, textures loaded into the texture unit, etc...) Ideally, every state only has to be set once.
As an artist, the best thing you can do is just make a world that is easily batched. If you have a wall that has a ton of posters on it. Make all those posters use the same texture map so that the engine can batch them together and send them to the GPU all as one block of data to work on. Your GPU would much rather render (big number here) polygons as part of the same state batch, then it would rendering two 500 polygon models that are 2 batches, because changing states is the bottleneck these days. It takes longer to set that state up, then it did to render the huge model, so drawing the 2 smaller models was actually slower.
Also, watch out for shader complexity. I have read horror stories from people who have to go back and clean up / optimize all the shaders from artists who went crazy with a click and drag shader creation system. 3D graphics is about shader programs these days, and the more you can understand about how those work, the better. There was an article on Gamasutra about the horrors of letting artists create shaders like that for real time environments, but I can't find it right now, it should be required reading.
Of course there will be a budget. Vertices still take up memory, and scene complexity comes into play. If you are working on an open / streaming world, you have to keep that data down into something that can be streamed and loaded instantly. You also have to pay attention to the target hardware.
when textures are compressed that hard that a 2k map doesn't look better then a 1k map, than I wouldn't call it excellent. From what i see in the engine they're using DXT1-5 anyways, so thats no new stuff, importing dds files with more controll in PS over the compression, mipmaps and such things would be awesome.
DXT has great advantages, with a small trade off. Especially if you batch a few smaller textures into the 2k by 2k space, or use it as a texture atlas.
Daaark, thanks for taking the time to inform.
So while they're using 2kx2k maps for damn near everything, the in-game assets are not all using that, all the time. Outside of Gears/UT3 (it's a lot more noticeable in UT3, too) a lot of other UE3 games seem to have greater issues with texture streaming (especially Mass Effect.)
Since you have access to the in-game assets in UT3/Gears for the PC, you would definitely get a good idea as to how they do everything by checking those out in the editor.
Here's some more stats if you're interested:
http://www.rsart.co.uk/2007/08/27/yes-but-how-many-polygons/
But in all seriousness its important to remember that most games including UE3 based games use Levels of Detail, so what you see on your screen is scaled and balanced for performance. Does the question include all LoD's or just the highest? It's a complex question and not one that can be given a simple answer, which is probably why its a paper instead of on a multiple choice test.
It's important to understand that a simple box could be pretty high in both texture and poly count but probably won't be displayed at those settings at all times. So while a game like GoW2 might have some sky high budgets it also does a lot of trimming on the fly.
The question actually raises more then it attempts to answer...
What type of game?
What type of engine?
How close does the player get to it?
Is this a constant distance or does it need to scale?
How many will be on the screen at one time?
Does this need to emote or speak?
What is the range of animation this object must preform?
Do we need to worry about seeing the object from all angles?
Thank you Ghostscape! This is the info I was looking for. Cheers!
Thanks to Rick Stirling as well.
Mr. Vig:
The question actually raises more then it attempts to answer...
What type of game? Portfolio piece, but shooting for a 'cinematic quality' gears-esque look.
What type of engine? Unreal3
How close does the player get to it? Inside of it, outside of it, close and far.
Is this a constant distance or does it need to scale? don't really understand the question
How many will be on the screen at one time? Several props will be instanced along the walls, others will be large hero props
Does this need to emote or speak? No
What is the range of animation this object must preform? Simple mechanical animation - not required for portfolio shots however.
Do we need to worry about seeing the object from all angles? Yes
I guess I'm having a hard time articulating my questions here, or maybe I am at a total lack of understanding for polygon budgets (from what I've read here and elsewhere).
Here's a quick screen grab of one of the objects I'm working on. High poly version here, about 2 million poly.
I've got the low poly half done and it's only at 2,000 polygons, I could probably get the entire thing down (with no sacrifice to silhouette) to about 4 or 5 thousand polys, 10k triangles. FOR SCALE this object is about 22 feet tall.
If something like this were to go in to an unreal 3 level, and be the most important thing in the scene, is 10k triangles about right? Am I cutting out too much?
I can post some screenies of the low poly wires WIP after I get home from work tonight.
Thanks for all the help so far everybody. I've learned quite a bit.
Dont know much about pipes and such but for crates they are usually mostly normal maps doing most of the detail when closed and if they are open then each side has some depth to it but are usually low poly as well, at least in L4D.
I can let you borrow my UT3 if you cant find your copy. I'll be at school on Tuesday at the lounge around 1 pm.
Oh, and this is Jesus by the way. Will be by the arcade, hehe.