Take the 2-minute tour ×
Game Development Stack Exchange is a question and answer site for professional and independent game developers. It's 100% free, no registration required.

I am pretty new to this 3D designing and animating, and as an indie developer I need to do everything on my own

I have created this simple box character And I want to texture it, have looked around for solution and all seem to require UV-Mapping. Is it normal if I create a texture for each part of the character (legs have texture,head another texture file and it goes..) Or I should learn it the hard way and simply create one texture for the entire character.

What are the pros and cons of this approach, noting that I am targeting mobiles. and may I get resources about texturing for mobile games ?

EDIT : knowing that I am targeting mobiles (low resources compared to PC), Is it possible to dynamically render textures via the engine without needing files ? I guess it would be easier to update textures later compared to using a file, knowing the characters are simple cubes and shapes and simple colours would be rendered on them (with few details of course)

share|improve this question
add comment

2 Answers

Separate textures is very bad performance-wise. Modern content pipelines usually subdivide a mesh in individual parts separated by material, so this adds additional GPU instructions when drawing the model. Here is how drawing a model that has three separate textures five times would be in code:

for (int i = 0; i < 5; i++)
{
    SetTexture(headTexture);
    SetModel(headModel);
    Draw();

    SetTexture(torsoTexture);
    SetModel(torsoModel);
    Draw();

    SetTexture(legsTexture);
    SetModel(legsModel);
    Draw();
}

That would be 15 SetTexture, SetModel and Draw calls each. Knowing that each one has some kind of overhead when calling (mainly due to CPU <-> GPU communication), you end wasting some precious resources and making the frame drawing slower.

Now, this would be the code if you had to draw a model with only one texture:

for (int i = 0; i < 5; i++)
{
    SetTexture(bodyTexture);
    SetModel(bodyModel);
    Draw();
}

That would equal to 5 SetTexture, SetModel and Draw calls each. But wait, modern engines cache values before performing operations, so when SetTexture or SetModel are called with the same value as the last time, no operation is performed because the GPU already has that state set! So in the end, you would have one SetTexture and SetModel calls, and 5 Draw. 7 function calls instead of the 45 you would have the other way.

share|improve this answer
    
any resources on how to create textures for full body and implementing them ? –  SAFAD Mar 4 '13 at 18:14
add comment

To use one single texture on a character:

Pro:

  • Less textures to store, load, and render. Generally speaking, it's more efficient in time and space.

Con:

  • You might have less details on smaller parts.
  • If you want to change partial outlook on a character in the game (for example, a paper doll system, or player customized character), you will need a lot more big textures. In this case it's actually taking more spaces in storage, and maybe memory.

So it really depends on your game design.

share|improve this answer
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.