Difference between revisions of "A Simple First Megatexture"

From Mod Wiki
Line 17: Line 17:
 
* How to use Blender/Maya/Lightwave/ZBrush/Mudbox/3DSMax/Photoshop
 
* How to use Blender/Maya/Lightwave/ZBrush/Mudbox/3DSMax/Photoshop
 
* How to create tiling textures or heightmaps
 
* How to create tiling textures or heightmaps
* Anything complicated
+
* Anything overly complicated
 +
 
 +
== Creating a MegaTexture Material ==
 +
Here is an example:
 +
material megatextures/<mapname>
  
 
== Assigning a Material ==
 
== Assigning a Material ==
 
[[Image:simpleterrain_textured.png|thumb|200px|Textured terrain mesh]]
 
[[Image:simpleterrain_textured.png|thumb|200px|Textured terrain mesh]]
It is not possible to assign materials to terrain meshes in EditWorld, you must do this process in your modelling application.
+
It is not possible to assign materials to terrain meshes in EditWorld, you must do this process in your modelling application. You can then re-export your terrain model to LWO, ASE, or OBJ format.
 
 
For testing purposes, terrain meshes are often assigned a temporary material until they are in a state that they can be textured properly. Traditionally, this has been one of the existing materials in the game, such as concrete - {{filename|textures/concrete/concrete10}} (although any valid material will work.)
 
  
Due to an oddity with the OBJ format, the material name {{filename|textures/concrete/concrete10}} is not valid inside an OBJ file. Instead, the material should be named {{filename|textures__concrete__concrete10}}, where the slashes are replaced by double underscores (single underscores will not work!).
+
Setting the mesh material differs between modelling packages. Usually it is just the high-level name of the material applied to your terrain mesh (the name of any bitmaps assigned will not make a difference).
  
Setting the mesh material differs between modelling packages. However, since OBJ files are text, they can be manually edited with a text editor instead of using the modelling application. The OBJ will contain a line (often about halfway through) starting with <tt>usemtl</tt> followed by an arbitrary texture name. This line should be replaced with <tt>usemtl textures__concrete__concrete10</tt> and the file saved.
+
Due to an oddity with the OBJ format, the material name {{filename|megatextures/<mapname>}} is not valid inside an OBJ file. Instead, the material should be named {{filename|megatextures__<mapname>}}, where the slashes are replaced by double underscores (single underscores will not work!).
  
 
If you are using Lightwave, 3ds Max, or Maya, you should not have to text-edit any files, just set the material name in the relevant section of the material editor.
 
If you are using Lightwave, 3ds Max, or Maya, you should not have to text-edit any files, just set the material name in the relevant section of the material editor.

Revision as of 12:18, 11 December 2007

So now that you've made A Simple First Terrain, no doubt you'll want to apply a MegaTexture to it! This MegaTexture won't be as detailed or as attractive as an advanced MegaTexture, but will demonstrate the basics of creating a Surface Tree, assigning textures, and compiling it all into a working MegaTexture file.

Introduction

For this tutorial you must:

  • Have a terrain model UV-mapped in the 0-1 range (covered in the simple first terrain tutorial)
  • Have access to some tiling textures. TODO: Link to MegaTexture media!

If you don't have either of the above things, you are not ready to do this tutorial!

This tutorial covers:

  • How to set up a MegaTexture material
  • How to create a Surface Tree
  • How to add texture nodes in the Terrain Editor
  • How to render and compile a full MegaTexture

This tutorial does not cover:

  • How to use Blender/Maya/Lightwave/ZBrush/Mudbox/3DSMax/Photoshop
  • How to create tiling textures or heightmaps
  • Anything overly complicated

Creating a MegaTexture Material

Here is an example:

material megatextures/<mapname>

Assigning a Material

Textured terrain mesh

It is not possible to assign materials to terrain meshes in EditWorld, you must do this process in your modelling application. You can then re-export your terrain model to LWO, ASE, or OBJ format.

Setting the mesh material differs between modelling packages. Usually it is just the high-level name of the material applied to your terrain mesh (the name of any bitmaps assigned will not make a difference).

Due to an oddity with the OBJ format, the material name <span style="padding: 0 0.5ex; background: #def;" title="A file or folder named 'megatextures/<mapname>'">megatextures/<mapname> is not valid inside an OBJ file. Instead, the material should be named <span style="padding: 0 0.5ex; background: #def;" title="A file or folder named 'megatextures__<mapname>'">megatextures__<mapname>, where the slashes are replaced by double underscores (single underscores will not work!).

If you are using Lightwave, 3ds Max, or Maya, you should not have to text-edit any files, just set the material name in the relevant section of the material editor.

editWorld can then be told to reload the OBJ (now with a proper material declaration) via Misc -> Reload -> Models or clicking the "Reload Models" button.

Instead of using the concrete texture, you can use one of the existing Megatextures. For example, to use Area22's megatexture, simply set the mesh's material name to megatextures__area22.

Creating the Surface Tree

Terrains are set up in the Terrain Editor, accessible via shiftN in editWorld. This tool creates a Surface Tree file (.sft) that contains all the information about the terrain, including roads, stamps, and detail texture information that MegaGen needs to generate a MegaTexture.

Root node set up to use the correct terrain mesh

To set the mesh to the map, first press 'Begin Editing' at the bottom of the Terrain Editor window. Then RMB on the left-hand pane and create a new Tree via the menu. This creates a Root node on which all the terrain information resides. Clicking on the Root node allows a model to be specified - set Model to the name of the terrain mesh, in this case models/terrain/simpleterrain.obj. Press enter to confirm and the terrain should appear in the 3D view, with the red placeholder material.

That's it!

Terrain in-game

You've now created a map with your very own MegaTexture!

Terrain Mesh UVs

If you find your MegaTexture is not displaying correctly, it may mean your mesh UVs are incorrect. Consult your modelling package to find out how to reset or unwrap the UVs on the terrain mesh.

Important

Terrain model UV coordinates are expected to be inside the 0.0-1.0 UV range. If they are not, you may find that your terrain flickers or stretches when compiled into the map. If you are experiencing these problems, try a simple Planar Map from above, to project UV coordinates down onto your terrain mesh. (Blender instructions: select all the UV faces, hit u and select 'Unwrap')

See Also