Home Technical Talk

How would I texture an very large area with minute details?

Easton
vertex
Offline / Send Message
Easton vertex
I am wanting to texture huge chunks of land, about 5-10sqkm in size from aerial imagery but am not quite sure how this would work and look good, and accurate.

I am going to use imagery because it needs to look like a copy of the land in real life, then insert it into a game engine after I am done with it to make it look close to the real area. I was thinking that I would create a huge UV that size in Max, then use tiled textures to texture the large areas as accurately as possible, however, if I did this then when I want to go into Photoshop to add or remove details then wouldn't those details be in a really bad resolution because of the size of the UV?

Another thing that I thought of is doing something like I know you can do in UE4 and make a tiled road and then use components of the road to create a longer version of it, but I also don't know if this would be the right way or if that is even possible.

What is the recommended way to do this? I know it partly matters as to what game engine it is, but in general what would the idea be?

Replies

  • Eric Chadwick
    Games usually don't use real-world data for a few reasons: 

    Game levels are carefully designed to lead the player in particular directions, for better narrative experiences.

    Also directional flow is used to create more entertaining game play.

    Memory performance is another consideration. The smaller the game area, the faster it loads, and more detail can be added.

    But if you really wanted real data, one way to make it work would be to load the elevation data into a program like World Machine. Then you can derive masks for tiled textures.

    We have some resources here that might help you.

    http://wiki.polycount.com/wiki/Landscape
  • Easton
    Offline / Send Message
    Easton vertex


    This is a visual of what I am wanting to do. The top image is from someone else's workflow and I am trying to copy it. I need to create an airport by tracing the edges in Max, then export that to Photoshop for texturing. I did see there is some Grid system in PS where it looks like there are small UV maps, but not sure if that is what it is. The picture below is what I am talking about:


    So can anyone with a lot of PS experience kind of explain what you would think the process would be?

  • Eric Chadwick
    There are multiple methods possible. But if you want it to work in real-time, and not take forever to load, then do most of your work in the game engine, not in a modeling program. 

    Multitexture is one of the better methods. Time-tested, but also lots of options.
    http://wiki.polycount.com/wiki/MultiTexture
  • Easton
    Offline / Send Message
    Easton vertex
    The problem is that it isn't going into an engine like UE4 or Unity, its going into a flight simulator game engine and it is bare bones and nothing like any game engine most people use. I think because of this I will have to use just Max and Photoshop...

    Basically from what I understand, I will have to go to the airport with a drone and get the imagery, or satellite imagery, then take that and put it into PS to add or remove some details like vegetation and shadows, then go into Max and add the polys, then back to PS, then add my tiled textures to it. Only problem is that I am not sure about adding the extra details, because I am pretty sure I would have to make one huge UV, but if I do that then the details will look like crap because the resolution would be extremely low on a UV that large.

    After that I am supposed to take it back into Max, then in separate files create my buildings and objects, then take those into the Max file with the imagery. Yeah, it really is totally backwards but unfortunately I have to work with it. 

    I know no one will be able to tell me how the exact process would work for this particular engine, but I think someone with more experience in 3d modeling and PS would be able to share some insight on what they think they would do. 

    In particular some ideas on how to UV unwrap something so large, at least 2 square miles of textures from imagery, then taking that into PS to add the little details like in the second picture where you can see the smudges, tire marks, dirt, etc. 

    Is it possible to take the runway, slice it into square chunks, make UV'd versions of it then take that into PS? I think this would work but at the same time I am thinking it may not because then it would technically be one object, but I could take the textured version of it back into Max and then snap the pieces together. Any ideas?

    PS. Sorry for the wall of text, my mind is buzzing 100mph right now trying to figure out this process, and with the flight simulator in question there is not any information already out there that is available so I am having to reverse engineer it.
  • Easton
    Offline / Send Message
    Easton vertex
    Also, I am thinking that the only part that only has to really be unwrapped is the Runway and Taxiway, all the concrete and the closer patches of grass, all of that has to be unwrapped to add my textures to it. I will then add the tiled textures and then (I think) take it into Quixel and use Megascans materials in DDO and overlay the imagery on top of my OBJ, tune down the opacity so I can see through it and paint away to copy the details the best I can. But right now it is more of figuring the UV thing out in order to do that.
  • throttlekitty
    Offline / Send Message
    throttlekitty ngon master
    It sounds like you don't have enough information on how this engine works for your flight sim maybe. Are there other examples of similar terrain mods you can take a look at? How do existing airports look under the hood? Be looking for Multitexturing techniques like Eric pointed out, things like smaller tiled textures blended by vertex colors or something similar. Not trying to bash on using huge texture sets in this way, it's just generally the least efficient in terms of game performance. For things like the runway and taxi lanes, see if decals are an option. One method is to use tiling textures to get the general look, then various decal geometry on top to add variation, cracks or tire marking.

    In the screenshots, that person is using Slices in Photoshop, generally used in web design. The idea there is that you have a single large image to edit, but then each slice gets exported as its own image. There's probably a script to automagically lay a grid of them down like that so you have each sitting at 1024px or whatever you need. You don't necessarily need Quixel for this; you could start with a series of layers of small tiled textures, each filling the canvas, and using layer masks to reveal each where you need them, so a couple dirts, grasses and concretes. Defining textures as a pattern works well for that. Then you can use whatever splatter or grunge brushes you need to spruce things up a bit.
  • Easton
    Offline / Send Message
    Easton vertex
    Honestly yeah, I don't have all of the information yet for that game engine. My problem is that there is not any specific information pertaining to what I need to figure out which sounds ridiculous, with UE4 for example I could stroll through YouTube and have everything I need, but right now I am just guessing because the information is not really there. I have the general process down, but it is some of the workflows that are confusing me, particularly with handling this big of a map. Yeah, you are spot on with the decals, I am going to have to model some of the markings out and I guess model the tire marks and such out and add the textures by hand painting them in Photoshop or by taking the image and just using that as a texture for a decal, I may even try to photoscan my own decals if I have to add a lot of them.

    What I was hoping I could do is add DDO smart materials and Megascan materials to where I need to add them, do you think this could be done? Also, it sounds like everything you said is pretty much exactly what I was trying to figure out, I have never seen a workflow like this before so I was totally lost. So essentially I would create the slices as 4096x4096 if I want them that high, then go over those sliced grids and add the other details? How is that added onto polygons if it is an image?

    Here is a different flight simulator that has a similar workflow if you want to glance over this process. I think this is just very basic though and still doesn't go into as much detail as I am looking for.

    https://www.aerofly.com/dokuwiki/doku.php/sdk:scenerydev2

    Being that the simulator that I want to model for doesn't have the information I need I will probably just buy this one, then port over the same objects, textures, maps and such as it uses a similar process, at least do this until I figure the workflow out. What I would love to do is add 4k scanned textures all over the airport but these workflows look a$$backwards and this may not even be possible...


  • throttlekitty
    Offline / Send Message
    throttlekitty ngon master
    Well, that's where observation, ingenuity and reverse engineering come in. Modding ain't always easy :) It's hard to answer specifics about workflow without knowing engine specifics for whatever this flight sim is, and how textures are used. I'm making assumptions based on that PS image with the slices here- I'd guess that the model for that is a subdivided plane, with UV cuts every X meters, and each of UV shells holds the appropriate texture for its location, like so. This is basically the UDIM workflow but for terrain. Maybe a bit similar to megatexture concepts, where there aren't any decals, just a buttload of textures that contain all the info.




    If not this, then something more modeled like that wireframe you showed. In either case, the UVs would be created as a planar projection from the top view. In my picture, the UVs are just a straight grid, as if I didn't do some random sculpts to show a bit of 'terrainnyness', the only difference is that they're scaled way up so each tile is a whole texture unit- 10x4; 40 textures. For most realtime engines, this is overkill, but maybe that's how they do it, or at least at a low res? I've never spent time with any serious flight sims.

    And yes, DDO would work just as well, it's the same concept as masking from what I described. You'd probably still be manually painting this; most of DDO's magic comes from having high poly bakes to work from, which you won't really have in this case. Is it just me or does that tutorial kind of gloss over the actual texturing step? Looks like they're referencing some provided tutorial textures for brevity.

    Decided to check this out a little. Really high detail airport grounds mixing into satellite-based terrain, but it mips out into a blurry mess. Later in the video he pauses and checks things out from the sky, and that detailed concrete tile just looks muddy from a distance. But it's a nice touch while you're on the ground at least.

    http://www.youtube.com/watch?v=fYbnN2OWjXo
  • Easton
    Offline / Send Message
    Easton vertex
     So essentially if you were to create a workflow like this then it would be using UVW Mapping? I read that a workflow like that is not really used anymore or something but then again these sims are running on code from the 90s. 

    Now I am a bit confused as to how you actually did that. The individual units or blocks in the grid, the really small ones are like small UV tiles? How did you add those and determine the size? Or are the larger tiles polys are UVs? I'm not sure how I would determine the spacing. I think I would take my imagery, insert it into max, firstly get the right size coordinates etc (like in the SDK it says it has to be centered or such), trace the areas I need like the runway and taxiway with a poly line, then UV Map the inside of that, then take it into PS and work away at it adding textures and decals.

    Now I am hung up on how you would determine the size of the UV tiles, if I want 4k textures then it would create many, many tiny tiles I assume, but if my Airport is modeled say 1:1 scale then the runway would likely be 100ft x 5000ft, so I would choose something like 5ft x 5ft? Or would you have to go smaller if you want more detail? Then I would think that would create more polys hurting performance, unless it is just small UVs and not actually polys...

    I know eventually I am going to figure this out, thank God when I do. As of now once I get this workflow ironed out the rest of the information is thankfully there, for whatever reason they fail to explain this process. I actually have that airport and practiced flying on it for dozens of hours, I think I have 25 airports that I just hop around on every now and then haha. While it looks good, to me it was like "meh, I think I could do better". That airport was actually built in the era of 32bit so they had to worry about VAS, now they're finally 64bit so the engines can handle better textures. What I will probably do is go to an airport, or even just model my house or something and take 100 square meters, model it, texture it, stick it in the sim and see how it goes, small trial and errors until I get it right.
  • Eric Chadwick
    Which game engine is it?
  • throttlekitty
    Offline / Send Message
    throttlekitty ngon master
    Which game engine is it?
    I was trying to be more subtle than this, haha.

    Seriously, we can't help you overthink this without having concrete info here. If it were me, I'd be digging around the game's files or use a game editor to see how existing airports are constructed. Or look at any mods other people have done since they've likely done a lot of the legwork already, or any forums those people are posting on.

    That was just a one off mesh, easy to do, I use Maya but the specifics don't matter. I didn't care about the scale when I made that plane, only that it satisfied having 100 edges long and 40 edges tall so i could have the UV seams every 10 edges. The white edges on my plane are the UV seams, sorry if I didn't point that out. The interior edges are there just so I could sculpt a little noise to pretend this was a "terrain" of some sort.

    Your engine should have some scale reference, games typically have some conversion like 1 unit = 1 meter for mesh scale. Determining UV scale varies a lot more, check the wiki's page on Texel Density for more info, the basic idea is that you have so many pixels per square meter- say 1024x1024 for a quad that is 1x1 unit. It's obvious in the video that there's a huge difference in densities between the airport grounds and the satellite terrain textures, I'd reckon that it's something of a 'reward' to have a nice looking airport to land to at least.
  • Easton
    Offline / Send Message
    Easton vertex
    I just recently got some extra help and information that I was looking for in this from people that develop for the sim to help me fill in the information that I am missing. All of the files are locked off from the public, so I cant exactly dig into it and find out how they did it, the most I have been able to do in that regard is to find out what file types they use and the file structures. There isn't actually a game editor...its unfortunately all done in Max, so there is not a way to do anything in 3d space within the engine.

    Ah, I wasn't sure that is how the scale works with this. Thanks for helping, I am going to have to learn some new UV mapping I guess before I start going wild on this.
  • Easton
    Offline / Send Message
    Easton vertex
    ugh, no matter where I looked I still could not find out how to UV this crap. How exactly did you make a UV grid? I know how to UV Unwrap, but I have never seen a grid of UVs before.
  • Eric Chadwick
    UVW Map modifier, set to Face.
  • Easton
    Offline / Send Message
    Easton vertex


    Still doesn't look anything like the picture presented above in a different post.  Even if I change the length and width, which I am not even sure is what I am supposed to do, it doesn't look anything remotely similar.

  • Eric Chadwick
    Face = Each quad gets the same exact quad-shaped UV. So make sure the geometry is in a regular grid, and the size of the quads is how big you want the UV to be.

    Another option is to use UVW Unwrap, select a bunch of polygons in the Editor, right-click and choose Copy, then select an identical layout of other polygons, and right-click + Paste. A bit more difficult to use, and quite limited. But might work for you.
  • Easton
    Offline / Send Message
    Easton vertex
    ok, thanks. 

    The only thing about this is that I don't actually know what the size it, under the Quadify Mesh modifier it just says "Quad Size %".

    Also my game engine uses meters. I would like a 1 meter by 1 meter UV for my textures but I don't see where to actually change the size, all I see is the U,V, and W tile under UVW Map.
  • poopipe
    Offline / Send Message
    poopipe grand marshal polycounter
    Apply a uvw modifier

    Set it to plane with dimensions of 1x1 meter, make sure it points the right way

    Snap the gizmo to a corner

    Voila,  tiling UVs that cover a 1m square.


    That does mean you're going to need 25million textures to cover a 5 square km area though. 

    You might want to reconsider your tiling. 

  • Easton
    Offline / Send Message
    Easton vertex
    Yeah...I think I may do that for specific areas as more of a hybrid with tiling elsewhere and I guess make extremely heavy use of decals. That would be a hell of a lot of unnecessary polys and give me 2fps lol

    Thanks all for the help
  • Eric Chadwick
    Detail textures are another possibility you might consider
    http://wiki.polycount.com/wiki/Detail_map
  • BigCapitalist
Sign In or Register to comment.