<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>XtoMdl Tool</title>

<style>
<!--
 /* Style Definitions */

p,div
	{mso-style-name:Text;
	margin-top:0pt;
	margin-bottom:.0001pt;
	mso-pagination:widow-orphan;
	font-size:12.0pt;
	mso-bidi-font-size:12.0pt;
	font-family:"Times New Roman";
	mso-fareast-font-family:"Times New Roman";}
li
	{mso-style-name:Text;
	margin-top:2pt;
	margin-bottom:.0001pt;
	mso-pagination:widow-orphan;
	font-size:12.0pt;
	mso-bidi-font-size:12.0pt;
	font-family:"Times New Roman";
	mso-fareast-font-family:"Times New Roman";}
p.Link, div.link
	{mso-style-name:Link;
	margin-top:0pt;
	margin-bottom:.0001pt;
	mso-pagination:widow-orphan;
	font-size:12.0pt;
	mso-bidi-font-size:12.0pt;
	font-family:"Times New Roman";
	mso-fareast-font-family:"Times New Roman";
	color:#3366FF;}
li.Link
	{mso-style-name:Link;
	margin-top:0pt;
	margin-bottom:.0001pt;
	mso-pagination:widow-orphan;
	font-size:12.0pt;
	mso-bidi-font-size:12.0pt;
	font-family:"Times New Roman";
	mso-fareast-font-family:"Times New Roman";
	color:#3366FF;}
h1
	{mso-style-next:Normal;
	margin-top:12.0pt;
	margin-right:0pt;
	margin-bottom:12.0pt;
	margin-left:0pt;
	text-align:left;
	line-height:150%;
	mso-pagination:widow-orphan;
	page-break-after:avoid;
	mso-outline-level:2;
	font-size:20.0pt;
	font-family:Arial;
	color:black;
	mso-bidi-font-style:italic;}
h2
	{mso-style-next:Normal;
	margin-top:12.0pt;
	margin-right:0pt;
	margin-bottom:12.0pt;
	margin-left:0pt;
	text-align:left;
	line-height:150%;
	mso-pagination:widow-orphan;
	page-break-after:avoid;
	mso-outline-level:2;
	font-size:18.0pt;
	font-family:Arial;
	color:#000033;
	mso-bidi-font-style:italic;}
h3
	{mso-style-next:Normal;
	margin-top:12.0pt;
	margin-right:0pt;
	margin-bottom:9.0pt;
	margin-left:0pt;
	text-align:left;
	mso-pagination:widow-orphan;
	page-break-after:avoid;
	mso-outline-level:3;
	font-size:16.0pt;
	mso-bidi-font-size:13.0pt;
	font-family:Arial;
	color:#0000cc;}
h4
	{mso-style-next:Normal;
	margin-top:12.0pt;
	margin-right:0pt;
	margin-bottom:5.0pt;
	margin-left:0pt;
	text-align:left;
	mso-pagination:widow-orphan;
	page-break-after:avoid;
	mso-outline-level:3;
	font-size:13.0pt;
	mso-bidi-font-size:13.0pt;
	font-family:Arial;
	color:#00aa00;}
h5
	{mso-style-next:Normal;
	margin-top:3.0pt;
	margin-right:0pt;
	margin-bottom:3.0pt;
	margin-left:0pt;
	text-align:left;
	mso-pagination:widow-orphan;
	page-break-after:avoid;
	mso-outline-level:3;
	font-size:12.0pt;
	mso-bidi-font-size:12.0pt;
	font-family:Arial;
	color:#000000;}
h6
	{mso-style-next:Normal;
	margin-top:3.0pt;
	margin-right:0pt;
	margin-bottom:3.0pt;
	margin-left:0pt;
	text-align:left;
	mso-pagination:widow-orphan;
	page-break-after:avoid;
	mso-outline-level:3;
	font-size:12.0pt;
	mso-bidi-font-size:12.0pt;
	font-family:Arial;
	color:#aa0000;}
CODE
	{mso-style-name:Code;
	margin:0pt;
	margin-bottom:.0001pt;
	mso-pagination:widow-orphan;
	font-size:11.0pt;
	mso-bidi-font-size:12.0pt;
	font-family:"Courier New";
	mso-fareast-font-family:"Courier New";
	color:#000000;}
A:Hover
	{color:#00aa00;}
BODY
	{margin-left:30pt;
	background:#f5f5f5;}
@page Section1
	{size:612.0pt 792.0pt;
	margin:72.0pt 90.0pt 72.0pt 90.0pt;
	mso-header-margin:36.0pt;
	mso-footer-margin:36.0pt;
	mso-paper-source:0;}
div.Section1
	{page:Section1;}

table
	{class:T1;
	style:border:medium none;
	border-collapse:collapse;
	border:5;
	background-color:#FFFF99;
	border-color:#CC0000;
	border-style:inset;
	width:670;
	text-align:left;}

tr	{vertical-align:top;}

-->
</style>
</head>
<body>
<h1><img src="Images/fsx-bannerscenery.jpg" width="800" height="200" /></h1>
<h1>Using the Modeling Tools</h1>
<p>To develop aircraft models, vehicle models, or scenery models for <i>Flight Simulator X</i>, you will need 3ds Max&reg;. 3ds Max&reg; is a product  of Autodesk, Inc. The Modeling SDK consists of a set of tools that enable models developed in 3ds Max&reg; to be exported in the correct format for <i>Flight Simulator X</i>. </p>
<h2>Table of Contents</h2>
<ul>
  <li><a href="#Setup">Setup</a></li>
  <li><a href="#ExportingaModel">Exporting a Model from 3ds Max</a></li>
  <li><a href="#ImportingaModel">Importing a Model to Flight Simulator X </a></li>
  <li><a href="#SampleFiles">Sample Files </a></li>
  <li><a href="#TheAttachTool">The Attach Tool </a></li>
  <li><a href="#TheCloudTool">The Cloud Tool</a></li>
  <li><a href="#TheXtoMDLTool">The XToMdl Tool</a></li>
</ul>
<hr />
<h2>Setup<a name="Setup" id="Setup"></a></h2>
<p>In order for  3ds Max&reg; to work correctly with the scripts and tools of this SDK, go through the following steps:</p>
<ol>
  <li>Install and run 3ds Max&reg;.</li>
  <li>Select Customize on the main menu.</li>
  <li>Select Customize Paths from the drop-down menu, then the Plug-ins tab from the Configure Paths dialog.</li>
  <li>Select Add, and then browse to the <i>Microsoft Flight Simulator X\SDK\Environment Kit\Modeling SDK\3DSM7 </i>folder.</li>
  <li>Select Use-Path and OK, and this path will appear in the dialog.</li>
  <li>It is now necessary to shutdown and restart  3ds Max&reg;.</li>
  <li>On restarting a new main menu item FS Tools should appear, with three drop down options for the attach tool, animation manager, and cloud tool.</li>
  <li>You are now ready to use 3ds Max&reg; to create <i>Flight Simulator X</i> models.<br />
</li>
</ol>
<hr />
<h2>Exporting a Model from 3ds Max&reg;<a name="ExportingaModel" id="ExportingaModel"></a></h2>
<p>When  exporting a 3ds Max&reg; model to be used in <i>Flight Simulator X</i>, go through the following steps: </p>
<ol>
  <li>Textures for the model should be converted to mip-maps, using Imagetool (found in the <i>Environment Kit\Terrain SDK</i> folder), and then converted to DDS files, also using Imagetool. To appear in <i>Flight Simulator</i> the DDS files should be placed in the <i>Add-on Scenery/texture</i> folder.</li>
  <li>If skinned animation is to be applied to the model, ensure that a <i>Flight Simulator X</i> material is applied (click the FlightSimX box of the Material Editor dialog), and that the Skinned Mesh box is checked in the enhanced parameters section of the Material Editor dialog.</li>
  <li>To animate using skinned animation select the bones of the object, then bring up the Animation Manager. Set Start and End frames. Select a name for the animation, such as Ambient, and click Create.</li>
  <li>To animate a piece of geometery without using skinned animation, select the geometry, then bring up the Animation Manager and set Start and End frames, and a name. If there are multiple animations, then select different names for each (such as Ambient, Ambient2, and so on). Click Create to create the animation.</li>
  <li>Bring up the File Properites for the model. For Name enter the words <b>FriendlyName</b>, and for Value enter a new GUID. See the <a href="../../SDK Overview.html">Overview</a> documentation for a link to a GUID generating tool. After pasting in the GUID, remove the curly brackets at either end. Click OK.</li>
  <li>To export the model, make sure the format <b>Flight Simulator Direct X File (*.X)</b> is selected, no other model format will work.</li>
  <li>Click Save. Make sure that the options Export Skin and Export Animation are checked in the Flight Simulator Model Export Options dialog, if skinned animations or animations are included in the model.</li>
  <li>This process will create a .x file, and optionally a .xanim file. </li>
</ol>
<p>&nbsp;</p>
<p>&nbsp;</p>
<table class="T1" cellspacing="2" cellpadding="4">
  <tr>
    <td><img src="Images/AnimationManager.jpg" width="614" height="494" /></td>
  </tr>
</table>
<p>&nbsp; </p>
<hr />
<h2>Importing a Model to Flight Simulator X<a name="ImportingaModel" id="ImportingaModel"></a></h2>
<p>To import a model created by 3ds Max&reg; and exported correctly, go through the following steps:</p>
<ol>
  <li>Convert the .x file and .xanim file to the Flight Simulator model format (.mdl) using the <a href="#TheXtoMDLTool">XtoMdl</a> tool. Make sure the /XANIM switch is set if there is a .xanim file, and the /XMLSAMPLE switch should be set to.</li>
  <li>Follow the instructions for the XtoMdl tool to edit the placement xml sample appropriately. This will place the model near the main runway of Sea-Tac aiport.</li>
  <li>Copy the .mdl file output from the XtoMdl tool, and the edited .xml placement file to the <a href="../BGL Compiler SDK/The BGL Compiler.html">BGL Compiler</a> folder.</li>
  <li>Drag the xml placement file over the BGLComp icon, which should result in a bgl file. If it does not, open up a command window and run the BGL compiler from there, as the errors will then be readable. Refer to the the <a href="../BGL Compiler SDK/The BGL Compiler.html">BGL Compiler</a> documentation for more details. </li>
  <li>Copy the bgl file to the <i>Add-on scenery/scenery</i> folder of <i>Flight Simulator X</i>. </li>
  <li>Run <i>Flight Simulator X</i>. Change the airport to Sea-Tac International.</li>
  <li>The new object should be visible from the user-aircraft at the start of the runway.</li>
  <li>When you are satisfied with the model. If the object is a scenery object, create a new placement file placing the object exactly where it should be. If the object is an aircraft, refer to the <a href="../../SimObject Creation Kit/SimObject Container SDK/Aircraft Configuration Files.htm">Aircraft Configuration Files</a> for all the other steps necessary. </li>
</ol>
<hr />
<h2>Sample Files<a name="SampleFiles" id="SampleFiles"></a></h2>
<p>The following sample files are included in the Modeling SDK folder. </p>
<ul>
  <li> TestX.max is a   3ds Max&reg; file that contains an object with many of the animation, attach point and other features described in this document.</li>
  <li><a href="TestX.x">TextX.x</a> and <a href="TestX.xanim">TestX.xanim</a> are sample files output by 3ds Max&reg;, given TestX.max as the input. </li>
</ul>
<table class="T1" cellspacing="2" cellpadding="4">
  <tr>
    <td><img src="Images/PlatformSample.JPG" width="648" height="514" /></td>
    <td>The sample included with the modeling tools shows a landing platfrom with a variety of animated parts. To simplify the sample, it does not come with any textures. </td>
  </tr>
  <tr>
    <td><img src="Images/testXScreen.jpg" width="611" height="440" /></td>
    <td>The sample placed near the main runway of Sea-Tac airport. </td>
  </tr>
</table>
<p>&nbsp;</p>
<hr />
<h2>The Attach Tool<a name="TheAttachTool" id="TheAttachTool"></a></h2>
<p>The Attach tool included in this SDK is a MAXScript plugin  that  allows you to attach special effects, library objects, visibility conditions, and set active mouse rectangles for use with virtual cockpits, to  your 3D models.&nbsp; It also allows you to  create landable platforms, remove crash boxes from parts of your model and  attach beacons or other simulation driven objects to your models.</p>
<p>&nbsp;</p>
<p>The attach tool is available in the FS Tools drop down menu. </p>
<p>&nbsp;</p>
<p>The main dialog of the tool, when fully expanded, looks like this:</p>
<p>&nbsp;</p>
<table class="T1" cellspacing="2" cellpadding="4">
  <tr>
    <td><img src="Images/SDKAttachTool.jpg" width="324" height="714" /></td>
    <td><p>The first step in creating an attach point is setting the parameters. Although usually only one type of attach point is selected, such as Effect, any number of types can be associated with one attach point.</p>
    <p>&nbsp;</p>
    <p>Attach points work on the selected object. Use Remove FS9 Attach? to clear attach points from the previous version of <i>Flight Simulator</i>.</p>
    <p>&nbsp;</p>
    <p>The Offset parameter is an offset in meters along the normal of the selected object.</p>
    <p>&nbsp;</p>
    <p>The Attach name should be unique to the point for the whole model.</p>
    <p>&nbsp;</p>
    <p>When all the correct parameters have been entered, select <b>Create new attach point </b>or <b>Attach to selected geometry</b> to complete the process. The former will display a dot that can be moved around to position the attach point. The latter will simply attach it to whatever has been selected.</p>
    <p>&nbsp;</p>
    <p>If the attach point is to move along with an animation, use the Link tool of  3ds Max&reg; to link the two together. </p>
    <p>&nbsp;</p>
    <p>The attach point will only take effect in <i>Flight Simulator</i> if the level of detail (LOD) is currently being rendered. </p>
    <p>&nbsp;</p>
    <p>To change the properties of an attach point, select it, make the necessary changes in this dialog, then select <b>Attach to selected geometry</b>. Be careful of deleting attach points, as the deletion is not picked up in the File Properties. </p></td>
  </tr>
</table>
<p>&nbsp;</p>
<p>The following sections provide notes on each type of attach point.</p>
<p>&nbsp; </p>
<h4>Effects </h4>
<p>Attaching a special effect can be as simple as selecting the effect from the drop down list, once you have browsed to the effects folder if necessary. However many effects should not go off continually, so it is possible to set parameters on the effect, so they appear only when certain conditions apply. The following table lists the general parameters:</p>
<p>&nbsp;</p>
<table class="T1" cellspacing="2" cellpadding="4">
  <tr>
    <td><h5>Parameter</h5></td>
    <td><h5>Description</h5></td>
  </tr>
  <tr>
    <td>RANDOM=random_range,random_threshold</td>
    <td><p>Specifies that the effect occurs randomly. A random number is generated between 0 and random_range; if the number generated is less than random_threshold, the effect is not created.</p>
        <p>For example:</p>
      <p>RANDOM=10,9  (10% chance of seeing the effect)</p>
      <p>RANDOM=10,6  (40% chance of seeing the effect)</p></td>
  </tr>
  <tr>
    <td>YEAR=year_begin,year_end</td>
    <td><p>Specifies that the effect occurs only if the simulation time is within the year range, inclusively. To have an effect play for the year 1989, the parameter would be written as:</p>
        <p>YEAR=1989,1989</p></td>
  </tr>
  <tr>
    <td>MOY=moy_begin,moy_end</td>
    <td><p>Specifies the months of the year (MOY), days of the month (DOM), hours of the day (HOD), minutes of the hour (MOH), and seconds of the minute (SOM) for which the effect occurs. All ranges are inclusive. Any combination of these ranges may be used; the more that are used, the fewer valid date/times the effect occurs. All times are in the local time-zone.</p>
        <p>MOY range: 1,12;Where &quot;1&quot;= January, and &quot;12&quot;= December</p></td>
  </tr>
  <tr>
    <td>DOM=dom_begin,dom_end</td>
    <td>DOM range: 1,31;Where &quot;1&quot;= first day of the month, and &quot;31&quot;= last possible day of the month</td>
  </tr>
  <tr>
    <td>HOD=hod_begin,hod_end</td>
    <td>HOD range: 0,23;Where &quot;0&quot;= would be midnight, and &ldquo;23&rdquo; is 11pm.</td>
  </tr>
  <tr>
    <td>MOH=moh_begin,moh_end</td>
    <td>MOH range: 0,59;Where &quot;0&quot;= would be the start of the duration of 60 minutes</td>
  </tr>
  <tr>
    <td>SOM=som_begin,som_end</td>
    <td>SOM range: 0,59;Where &quot;0&quot;= would be the start of the duration of 60 seconds</td>
  </tr>
  <tr>
    <td><p>DAWN=1|0</p>
        <p>DAY=1|0</p>
        <p>DUSK=1|0</p>
        <p>NIGHT=1|0</p></td>
    <td>Specifies that the effect should only occur during certain periods of the day. If the value is 1, the effect will occur. If the value is 0, it will not. If none of these parameters are specified, the effect will occur the entire day.</td>
  </tr>
  <tr>
    <td>DURATION=seconds</td>
    <td>Specifies, in seconds, the duration of the effect. This parameter may be a non-integer; i.e. 2.5.</td>
  </tr>
</table>
<p></p>
<p>The following table lists a few examples, note the use of commas within parameters, and the semicolon to separate different effects parameters: </p>
<p>&nbsp;</p>
<table class="T1" cellspacing="2" cellpadding="4">
  <tr>
    <td><h5>Example</h5></td>
    <td><h5>Parameters</h5></td>
    <td><h5>Description</h5></td>
  </tr>
  <tr>
    <td><strong>Kilauea</strong><strong> Eruption</strong></td>
    <td><p>        YEAR=1983,1983;MOY=01,01;DOM=03,03;HOD=07,07; MOH=29,29;DURATION=31536000
    </p>      </td>
    <td>It occurs on January 3, 1983 at  7:29 am and lasts 352 days.</td>
  </tr>
  <tr>
    <td><strong>Atlanta</strong><strong> Fireworks:</strong></td>
    <td>MOY=07,07;DOM=04,04;HOD=22,22;MOH=00,20;</td>
    <td>On July 4th every  year, at 10:00pm it starts and lasts until 10:20 pm.<br /></td>
  </tr>
  <tr>
    <td><strong>New York</strong><strong> New Years Eve Fireworks</strong></td>
    <td>MOY=01,01;DOM=01,01;HOD=00,00;MOH=00,20;</td>
    <td>It starts every year on January  1st at Midnight and lasts until 12:20 pm.</td>
  </tr>
</table>
<p>&nbsp; </p>
<h4>Library Objects</h4>
<p>Attaching a library object is simply a case of selecting the appropriate .x file. The library object will be rendered at the attach point location. </p>
<h4>Visibility</h4>
<p>The Visibility option enables different pieces of artwork to be rendered depending on the information provided by the simulation engine. One example of this is giving a blurring tire effect when a vehicle is moving, but a clearer tire image when that vehicle is stationary. </p>
<h4>Mouse Rect</h4>
<p>Mouse rectangles are for use with the 3D virtual cockpit. By defining appropriate rectangles, and attaching them to specific switches, those switches become active in the virtual cockpit, enabling the user to click on the rectangle to perform the attached function. </p>
<h4>Platform</h4>
<p>A platform is a piece of geometry that an aircraft can land on. By default all objects have crash boxes associated with them. Use the No Crash option to remove crash boxes from in and around the landing area. </p>
<h4>No Crash</h4>
<p>Removing crash boxes from geometry allows you to create  portions of your model that the aircraft will not crash into.&nbsp; This is especially handy when working with  platforms.&nbsp;It is important to  separate the geometry that does not require crash boxes  from the rest of the model.
</p>
<h4>Empty</h4>
<p>Empty attach points have two main uses. The first is to attach special objects such as beacons, the second is for use in the mission system (refer to the <a href="../../Mission Creation Kit/Mission Creation.html">Mission Creation</a> documentation).    </p>
<hr />
<h2>The Cloud Tool<a name="TheCloudTool" id="TheCloudTool"></a></h2>
<p>The clouds in <i>Flight Simulator X</i>, and the cloud tool, are very similar to those in <i>Flight Simulator 2004</i>. The cloud tool is available in the FS Tools drop down menu. </p>
<p>&nbsp;</p>
<p><a href="#UsingtheCloudTool">Using the Cloud Tool</a></p>
<p><a href="#SetupSceneRollout">Setup Scene Rollout</a></p>
<p><a href="#CreateCloudRollout">Create Cloud Rollout</a></p>
<p><a href="#SetupCloudGroupsRollout">Setup Cloud Groups Rollout</a></p>
<p><a href="#PrepareCloudforExportRollout">Prepare Cloud for Export Rollout</a></p>
<p>&nbsp;</p>
<h3>Using the Cloud Tool <a name="UsingtheCloudTool" id="UsingtheCloudTool"></a></h3>
<p>  Once you have run CloudTool.ms, you should see the Create and Export Clouds dialog, which will look like this:<br />
</p>
<table class="T1" cellspacing="2" cellpadding="4">
  <tr>
    <td><img src="Images/CloudDialog.JPG" width="355" height="775" /></td>
    <td><p>There are four Rollouts in the Create and Export Clouds dialog:</p>
      <p>&nbsp;</p>
      <p>Setup Scene </p>
    <p>Create Cloud</p>
    <p>Setup Cloud Groups</p>
    <p>Prepare Cloud for Export</p></td>
  </tr>
</table>
<p>&nbsp;</p>
<h4>  Setup Scene Rollout<a name="SetupSceneRollout" id="SetupSceneRollout"></a></h4>
<p>  This Rollout deals with the preparation of the scene for the creation of clouds.  Open the  CumulusCongestus48-1.3ds file (it is located in the <i>Modeling SDK</i> folder).  This file was used to create one of the actual variations of Cumulus Congestus clouds at 4/8 coverage.  At first glance, it looks a little odd.  There is a cloud and a whole bunch of brightly colored boxes.  The brightly colored boxes are used to create the cloud shape.  The cloud shape consists of many smaller facing sprites or planes, which creates the volumetric feel of the clouds.</p>
<p>&nbsp;</p>
<p>On the Setup Scene Rollout, click the Hide the Boxes! button.  Now you can see the cloud all by itself.  Next click the Select All Sprites! button.  Notice that all of the cloud sprites are selected.  This comes in handy when you want to move, rotate or scale the entire cloud.  Now click the Clear Old Sprites! button.  This will remove all of the existing cloud sprites.  Your scene should now be virtually empty except for the camera and the bounding box.  Click the Unhide the Boxes! button.  Now you can see all of the boxes that were used to create the cloud.  You are now ready to re-create the cloud using the Create Cloud rollout.</p>
<h4><br />
  Create Cloud Rollout<a name="CreateCloudRollout" id="CreateCloudRollout"></a></h4>
<p> The scene in CumulusCongestus48-1.3ds is ready for cloud creation, so you should be able to work right from within this file.  It is a good idea to use this  file as a base file for the creation of new clouds, since it is set up to work properly already.  You can just copy and manipulate the existing boxes, or add new boxes of your own to create different cloud shapes and types.  However, to start from scratch, the following points outline some of the requirements and features of the .3ds file:</p>
<ol>
  <li>All of the clouds in Flight Simulator are in 16km x 16km blocks.  If you look at the CumulusCongestus48-1.3ds file, you will see a bluish-grey box outline that is 16,000 meters long by 16,000 meters wide by 3,000 meters tall.  This is a dummy object that has been scaled and then frozen in 3ds Max&reg;.  This provides you with a guideline to work around.  If you keep your cloud close to the edges of this box (you can overlap a little bit for continuity), it will blend with the other clouds in Flight Simulator, because they are all 16km x 16km.  The height of the cloud can be whatever you&rsquo;d like for cumulus, though this affects the  section it should be placed in, in the CloudArtFiles.xml (see the <a href="#PrepareCloudforExportRollout">Prepare Cloud for Export Rollout</a> section.)   For stratus clouds, the cloud will be scaled according to the heights entered in the  Advanced Weather dialog in <i>Flight Simulator</i>.  Create the cloud at some mid-range height like 3,000 to 5,000 meters so that it looks good both large and small.</li>
  <li> The X and Y dimensions of the cloud should be centered around [0,0,0] in 3ds Max&reg;.  The bottom of the cloud should be at 0 in the z dimension.  This is because the altitude of the base of the cloud in <i>Flight Simulator</i> corresponds to 0 in the z dimension in 3ds Max&reg;.</li>
  <li> When creating boxes, group identically colored boxes (wirecolor) close to each other and make sure to have a wide variety of colored boxes.  This is because the wirecolor of the boxes gets transferred to the sprites that fill it.  The wirecolor of the sprites get transformed into Shading Groups in <i>Flight Simulator</i>.  Shading Groups determine how the cloud is lit.  If you have only one Shading Group for your entire cloud, the highlights and shadows will be spread out over 16km.  If there are too many Shading Groups, the cloud will look spotted.  Take a look at the color distribution in CumulusCongestus48-1.3ds for a good idea of how many Shading Groups to have.</li>
  <li> To fill a box  with one type of sprit, give it a specific name.  If you look at the names of the boxes in CumulusCongestus48-1.3ds, you will see that there are a few different names for the boxes.  Any box that is named Box* will get filled by the type of sprite called out in the Create Cloud radio buttons.  Any box named Stratus* will be filled only with sprites using the Stratus textures.  Any box named Solid* will be filled only with sprites using the Solid Cumulus textures.  Any box named Wispy* will be filled only with sprites using the Wispy Cumulus textures.  Any box named Base* will be filled only with sprites using the Base texture and those sprites will have their rotation limited from -5 to 5 degrees.  Below is the Cumulus01 texture sheet and the locations of the various categories of textures:<br />
    <br />
      <table class="T1" cellspacing="2" cellpadding="4">
        <tr>
          <td><img src="Images/CloudTexture.JPG" width="256" height="256" /></td>
          <td>
            <ul>
              <li> Do not name any box &ldquo;Plane*&rdquo;.  This will potentially confuse the export process later on.  This is because the sprites that fill the boxes will be named &ldquo;Plane*&rdquo;.</li>
              <li>You should have only one material in your scene.  It should reference the included Cumulus01.tga as a map in both its color and alpha channels (if you want the cloud to show up close to how it will look in <i>Flight Simulator</i>). </li>
              <li> If the texture does not show up in the viewport or in the material, this is because the path to it is erroneous.  </li>
              <li>There must be a target camera in the scene named Camera01.  If there isn&rsquo;t, the script will fail because it is trying to align all of the sprites to Camera01.</li>
          </ul></td>
        </tr>
      </table>
    <br />
  </li>
</ol>
<p>In order to create a cloud in 3dsMax, you must use the Create Cloud rollout on the Create and Export Clouds dialog.  Since you have removed all the sprites from the CumulusCongestus48-1.3ds file, you are now ready to re-create the cloud from scratch.  To do this, you must fill in some of the text boxes with appropriate numbers and choose from a variety of options.  Here is what each of the inputs means:</p>
<p>&nbsp;</p>
<table class="T1" cellspacing="2" cellpadding="4">
  <tr>
    <td><h5>Input</h5></td>
    <td><h5>Description</h5></td>
  </tr>
  <tr>
    <td><b>Number of Sprites</b></td>
    <td>This is the number of sprites you want to initially fill the box volumes with.  When you press the Create Cloud!! button, the cloud tool will figure out the volume ratio of each box to the volumes of all the boxes combined and fill that box with a corresponding ratio of sprites to the total number of sprites.  So if the box it is filling is 1/100 of the total ratio of box volume, and you have entered 500 sprites in the Number of Sprites field, the cloud tool will fill that box with 5 sprites.  Simply put, the bigger the box, the more sprites it gets.</td>
  </tr>
  <tr>
    <td><b>Size of Sprites</b></td>
    <td><p>This is the sprite diameter in meters.</p>
    <p>&nbsp;</p>    </td>
  </tr>
  <tr>
    <td><b>Cull Distance</b></td>
    <td>When the cloud tool fills the boxes with sprites, for each sprite it randomly choses an x,y,z coordinate within each box&rsquo;s bounding range and places the sprite at that location.  Because random does not necessarily mean even distribution, you will sometimes see clumps of sprites together (this also happens if you overlap the boxes).  The Cull Distance helps to mitigate this somewhat.  When all of the sprites have been placed, the cloud tool goes back through each sprite and checks the distance from its center to every other sprite in the scene.  If the distance is less than (1/Cull Distance * diameter of sprites) then that sprite is deleted. Typically, a very high Cull Distance will keep more sprites around.  A very low Cull Distance will keep less sprites around.</td>
  </tr>
  <tr>
    <td><b>Random Size Value</b></td>
    <td>This is the amount of variation in the sprite size in meters.  If you have entered 1300 in the Size of Sprites text box and 100 in the Random Size Value, your sprites will be anywhere from 1200 to 1400 meters in diameter.</td>
  </tr>
  <tr>
    <td><b>Fill only selected boxes!</b></td>
    <td>If this check box is checked, when you press the Create Cloud! button, the cloud tool will fill only the boxes that are selected with sprites</td>
  </tr>
  <tr>
    <td><b>Make each box have a sprite</b></td>
    <td>This guarantees that every box will have a sprite.  If you have 500 boxes and try to fill them with 300 sprites, this will guarantee that every box gets a sprite regardless.</td>
  </tr>
  <tr>
    <td><b>Cloud Coverage Type</b></td>
    <td><p>The type of the cloud is determined by which portion of the Cumulus01 image gets applied to the sprites as they are created.  If there are multiple textures within a type of cloud (as there are with Stratus, Wispy Cumulus and Solid Cumulus textures), each time a sprite is created, it gets assigned a random texture from within that type.  There are four types of cloud coverage that can be assigned to the sprites in a cloud:  </p>
      <ul>
        <li>Low Coverage: applies only the Wispy Cumulus Textures to each sprite. </li>
        <li>Stratus: applies only the Stratus Textures to each sprite. </li>
        <li>Wispy Cumulus: applies both the Wispy Cumulus Textures and the Solid Cumulus Textures to each sprite. </li>
        <li>Solid Cumulus: applies only the Solid Cumulus textures to each sprite.</li>
      </ul>      
      <p>    You can also determine which textures get assigned to the sprites by naming the boxes.  The names of boxes that will affect texture type are: Base*, Solid*, Wispy* and Stratus*.  Any sprite placed within that box will get the corresponding texture type.  That&rsquo;s why CumulusCongestus48-1 has all of those boxes way below the bottom of the cloud.  Those are all named Base, which means they will get filled with the base texture.  The base texture has a flat bottom&mdash;something most clouds tend to have.  Using box naming, you can create a wide variety of clouds.  If you name all of the bottom boxes Base,  then leave all of the bulk of the cloud named Box*,   name all of the boxes on the very edge of the cloud Wispy, and then choose Solid as your cloud coverage type, you should see a dense cloud that has a flat bottom and wispiness all around the edges.</p></td>
  </tr>
  <tr>
    <td><b>Create Cloud</b></td>
    <td>This button will start the cloud creation process, which can take a minute or two.</td>
  </tr>
  <tr>
    <td><p><b>Number of Sprites</b></p>
      <p>&nbsp;</p>
    <p><b>Update Sprite Count</b></p></td>
    <td>These display the current number of sprites in the cloud.  Because of the <i>Cull Distance</i> text box and the <i>Make each box have a sprite</i> check box,  there will not necessarily be the same number of sprites as the number entered in the <i>Number of sprites</i> text box.  After pressing the Create Cloud button, it counts and displays the number of sprites in the cloud.  At any time, if you press the Update Sprite Count button, it will update the text box with the current number of sprites in the scene.</td>
  </tr>
  <tr>
    <td><p><b>Overdraw Amount</b></p>
    <p>&nbsp;</p>
    <p><b>Calculate</b></p></td>
    <td>The Overdraw Amount text box is a very rough way of determining the performance of this particular cloud in <i>Flight Simulator</i>.  When you press the Calculate button, the cloud tool will compare the total amount of area the sprites are covering to the16 x 16 km block.  The number displayed is the ratio of these two areas.  If the Overdraw Amount shows 2, then you are covering the area of the 16 x 16 km block twice over.  This means at any given point, there will be two sprites overlapping each other.  Large numbers of overlapping  alpha textures is a big performance hit.  If you can keep the Overdraw Amount around or less than 6, performance should not be adversely affected.  This is a very simple way of calculating overdraw, so you may see some anomalies, but it is a reasonable baseline for checking the performance of your clouds.</td>
  </tr>
</table>
<p>&nbsp;</p>
<p>To create a cloud, enter some appropriate values into the Create Cloud rollout: </p>
<p>&nbsp;</p>
<table class="T1" cellspacing="2" cellpadding="4">
  <tr>
    <td><img src="Images/CreateCloudDialog.JPG" width="333" height="247" /></td>
    <td>Try different settings for different results.</td>
  </tr>
</table>
<p>&nbsp;</p>
<p>Once you have entered all of the information, press the Create Cloud! button.  The creation of the cloud may take a little while.  The progress bar at the bottom of 3ds Max&reg; should let you know, roughly, the progress.  When the cloud creation is finished, it will hide the boxes, update the Sprite Count and show the sprites:</p>
<p>&nbsp;</p>
<table class="T1" cellspacing="2" cellpadding="4">
  <tr>
    <td><img src="Images/BlackClouds.JPG" width="455" height="403" /></td>
    <td><p>The cloud appears all black because there is no lighting.  This will get addressed later in the Prepare Cloud for Export section.  Notice that the bottom of the cloud is way below 0.  We separate out the bottom of the cloud because it is easier to line up and tweak this way.  </p>
    <p>&nbsp;</p>
    <p>Select all of the Base sprites (the ones below the cloud) and move them up to line up with the bottom of the cloud, so it looks like the following image. </p></td>
  </tr>
  <tr>
    <td><img src="Images/BlackClouds2.JPG" width="455" height="403" /></td>
    <td>You can also view the cloud from all angles by manipulating Camera01.  The sprites will face you as you move the camera.  What you see in 3ds Max&reg; should be a very close approximation of what you will see in <i>Flight Simulator</i>.</td>
  </tr>
</table>
<p>&nbsp;</p>
<h4>  Setup Cloud Groups Rollout<a name="SetupCloudGroupsRollout" id="SetupCloudGroupsRollout"></a></h4>
<p><br />
  The Setup Cloud Groups rollout is used to do two things: define Cloud Groups and limit Cloud Rotation. Curently, Cloud Groups are used for dynamically fading clouds in and out when the weather changes.  They  fade clouds out based on smaller units, rather than just the whole 16km x 16km block of clouds.  All sprites must be associated with a cloud group or you will get an error when you try to export. </p>
<p>&nbsp;</p>
<p>To create Cloud Groups, select a small batch of sprites that would reasonably make up a small cloud.  Then press the Assign to Selected button next to the Cloud Group Number text box.  It will put the following text in the User Defined Properties of the selected sprites: Cloudgroup = 0.  It will also increment the Cloud Group Number text box by 1.  This allows you to quickly assign Cloud Groups without having to type in a new number each time.</p>
<p>&nbsp;</p>
<p>When sprites are displayed in Flight Simulator, they default to a full 360 degree random rotation.  This allows you to use less textures and get more variation.  If you want to limit the rotation of a sprite (especially for the Base textures), use the Cloud Rotation text box to do so.  If you name a box Base* when creating the cloud, it will automatically put Rotation=5 into the User Defined Properties of all the sprites created within that box.  This means that the sprite will never rotate more than +5 or -5 degrees off of 0 degrees.  A 0 degree rotation means that when a sprite is facing you, the top of the texture will always be pointing up in <i>Flight Simulator</i>:</p>
<p>&nbsp;</p>
<table class="T1" cellspacing="2" cellpadding="4">
  <tr>
    <td><img src="Images/CloudRotation.JPG" width="512" height="512" /></td>
    <td>If you want to set rotation on sprites, first select them, then type in the rotation value in the Cloud Rotation text box.  Then press the Assign to Selected button directly next to the Cloud Rotation text box.  To view the user properties,  right click on the sprites. This will display the rotation amount.  Due to some differences between 3ds Max&reg; and <i>Flight Simulator</i> controls, you cannot view rotation in 3ds Max&reg; as it would appear in <i>Flight Simulator</i>.</td>
  </tr>
</table>
<p>&nbsp;</p>
<h3><br />
  Prepare Cloud for Export Rollout<a name="PrepareCloudforExportRollout" id="PrepareCloudforExportRollout"></a></h3>
<p>  This section explains how to set up a cloud so that it can be exported using the FSModelExp.dle.  It is a good idea to save the cloud now.  During the setup process, information about each sprite (in this case, anything named &ldquo;Plane*&rdquo;) will be added into the User Defined Properties.  Global information about the whole cloud will be added in the User Defined Properties of Camera01.  </p>
<p>&nbsp;</p>
<p>The color levels are used to create a sort of performance enhancing pre-lighting condition for the clouds in  <i>Flight Simulator</i>.  Because it is very performance intensive to calculate lots of real-time lighting on the fly for every single sprite in every single cloud, a precalculation is done to enable simpler run-time calculations. The color levels mimic the fact that light tends to come from above the clouds (the sun) and travel through them.  As this happens, the density of the cloud and the moisture particles deflect and diffuse the light, causing the bottoms of the clouds to appear much darker than the tops, especially for denser cloud coverages.  There are 5 color levels that can be applied to the cloud upon export preparation.  Each of these color levels has 3 possible settings.  Here is a description of the color levels and export preparation process:</p>
<p>&nbsp;</p>
<table class="T1" cellspacing="2" cellpadding="4">
  <tr>
    <td><h5>Input</h5></td>
    <td><h5>Description</h5></td>
  </tr>
  <tr>
    <td><b>Color[number] Height</b></td>
    <td>This is the percentage of the total height of the cloud at which the Color[number] and Alpha [number] will take effect.  If you have set Color1 Height at 20.0 and Color1 at pure black (0,0,0), then the bottom 20% of the cloud will be pure black.  It will then interpolate to the next color over the course of the next height percentage specified.  So if Color2 is pure red (255,0,0) and Color2 Height is 50.0 then it will interpolate from black to red over the next 30% (50 - 20) of the cloud height.</td>
  </tr>
  <tr>
    <td><p><b>Color[number]</b></p>    </td>
    <td>This is the color that will be displayed at the Color[number] Height.  <i>Flight Simulator</i> changes the color of the vertices of the sprites to achieve this effect.  What this means is that if you have a very thin cloud layer where all of the bottom vertices are very close together in the Z dimension and all of the top vertices are very close together in the Z dimension, you probably won&rsquo;t see all five color levels very clearly because there are no vertices in the middle 20-80% to be colored.</td>
  </tr>
  <tr>
    <td><b>Alpha[number]:  0-255</b></td>
    <td>This is the level of alpha that will be applied to the vertices at Color[number] Height.  0 is 100% transparent.  255 is 100% opaque.  This is handy for fading a cloud out as it gets taller or giving the whole cloud a wispy look.  3ds Max&reg; is unable to display this as it appears in <i>Flight Simulator</i>,  so some trial and error may be necessary to get the desired effect.  Generally a value of 255 across the board will give you something in <i>Flight Simulator</i> very similar to what you see in 3ds Max&reg;.  Plus, it will avoid excessive alpha overdraw, which is a performance problem. </td>
  </tr>
  <tr>
    <td><b>Visualize Color Settings!</b></td>
    <td><p>This button will take all of the color level inputs and give an approximation of what will appear in <i>Flight Simulator</i>.  The default settings are generally pretty good for cumulus type clouds.  Feel free to tweak and visualize to get the best settings for any given cloud type.  Try much darker bases for thunderstorm clouds or much lighter bases for very thin clouds.  You can also use this to create incredibly bizarre color settings as well (try dark brown, olive green and orange for those 70&rsquo;s living room clouds).  This is roughly what the 3ds Max&reg; file should look like using the default color levels: </p>
      <p>&nbsp;</p>
      <p><img src="Images/WhiteClouds.JPG" width="457" height="405" /></p></td>
  </tr>
  <tr>
    <td><b>Prepare Cloud for Export</b></td>
    <td>This button sets up the scene so that the cloud can be exported using the FSModelExp.dle plugin.  The only thing that needs to be adjusted for this to work is the color levels as described above.  Press the Prepare Cloud for Export button.  There should be a pause where it appears that nothing is happening (unless you get an error, such as the &ldquo;<i>#(Plane*) does not have a cloud group number. Please assign one!&rdquo;</i> error, which means that you need to go back to the Setup Cloud Groups Rollout and make sure every sprite is in a cloud group.)  During this time, the cloud tool is putting all of the properties needed for export into the User Defined Properties for each sprite.  It is also putting the global file properties into  the User Defined Properties for Camera01.</td>
  </tr>
</table>
<p>&nbsp;</p>
<ol>
  <li>    To export the cloud, choose Export&hellip; from the File menu.  This will bring up the Select File to Export dialog.  Choose to export files of type Flightsim Cloud (.CLD).  Navigate to the location that you want to export to and chose an appropriate name and then press Save.</li>
  <li>Copy any .cld file that you have created to <i>Flight Simulator X\Weather\clouds</i>.</li>
  <li>To view your new clouds in the simulator, you&rsquo;ll need to edit the CloudArtFiles.xml, which is installed  in <i>Flight Simulator X\Weather\clouds</i>.  This file determines what type of clouds appear at what coverage.  Open this file in Notepad or another text editor.  The first few lines of the file should look something like this:<br />
    <br />
    <table class="T1" cellspacing="2" cellpadding="4">
      <tr>
        <td><p>&lt;?xml version=&quot;1.0&quot;?&gt;<br />
  &lt;!-- XML file for locating cloud art files.  --&gt;<br />
  &lt;CloudFiles  xmlns=&quot;x-schema:CloudArtSchema.xml&quot;&gt;<br />
  &lt;cloud description=&quot;altocumulus&quot;&gt;<br />
  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;coverage  amount = &quot;5&quot;&gt;<br />
  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;variation  file=&quot;_altocumulus58-5s.cld&quot;/&gt;<br />
  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;variation  file=&quot;_altocumulus58-6s.cld&quot;/&gt;<br />
  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;variation  file=&quot;_altocumulus58-7s.cld&quot;/&gt;<br />
  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;variation  file=&quot;_altocumulus58-8s.cld&quot;/&gt;<br />
  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/coverage&gt;<br />
  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;coverage  amount = &quot;6&quot;&gt;<br />
  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;variation  file=&quot;_altocumulus68-20s.cld&quot;/&gt;<br />
  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;variation  file=&quot;_altocumulus68-13s.cld&quot;/&gt;<br />
  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;variation  file=&quot;_altocumulus68-11s.cld&quot;/&gt;<br />
  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;variation  file=&quot;_altocumulus68-12s.cld&quot;/&gt;<br />
  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/coverage&gt;<br />
  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;coverage  amount = &quot;7&quot;&gt;<br />
  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;variation  file=&quot;_altocumulus78-4s.cld&quot;/&gt;<br />
  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;variation  file=&quot;_altocumulus78-5s.cld&quot;/&gt;<br />
  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;variation  file=&quot;_altocumulus78-6s.cld&quot;/&gt;<br />
  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;variation  file=&quot;_altocumulus78-7s.cld&quot;/&gt;<br />
  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;variation  file=&quot;_altocumulus78-10s.cld&quot;/&gt;<br />
  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/coverage&gt;<br />
  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;coverage  amount = &quot;8&quot;&gt;<br />
  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;variation  file=&quot;_altocumulus88-10s.cld&quot;/&gt;<br />
  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;variation  file=&quot;_altocumulus88-11s.cld&quot;/&gt;<br />
  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/coverage&gt;<br />
  &lt;/cloud&gt;</p></td>
      </tr>
    </table>
    <br />
  </li>
  <li>  When <i>Flight Simulator</i> requires cloud type &ldquo;altocumulus&rdquo; with a coverage amount of &ldquo;5&rdquo;, it will chose between the 4 files listed above (_altocumulus58-5s.cld, _altocumulus58-6s.cld, _altocumulus58-7s.cld, _altocumulus58-8s.cld).  Find the appropriate section for your cloud, and just insert it into the file, for example:<br />
    <br />
      <table class="T1" cellspacing="2" cellpadding="4">
        <tr>
          <td><p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;coverage  amount = &quot;7&quot;&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;variation  file=&quot;_altocumulus78-4s.cld&quot;/&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;variation  file=&quot;_altocumulus78-5s.cld&quot;/&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;variation  file=&quot;_altocumulus78-6s.cld&quot;/&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;variation  file=&quot;_altocumulus78-7s.cld&quot;/&gt;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;variation  file=&quot;_altocumulus78-10s.cld&quot;/&gt;<br>
 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <b> &lt;variation  file=&quot;Test.cld&quot;/&gt;</b><br> 
  &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/coverage&gt;<br />
          </p></td>
        </tr>
      </table>
      <br />
  </li>
  <li>Now your cloud will show up mixed in with the rest of the 7/8 coverage clouds.  It can be very difficult to tell sometimes if your cloud is actually showing up at all, so use the included CloudArtFilesAllOne.xml as a test tool  (located in the Modeling SDK folder).  This file makes every single coverage reference one cloud: Test.cld.  If you export your cloud as Test.cld, and then rename your CloudArtFiles.xml to CloudArtFilesReal.xml and then rename the CloudArtFilesAllOne.xml to CloudArtFiles.xml (and place it in the <i>weather\clouds</i> folder), you should see the Test.cld no matter what kind of weather you select.</li>
</ol>
<h5>Note</h5>
<p>The reason there are far less variations of Stratus clouds is because they are scaled to the desired height of the cloud layer.  This means that in the simulator, if you set a cloud layer to be Stratus and 6000&rsquo; tall, the cloud will get scaled vertically 6000&rsquo;.  Because Stratus tend to have that &ldquo;wet blanket&rdquo; effect, this looks okay.  However,  scaling cumulus clouds does not work well, so they are divided into four types, and not scaled: </p>
<ul>
  <li>Cumulus Humilis are cumulus layers shorter than 3000&rsquo;. </li>
  <li> Cumulus Mediocris cover from 3000-6000&rsquo;. </li>
  <li> Cumulus Congestus cover from 6000-9000&rsquo;.</li>
  <li> Towering Cumulus and the Cumulonimbus clouds with heights above 9000&rsquo;.</li>
</ul>
<p>So make sure any new cumulus clouds  are put in the right section.<br />
</p>
<hr />
<h2>The XtoMdlTool<a name="TheXtoMDLTool" id="TheXtoMDLTool"></a></h2>
<p>To create <i>Flight Simulator X</i> models, aircraft or scenery, a new tool, XToMdl, has been introduced. The previous tool, MakeMDL, is now deprecated as are  all models created from the ASM source. Models created with MakeMDL will still continue to function with FSX.&nbsp; For backwards  compatibility, XToMdl will read .x files from previous versions of <i>Flight  Simulator</i> and produce a model for <i>Flight Simulator X</i>. Conversion of materials from pre-<i>Flight Simulator X</i> models may result in  issues related to specular power and color.&nbsp;  This is usually due to these values being zero in the .x file.</p>
<p>&nbsp;</p>
<p> XToMdl.exe is a command line tool and is in the <i>Modeling SDK</i> folder. Normal use would be to enter the following in a command line window:</p>
<p>&nbsp;</p>
<p><b>&gt;XtoMdl /XANIM /DICT:3DSM7\modeldef.xml /XMLSAMPLE <i>filename</i>.x</b></p>
<p>&nbsp;</p>
<p>XtoMdl can take the following switches, which must be entered before the filename on the command line: </p>
<p>&nbsp;</p>
<table class="T1" cellspacing="2" cellpadding="4">
  <tr>
    <td><h5>Command line switch </h5></td>
    <td><h5>Description</h5></td>
  </tr>
  <tr>
    <td><p><b>/KEEP&nbsp;&nbsp;</b></p></td>
    <td><p>Keep  intermediate file.&nbsp; This is now a .XML  file an no longer is .ASM and is used as a reference.</p></td>
  </tr>
  <tr>
    <td><p><b>/BMP2DDS</b></p></td>
    <td><p>Converts  all textures references to refer to .DDS files in the binary model format.</p></td>
  </tr>
  <tr>
    <td><p><b>/XMLSAMPLE</b></p></td>
    <td><p>Outputs  a sample XML placement for a .MDL.&nbsp; This  .XML file is intended for the <i>Flight Simulator X</i> version of <a href="../BGL Compiler SDK/The BGL Compiler.html">BGLComp</a>. Note that the comments should be removed before using this file as input to the compiler (delete all the text shown with the strike-through style below): </p>
        <p>&nbsp;</p>
      <p>&lt;?xml version=&quot;1.0&quot; encoding=&quot;ISO-8859-1&quot;?&gt;<br />
        &lt;FSData version=&quot;9.0&quot; xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:noNamespaceSchemaLocation=&quot;bglcomp.xsd&quot;&gt;</p>
      <p> <s>&lt;!-- Sample object placement.  Remove comment markers to place object east of 34R at Sea Tac. --&gt;<br />
        &lt;!--</s><br />
        &lt;SceneryObject instanceId=&quot;{ec14df7a-3d72-4c87-bd55-daa998b6908f}&quot; lat=&quot;47 25.89&quot; lon=&quot;-122 18.43&quot; alt=&quot;0&quot; pitch=&quot;0&quot; bank=&quot;0&quot; heading=&quot;0&quot; altitudeIsAgl=&quot;TRUE&quot; imageComplexity=&quot;NORMAL&quot;&gt;<br />
        &lt;LibraryObject name=&quot;{6684841f-5555-46d0-bcd2-52e2e2fae6c8}&quot; scale=&quot;1.0&quot; /&gt;<br />
        &lt;/SceneryObject&gt;</p>
      <p> <s>--&gt;</s></p>
      <p> <s>&lt;!-- Inclusion of model data.  Use the 'Name' of this object to place --&gt; <br />
        &lt;!-- it in other locations.                                           --&gt; </s><br />
        &lt;ModelData sourceFile=&quot;testx.MDL&quot; /&gt;<br />
        &lt;/FSData&gt;</p></td>
  </tr>
  <tr>
    <td><p><b>/XANIM</b></p></td>
    <td><p>Specify  that the model includes animations.</p></td>
  </tr>
  <tr>
    <td><p><b>/DICT:&lt;filename&gt;</b></p></td>
    <td><p>Specifies  the path to the animation dictionary (usually modeldef.xml).</p></td>
  </tr>
  <tr>
    <td><p><b>/OUT:&lt;OutputName&gt;&nbsp;</b></p></td>
    <td><p>Changes  the output name of the .MDL file.</p></td>
  </tr>
  <tr>
    <td><p><b>/NOGUI</b></p>
        <p><b>/BATCH</b></p>
      <p><b>/NOCRASH</b></p></td>
    <td><p>These switches are ignored in this version of the tool. There is no graphical user interface, and no crash information is  being generated from this release  of XToMdl.</p></td>
  </tr>
</table>
<h5>&nbsp;</h5>
<h5>Notes</h5>
<ul>
  <li> Animations are not supported without the modeling export  tools.&nbsp; XtoMdl should function on  non-animating scenery objects.&nbsp; Animated  objects that are not exported from 3ds Max&reg; with the correct export tools can be used with XtoMdl, but will not animate.</li>
  <li>Due to changes in how materials and animations are handled a translation  will take place with the possibility of warnings being output to indicate this. Typically warnings should not be treated as serious problems. </li>
</ul>
<p>&nbsp;</p>
<p align="center">&copy; 2006 Microsoft Corporation. All rights reserved. </p>
<p align="center">~~@~~ </p>
</body>
</html>
