Search Unity

Photoreal Texturing of Buildings

Discussion in 'Editor & General Support' started by nevets2001uk, Sep 20, 2010.

  1. nevets2001uk

    nevets2001uk

    Joined:
    Sep 20, 2010
    Posts:
    4
    I'm going to prefix this post with the detail that I'm very much a beginner with game engines and 3D in general really. After a year or so of playing with Sketchup I've moved onto 3Ds Max to develop my modelling and texturing skills a lot further. After a bit of googling I found Unity which looks like a great engine to get to know.

    As a learning process mainly I want to try out an idea where I model a largish industrial park to produce a photo-real 3D model which a user could walk around (FPS style) in Unity.

    Since I want to accurately portray the buildings I was thinking of using photo textures (touched up by hand) to texture low poly models of the buildings. I may consider adding more details later but at this stage it's basic geometry only.

    The issue I'm running into is how to practically apply this for a game engine environment since I want to use a photo texture for the sides of the buildings. I did a small test with a model of a beach hut at about 110 tris and a single 2048 texture which gave a good resolution result. In real usage I could get away with resizing this to 1024. However this building was only 3m long and the texture detail is fine. On a 25-40m building is there any practical way of using a texture map to texture the building in a photo real way? I can't really tile very much as there's a lot of unique elements along the building and I can't think how to texture it so that the detail is there but I don't use more than 1 or 2 texture maps.

    Is there any workflow I can try to achieve this end result or am I really unlikely to be able to produce models of real world buildings which are photo-textured an run inside unity?

    If not are there any good tutorials around for how to tile textures from a square texture map?
     
  2. BearishSun

    BearishSun

    Joined:
    Dec 1, 2008
    Posts:
    175
    No other way than using large textures. Unity has a limit of 4k x 4k, so you might need to use multiple textures per building if they're large.

    If it's not a very large scene, 4k textures shouldn't pose that much of a problem, just be aware of the memory limits of your PC.
     
  3. Paulius-Liekis

    Paulius-Liekis

    Joined:
    Aug 31, 2009
    Posts:
    672
    My first though is: it's not the textures that make something photo-realistic - it's the lighting/shadows. I would recommend calculating good lightmaps first and then you can get away with not that detailed textures.

    If you want to fit a lot of unique details into textures then there is no silver bullet: just make good UV layouts which do not waste space and use tiled detail-textures.
     
  4. Joe-Robins

    Joe-Robins

    Unity Technologies

    Joined:
    Apr 21, 2008
    Posts:
    430
  5. LoTekK

    LoTekK

    Joined:
    Jul 19, 2010
    Posts:
    136
  6. PolyMad

    PolyMad

    Joined:
    Mar 19, 2009
    Posts:
    2,350
     
  7. nevets2001uk

    nevets2001uk

    Joined:
    Sep 20, 2010
    Posts:
    4
    Thanks for all of the replies. I think I get the idea of thirding and will see how I can practically apply that to this project. Having looked into the area I need to cover I'm at about 100 buildings and since I want high-res fairly unique textures I could see this being a bit of a performance killer.

    At this stage I guess it's best I just experiment and try to improve my use of textures.

    I'm also looking in LOD to allow higher poly models to be shown when the user is closer to them. This way I hope to create very realistic and accurate replicas of the buildings but reduce the poly count when they are further away to improve performance.

    Can Unity handle any form of texture layering / decaling? That might be a better approach for me to consider to allow generic base textures to be used with overlaid unique details for each building.
     
  8. BearishSun

    BearishSun

    Joined:
    Dec 1, 2008
    Posts:
    175
    You can have decal/details textures in Unity with the support of various shaders. Try Diffuse Detail shader.

    I wouldn't suggest LOD for geometry as you said your buildings are pretty simple. You will likely be much more limited by your texture size. You can try creating a LOD system that streams textures as player goes through the world, and loading smaller QL textures for father away buildings. Although you're bound to have performance issues when large textures are loading, even with async loading. There might be a workaround for that but I haven't explored it.