Map Projection to Static Mesh

Please note this guide will be updated, for now i hope it is clear


Map Projection to Static Mesh:

  • A Map Projection is a plane surface, or flat surface, with a representation of, for example; The world.
  • This tutorial will help create a real world (real map) representation in the form of Landscape, Terrain &/ Or Static Mesh.

 Simple Example: (images need updating)
=  

  • above you can see how i have created a real life scale of huge islands, similar to that seen on the world.
  • What you are looking at is the Entire Ultima 7 g ame n Real life scale  & the tiny green (4pixel) dot is 3804 feet, created with 100% accuracy in minutes
  • The 2nd image is about 15 feet long piece of this world.
  • In landscape this would be millions of verts & would measure & exceed 10km (which is UDK’s limit). You would also be limited by texture numbers & density
  • As a static mesh this world is < 20,000 verts and uses 1 material ID but shos up to 16 different textures using vertex painting
  • With level & object streaming you can effectively go beyond UDK’s Landscape limit and have no performance issues

 

Tutorial:

  •  Create a Black and white Image (From your chosen Map Projection, Road map, secret treasure map or other)

Untitled-1

  • You can also Export as Raw but we will use different software for this.
  •  Import into L3DT > Convert to a Heightmap Inside L3DT

Note:
– The z-axis is always huge when imported into UDK so to be safe i set a default into L3DT [min height 0.05/ max height 0.1]

 

  • 3. Import into UDK and use Edit using the Landscape Editor

a) Right click properties Display and change the Z-Axis to something suitable
– it imports at 256 and this is insanely high and the sole reason was mesh stretches, i usually use between 2 & 16
b) smooth the mesh out, or detail as you like.

 

  • Export from UDK then Import into you 3D Model software [3DSMax] as “.FBX” or “.Obj[The result is thousands of verts etc]
  • Optimise; for best result i used a manual method
    heres an example of an optimisation workflow i started to use:
    Edit poly > weld > optimise >
    * if needed: subdivide important areas/ remove large flat polygons, turn to simple ones/
    new faces > weld > manual edit verts > optimise
  • UnWrap UV’s and add UCX collision
    – The beauty in the map projection is the UVWMap is planar & hassle free
  •  Import into UDK as FBX
    * Make Sure Simple Collision is Unchecked in the mesh properties and set a good size LightMap Reslution
    ( Photoshop – L3DT – UDK Tweak and adjust – 3DSMax – Remove unwanted verts and polygons > expot as FBX)

 

The texture:

  • Your original map projection can then be placed on top of your UV template in UDK to create your Textures and materials
  •  you can use separate Material ID’s / channels for you texturing & use vertex painting
  • – 1 texture for planar surfaces using 3 diffrerent masks in the (r),(g),(b) channels + an alpha(a) channel

 

The Model

  • Uncheck Simple collision for UCX to work
  • You can apply multiple Mat ID’s and use 3 x 8Bit textures in 1 Texture to achieve alot of materials on the mesh.. i mean a seriously high amount.
  • Use manual edit to move UV’s if they overlap

 

Important Information

HeightMap:
To save a heightmap from Photoshop:
• change the image mode to 16-bit grayscale
• choose the RAW file format
• select 1 channel, 16 bits per pixel, and PC byte order.
• For layer alpha maps, you need an 8-bit per pixel, single channel RAW file.
^^ Each (R),(G),(B) channel can contain a different 8Bit image


Landscape Imports [.RAW] files must be the correct Size:
– these sizes are not the same as Normal Power of 2

Overall size (vertices)
4033×4033 
2017×2017  
1009×1009 
509×509 
505×505 
255×255 
253×253
127×127
127×127


 

Links:

Stuff you might need/ Recommended:

  • Blender or 3DSMax or something similar
  • MudBox: – good to reset the topology of mesh
  • An image of 2017 Width x 1009 Height is the maximum i tried and Editing landscape at this size create issues.

Why is this so cool? because you can…

  • create a dynamic world, that changes shape, size, colour etc.
  • a world that can can be built, destroyed or spawned on runtime
  • Create an interactive PhysX landscape
  • go beyond 10km limits
  • create massive open worlds, even procedurally generated ones
  • go beyond the texture & material limits of landscape and terrain, using weather effects to simulate wet/ dry land easily using material instances
  • and alot more…

Credits:

  • L3DT Team
  • Ultima 7 Team & Richard Garriot/ Origin [the island i made was scarabrae]
  • UDK

Leave a Reply

Please log in using one of these methods to post your comment:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s