Home Technical Talk

low-poly character tutorial I made (3dsmax)

Hey all - thought I'd share this here since I'm sure some of you might find it useful.

I just finished writing up a tutorial on low-poly character modeling, unwrapping, and texturing. The tutorial is for 3dsmax and the texturing stuff is in photoshop.

http://www.bakaneko.com/howto/computer/3d/character/page01.html

Replies

  • Rob Galanakis
    Options
    Offline / Send Message
    I skimmed it, very good tutorial.

    However, my personal opinion and from the feedback I get on my own tutorials, video tutorials are the way to go. People have a better time following them and learning from them. Especially since you put so much work into documenting this, I would suggest for your next tutorial try out a video one.

    BTW I would suggest trying to post this around some mod sites (especially RTS) as the artists will find it most useful.
  • Daz
    Options
    Offline / Send Message
    Daz polycounter lvl 18
    Reasonably easy to understand. One thing of note: The vast majority of game engines prefer lower numbers of draw calls for better performance. A seperate texture means a seperate draw call so UVmapping the character with so many different textures like that is not necessarily the best way to go. Of course, there are often reasons why you would have to do that but generally speaking you would want to put everything into one texture where possible. It might be worth a mention.
  • Ghostscape
    Options
    Offline / Send Message
    Ghostscape polycounter lvl 13
    [ QUOTE ]
    Reasonably easy to understand. One thing of note: The vast majority of game engines prefer lower numbers of draw calls for better performance. A seperate texture means a seperate draw call so UVmapping the character with so many different textures like that is not necessarily the best way to go. Of course, there are often reasons why you would have to do that but generally speaking you would want to put everything into one texture where possible. It might be worth a mention.

    [/ QUOTE ]

    IIRC Athey worked/works for Sony Bend as a character artist and as a result was working on the PS2 and its dirty dirty love for using 4x128x128 maps instead of a 1x256x256.

    But I may be horribly mistaken.
  • Daz
    Options
    Offline / Send Message
    Daz polycounter lvl 18
    I've made many a PS2 game myself and have never heard an engineer express a preference for 4x128 versus 1x256.

    Back in the day when PS2 was the main platform, PS2 may have been your target as a developer, but more often than not you were making a build for Xbox and Gamecube too. It would make far more sense to work the way that suits all platforms best, as opposed to working in a way that suits one platform marginally better and the rest poorly.
  • BiznessMan
    Options
    Offline / Send Message
    BiznessMan polycounter lvl 18
    I have been trying to create low poly characters for years now, and I could never really get the hang of it.

    But I completed a full character, rigged and all, following this tutorial. I was well written and easy to follow. Thank you much for the tutorial smile.gif
  • SuperOstrich
    Options
    Offline / Send Message
    SuperOstrich polycounter lvl 17
    Ghostscape, I believe what you're referring to with 128 textures is getting them to fit in the PS2's texture cache, which gets them to draw MUCH faster than a texture larger than the cache. Unfortunately, fitting textures in the cache on the PS2 means you either need to make them 128x64, 8-bit or 128x128, 4-bit. Neither spec works very well for a character texture, so I've never had a programmer force the issue on the character side of things. On the environment end, that's a totally different story. Almost every PS2 game I worked on had practically nothing but 128x128, 4-bit textures in the environment.

    Daz is right though, separating out textures requires the engine treat each material as a separate mesh, and there is a certain amount of overhead for drawing individual meshes as opposed to one large one. Now there are many cases where it makes more sense to take a hit with an extra mesh with a separate texture instead of cramming it into one supertexture. For example, if you have a character with a 1024x1024 map and he only needs one teeny bit of blended alpha for something like hair, it would be best to make a separate hair texture if your game uses DXT compression. A 1024x1024 DXT1 map (no alpha) plus a 128x128 DXT5 map(8-bit alpha) is actually FAR smaller than just a single 1024x1024 DXT5. Enough that even if you're using 3 maps per material (normal, diffuse, spec), that the two material/map option is still smaller.

    It comes down to what works best for each given character though. If your engine doesn't support blended alpha sorting and you have to use 1-bit alpha anyway for things like hair, then you're back to being better off with one map.

    Of course, it becomes even more of a pain when you have one large map but many different types of materials contained in that map. Like metal, cloth, and skin all residing in the texture. To get the most realistic material representation, and depending on how much control the engine allows the artist to have with materials, you'll probably have to create different materials for each of these elements anyway. This creates the problem of having multiple materials per character, and creating extra mesh drawing overhead again.
  • Eric Chadwick
    Options
    Offline / Send Message
    Nice tutorial, clear and well thought out.

    A couple thoughts. Smoothing groups basically duplicate the vertices of the model, so I think it's good to note that using them too much can really affect the vertex cost.

    I wonder if you've tried using a more dense checkermap for the UVing? Setting up the UV ref layer in Photoshop seemed like a lot of work, a super-quick way is just to set that mostly-black layer to Screen and decrease Opacity some (or invert and use Multiply). Great texturing steps.


    This brings up a subject I'm interested in, and related to tutorials in general... how did each of you learn the ins and outs of draw calls, texture fetches, vertex cache, and the like?

    I suspect like me you learn by discussing performance issues with the programmers you work with. Maybe you've coded your own rendering software at some point, but I think that's pretty rare in the world of game artists. Or maybe you read programmer-oriented books like the ShaderX series and the like.

    I wonder if there are more artist-centric resources on the web for realtime artists to learn the ins and outs of these daily decisions. I have one article on my site, but it really only scratches the surface.
    http://www.ericchadwick.com/examples/provost/byf1.html

    I'd love to see more like this, to help new artists develop their own sense for when/where/why they need to make these tradeoffs. But I suspect much of it is just too platform- and engine-specific. Thoughts?
  • poopinmymouth
    Options
    Offline / Send Message
    poopinmymouth polycounter lvl 19
    Eric I for one would love you long time in your face if you made a nice performance related tutorial. Cover tri strips, draw calls, etc etc.

    In other words, YES PLEASE.

    poop.gif
  • Eric Chadwick
    Options
    Offline / Send Message
    But would you poop in my mouth?
  • poopinmymouth
    Options
    Offline / Send Message
    poopinmymouth polycounter lvl 19
    That's disgusting. Shut your dirty whore mouth.

    poop.gif
  • Eric Chadwick
    Options
    Offline / Send Message
    Yeah, I would totally write something like this, but I don't have the time these days, or maybe it's just that I don't have enough interest in it, relative to playing with my kids or whatever.

    Kind of like the DDS thing I guess.

    Maybe there's already other stuff out there?
Sign In or Register to comment.