Home Technical Talk

Best way to go about making Terrain

polycounter lvl 10
Offline / Send Message
PogoP polycounter lvl 10
Hey guys!

I've been working on a cramped, interior environment for a while now and now that it's done, I really want to work on a bigger, open environment.

I'm thinking of re-making an old area from a well known N64 game, which is a pretty big environment. However, I'm really struggling to get my head around the best way to approach it. I'll give a clue: It's Lake Hylia from Ocarina of Time!

I tried using Terrain in UDK and made a decent start. My plan was do the terrain in UDK and fill in cliff faces with Static Meshes... But it is hard to make it look somewhat realistic.

Should I be using 3ds Max or maybe even Zbrush/Mudbox to sculpt cliffs maybe? What have you guys found to be the best method of creating terrain for games?

PS - I've searched as much as I could on here but couldn't find any topics specifically relating to my situation!

Replies

  • ZacD
    Offline / Send Message
    ZacD ngon master
    Its all about texture blending!!!

    Here's a great example from RAGE.

    Got any reference images? it might give us more ideas on what techniques you could use.


    Multitexture?action=AttachFile&do=get&target=megatexture_rage_before.jpg



    Multitexture?action=AttachFile&do=get&target=megatexture_rage_after.jpg

    Also, the top pic has 2 textures, sand and cliff, you can see the seams, the 2nd its blended.
  • PogoP
    Offline / Send Message
    PogoP polycounter lvl 10
    That is rather cool Zac! Which engine is that? I can see the terrain (brown texture and the road), but is the rest of the 'orange' in the picture just static meshes?

    Well my scene is a lake so my problem is creating terrain for the lake and then the islands on the lake. Do I just raise up the terrain for the islands and then use rock meshes to make them look more cliff-like in parts?

    Also, I want to make the surrounding terrain around the lake look more realistic. It is going to have a very gentle incline, with some cliff sections. Here's what I have so far and the ideas I have.

    Excuse the terrible material, it's just plonked on atm with just a diffuse!

    terrain_question.jpg

    And here's a very crappy, simple reference sheet I just knocked up from my existing references.

    refsheet_incomplete.jpg
  • haiddasalami
    Offline / Send Message
    haiddasalami polycounter lvl 14
  • Justin Meisse
    Offline / Send Message
    Justin Meisse polycounter lvl 18
    Yeah, it's common to use a terrain system and hide it's shortcomings with meshes. I'm not sure but that Rage shot looks like it could be using about 3 or 4 meshes spammed everywhere (rotation and scale used to make them look unique.)
  • ZacD
    Offline / Send Message
    ZacD ngon master
    Yeah, anywhere its raised throw in some cliffs, texture and merge them with the ground. Then using vertex painting, paint the tops of the cliffs and the ground seams and blend them.
  • PogoP
    Offline / Send Message
    PogoP polycounter lvl 10
    If I blend the static meshes with the same material as the terrain, will it leave a visible seam? I know there will always be a seam, but I suppose I could hide it with static meshes and what not!
  • Visceral
    I think you should ask this user for tips on terrain texture blending.
    http://www.polycount.com/forum/showthread.php?t=74720

    You should also check out This UDN tutorial on the subject
  • PogoP
    Offline / Send Message
    PogoP polycounter lvl 10
    Thanks guys!

    Out of interest, does anybody have any links to creating good looking, scalable and vertex-paintable materials for terrain? I'm thinking specifically about hiding tiling over large areas. I've read the UDN documentation but it would be nice to actually see a material set-up and work around and learn from that.

    I'm not sure if painting terrain is exactly the same as vertex painting a static mesh. Is this the case, or do you have to use the terrain paint functions?
  • haiddasalami
    Offline / Send Message
    haiddasalami polycounter lvl 14
    @PogoP: Check out Virtuosic's tutorial in 3dmotive, Chris Albehuln's tutorial and the GDC Example Map has a vertex blend material you can mess around with. Also check out the Unchartered 2 Snow and Ice thread for more information.

    EDIT: If memory serves me correct UDK terrain works in a different way. Though wouldnt hurt to try.
  • Sam Hatami
    Offline / Send Message
    Sam Hatami polycounter lvl 16
    Ah, i bit late on the note, rage uses megatexturing, which basically is a huge huge huge texture with everyplace beeing uniqely handcrafted. You can't really do a megatexture unless you go with the quake 4 tech. (you can use it with the editors following QW:ET )

    I did a odd tutorial on how to use vertex blending using blend maps for our own engine, which again is based on quake tech. You can use this for larger areas as well, but you would still need to complement with random sculpted rock models. But it might give you an idea.

    Some parts of the workflow is near to when a megatexture is created, the difference is that normal map output is used as an 1x1 overlay detail map, however, in this tutorial case, the original sculpted high poly mesh wasn't well detail, but it do still do some difference ingame. And then all the materials are used with tiled texture and blend mapping, instead of one huge unique texture.

    http://www.team-blur-games.com/forums/viewtopic.php?f=8&t=60
  • Noors
    Offline / Send Message
    Noors greentooth
    Also, valve is using a "blend modulate texture" on top of their vertex blending, resulting in a more sharp and customisable transition.
    http://forums.tf2maps.net/showthread.php?t=12109
    I have no clue how it's implemented :p
  • PogoP
    Offline / Send Message
    PogoP polycounter lvl 10
    Hey guys, sorry to bump this topic back up again but I have another question.

    How do you guys go about actually making terrain for your environments? That environment I was working on used UDK terrain which was decent but didn't have as much control as I'd've liked. The environment I'm working on now for a university assignment needs precise control over vertices. I could make it in Max but would that be too much effort to manipulate each individual vertex?

    Let me know what you guys do to make your terrain! :D
  • SpeCter
    Offline / Send Message
    SpeCter polycounter lvl 14
    In the game project me and my team are working on, we made our own terrain solution
    which uses heightmaps to set each individual vertex, for example a terrain with 512*512(actually its 513 but for simplicity i will use 512).Then we use a 512*512 heightmap and use the y values for height(x and z represent the verts in our terrain mesh)
    Now we just need to "paint" on our terrain(projecting the height of the terrain onto the heightmap) and save that out

    I think most terrains use this kind of approach combined with some LOD-Algorithms(Like Geomorphing with GeoMipmaps,ROAM,Clipmapped Terrain(don´t confuse that with Clipmaps for Textures)
  • Ben Apuna
    Precise terrain is hard...

    The closest I've come to this is painting a high bit depth displacement texture in Photoshop and Mudbox. The texture needs to be a high bit depth to avoid stair stepping artifacts.

    I ended up working from large forms down to smaller details. All the while testing the displacement texture on the terrain along with the rest of the level geometry.

    Painting in Photoshop was cool because it was like drawing a map top down, the only problem was I couldn't visualize the height of the terrain well at all.

    Sculpting in Mudbox helped visualize the height of the terrain, the only problem was keeping precise heights for important areas. It was just too easy to brush something and have it move a few meters up or down and not even notice.

    It was really hard to keep the height of the displacement the same between all the different applications I was trying to use.

    In the end I decided that the better approach would to have been make the terrain first then develop the rest of the level around it rather than trying to make a terrain "fit" the level.

    Optionally you can use World Machine (or a similar app) to help generate some believable details you can clone stamp in Photoshop or Mudbox.

    World Machine can be used to create an entire awesome terrain. The problem here is that it's pretty much procedural so making anything precise is very difficult. There are some layout shape tools to help with that but I found them somewhat difficult to use and gave up on them.

    Here's a World Machine/Megatexture tutorial for ETQW:

    An Advanced Terrain and Megatexture

    I would have used this method entirely if I had access to the Pro version of World Machine, but at the time I was using the free one which limits you to 512 resolution outputs.

    Sorry for the somewhat vague advice.
  • SpeCter
    Offline / Send Message
    SpeCter polycounter lvl 14
    Using this kind of approach is somewhat time consuming and does not always give you a good performance.

    If you are doing some really big terrains fit them together you will spend a LOT of time.
  • PogoP
    Offline / Send Message
    PogoP polycounter lvl 10
    I think I'm going to try building the terrain in UDK initially, then export it out and manipulate it in mudbox/max, then re-import it to UDK as a static mesh so I have better control over materials. Does this sound like a good idea?
  • SpeCter
    Offline / Send Message
    SpeCter polycounter lvl 14
    Normally the terrain solutions in games have some LOD-Techniques build in, which depend on viewdistance, height differences and stuff and produce low-polys on the fly to reduce polycount.
    If you use a static mesh you don´t have this anymore(just normal lod) so performance wise it could be a bad idea.But depending on the size of the terrain you could try it, if it works for you, you can do it.
  • Autocon
    Offline / Send Message
    Autocon polycounter lvl 15
    All of our terrain at work is 100% hand modeled, no hightmaps, no zbrush/mudbox, no LODing.

    Every game is different and what they require depends on how the game is going to use terrain and how important the look/quality is. I will say I dont personally know of any game that uses hightmaps to create there terrain. Even huge open world games like World of Warcraft uses hand sculpted terrain with there terrain tools similar to what UDK has.
  • Justin Meisse
    Offline / Send Message
    Justin Meisse polycounter lvl 18
    I know a few large open world games that used heightmaps as a basis but final work is typically done in the terrain editor. Using zbrush is a waste of time, everything you'd want to do in zbrush, a good terrain editor should do - procedurally generating/weathering with a program like World Machine is the way to go.
  • PixelMasher
    Offline / Send Message
    PixelMasher veteran polycounter
    for stuff like cliffs and rock walls, I find its good to have large static mesh rock objects and just crash them through each other/ poke them through a simple terrain mesh. the results are always way more convincing than a melted icecream look of hand sculpting stuff in a terrain editor.

    then for the ground the most important thing is variation, grass and small rocks around the base of intersecting objects, different types of sand or dirt all blended together, and use more static meshes crashed through to break up the surface.
Sign In or Register to comment.