Home Technical Talk

How to properly make textures for buildings?

So I have been working on this house for my game, it is a simple house and it is only one story. I made separate objects to maximize Texture space in each UV map, so the Chimney, doors, windows, outside building and the inside building are all separate models with there own UV Mapping Coordinates.

After completing the texture on the outside part of my house, I found that @ 2048x2048 the diffuse quality was lacking. I have re done this texture several times and the quality of the house does not match the size of the file.

I found that by making the roof and the rest of the outside part of the house separate models and RE doing each UV MAP I was able to give them each more texture space. However that seems very messy, this means that once I bring the house into UDK or any other engine than I have to select each object and apply a texture to each one. Because this is my first game, I'm not sure if this is how things are done on most games or what?

If this is true than you could make a 1024x1024 texture for the roof, than the rest of the house and than one for the chimney etc.... Or would that waste too many resources?

I'm currently using 3DS Max 2011 and I know that other people use different tools and programs to make UV maps but I'm using the Unwrap UVW modifier in max.

This also brings up another possible solution? Is it possible to UV map each model on and inside the house, than tell max to combine them with the ATTACH tool and have max automatically make a huge UV map? If so, than it would most likely make one huge texture for that house but that also means I only have to apply one texture to the house for each texture type.

Also it is very possible that I'm over thinking things. I just noticed that if I combine objects in max they have their own UV mapping channel and I can individuality select each one, do game engines support multiple channels? I know that is something I should probably know by now but I have not dealt with game engines that deeply yet.

I tend to over think things that lead me no where.

Replies

  • zakhar2
    Offline / Send Message
    zakhar2 polycounter lvl 6
    Idk if Im understanding this properly, but the way i read it is that youre giving each object its own unigue 2048??? Is everything unique or are the textures tiling?
  • 1magus
    No I was not giving them each that size. I'm simply saying a UV map of my house with a texture applied at that size does not look all that great. So far everything is unique, the building is not that large to try and tile the texture for the roof or the brick walls.

    It is meant to show off an example of our game so that is why I'm asking about how to do this.
  • cryrid
    Offline / Send Message
    cryrid interpolator
    If this is first person and the player can walk right up to the house to the point where a portion of a wall or chimney will fill the entire screen, then the building is probably large enough to warrant some form of tiling.
    do game engines support multiple channels? I know that is something I should probably know by now but I have not dealt with game engines that deeply yet.
    Some do. Two seems pretty common; one for the main textures, and a second channel for lightmaps.
  • 1magus
    I cannot seem to wrap my head around tiling on a small house. I guess it is too new to me, any other advice?
  • gsokol
    Offline / Send Message
    gsokol polycounter lvl 14
    Tiling textures is pretty much how you would want to go.

    You would want to have separate textures for each different material type. So if you have brick parts, use a tiled brick texture, and unwrap the brick parts to that texture, same with siding, interior walls, etc. Then, for things like doors and windows..where they would be uniquely unwrapped...those could be combined on its own texture.
  • 1magus
    So I was right and the brick part should be a separate model/ object from the roof part?
  • m4dcow
    Offline / Send Message
    m4dcow interpolator
    What gsokol said.

    You might also want to think about how these things tile, the siding of a house might only tile horizontally, maybe you want to use thirding for it. Trims tile horizontally too, look to pack as many of these horizontally tiling things into the same map to reduce draw calls.

    It's one thing if you have a merged house with 5 dif shaders, but what if it is built up of a bunch of modular pieces that use multiple tiling textures also, drawcalls go up big time. So start with tiling textures but don't go too nuts.
  • m4dcow
    Offline / Send Message
    m4dcow interpolator
    1magus wrote: »
    So I was right and the brick part should be a separate model/ object from the roof part?

    Doesn't need to be separate per se, just needs to have a different material applied, multi sub material I think it is called in Max.
  • megancheung
    This is a great guide for anyone wanting to release a texture pack.
    I approve.
  • 1magus
    m4dcow wrote: »
    Doesn't need to be separate per se, just needs to have a different material applied, multi sub material I think it is called in Max.

    But I do not think game engines support the materials from max do they?
  • 1magus
    It would be a great guide for me if I understood, sorry I guess I need more of an explanation of what Thirding is.
  • cptSwing
    Offline / Send Message
    cptSwing polycounter lvl 11
    polycount wiki (and by extension ben mathis) r rox.
  • 1magus
    Oh that, yes I have been using that method for a while but it has it's limits. Let me see if I can find anything useful in those tutorials though. Thanks
  • 1magus
    I might as well just show you what I have to see if I'm doing things right.

    Here is the UV with the texture on it: ss20120321103609.png

    And here is the model and the UV render.

    As you can see I'm using plenty of overlapping but I'm not sure if this is done right or not?
  • salman_fas
    Why do yo have same texture twice in your map. Just overlap the UVs.

    Any special reason for upside down texture. Here is a building I made a long time ago and the texture was 1024X1024.

    cb1.jpg
    cbt.jpg
  • 1magus
    I just tried that and it seems the way my house was designed there is no way I'm going to make a clean UV like that.

    Is there any special trick to making a UV that amazing or do you have to carefully design a building out so the UV map that you make later on will align correctly?
  • 1magus
    I mean how did you get the proportions on the UV map for the brick wall to fit so nicely? Or was that planned from the beginning stages of the model?
  • 1magus
    You see I have this well.. complex mess:
    ss20120321121017.png

    Should I just start over, or is it still possible to make a nice clean UV map like the one you are showing me?
  • Ace-Angel
    Offline / Send Message
    Ace-Angel polycounter lvl 12
    You don't have enough polygons, that's why. The example Salaman posted relies on extra polies so that you can overlap the pieces, while your model in many parts looks like a big flat plane.

    So there is that.

    Last, many games simple put small textures on each 'face' of the model and tile it, it's many textures calls, sure, but it serves well if you have many buildings of different sizes and structures which require the same texture, so it balances out.

    Just decide what is best for you, they all work.
  • gsokol
    Offline / Send Message
    gsokol polycounter lvl 14
    But I do not think game engines support the materials from max do they?

    UDK and Unity let you use multiple materials on objects. Its not that you carry over the multi-sub material directly over, but its just an easy way to manage multiple materials on a single object in Max.
    You see I have this well.. complex mess:

    Those UV's are horrid. From the looks if it, it appears that you used flatten mapping, instead of putting in effort to unwrap the model well. I suggest you go back and fix those before you continue.
  • 1magus
    gsokol wrote: »
    UDK and Unity let you use multiple materials on objects. Its not that you carry over the multi-sub material directly over, but its just an easy way to manage multiple materials on a single object in Max.



    Those UV's are horrid. From the looks if it, it appears that you used flatten mapping, instead of putting in effort to unwrap the model well. I suggest you go back and fix those before you continue.

    It is a flatten yes but I tend to do that first than manually re UV map everything, it is just simpler for me that way. I don't just flatten everything and leave it at that.
  • Justin Meisse
    Offline / Send Message
    Justin Meisse polycounter lvl 19
    Here's a snap to show how my environment UVs usually end up looking:
    environmentuvs.gif

    I'll try to organize things nicely but when I'm dealing with tiling textures, I'm selecting faces on the model, moving them in the UV editor and seeing how the texture looks on the model.
  • Gestalt
    Offline / Send Message
    Gestalt polycounter lvl 11
    Keep in mind using non-square textures, like if you want multiple textures that tile horizontally you can stack them vertically on top of eachother as one tall texture. You can always break up the mesh and overlap UVs when it's necessary, but if you avoid overlapping you can more easily add another texture for unique variation across a larger area (break up the appearance of tiling).
  • 1magus
    Someone I know showed me this other method for tiling. He said to simply use multi sub object materials in max with separate material IDs for things like walls and roofs etc... It is working so well :) I just did not know that game engines understood multi sub object materials
  • Xoliul
    Offline / Send Message
    Xoliul polycounter lvl 14
    Yeah i was about to tell you, break it up per material. Otherwise it's a bit hard to deal with like Justin is showing. Keep in mind it is more efficient to have 1 single texture that has semi-tiling like Salman is showing (less drawcalls).
  • 1magus
    Well this is a PC game so for now I'm going to try and not focus on reducing draw calls so much. Obviously I wont be putting in 30 materials on it but 4 should not be too bad.
  • 1magus
    To anyone who uses UDK I had a quick question that I cannot find the answer to. If you want your game in UDK to have in game options for graphics like textures (EX. Select Texture Quality: High, Medium, Low), do you manually make multiple versions of the textures? Or is there a script that can manually scale them down?

    Really for the life of me I have no clue how to proceed. This is a PC game I'm working on after all.

    Also how do multiple sizes fit into this naming scheme?:
    UDK Naming Conventions:

    Naming Conventions

    Textures:

    TX_TextureName_D diffuse texture
    TX_TextureName_DO diffuse texture with opacity in alpha channel
    TX_TextureName_DS diffuse texture with specular in alpha channel
    TX_TextureName_N normalmap texture
    TX_TextureName_O opacity texture
    TX_TextureName_S specular texture
    MAT_MaterialName material
    TM_MaterialName terrain material
    TLS_SetupName terrain layer setup

    TX_Detail[name] detail texture 8-bit grayscale or packed bitplanes eg. TX_DetailRock1
    TX_Macro[name] macro texture 8-bit grayscale or packed bitplanes eg. TX_MacroDirt
    TX_Mask[name] mask texture 8-bit grayscale or packed bitplanes eg. TX_MaskRando
  • cptSwing
    Offline / Send Message
    cptSwing polycounter lvl 11
    afaik, it switches to various mip levels (stored automatically with your texture)
  • 1magus
    cptSwing wrote: »
    afaik, it switches to various mip levels (stored automatically with your texture)

    Ok I get what these are used for. But when you tell a game (Such as Doom 3 maybe or Gears of War) to use the lower resolution textures instead of the "High Quality" ones, are you telling the engine to use the down scaled MipMaps that it generated to be used in place of the highest resolution ones that the player would see up close?
  • cptSwing
    Offline / Send Message
    cptSwing polycounter lvl 11
    usually, yes.. could be that they are generated by hand for other engines though. some engines also allow direct access to mip maps as opposed to autogenerating them.
  • 1magus
    That was very helpful thank you :)
  • cptSwing
    Offline / Send Message
    cptSwing polycounter lvl 11
Sign In or Register to comment.