Monday, September 9, 2013
Landscaping for UDK
September 9th, 2013
The first part of my level design earlier in the summer went very well. I can pretty much build anything I want in blender, map textures onto it and import it into UDK. It gave me a false sense of progress. Then I started doing landscaping. Yea... that isn't going so well.
I have spent a LOT of time creating a landscape for my level. I have several unique difficulties to overcome:
1. My landscape is next to a highway surrounded by buildings, roads a river, etc... This isn't some woodsy scene that I can cook up a complex texture to resolve. It is urban
2. My scene can be viewed from a height of 22 stories. This means it needs to look realistic from a great height in all directions.
3. The part of my scene the player can walk around in needs to be at least a quarter mile in all directions.
Combine all that together and you have a noob landscaping nightmare.
I am going to detail all the different things I've learned about landscaping. I will likely need to use some of this information in the future and most of it is uber counter-intuitive so I will detail the steps for each approach.
Here are my current approaches:
1. Flat satellite imagery:
Grab the satellite imagery in a several mile radius from my scene, cut them into 2048x2048 squares and map them onto large squares.
> it looks awesome from 22 stories up, like you are on a plane.
> it looks horrible close up
> there is no height to the landscape
2. Hand built landscaping height
Take the satellite square where my scene lives and build a landscape that fits it. Not squares but cut terrain to match the image.
> it looks a lot better
> clipping is a bitch.
> since the image is not a grid of squares, it inevitably looks crappy in UDK. I tried this several times. Unhappy results every time.
3. Use a height map with blender
I created a height map in photoshop (which I will detail later), shrunk it to 100x100 and used it as a displacement modifier in blender. Then I unwrapped it onto a texture of the satellite square It was based on.
> This looked pretty darn good.
> blender can't handle large grids well. Anything over 100x100 made it get very unhappy (slow).
> unwrapping the texture did not go well. Instead of a square grid mapped perfectly onto the texture it becomes a warped area. It is somewhat close but there is no fixing it when you have 10,000 squares.
> when the grid is imported into UDK, certain faces are not rendered. I've seen this before and I can usually correct it but adding additional faces. That isn't possible with a modifier since it is adding the height in code.
> no clipping. Again, that would suck adding manual clipping for landscaping
4. Use UDK's landscape tool
Use a specific size heightmap to import into the UDK landscape tool. Then you add your materials and paint onto the landscape.
> it has perfect clipping
> Very fast game performance
> High level of detail
> Does not blend well into surrounding satellite imagery.
> uber large flat landscapes require perfect textures. Mine are seamless but you can still see patterns
> Landscaping provide great detail BUT stuff urban like sidewalks and roads don't really work.
> textures are broken into squares. A diagonal path is going to look blockish
I think the only viable route is the UDK landscape. I will need to ditch the satellite imagery and dynamically generate homes/streets/trees in the distance.