<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en-GB">
	<id>https://wiki.splashdamage.com/index.php?action=history&amp;feed=atom&amp;title=Making_a_Terrain_Model</id>
	<title>Making a Terrain Model - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.splashdamage.com/index.php?action=history&amp;feed=atom&amp;title=Making_a_Terrain_Model"/>
	<link rel="alternate" type="text/html" href="https://wiki.splashdamage.com/index.php?title=Making_a_Terrain_Model&amp;action=history"/>
	<updated>2026-06-17T17:34:28Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.31.0</generator>
	<entry>
		<id>https://wiki.splashdamage.com/index.php?title=Making_a_Terrain_Model&amp;diff=3975&amp;oldid=prev</id>
		<title>Hoffa: /* Optimising to Game Mesh */</title>
		<link rel="alternate" type="text/html" href="https://wiki.splashdamage.com/index.php?title=Making_a_Terrain_Model&amp;diff=3975&amp;oldid=prev"/>
		<updated>2007-12-11T16:51:51Z</updated>

		<summary type="html">&lt;p&gt;‎&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;Optimising to Game Mesh&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en-GB&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;Revision as of 16:51, 11 December 2007&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l46&quot; &gt;Line 46:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 46:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* This extra little step helps smooth out the mesh (re-distributing the polygons) if you’ve noticed your reduction has left sharp angular polygons. Smooth the mesh (one subdivision) keeping mesh border edges how they are. Run the subdivided mesh through the qemLOSS3 plug-in in lightwave again, this time not applying the weightmap distribution.&amp;#160; The end result should leave a smoother mesh that’s better for gameplay.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* This extra little step helps smooth out the mesh (re-distributing the polygons) if you’ve noticed your reduction has left sharp angular polygons. Smooth the mesh (one subdivision) keeping mesh border edges how they are. Run the subdivided mesh through the qemLOSS3 plug-in in lightwave again, this time not applying the weightmap distribution.&amp;#160; The end result should leave a smoother mesh that’s better for gameplay.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* Small Lightwave tip: If you want to keep your UV’s, apply a texture to the mesh before exporting out of Lightwave.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* Small Lightwave tip: If you want to keep your UV’s, apply a texture to the mesh before exporting out of Lightwave.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== UV the Terrain with minimal distortions ==&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== UV the Terrain with minimal distortions ==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Hoffa</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.splashdamage.com/index.php?title=Making_a_Terrain_Model&amp;diff=3914&amp;oldid=prev</id>
		<title>Hoffa: /* Assign Terrain mesh for the Map */</title>
		<link rel="alternate" type="text/html" href="https://wiki.splashdamage.com/index.php?title=Making_a_Terrain_Model&amp;diff=3914&amp;oldid=prev"/>
		<updated>2007-12-06T12:25:50Z</updated>

		<summary type="html">&lt;p&gt;‎&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;Assign Terrain mesh for the Map&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en-GB&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;Revision as of 12:25, 6 December 2007&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l79&quot; &gt;Line 79:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 79:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;=== Assign Terrain mesh for the Map ===&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;=== Assign Terrain mesh for the Map ===&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* Load your map (''.world'' file) in [[editWorld|World Editor]], and bring up the [[Terrain Editor]] inspector.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* Load your map (''.world'' file) in [[editWorld|World Editor]], and bring up the [[Terrain Editor]] inspector.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;* If no surface tree has been made, {{accelbtn|RMB}} in the left blank (white) area.&amp;#160; In the pop-up menu select ''New'' | ''Tree...''.&amp;#160;  Or if a surface tree exists, click on the [[Image:TerEd_BeginEdit.png|Begin Editing]] button at the bottom of the inspector window.&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* On the Root node set the model field to your model, and set the ST Model to a version of your mesh with no mesh holes (fill holes where you have cut out for buildings that go into the terrain).&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* On the Root node set the model field to your model, and set the ST Model to a version of your mesh with no mesh holes (fill holes where you have cut out for buildings that go into the terrain).&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* Compile the map in order to see it in game (the terrain will appear red if no Megatexture ''.mega'' file exists).&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* Compile the map in order to see it in game (the terrain will appear red if no Megatexture ''.mega'' file exists).&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;= Out of Bounds (OOB) Geometry =&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;= Out of Bounds (OOB) Geometry =&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Hoffa</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.splashdamage.com/index.php?title=Making_a_Terrain_Model&amp;diff=3763&amp;oldid=prev</id>
		<title>Ducks at 17:46, 26 November 2007</title>
		<link rel="alternate" type="text/html" href="https://wiki.splashdamage.com/index.php?title=Making_a_Terrain_Model&amp;diff=3763&amp;oldid=prev"/>
		<updated>2007-11-26T17:46:43Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en-GB&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;Revision as of 17:46, 26 November 2007&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l1&quot; &gt;Line 1:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 1:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Before building a detailed terrain mesh, make sure your gameplay layout works by using a more simplistic terrain model from Max, Maya or Lightwave, and jump to [[#Getting The Terrain Mesh Into Game|Getting The Terrain Mesh Into Game]] to test it in ETQW until you’re happy with the gameplay layout.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Before building a detailed terrain mesh, make sure your gameplay layout works by using a more simplistic terrain model from Max, Maya or Lightwave, and jump to [[#Getting The Terrain Mesh Into Game|Getting The Terrain Mesh Into Game]] to test it in ETQW until you’re happy with the gameplay layout.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;= Terrain Model Methods =&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;'''Also see [[A Simple First Terrain]] for the basics of making a terrain and adding it to a map.'''&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;=&lt;/ins&gt;= Terrain Model Methods &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;=&lt;/ins&gt;=&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;If you want to make a terrain mesh only using a standard 3d package, you can do so and skip down to [[#Getting The Terrain Mesh Into Game|Getting The Terrain Mesh Into Game]].&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;If you want to make a terrain mesh only using a standard 3d package, you can do so and skip down to [[#Getting The Terrain Mesh Into Game|Getting The Terrain Mesh Into Game]].&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Ducks</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.splashdamage.com/index.php?title=Making_a_Terrain_Model&amp;diff=3666&amp;oldid=prev</id>
		<title>Hoffa at 13:18, 23 November 2007</title>
		<link rel="alternate" type="text/html" href="https://wiki.splashdamage.com/index.php?title=Making_a_Terrain_Model&amp;diff=3666&amp;oldid=prev"/>
		<updated>2007-11-23T13:18:46Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en-GB&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;Revision as of 13:18, 23 November 2007&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l54&quot; &gt;Line 54:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 54:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Create Perturbate Image for Whole Megatexture. ==&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Create Perturbate Image for Whole Megatexture. ==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;[[Image:Terrain_Perturbate.jpg|right|Terrain Perturbate Image]]&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;This step will make a tangent-space normal map of the difference between your World Machine heightmap and your game mesh.&amp;#160; This can then be applied to the Megatexture using the [[Terrain Editor|terrain editor]].&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;This step will make a tangent-space normal map of the difference between your World Machine heightmap and your game mesh.&amp;#160; This can then be applied to the Megatexture using the [[Terrain Editor|terrain editor]].&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* First rotate the terrain mesh (save as a different file to be safe). In Lightwave, rotate -90° around the X axis. For 3ds Max &amp;amp; Maya, rotate +90° around the X axis.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* First rotate the terrain mesh (save as a different file to be safe). In Lightwave, rotate -90° around the X axis. For 3ds Max &amp;amp; Maya, rotate +90° around the X axis.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* We need to make a normal map of the game mesh in order to create the tangent space normal map.&amp;#160; Cap any holes in the mesh, and triangulate. Using a machine with an nVidia graphics card, run the following line in the console to get the normal map of the game mesh:&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* We need to make a normal map of the game mesh in order to create the tangent space normal map.&amp;#160; Cap any holes in the mesh, and triangulate. Using a machine with an nVidia graphics card, run the following line in the console to get the normal map of the game mesh:&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#160; ''renderBumpFlat –size &amp;lt;width height&amp;gt; [model]''&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#160; ''renderBumpFlat –size &amp;lt;width height&amp;gt; [model]''&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* To get the Perturbate normal map, run &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;[[&lt;/del&gt;heightToNormal&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;]] &lt;/del&gt;in the console, using the normal map made in the step above, and the World Machine heightmap (which needs to be a 32-bit ''.R32'' file):&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* To get the Perturbate normal map, run heightToNormal in the console, using the normal map made in the step above, and the World Machine heightmap (which needs to be a 32-bit ''.R32'' file):&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#160; ''heightToNormal &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;sourcelsNormal &lt;/del&gt;-s &amp;lt;scale&amp;gt; [normalmap] [heightmap]''&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#160; ''heightToNormal &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;-sourceIsNormal &lt;/ins&gt;-s &amp;lt;scale&amp;gt; [normalmap] [heightmap]''&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;* The &lt;/del&gt;''&amp;lt;scale&amp;gt;'' &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;value is the total &lt;/del&gt;height &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;of the &lt;/del&gt;heightmap&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;.&amp;#160; Use your game mesh as a guide.&amp;#160; You’ll probably have to change this value (by units of 10&lt;/del&gt;) &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;until you get a mostly even normal map.&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;Where &lt;/ins&gt;''&amp;lt;scale&amp;gt;'' &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;= ''(image resolution)'' x ''(heightmap &lt;/ins&gt;height&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;)'' / ''(&lt;/ins&gt;heightmap &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;width&lt;/ins&gt;)&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;''&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* Convert the perturbate normal map to UV space. This is done using a surface sampler (Modify/Surface Sampler in Maya). Source being a planar-mapped mesh with the perturbate map applied, Destination mesh being the relaxed UV game mesh.&amp;#160; Alternatively you can use the Warp Image tool in Maya using 2 UV sets, or if using 3dsmax, you can use the Render to Texture dialog to resample to correct UV space.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* Convert the perturbate normal map to UV space. This is done using a surface sampler (Modify/Surface Sampler in Maya). Source being a planar-mapped mesh with the perturbate map applied, Destination mesh being the relaxed UV game mesh.&amp;#160; Alternatively you can use the Warp Image tool in Maya using 2 UV sets, or if using 3dsmax, you can use the Render to Texture dialog to resample to correct UV space.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;= Getting The Terrain Mesh Into Game =&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;= Getting The Terrain Mesh Into Game =&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;=== Setting up Megatexture Material ===&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* Set the terrain mesh material to ''megatextures/'''map_name'''''&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* Set the terrain mesh material to ''megatextures/'''map_name'''''&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* Export the mesh as '''&amp;lt;map_name&amp;gt;.lwo''' to ''base/models/terrain''&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* Export the mesh as '''&amp;lt;map_name&amp;gt;.lwo''' to ''base/models/terrain''&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* Create a material for the Megatexture using the same name as above:&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* Create a material for the Megatexture using the same name as above:&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#160; ''material megatextures/'''map_name'''	{ useTemplate megatextures/default_ambient&amp;#160; &amp;lt; &amp;quot;'''map_name'''&amp;quot; &amp;gt; }''&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#160; ''material megatextures/'''map_name'''	{ useTemplate megatextures/default_ambient&amp;#160; &amp;lt; &amp;quot;'''map_name'''&amp;quot; &amp;gt; }''&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Or if using a specular map, create the material as below.&amp;#160; The specular image should be named '''map_name'''_lit_spec.tga (resolution of 512x512) and copied into ''base/megatextures''.&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt; ''material megatextures/'''map_name'''	{ useTemplate megatextures/default_ambient_spec&amp;#160; &amp;lt; &amp;quot;'''map_name'''&amp;quot; &amp;gt; }''&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;=== Assign Terrain mesh for the Map ===&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* Load your map (''.world'' file) in [[editWorld|World Editor]], and bring up the [[Terrain Editor]] inspector.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* Load your map (''.world'' file) in [[editWorld|World Editor]], and bring up the [[Terrain Editor]] inspector.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* On the Root node set the model field to your model, and set the ST Model to a version of your mesh with no mesh holes (fill holes where you have cut out for buildings that go into the terrain).&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* On the Root node set the model field to your model, and set the ST Model to a version of your mesh with no mesh holes (fill holes where you have cut out for buildings that go into the terrain).&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l77&quot; &gt;Line 77:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 84:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;OOB geometry is the terrain outside the main area that gives the look of terrain extending to the horizon.&amp;#160; The best way to build this is to have the Megatexture mirrored on the level/OOB border.&amp;#160; This is so there are no obvious texture seams.&amp;#160; A bit further out grab areas of terrain (like mountain peaks) from the gameplay mesh and merge those in, as this will keep the look of natural features in the oob. Also reduce the polygon count as the mesh gets further from the gameplay area.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;OOB geometry is the terrain outside the main area that gives the look of terrain extending to the horizon.&amp;#160; The best way to build this is to have the Megatexture mirrored on the level/OOB border.&amp;#160; This is so there are no obvious texture seams.&amp;#160; A bit further out grab areas of terrain (like mountain peaks) from the gameplay mesh and merge those in, as this will keep the look of natural features in the oob. Also reduce the polygon count as the mesh gets further from the gameplay area.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;[[Image:Terrain_OOB.png|right|OOB Setup]]&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Now we break up the mesh into sections:&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Now we break up the mesh into sections:&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Hoffa</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.splashdamage.com/index.php?title=Making_a_Terrain_Model&amp;diff=1439&amp;oldid=prev</id>
		<title>192.168.0.129 at 16:54, 15 October 2007</title>
		<link rel="alternate" type="text/html" href="https://wiki.splashdamage.com/index.php?title=Making_a_Terrain_Model&amp;diff=1439&amp;oldid=prev"/>
		<updated>2007-10-15T16:54:17Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;Before building a detailed terrain mesh, make sure your gameplay layout works by using a more simplistic terrain model from Max, Maya or Lightwave, and jump to [[#Getting The Terrain Mesh Into Game|Getting The Terrain Mesh Into Game]] to test it in ETQW until you’re happy with the gameplay layout.&lt;br /&gt;
&lt;br /&gt;
= Terrain Model Methods =&lt;br /&gt;
If you want to make a terrain mesh only using a standard 3d package, you can do so and skip down to [[#Getting The Terrain Mesh Into Game|Getting The Terrain Mesh Into Game]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If you do want to add some more natural detail to your terrain, here are the main steps for doing so:&lt;br /&gt;
* Build a basic layout in a 3d modelling package, for testing the gameplay layout.&lt;br /&gt;
* Convert the gameplay tested mesh to a Heightmap to use in World Machine.&lt;br /&gt;
* Add detail to terrain in World Machine (or other heightmap-based terrain editor).&lt;br /&gt;
* Create a level perturbate image using the [[renderBumpFlat]] and [[heightToNormal]] commands.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If you want to get your hands even dirtier you can import the heightmap from World Machine into Mudbox or Zbrush and sculpt more detail.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Creating a Heightmap from a Model ==&lt;br /&gt;
This step is needed  if you want to import your current terrain mesh into World Machine.&lt;br /&gt;
&lt;br /&gt;
* Firstly, rotate the terrain mesh. In Lightwave, rotate -90° around the X axis. For 3ds Max &amp;amp; Maya, rotate +90° around the X axis.&lt;br /&gt;
* Cap any holes in the mesh, and triangulate. Using a machine with an nVidia graphics card, run the following command in the ETQW console to get the heightmap (where [model] is pointing to the relative path of the ''.lwo'', ''.obj'' or ''.ase'' mesh):&lt;br /&gt;
 ''RenderBumpFlat –floatHeightmap -size 2048 2048 [model]''&lt;br /&gt;
* [[RenderBumpFlat]] will print out a value called &amp;quot;Height Difference&amp;quot;, note down this number as you’ll need it later.  An .r32 heightmap will be saved into the same folder as your model, and this heightmap can be used in World Machine.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== World Machine ==&lt;br /&gt;
World Machine is a heightmap node based terrain editor, useful for creating a natural erosion look; here are a couple links to help you learn more about it, and get copy for yourself:&lt;br /&gt;
[http://www.world-machine.com World Machine] / [http://world-machine.com/blog/ World Machine Blog]&lt;br /&gt;
* The Erosion node is the main tool for creating natural-looking terrains, and contains many options to give a variety of results (try adding perlin noise to the heightmap before eroding).&lt;br /&gt;
* From the Erosion node, there are 3 extra outputs; Flow, Wear, and Deposition.  These outputs are very handy for making distribution masks for the Megatexture.  In order to use the 3 images you’ll have to convert them from top-down planar to UV-space via surface sampling in a 3d package.&lt;br /&gt;
* For areas that have been eroded so much that it has removed important gameplay geometry, you can use a Choose node that allows you to blend back the original heightmap using a mask.&lt;br /&gt;
* Export the heightmap as both a RAW 32 and 16 (image resolutions of 2048x2048 or higher are preferable), as some 3d packages don’t load 32-bit images.  A standard TGA file will give a stepped result due to less height levels.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Optimising to Game Mesh ==&lt;br /&gt;
* First we need to convert the heightmap to a mesh.  In both Mudbox and Zbrush you can do this by applying the heightmap as a displacement map on a 3d plane (512x512 tessellation should be enough).  Also, World Machine Pro has mesh export capabilities.&lt;br /&gt;
* Once exported out, scale and move the new mesh so it matches up to your original gameplay tested mesh.&lt;br /&gt;
* The next step is to reduce the polygons to around 32K.  Good results can be obtained using a Lightwave plug-in called [http://amber.rc.arizona.edu/lw/qemloss3.html qemLOSS3].&lt;br /&gt;
** Create a top down greyscale image that’ll represent the polygon distribution. White on the image would make the mesh dense while black will be less dense.&lt;br /&gt;
** In Lightwave rename the default material (Press Q to bring up the appropriate window).&lt;br /&gt;
** Apply the distribution map using Textured Point under the Map tab, setting VMap Type to Weighted Map, and giving it a name. Texture editor window will pop up, choose Projection: UV, select the UV map, and select your distribution map for the image.&lt;br /&gt;
** Set the viewport to Weight Shade and make sure the image's orientation is correct, orange should be in areas where you want dense polygons.&lt;br /&gt;
** Run the plug-in qemLOSS3 (plug-in is found under the Utilities tab). Enter in the number of polygons you want to reduce to (around 32K). Go to the WGHT tab, tick Use Weights as Reduction Constraint, and select the multiply value you want (exaggerates the effect of the weight map). Export back to your preferred 3d package (there may be edges that will need there triangulation flipped).&lt;br /&gt;
* This extra little step helps smooth out the mesh (re-distributing the polygons) if you’ve noticed your reduction has left sharp angular polygons. Smooth the mesh (one subdivision) keeping mesh border edges how they are. Run the subdivided mesh through the qemLOSS3 plug-in in lightwave again, this time not applying the weightmap distribution.  The end result should leave a smoother mesh that’s better for gameplay.&lt;br /&gt;
* Small Lightwave tip: If you want to keep your UV’s, apply a texture to the mesh before exporting out of Lightwave.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== UV the Terrain with minimal distortions ==&lt;br /&gt;
This process is written for Maya, other 3d packages might have to modify the process.&lt;br /&gt;
* To achieve relaxed UV borders use a mel script called worldSpaceUVLine - it can be found on [http://Highend3d.com/maya/downloads/mel_scripts/modeling/poly_tools/4508.html Highend3D]. Copy the .mel into your ''My Documents\maya\#.#\scripts'' folder and run by typing '''''worldSpaceUVLine;''''' in the Maya command line.&lt;br /&gt;
* Snap all 4 corners to the UV 0-1 square.  Select all the edge uv for one side, and in the worldSpaceUVLine tool select the corresponding UV layout direction (U for horizontal, V for vertical), and press the align UV’s on selected line button. Repeat for each side.&lt;br /&gt;
* Make sure all holes in the mesh are capped, and run the Relax UVs tool, with the option ''Edge Weights'' set to ''World Space'', and ''Pin UV Border'' selected.  Keep repeating Relax UVs until you see no more UV movement.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Create Perturbate Image for Whole Megatexture. ==&lt;br /&gt;
This step will make a tangent-space normal map of the difference between your World Machine heightmap and your game mesh.  This can then be applied to the Megatexture using the [[Terrain Editor|terrain editor]].&lt;br /&gt;
* First rotate the terrain mesh (save as a different file to be safe). In Lightwave, rotate -90° around the X axis. For 3ds Max &amp;amp; Maya, rotate +90° around the X axis.&lt;br /&gt;
* We need to make a normal map of the game mesh in order to create the tangent space normal map.  Cap any holes in the mesh, and triangulate. Using a machine with an nVidia graphics card, run the following line in the console to get the normal map of the game mesh:&lt;br /&gt;
 ''renderBumpFlat –size &amp;lt;width height&amp;gt; [model]''&lt;br /&gt;
* To get the Perturbate normal map, run [[heightToNormal]] in the console, using the normal map made in the step above, and the World Machine heightmap (which needs to be a 32-bit ''.R32'' file):&lt;br /&gt;
 ''heightToNormal sourcelsNormal -s &amp;lt;scale&amp;gt; [normalmap] [heightmap]''&lt;br /&gt;
* The ''&amp;lt;scale&amp;gt;'' value is the total height of the heightmap.  Use your game mesh as a guide.  You’ll probably have to change this value (by units of 10) until you get a mostly even normal map.&lt;br /&gt;
* Convert the perturbate normal map to UV space. This is done using a surface sampler (Modify/Surface Sampler in Maya). Source being a planar-mapped mesh with the perturbate map applied, Destination mesh being the relaxed UV game mesh.  Alternatively you can use the Warp Image tool in Maya using 2 UV sets, or if using 3dsmax, you can use the Render to Texture dialog to resample to correct UV space.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Getting The Terrain Mesh Into Game =&lt;br /&gt;
* Set the terrain mesh material to ''megatextures/'''map_name'''''&lt;br /&gt;
* Export the mesh as '''&amp;lt;map_name&amp;gt;.lwo''' to ''base/models/terrain''&lt;br /&gt;
* Create a material for the Megatexture using the same name as above:&lt;br /&gt;
 ''material megatextures/'''map_name'''	{ useTemplate megatextures/default_ambient  &amp;lt; &amp;quot;'''map_name'''&amp;quot; &amp;gt; }''&lt;br /&gt;
* Load your map (''.world'' file) in [[editWorld|World Editor]], and bring up the [[Terrain Editor]] inspector.&lt;br /&gt;
* On the Root node set the model field to your model, and set the ST Model to a version of your mesh with no mesh holes (fill holes where you have cut out for buildings that go into the terrain).&lt;br /&gt;
* Compile the map in order to see it in game (the terrain will appear red if no Megatexture ''.mega'' file exists).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Out of Bounds (OOB) Geometry =&lt;br /&gt;
OOB geometry is the terrain outside the main area that gives the look of terrain extending to the horizon.  The best way to build this is to have the Megatexture mirrored on the level/OOB border.  This is so there are no obvious texture seams.  A bit further out grab areas of terrain (like mountain peaks) from the gameplay mesh and merge those in, as this will keep the look of natural features in the oob. Also reduce the polygon count as the mesh gets further from the gameplay area.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Now we break up the mesh into sections:&lt;br /&gt;
&lt;br /&gt;
'''The OOB Ring''' is a close mesh ring around the gameplay terrain (4096 units) that players can still run on, allowing an area of warning the player to turn back.  This mesh should be placed in the level as a model_static, with the properties of:&lt;br /&gt;
 mergecm                         1&lt;br /&gt;
 model                           models/terrain/''mapname''_oob_ring.lwo&lt;br /&gt;
&lt;br /&gt;
'''Outer OOB sections:'''  The rest of the oob mesh should be broken into 4 to 8 sections circling the oob_ring.  This helps the engine not draw sections that are out of the camera’s view.  These models should be placed in the level as func_static entities, with the properties:&lt;br /&gt;
 maxVisDist                      0&lt;br /&gt;
 model                           models/terrain/''mapname''_oob_1.lwo&lt;br /&gt;
 noclipmodel                     1&lt;br /&gt;
 noscriptobject                  1&lt;br /&gt;
 pushIntoConnectedOutsideAreas   1&lt;br /&gt;
&lt;br /&gt;
[[Category:Art]]&lt;br /&gt;
[[Category:Level Design]]&lt;br /&gt;
[[Category:Tutorials]]&lt;/div&gt;</summary>
		<author><name>192.168.0.129</name></author>
		
	</entry>
</feed>