Home Technical Talk

Character Polycounts in Film

polycounter lvl 10
Offline / Send Message
ralusek polycounter lvl 10
I was just browsing through for an answer to this question, but don't see to much. I understand that this is a gaming forum, but it's still a relevant question in some senses.

Now, as I understand it, pretty much all film models rely heavily on displacement maps for details. However, since everything is pre-rendered, are you only limited to a polycount of what the machine can handle (entire scene included)? Because I recently started trying my hand at a film level model, and have found myself at an awkward in-between phase, as it is essentially looking like a high detail game model. Maybe a boss for next gen, something along those lines. I figure in film i would just keep adding polygons until i got the silhouette I desired, but I have no real benchmark to shoot for (and it's very possible none exists).

if anyone has any input on the matter, would be much appreciated, spanku

Replies

  • aesir
    Options
    Offline / Send Message
    aesir polycounter lvl 18
    For a personal project, I would suggest that it is low enough that you can animate the model in a scene without your computer chugging before the smooth is put on it.
  • DarthNater
    Options
    Offline / Send Message
    DarthNater polycounter lvl 10
    Well, you still want it to be as low poly as you can get away with. The more polies you have, obviously, the longer its going to take to render. I highly doubt you're going to see 10million poly characters in films. I think I remember reading in 3D World that the transformers models were around 800k maybe? I know their texture sizes were freaking insane though and they had a ton of different maps on them. If I can find the article, I'll post the specs :)
  • sir-knight
    Options
    Offline / Send Message
    sir-knight polycounter lvl 10
    There's no real limit to film polycounts, whatever it takes to make it look right, but you should still keep the count in mind and optimize where you can, which can be as extreme as cutting out entire sections of mesh out of a scene that will never be in frame and so on.

    Don't just think of the model itself, but think of how it's used overall and you can build along those lines.


    Film 3d is always a matter of pushing technology, when you're looking at periods of 24 hours sometimes for a FRAME of render on huge projects like star trek (the new movie), not including time to composite it together, polycounts can get pretty disturbing.

    The guys at ILM were saying the romulan ship in the new movie was built in 3d at 1:1 scale... 7 kilometers long or something ridiculous and took 24 hours to render 1 frame of just the ship. There's a lot of detail that isn't seen at all, but when you get close to it, the texturework and sense of scale still exists, in proper proportion to the objects and world around it.
  • Mark Dygert
    Options
    Offline / Send Message
    Whatever it takes to make it look good and be done on time.
  • Blaizer
    Options
    Offline / Send Message
    Blaizer interpolator
    There aren't polycounts or limits like in game art, you use what you need, what a weird question man!.

    You could be surprised of the density of some models for animation.

    http://www.monstersculptor.com/portfolio_Mist.htm

    make yourself an idea :D
  • Valandar
    Options
    Offline / Send Message
    Valandar polycounter lvl 18
    If I remember correctly, the figures in Final Fantasy: Spirits Within were about 100,000 - 150,000 polygons - as counted by quads, not tris.
  • Mark Dygert
    Options
    Offline / Send Message
    Blaizer wrote: »
    You could be surprised of the density of some models for animation.
    Also take into account not everyone is working at the full res you see on screen. Models can be sub-divided at render time and people work with proxy meshes all the time. So some of the answers you get might be final results but not working results, if that makes any sense.
  • danshewan
    Options
    Offline / Send Message
    danshewan polycounter lvl 8
    A little dated, but a pretty decent article on Luma Pictures' workflows for their work on Underworld: Evolution...

    http://features.cgsociety.org/story_custom.php?story_id=3452&page=1
  • Ghostscape
    Options
    Offline / Send Message
    Ghostscape polycounter lvl 13
    Valandar wrote: »
    If I remember correctly, the figures in Final Fantasy: Spirits Within were about 100,000 - 150,000 polygons - as counted by quads, not tris.

    I'd imagine this is before subdivision at render-time?
  • ralusek
    Options
    Offline / Send Message
    ralusek polycounter lvl 10
    alright, great responses. pretty much what my understanding was.

    i.e. optimize when possible, but the sky is the limit so long as the machine can handle it and time permits.
  • ZacD
    Options
    Offline / Send Message
    ZacD ngon master
    Look at this tutorial/thing, it has a fairly dense sub div mesh with displacement, probably 30k?
    http://www.cgarena.com/freestuff/tutorials/xsi/monster/index.html

    header.jpg
  • Daaark
    Options
    Offline / Send Message
    Daaark polycounter lvl 17
    By 'the machine', you mean render farm.
  • ralusek
    Options
    Offline / Send Message
    ralusek polycounter lvl 10
    Zac D that is a rad walkthrough.

    Daaark the machine can mean anything. for me, it means my laptop. :)
  • cryrid
    Options
    Offline / Send Message
    cryrid interpolator
    The guys at ILM were saying the romulan ship in the new movie was built in 3d at 1:1 scale... 7 kilometers long or something
    Simulation and print aside, isn't everything usually a 1:1 scale in 3d? A cube that is 8 units long could be 8cm or 8 km
  • frubes
    Options
    Offline / Send Message
    we often render billions of polygons at work but that is mostly for environment related stuff, foliage, vegetation and the like. Character wise, its all down to displacement. Remember though, even if you are displacing the mesh you still need to have enough detail in the mesh before displacment to capture your desired silohuette otherwise it will still appear low res.

    In answer to your question, as much as you need to make it look nice. There are many varying factors when considering resolution such as distance from camera, type of camera shot (is it zooming into their face?), final output resolution (theres no point rendering 5 million polys on a 100px shot etc etc.
  • Neox
    Options
    Offline / Send Message
    Neox godlike master sticky
    DarthNater wrote: »
    Well, you still want it to be as low poly as you can get away with. The more polies you have, obviously, the longer its going to take to render. I highly doubt you're going to see 10million poly characters in films.)

    King Kong had around 10Mio or something only in his Face, thats why they initially invented Mudbox, as there was no Software to handle it when they started working on King Kong.
    Definitely not in the 3d Mesh but in the final displacement, and then it doesn't matter if you have the 10mio in your app and push render or if they are created while rendered 10mio are 10mio.
    Polygons are really not the biggest issue when rendering, turn on GI and it will kill your rendering, or SSS, of course polycount has an impact but the impact is not as high as using fancy shaders.
    Pretty much the same as with realtime engines, look at Uncharted2 and the crazy polycounts they move around, polys are not really the limiting factor anymore, but of course that doesn't mean you should waste them.
  • erikb
    Options
    Offline / Send Message
    Isn't Uncharted 2 just using regular low-poly real-time model with normal map as all other games? 10-15k for characters?
  • Neox
    Options
    Offline / Send Message
    Neox godlike master sticky
    45k for the sequences which are prerendert but still done in realtime at ~12fps

    but this is not only about characters, clever systems like instancing makes it possible to have millions of polys in one scene, or what about mudbox/zbrush? thats rendering too, they render quite a hell lot of polygons at once, but then start adding effects like shadows, AO and stuff, the framerate will drop quite fast.
    Polygons play their role, for sure, but these days its not like "cut down those 50 polies it will save us XX fps".
  • sir-knight
    Options
    Offline / Send Message
    sir-knight polycounter lvl 10
    only on mobile devices now :P
  • Daaark
    Options
    Offline / Send Message
    Daaark polycounter lvl 17
    Neox wrote: »
    but this is not only about characters, clever systems like instancing makes it possible to have millions of polys in one scene
    That can often be taken further using imposter rendering too. Basically, you render a model to a texture, and then use that on a quad for distant objects. So you get the visual effect of a x polygons object mapped to 2 triangles.

    As for removing things that won't be on camera manually; frustum, and backface culling is the first step of any rendering system, and now occlusion culling (if something is in the field of view, but is completely occluded by a closer object, cull it) too.
  • Neox
    Options
    Offline / Send Message
    Neox godlike master sticky
    dunno from my experience in max, backface culling slows things further down then making it faster, takes more time to check which face is backfacing then render it, but thats max :D
    dunno never really worked with a backface culling engine, but it might be so good that i didn't realize, so dunno :D
  • Daaark
    Options
    Offline / Send Message
    Daaark polycounter lvl 17
    Neox wrote: »
    so dunno :D

    Backface determination happens automatically, it's a by-product of winding order. Points that make up a polygon are either specified clockwise or counter clockwise, and when they face away, their winding order is the inverse, so automatically aren't facing the camera.

    If a model of a sphere has 5000 polygons, 2500 will never make it past that stage. Unless you disable that stage. Some objects will be marked as 'double sided' and disable that.

    The rendering pipeline has many stages.
    -Setting up the view tranforms and world matrices
    -Testing all objects against the frustum (don't render what you can't see)
    -creating a list of models to be rendered
    -...
    -...

    At render time, all that data has to be processed. Polygons with the wrong winding order are simply never sent down the pipeline. It's free. and it saves a ton of time, especially on surfaces with complex shaders.

    There are other steps that can be taken, including rendering out low quality versions of the scene with no textures, and using that information to decide if objects are fully occluded (drop them altogether), or if they are too far for expensive shading operations to even produce a perceivable result (bind a cheaper version of the shader).

    Winding order is why importing some models in some packages often produces a result where all the polygons are facing the opposite direction.


    AND NOW YOU KNOW THE REST OF THE STORY...
  • Neox
    Options
    Offline / Send Message
    Neox godlike master sticky
    and now you test it in max and you'll see it gets slower with all objects having backface culling on, so i guess its not for free everywhere
  • Daaark
    Options
    Offline / Send Message
    Daaark polycounter lvl 17
    Neox wrote: »
    and now you test it in max and you'll see it gets slower with all objects having backface culling on, so i guess its not for free everywhere
    backface culling in the realtime viewport is free, and happens on the GPU. The same operations happens on all triangles processed by the gpu. Only difference is the result of the test. Drop clockwise, drop counter, or don't drop. Software has no control over it other than to set one of those options.

    If max wants to run add an expensive shader in there, or do some other processing from within the software itself which takes a hit on the framerate, that's their business. But the culling itself at the card level happens at the gpu level when it's processing the array of vertices to be drawn, and is part of the fixed cost of every triangle that is rendered.
Sign In or Register to comment.