• Announcements

    • khawk

      Download the Game Design and Indie Game Marketing Freebook   07/19/17

      GameDev.net and CRC Press have teamed up to bring a free ebook of content curated from top titles published by CRC Press. The freebook, Practices of Game Design & Indie Game Marketing, includes chapters from The Art of Game Design: A Book of Lenses, A Practical Guide to Indie Game Marketing, and An Architectural Approach to Level Design. The GameDev.net FreeBook is relevant to game designers, developers, and those interested in learning more about the challenges in game development. We know game development can be a tough discipline and business, so we picked several chapters from CRC Press titles that we thought would be of interest to you, the GameDev.net audience, in your journey to design, develop, and market your next game. The free ebook is available through CRC Press by clicking here. The Curated Books The Art of Game Design: A Book of Lenses, Second Edition, by Jesse Schell Presents 100+ sets of questions, or different lenses, for viewing a game’s design, encompassing diverse fields such as psychology, architecture, music, film, software engineering, theme park design, mathematics, anthropology, and more. Written by one of the world's top game designers, this book describes the deepest and most fundamental principles of game design, demonstrating how tactics used in board, card, and athletic games also work in video games. It provides practical instruction on creating world-class games that will be played again and again. View it here. A Practical Guide to Indie Game Marketing, by Joel Dreskin Marketing is an essential but too frequently overlooked or minimized component of the release plan for indie games. A Practical Guide to Indie Game Marketing provides you with the tools needed to build visibility and sell your indie games. With special focus on those developers with small budgets and limited staff and resources, this book is packed with tangible recommendations and techniques that you can put to use immediately. As a seasoned professional of the indie game arena, author Joel Dreskin gives you insight into practical, real-world experiences of marketing numerous successful games and also provides stories of the failures. View it here. An Architectural Approach to Level Design This is one of the first books to integrate architectural and spatial design theory with the field of level design. The book presents architectural techniques and theories for level designers to use in their own work. It connects architecture and level design in different ways that address the practical elements of how designers construct space and the experiential elements of how and why humans interact with this space. Throughout the text, readers learn skills for spatial layout, evoking emotion through gamespaces, and creating better levels through architectural theory. View it here. Learn more and download the ebook by clicking here. Did you know? GameDev.net and CRC Press also recently teamed up to bring GDNet+ Members up to a 20% discount on all CRC Press books. Learn more about this and other benefits here.
Sign in to follow this  
Followers 0
Scouting Ninja

What is your poly budget?

12 posts in this topic

Being a 3D artist I am often asked to join others in there game projects, from years of experience I have learned to ask these three questions first.

 

Have you made a 3D game before?

Can I download it?

What is your poly budget?

 

In truth, I really only care about the third question, I will still join a project of a beginner if thy prove thy did some research.

The answer: "modern game engines do not need poly budgets." means that the game, will not see the light of publication.

Even a number, that I consider to be too high could mean the end of the conversation, but how much is too much?

 

I fear that two years of working in the CGI world has numbed my understanding of the needs that game designers have.

 

Now I am asking those of you who have worked or have a good understanding of 3D graphics, how much polygons do you use?

 

I understand that it depends on the project so feel free to elaborate, if you want you can answer in a data form e.g.

 

XNA

 

3rd Person Shooter.

 

Hero 5000 Polygons(10 000 Tri)

Edit: Bones 22

Enemy 4000 Polygons

Edit: Bones 18

 

Large prop: Building 500 000 Poly

Mid Prop: Tree 10 000 - 8 000 Poly (Static mesh)

Small Prop: Gun 2500 Poly

 

Ps: If we could use unlimited polygons, I will be one of the first to right a atom based game engine.

Edited by Scouting Ninja
0

Share this post


Link to post
Share on other sites

I like to look at the wireframe of the entire scene as rendered in the engine and overlay the pixel grid. That way, you always have the relation between triangle size and pixel size which IMO is equally important. For example, if you have a high poly mushroom in a close up shot, everything is fine. If you have a high poly mushroom and a good LOD system that switches to, say, a billboard, you are fine too. If you only have the high poly mushroom and covered an entire forrest with it, then it will show up in the rendered wireframe and you will notice, that the "triangle density" is way too high. And you will even see it if 90% of the mushrooms are hidden from view.

 

I know this can't be used as an initial guideline for modelling the asset, but it gives good intell on whether the designers misused the asset or if a stronger LOD is needed after all.

1

Share this post


Link to post
Share on other sites


I like to look at the wireframe of the entire scene as rendered in the engine and overlay the pixel grid.

This is very useful when working with a whole seen, but as a modeler I usually make the models and this is then added to the scene by a level designer.

What I am looking for is a good by the rule of thumb value, to keep in mind when working.

0

Share this post


Link to post
Share on other sites

Obviously its not an unbounded number, but for the most part we haven't been limited in the number of triangles we draw for years on the desktop -- that is, you can pretty much always use as many triangles as is necessary to make things look good, as long as you're not being gratuitous -- especially now with hardware tessellation. On the desktop PC, you're more often limited by the number of draw calls you make, not how many triangles are coming out the other end. On mobile platforms, fill rate is often the limiting factor (e.g. tegra 2). On current consoles, I'd wager its VRAM and shader throughput that are limiting factors, but I don't work on consoles and its only a guess.

 

 

That said, half a million polygons for a building is excessive, most buildings just don't have that kind of geometric detail -- particularly if you're not breaking that render up with some form of BSP scheme you're just wasting a ton of resources on things you won't see anyway. 

0

Share this post


Link to post
Share on other sites


use as many triangles as is necessary to make things look good, as long as you're not being gratuitous -- especially now with hardware tessellation.

Tessellation is added onto the original mesh and doesn't count to the poly budget, instead the poly budget defines the tessellation e.g.

A model of a 1000 quads will turn into 4000 at first then 16000.

 

If the poly budget is not considered then the artist could make the mistake of using 5000 quads, thinking that only one level of tessellation would be used.

Now the 5000 turns to 20000 to 80000.

This happens a lot, if you are coding the game by yourself this isn't a problem, but when working in a large team this will set you back by as much as a whole day.

 


half a million polygons for a building is excessive

This only begs the question of how much polygons should be added into a single mesh buffer at most?

1

Share this post


Link to post
Share on other sites

XNA

750,000 on my most detailed model, with lots of culling. Mid size ships are between 30,000 and 70,000, can have several dozen of these on screen during large battles

 

On low-end hardware (HD4000) my GPU-accelerated fractal algorithm for planets is set to draw just a little over a million triangles, whereas on high-end PCs it can be cranked to push over 4 million triangles.

 

Various other effects (particles effects, stars/parallax) render several thousand more tris.

 

For mobile devices (e.g. HD4000) in total I push somewhere between one or two million triangles (unfortunately this comes at the cost of pushing 1080p framerates under 20 fps, though 720p is still very smooth). On more powerful desktops with good graphics cards I can push 5+ million on 1080p with no framerate drops. I haven't yet tested this on any ultra-powerful desktop machines, my hardware is a little dated. I suspect some new machines could do millions more tris.

 

My game is highly GPU-bound in terms of performance, CPU makes little or no difference except for load times (NOTE: load times can be pretty awful for complex models on low-end machines).

Edited by jsuffolk
2

Share this post


Link to post
Share on other sites

When I build models I try to go for the lowest poly count that I can squeeze out of it and I use normal maps to fill in the detail. Also there are also a lot of source code examples for implementing other techniques for enhancing detail such as parallax mapping, relief mapping, cone-step mapping, etc... 

 

These methods alter a models texture map coordinates to simulate how a raised surface will travel farther along an arc than a lower surface would. A surface further from the pivot travels a greater distance, to achieve this effect,  parallax mapping moves the texture map coordinates further where the height map is "higher".

 

This technology even runs on mobile devices very well under OpenGL ES 2.0.  With all the open source available it's pretty much in the hands of everyone now.

 

If the game is set up to do this then you really only have to concern yourself with the silhouette of the model since techniques that use textures to enhance a model tend to only break down at the model's edges where the surface angle is steep.

 

You could also make multiple versions of the same model at various levels of detail,

In layer 1, you could have the lowest resolution model,

In layer 2, a medium detail model,

In layer 3, a model that is a bit excessive.

 

This technique will give you options for different requirements that people may have,  and it will also give you an edge with games that can implement LOD.

 

The only real issue here would be keeping the texture map coordinates synced up between the various levels of detail, but Blender and xNormal both can do a pretty good job of projecting the surface normals of a high poly model onto the low poly model even though the high poly doesn't have texCoords assigned. 

 

Maybe the modeling program you prefer to use also has this feature.  In Blender it's activated using the  "Selected to Active" checkbox found in the "bake" section. 

 

Even if you don't use Blender for modeling you could still use it just for this feature since it's free. 

 

If you really want to pack in the most detail possible than you really should consider mastering the art of "modeling" normal maps as well as height maps.  They tend to work very well since texture map detail is not subject to aliasing in the same the way real geometry is. 

 

Normal maps also tend to smooth out aliasing problems on real geometry at many view angles. Just not along the model silhouette.

0

Share this post


Link to post
Share on other sites

Tessellation is added onto the original mesh and doesn't count to the poly budget, instead the poly budget defines the tessellation e.g.

A model of a 1000 quads will turn into 4000 at first then 16000.

 

If the poly budget is not considered then the artist could make the mistake of using 5000 quads, thinking that only one level of tessellation would be used.

Now the 5000 turns to 20000 to 80000.

This happens a lot, if you are coding the game by yourself this isn't a problem, but when working in a large team this will set you back by as much as a whole day.

 

 

But this isn't really the problem. The real problem is the one of finding appropriate level of detail. At 1080 resolution, you have 1310720 pixels, respectively 327680 4-pixel quads. Shading happens in 4-pixel quads, both because it is practical and because the existence of ddx/ddy more or less makes it mandatory.

Which means if you have more than ~600k triangles on screen, you're necessarily starting to get abusive to the pixel shading pipeline. Long before you get anywhere close to being limited by triangle (or vertex) counts, which are in the millions, you are going to feel the effect of shading the same fragment many times and only keeping one value.

 

So, it doesn't matter that much whether your object that you draw maybe 10-20 times has a puny 5,000 or 50,000 triangles. What matters is whether the LOD works well enough so in the final rendered buffer triangles aren't all 1-2 pixels large (that applies not only to triangles belonging to a mushroom or to your player, but also triangles belonging to buildings and terrain).

If your model has 50k triangles, that's mighty fine. If it has 5k triangles and looks good, that's mighty fine, too. It's not yours to worry about. A 1k model seen at some distance might still have too many triangles, and it's the LOD system's task to figure this out.

0

Share this post


Link to post
Share on other sites


750,000 on my most detailed model, with lots of culling.

Thanks for sharing your test results, it is a very useful guide line.

 


But this isn't really the problem. The real problem is the one of finding appropriate level of detail. At 1080 resolution, you have 1310720 pixels, respectively 327680 4-pixel quads. Shading happens in 4-pixel quads, both because it is practical and because the existence of ddx/ddy more or less makes it mandatory.
Which means if you have more than ~600k triangles on screen, you're necessarily starting to get abusive to the pixel shading pipeline. Long before you get anywhere close to being limited by triangle (or vertex) counts, which are in the millions, you are going to feel the effect of shading the same fragment many times and only keeping one value.

This is great insight, I will do some research on this.

0

Share this post


Link to post
Share on other sites

 

But this isn't really the problem. The real problem is the one of finding appropriate level of detail. At 1080 resolution, you have 1310720 pixels, respectively 327680 4-pixel quads.

 

 

Doesn't 1920 x 1080 = 2,073,600 pixels? I'm curious why you used basically half the pixels of that resolution.

 

I'm not a programmer by any means, so please excuse my ignorance. I'm just trying to understand your numbers in regards to pixel counts.

1

Share this post


Link to post
Share on other sites

 

 

But this isn't really the problem. The real problem is the one of finding appropriate level of detail. At 1080 resolution, you have 1310720 pixels, respectively 327680 4-pixel quads.

 

 

Doesn't 1920 x 1080 = 2,073,600 pixels? I'm curious why you used basically half the pixels of that resolution.

 

I'm not a programmer by any means, so please excuse my ignorance. I'm just trying to understand your numbers in regards to pixel counts.

 

Hehehe, that's because I'm stupid... I multiplied some wrong numbers. You're right, it's twice as many pixels (but still the same logical consequence, even if it is not as immediately obvious).

 

The one obvious thing is that if you have basically as many vertices (or even more!) as you have pixels at some point. The not so obvious thing is that long before you approach that limit, you already have considerable double-shading of border fragments.

 

Many people use triangles instead of full-screen quads nowadays to save double-shading the fragments on the diagonal when they do post-processing. Now imagine the same thing happening with a hundred thousand small triangles all over the scene. The more triangles you have, the more pixels necessarily happen to lie on some skew line, or on a border in general, covering only one or two pixels of the 2x2 group.

Edited by samoth
0

Share this post


Link to post
Share on other sites


Many people use triangles instead of full-screen quads nowadays to save double-shading the fragments on the diagonal when they do post-processing. Now imagine the same thing happening with a hundred thousand small triangles all over the scene. The more triangles you have, the more pixels necessarily happen to lie on some skew line, or on a border in general, covering only one or two pixels of the 2x2 group.

Is this avoidable?

If I can't avoid it can I solve it?

0

Share this post


Link to post
Share on other sites
Is this avoidable?

If I can't avoid it can I solve it?

 

 

You cannot avoid this from happening, but you can avoid it from impacting you. The way the hardware works will not change, so inevitably you will shade some fragments more than once. Up to some point, this does not matter.

 

Smaller triangles generally give a "better look", but with diminishing returns. At some point, even smaller triangles do not give any benefit any more, but theamount of doubly-shaded fragments figuratively explodes.

 

The solution is to draw everything at its proper level of detail, and for the artist this means to either generate a model that contains discrete levels of detail, or something that will gracefully downgrade with an on-the-fly LOD algorithm. Ideally, all triangles as seen on the screen are approximately the same size.

 

Your main character's or an enemy's model might very well have 25,000 triangles for the head only when you look straight into his eyes. These 25,000 triangles will cover 80-90% of the screen, so that is perfectly OK.

On the other hand, the same model (head plus body) viewed at a virtual distance of 50 meters will cover an area of the screen coparable to your thumbnail, so it probably shouldn't have more than a few dozen or at most a hundred triangles. If a thumbnail-sized area on the monitor corresponds to 25,000 triangles, you're shading every fragment a thousand times and you gain no visual quality at all (in fact, it may very well cause nasty aliasing artefacts). If half of your screen consists of thumb-sized areas of thousands of triangles, you're in serious trouble.

1

Share this post


Link to post
Share on other sites

For my game Zombie Bounty:Unload for Gold on iOS I had a polycount budget of about 700 for the zombies and 350 for the weapons.

 

2-7.jpg

a-3.jpg

mp5.jpg

placidRifle.jpg

1

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!


Register a new account

Sign in

Already have an account? Sign in here.


Sign In Now
Sign in to follow this  
Followers 0