Home Technical Talk

Game models, polygon count and other questions

theoaktree
polycounter lvl 3
Offline / Send Message
theoaktree polycounter lvl 3
Heya people. I just joined the forums and am fairly new to modelling with only 2 months in. I wish to ask some questions about polygon count in games though I think you guys are quite sick of that topic already.

Firstly, how much polygon count could a game scene have, especially for high end graphic cards like the GTX 780 or GTX Titan?

I ask this because currently, my workflow when making objects is too slow when I`m trying to optimize the objects and I would be able to make objects ~5 times faster if not for the optimization. Though even if I do not optimize my stuff, I doubt I could complete a game anytime soon and by the time it's done, high end graphics card would probably be available to the masses. Currently I follow some approximate poly count guidelines when making my objects.

Basic Small(utensils, test tubes, etc): 2k poly max
Small(watches, leather bags, etc): 5k poly max
Medium(sofas, tables, trees, etc): 7k poly max
Large(houses, windmills, etc): 15k poly max
Main(big chandelier, characters, etc): 80k poly max

Should I continue to follow this?

Secondly, I have heard from some forums that setting objects(example: test tubes) as a prefab in Unity would reduce render time in the game. Is this misinformation or a fact? If so, how much faster does it render?

Thirdly, are there any guidelines for the draw calls while taking into account of modern graphic cards? My knowledge of draw calls is that a higher draw call = slower render time and more materials = more draw calls.

Lastly, taking into the 3rd question into account, is it bad if I model a single object with two separate objects? People have said that modelling this way makes UV mapping difficult so I currently model my objects from a single mesh. What if the objects requires no UV mapping at all? Will it be better in regards to polygon count optimization if I model my objects out of multiple meshes IF they do not animate?

I need some guidelines while modelling my objects else it is hard to continue. Hopefully someone could be kind enough to help me.

Thanks!

Replies

  • Obscura
    Options
    Offline / Send Message
    Obscura grand marshal polycounter
    Hi. These questions are a little hard to answer, but I try.So...
    First

    We need to about triangle count, not polygon count, because this is what really matters in this viewpoint. Actually nowadays on the modern pcs, this count doesnt really matter because these pcs are really strong and can handle multi-millions of polygons\triangles.So if the target platform is pc, then I would say use as much as needed to get good looking, but dont go crazy.You need good silhouette, but the smaller extrusions\bevels (especially the inward bevels\extrusions) can be just normalmapped in almost all the cases. So actually you need to care about this, when you are making something for some console platform.

    The another thing that you need to think out, is the game type.FPS\TPS\RTS\RPG or where it will be used. In the fps games, the meshes are always more detailed than in a TPS for example because you can see them from a lot more closer.But. Here is an another thing that can be in an fps game too. If we are talking about a building that is just in the background and you cant go closer, it can use "low" detail. The more closer you can go, the more detail you need. Dont forget how good is the normalmapping, and how functional it can be in a lot of cases.

    "Basic Small(utensils, test tubes, etc): 2k poly max -->test tubes?to testing what?
    Small(watches, leather bags, etc): 5k poly max --> 2,5-4k
    Medium(sofas, tables, trees, etc): 7k poly max --> 5-7-10k but the tree can be more
    Large(houses, windmills, etc): 15k poly max --> as much as needed. So it depends on the game type, the view distance, Can you go inside or not, etc.
    Main(big chandelier, characters, etc): 80k poly max" --> huh?chandelier with 80k?! Alpha and normalmaps, so max 10k but you can do with less. And for the character, i would say 40-60k if its for a next gen fps.

    But these all depends on the previously written things.

    I cant answer to your second question.
    Third
    Yep, more materials are equal to more drawcalls, but just think about the modular texture using buildings.Sometimes they are using 4-6 textures\materials, and we are in 2013 so I wouldnt care too much about this.Personally I use materialIDs\multimaterials often.
    Last
    You CAN use elements, and I would recommend them because yes, there will be more verticles where the borders are, but you can optimize the mesh at some other place then.Almost all the game meshes needs uvmap at least for some ao bake or lightmap.

    - Optimization is needed for sure, but dont overdo it, because this is why some of the games are looks near the same as doom3\half life2 was looked in 2005. Sad but true...

    Hope these help!
  • theoaktree
    Options
    Offline / Send Message
    theoaktree polycounter lvl 3
    Thanks for answering.
    Just adding on two more questions.
    1. Does using the same material twice = one or two draw call?
    2. Which results in faster render time? 100k polygon object using one texture map or 10k polygon object using three texture map? Can someone give me the approximate calculation for that?
  • Obscura
    Options
    Offline / Send Message
    Obscura grand marshal polycounter
    1. On two mesh its two drawcall for materials as I know.
    2. If we talking about real time rendering, then you cant really say "render time" because its real time.Then it must be rendered in a very little part of a second.So the "rendering time" isnt noticeable.But the three texture using mesh needs 3 drawcalls for its materials if all the 3 textures are using different materials.So the 100k mesh with one texture would be "faster" I think. But as I said, the rendering time wouldnt be noticeable in both cases, if we talking about real time rendering.

    Edit:
    - A few weeks ago I did a little test about speed with lots of polygons\complex materials etc. I used a mesh that was from 50k triangles. I copied it 100 times so there was 5.000.000 triangles. I added my IBL material (its used diffuse\normal\detail normal\specular\glossiness\blurred reflection map\sharp reflection map so 7 textures) to all the meshes. Originally i had 25-30 fps in UDK in a blank scene, because I have an old pc (intel e5500 dual core, HD5400 1gb).When I added all these to the scene I lost only like 10-15 fps.
  • theoaktree
    Options
    Offline / Send Message
    theoaktree polycounter lvl 3
    Wait what? I`m kinda confused. If I Ctrl+J two objects in blender and make it a single object and apply a material to everything is that one draw call or two draw calls? If my object have 10 parts to it and I apply a material wouldn't that take 10 draw calls and if I have 30 of those objects it would result in 300 draw calls so the only thing that is logical to do is to make one single seamless mesh?

    Edit: Found my answer from Unity's documentations. Objects that uses the same materials can be batched resulting in only one draw call. Just want to ask one more question. Can textures be batched too? If I have 100 exactly similar trees, would it result in just one draw call?
  • Obscura
    Options
    Offline / Send Message
    Obscura grand marshal polycounter
    I said two mesh not two element of one mesh.Subobjects doesnt costs extra drawcalls.So if you have one mesh with 200 subobject than it costs one drawcall if I know right. But why is it that important to you?
  • iniside
    Options
    Offline / Send Message
    iniside polycounter lvl 6
    theoaktree wrote: »
    Thanks for answering.
    Just adding on two more questions.
    1. Does using the same material twice = one or two draw call?
    2. Which results in faster render time? 100k polygon object using one texture map or 10k polygon object using three texture map? Can someone give me the approximate calculation for that?

    1. Depends on Engine. But it sually will be at least 1DC per material/shader permutation.
    2. Again. There is no cleaner answer, because it depends on how things are setup. If by texture maps, you mean just images, then of course second will render faster because of less triangle. How many textures you throw at object is not really important for perfomance. The important thing is how many materials/shaders are on single object.

    For you polycount question (pun intended), for next-gen games it's irrevelant question. Use as many as triangle you need to make your object look good from player persepective. This is important thing small rock doesn't need many tris, but large rock formation that can be looked up close needs.
    You will hit perfomance bottleneck long before your triangle count will have any real impact. The more important things are:
    1. Lighting complexity
    2. Shader Complexity.
    3. Size and amount of textures.

    Look at Star Citizez:
    Average Character - 100k triangles.
    Fighther - 300k triangles.
    Carriier - 3mln triangles (dunno it might 2mln, you can find on youtube if you are intertesed).


    As for DrawCalls. There is no guides because all engines handle it diffrent ways. What is DrawCall anyway ?

    Well DrawCall is how often GPU must call CPU to send it some data.

    The way to reduce amount of drawcalls on designer side is to merge object into as big as chunks as possible.
    Don't rely on instancing. Most people confuse how it really works in most engines. In most cases instancing just reduce amount of memory needed, and doesn't work with ordinary static meshes. It only work with "special" case objects that can be batched and send togather (like foliage)
Sign In or Register to comment.