Hey everyone! I had a quick question for you all. I am working on a character that will be going in engine, and right now I have all my normal maps and AO maps baked out and I wanna test this out. All my maps are baked at 2048. So that means for just the head theres a 2048 NM and a 2048 AO, body is the same. This seems really.....high. Should I shrink it down to 2 1024 maps for the head and body? or is that still to high?
Also The character is one mesh is it ok to make 2 different shaders one for the head and the other for body and just apply those in the Mesh LODInfo ? (Im using UDK btw) I just want to make sure this is as optimized as possible while maintaining good texture fidelity. Thank you all for your time!
Replies
Theres no real reason I have it as two separate Uvs. It just made since to me to make them separate for ease of texturing. I figured the head Would need as much resolution as the body cause thats what people would focus more on. Is it bad that I did that?
This is just for a portfolio piece, I just wanted to make sure it would look nice
Thanks again for the help!
P.S. He is all one solid piece of geometry except a few little bits and pieces which are all on the body UV space.
not sure how common a practice is it though.
Oh and as far as i know/remember they did that in mass effect too.
The difference in texel density between body and heads are pretty obvious in most recent games, first one that comes to minde is Mass Effect 2 for example (not sure if they were using 2k for the heads though).
Also another thing i was wondering if I have a diffuse and normal thats in 2k and the character has Alpha for like fur or something does the alpha have to be 2k or can that be lowered to 1024 to save on texture space?
Sorry for all the noob questions
Often times I prefer to use a separate smaller map for alpha, and if you only have alpha on a small portion of your model, it can be interesting (more optimized + better quality) to create a new UV set giving those areas extra space, that you'll just use for the alpha map.
Can any of you guys be so kind to give me a run down how your workflows on getting your characters in engine? Or if you can point me to some documentation or something that would be cool too. Thanks again you guys for the help!
Pros for 1 texture
A. Simplicity sake
B. Less materials, less draw calls etc
C. Easier to get a seamless model when you don't have a texture split with multiple maps, more important when the neckline is visible.
Cons
A. If you have swapable heads, outfits, etc
B. You can cut down the body size but keep detail in the face if needed when optimizing
Generally its not uncommon to have more detail in the head, personally I don't like to go overboard on this, but i'm not really a character artist. I think unless you know for a fact you're going to have close ups of the face, its probably not worth the effort. There is a lot to be said about having a consistent texal density as well, when you've got a really detailed head, the rest can look really low resolution. This is something that annoys me but not everyone cares.
If you're going to use more detail on the head, I would't do... lets say more than 2x.
If we consider that the head takes up roughly 1/8th the mass of the character, a 2K map for the head vs a 2K for the body, that head texture is about 8x as large(just to explain what I was saying earlier).
So with all that taken into account, I would probably suggest 1 2kx2k map for the entire character, uv the entire thing to be even density, and then scale up the head 150x150%(2x), then pack everything together.
Generally for anything with fur, you're better off using an additional smaller texture because:
A. with DXT compression alpha doubles your filesize, so a 32bit diffuse is the same size as 2 24bit diffuse textures.
B. You only really need to run a material with alpha on the bits that need it, this will save a little performance if you have it isolated to your alpha bits.
Sorry, I don't know much about UDK specific stuff.
Apparently a state change (when part of a mesh changes from one material to another) doesn't have as big an impact on a console as on a PC, but the cost of rendering alpha is higher on a console. So splitting the alpha makes sense there. My experience is on the Wii, but I've heard the 360 and PS3 have a similar limitation.
Does this jive with what you guys know?
I'm not sure of the cost in terms of rendering/shader performance, I was talking specifically about VMEM.
IE: Adding an extra 512x512 diffuse+alpha, 24 bit spec, and normal map is the same memory hit as simply using a 1024 with alpha and 1/4th the VMEM cost of a 2048 with alpha.
I just feel it's easier to work with head/skin and clothes on separate maps, and later on it makes it easier to re-size or stream differently the 2 maps (for eventual last minute optimization), or even to set different filtering type, like doing some anisotropic filtering on head textures but not on the body, etc.
Still everything EQ says is very true (as usual), it's always a matter of doing what is best depending on the context, I'm pretty biased currently about characters because of the kind of projects I'm working on.