This example plane demonstates some of the airplane exterior lighting features that are possible in X-Plane 9:
Left and right landing lights are separately controlled.
Landing lights have two intensity levels (low and high).
Landing lights illuminate the fuselage of the airplane.
Logo lights illuminate the tail (billboards are visible on the wing-tips).
Strobe pattern is customized.
Front and rear wing strobes flash separately.
The two rotating beacons rotate at different rates.
This tutorial covers the following X-Plane material:
Parameterized Lights
Datarefs for light control
Use of ATTR_light_level
You Should Already Know
To understand this example plane, you should already know:
How to model a plane in Plane-Maker.
How to create a panel, including generic instruments.
How to build the exterior out of OBJ files from a 3-d modeler.
How to attach “named lights” to create lighting billboards.
This tutorial focuses mostly on billboards and halo effects; you can build light fixtures in a 3-d modeling program.
Landing Lights
X-Plane simulates up to 16 separately controllable landing lights (plus one taxi light). You can use named lights to map any number of billboards to any of these simulated lights.
If any of the 16 landing lights is on, X-Plane will draw a landing light halo effect on the runway in front of the airplane. (The quality of this effect will vary with hardware capability.)
The location of the landing light halo effect on the pavement is determined by the landing light location in the Plane-Maker view dialog box’s exterior lights tab.
Note: Even if you do not enable the landing lights in this tab, the location of the halo will be determined by this. X-Plane draws only one halo, so if you do not enable these lights, set the first light’s location to something appropriate for the centerline of the airplane.
Data Refs
The dataref
sim/cockpit2/switches/landing_lights_switch
is an array of floating point values that you can use to turn the landing lights on and off. The landing light switch is a ratio with 0 being off, 1.0 being full intensity, 0.5 being 50% intensity, etc. Each landing light can be set to a different intensity, or be individually turned off and on.
Tells the actual effective brightness of the landing light for visual effects – it takes into account electrical system and landing light failures, as well as the delay for the bulb to warm up and cool down. It is also an array of 16 floating point values – 0.0 is off, 1.0 is full brightness.
That date back to older versions of X-Plane. Use the newer datarefs for more control – these datarefs will turn all of the landing lights on and off at once.
3-Way Panel Switches
X-Plane comes with a built-in “landing light” switch – don’t use it. It will only affect the first landing light. Instead, use generic instruments to write to the sim/cockpit2/switches/landing_lights_switch switch.
In our plane, we use a 3-position rotary. A key frame table matches the 3 positions to off, 50%, and 100% brightness.
Customizing the Landing Light Billboards
For the billboards under the wings, we do not use the built-in landing lights from the view dialog box of Plane-Maker. Instead we attach parameterized lights to our OBJ.
A parameterized light is like a named light: it is a billboard attached to your object at an XYZ location. The name defines what the billboard will look like. But unlike a named light, a parameterized light lets us customize the look of the light. Our object contains this:
The first 3 numbers are the location in meters relative to the attachment point of the fuselage object that the lights are part of. The next numbers meanings depend on the type of parameterized light. In our case (landing light by size) they are:
The size of the billboard (1.5). Billboard sizes don’t correspond to meters – you’ll have to experiment to find appropriate sizes.
The tightness of focus. Negative values are visible from the front of the plane, positive from the rear. Larger magnitude numbers make a light that is visible from a smaller angle.
The index number of the light. So the first billboard on the left side is tied to landing light #0, the second one is tied to landing light #1. (Array indices for datarefs count from 0.)
Thus the two landing lights are independently controllable.
Note that you can make many light billboards (with LIGHT_PARAM or LIGHT_NAMED) for a single x-plane landing light. So for example, you can model a landing light in a wing with several bulbs.
Adding Halos To The Fuselage
To create the illusion of the landing light shining on the fuselage, the _LIT texture for the fuselage object has the lighting halos for the two landing lights and tail drawn in.
We can use ATTR_light_level to control the brightness of the light texture for a certain set of triangles. What makes things difficult is that we can only have one _LIT texture. So it is important that we design our lights with no overlapping regions. (We have no way to select one of multiple halos that would intersect in the LIT texture.) In our object we have this:
ATTR_light_level 0.000000 1.000000 sim/flightmodel2/lights/landing_lights_brightness_ratio[0]
TRIS 0 882
ATTR_light_level 0.000000 1.000000 sim/flightmodel2/lights/landing_lights_brightness_ratio[1]
TRIS 882 669
ATTR_light_level 0.000000 1.000000 sim/flightmodel2/lights/generic_lights_brightness_ratio[0]
TRIS 1551 435
The mesh is divided into three parts, and each part has its lit level tied to one of the brightness ratios – two for the landing lights, one for the tail logo lights (see below).
Note that we do not use the switch datarefs, we use the filghtmodel2/lights/ datarefs to get the actual brightness. This way if our electrical system dies, the halo effect will disappear from the fuselage even if the switch is turned to the “on” positions.
Tail Logo Lights
The tail logo lights basically repeat the strategy we used for the landing lights, but with one difference: we don’t want a halo to appear on the runway because the logo lights are turned on. But we get a halo on the runway if any landing light is turned on. Clearly we can’t “recycle” one of our 14 remaining landing lights for the tail.
Fortunately, X-Plane also provides 64 “generic” lights. A generic light is a bulb simulated in X-Plane, similar to a landing light, but without producing a halo effect on the runway. We can use them for any purpose. In our case we will use a generic light to simulate logo lights projecting back from the wing tips to the tail.
Something to note: while our plane appears to have two logo lights (one on each wing tip lighting each side of the tail) we only use one generic light for both. This is because we don’t model turning the left and right logo light on separately. Thus we can just use one generic light, and use two billboards. There is no requirement to use one generic light in X-plane for each real-world bulb on the plane.
Data Refs
Like the landing lights, two datarefs control the generic lights. The switch position is also a ratio from 0.0 to 1.0:
sim/cockpit2/switches/generic_lights_switch
and the brightness (taking into account the electrical system, etc. is found in
There is no pre-made instrument switch for generic lights – we must use a generic instrument (in our case another 3-way rotary) to map to sim/cockpit2/switches/generic_lights_switch.
Adding Halos To The Tail
Like the landing lights, we use ATTR_lit_level to fade the _LIT texture on the tail.
Adding Billboards To The Wing Tips
We want to put a pair of billboards on the tails so that when a user looks from the tail to the wing-tip, the bulb appears. Once again we use parameterized lights so we can customize the light’s properties a bit. But here we have a problem: the parameterized lights only face forward or backward. How do we angle the lights inward toward the tail?
The answer is animation. Directionally sensitive billboards in X-Plane are affected by animation. We can build a “static” animation (an animation whose animated position never changes) to “aim” the billboard at the tail.
The lights are being rotated around an arbitrary point, 250 degrees for the first light, and 120 degrees for the second.
Beacons And Strobes
For our airplane, we want to accomplish a few specialized effects with the beacons and strobes:
We want the strobes to flash in an irregular pattern (short long, short long).
We want the first flash to come from the front of the wing, and the second one to come from the back of the wing.
We want the two red rotating beacons to flash at different rates.
X-Plane 940 models four separate strobes and four separate beacons. Normally they will all flash or rotate in sync in a preset pattern. But we can use a plugin to take over the behavior and program our own pattern. So we have a 2-part task:
Program our own pattern, and
Use parameterized lights to place strobes and beacons on our airplane OBJ that respond to the right strobe or beacon number.
Parameterized Lights For Beacons and Strobes
Once again, we will not use the built-in exterior lights; instead we will place our own in an OBJ. In the exterior lights tab of the view dialog box in Plane-Maker, all of the specific lights are off, and the options to have Plane-Maker place lights for us is off too.
This is a pair of rotating beacons; these are parameterized lights. The first parameter is size. The second parameter (0) makes the light omni-directional. And the third light is the index number of the 4 beacons. So the second beacon is on the tail, the first is on the fuselage.
(Note that unlike landing lights, all four beacons simulated in the system are controlled by one switch. The same applies for the strobes.)
Our nav lights on the wing tips are simple named ilghts
The first parameter is size, the second directionality (again, negative means “visible from the front”, and smaller numbers are less directional), and the last number is the index of the strobe. So the front strobe is index 0, the back strobe is index 1.
Again, note that the number of strobes that the sim simulates is not the same as the number of billboards. We have two strobes, but we have two billboards for each (one on each wing). So the system simulates two strobes (for a two-stage flash) but we see four billboards.
DataRefs And Plugin
Without the plugin, the strobes would flash all four in sync, once a second, and the beacons wouild flash in unison. We use a fat plugin in the aircraft’s plugins folder to override this behavior.
When you set this dataref to 1, you take control away from X-Plane and manage the strobes and beacons yourself. You must manage both – there are not separate overrides for beacons and strobes. Be sure to set the dataref back to 0 when your plugin is unloaded!
X-Plane will set these datarefs to be 1 if the beacons and strobes have power and 0 if they do not:
Use these datarefs (and not the raw switch datarefs) to decide whether the strobes and beacons should light up – that way your strobes and beacons won’t work if the battery or electrical system fails.
These datarefs are updated by X-Plane once per frame, unless you override the beacons and strobes; in that case your plugin must update them.
The brightness ratios are 4-item float arrays – 0 means off, 1.0 means full brightness. The default beacons and strobes that Plane-Maker creates always show index 0, but you can use parameterized lights to show the other indices.
strobe_flash_now is an int – set it to 1 if any of the strobes is flashing; X-Plane checks this dataref and creates a “flash” effect in the cockpit when you are in the clouds or fog and the strobes are on.
Comments Off on Exterior Aircraft Lighting in X-Plane 9
This article will walk through the creation of two basic facade files. Before beginning this tutorial, be sure you’re with the facade concepts and terminology found in the Facade Overview.
Getting the images
To begin, we’ll need images to use with our facade. For the purpose of the tutorial, we have two very rudimentary facades that were drawn in Photoshop. In your own facades, you can either do the same (drawing from scratch in an image editor), or you can use photos of real buildings–for instance, the buildings actually present at the airport you’re working on. Be sure that any photos you want to use are taken facing the building straight on. It will be difficult to set an image straight with any degree of realism if it was taken at an angle.
Note that your image files may be either PNG, BMP, or DDS format. The images do not have do be square. However, their dimensions in pixels must be a power of 2, as with all images used in X-Plane scenery.
Download the images for the tutorial here:
Understanding S-T coordinates
All image coordinates in X-Plane are specified in OpenGL’s S-T system. Within this system, every pixel in an image has a unique coordinate specified as a proportion of the width and height. This means that each dimension of the coordinate is between 0 and 1.
These coordinates are ordered as (s, t), which is (proportion of width, proportion of height).
The coordinate (0, 0) corresponds to the bottom left corner of the image, and the coordinate (1,1) corresponds to the upper right corner. Even if the image is not square, this is still true; the s coordinate is a proportion of whatever the width is, and the t coordinate is a proportion of whatever the height is.
Click on the images below for help in understanding this system:
Writing the facade file
The facade file itself is a text file containing information on the image and how it should be utilized in X-Plane. Let’s get started writing this file.
Create a new text document using your favorite text editor (e.g., Notepad, Emacs, Vi, etc.). Save it as FacadeNameHere.fac. In our example facades, we called them basichangar.fac and basicbuilding.fac.
Note: Except where noted, each line in the text file must be present exactly once–it may not be either omitted or repeated.
Specifying the file type
The first three lines of this text file should always be:
A
1000
FACADE
These lines tell X-Plane that it is indeed looking at a facade file.
Specifying which image(s) to use
Immediately following that is the line specifying the image resource to use. The image name should always have a path relative to the FacadeNameHere.fac file. For instance, in this example (taken from our example hangar facade), the image is in the same folder as the .fac file:
TEXTURE hangar.png
This is the recommended way to set up your folder, as it is the simplest way to do it.
If you have a so-called “lit” texture (a texture to be used at night, when the building would be lit artificially), you can use the following command immediately after the TEXTURE line:
TEXTURE_LIT ImageNameHere.png
The TEXTURE_LIT line may be omitted, as it is in our examples.
Setting the facade’s details
Following the TEXTURE command(s) is the RING line. If this is set to 1, the facade will form a closed loop, as is appropriate for buildings. When it is set to 0, it will be treated as an open loop, as is appropriate for fences.
Since both of our example facades are for buildings, we use the line:
RING 1
Next is the TWO_SIDED line. When this is set to 1, both the inside and the outside of the facade are drawn. This is appropriate if you have transparent areas in your image (for instance, in a window). When there is no alpha channel in your image, set this to 0, as is the case for both our example facades.
TWO_SIDED 0
Setting the level of detail
The level of detail command lets you specify how close to the facade the user must be for the object to be drawn. You specify both a lower and an upper limit. These distances are specified in meters. In both our example facades, we want the facade to be drawn unless the user is less than 0.1 meters away or farther than 50 kilometers away, so our files have:
LOD 0.1 50000.0
Everything following this line will be ignored unless the X-Plane user is in this range.
Note that you can use multiple levels of detail; in this case, you would have one LOD line, followed by all the other commands (ROOF, WALL, SCALE, ROOF_SLOPE, LEFT, CENTER, RIGHT, BOTTOM, MIDDLE, TOP), then another LOD line followed by the same set of commands. This would theoretically only be used to save memory. However, since facades only impact memory use in X-Plane, it would make much more sense to simplify one facade image and use it for all levels of detail–this is much more likely to save RAM than using two levels of detail.
Setting the roof texture
The ROOF command specifies coordinates in the image for use in the facade’s roof. The coordinates are an s and t pair (in that order).
The simplest roof texture is made up of a solid color. In this case, you need only specify a single ROOF command. The pixel found at that (s, t) location will be repeated across the whole roof. For instance, in our example facades, we use the pixel located at (0.1, 0.1) like this:
ROOF 0.1 0.1
If you don’t want a solid roof, you may instead use a whole portion of your image texture. In this case, you will have four instances of the ROOF command, each specifying one corner of the roof portion of the image.
For instance, if for some strange reason you wanted to use your whole image texture for the roof, you would do so like this:
Each wall line has a set of constraints defining when it can be used. The first number is the minimum width, the second number is the max width. These are in meters and define the range of walls in X-Plane that this wall definition can cover.
WALL 5 100
In this example, this facade will only be shown for walls that are at least 5 meters wide, and no more than 100 meters wide.
Scale & Slope
The scale of the texture in pixels is provided directly to X-Plane via a command in the file – it is not read from the actual texture file. This command defines the scale of the albedo texture used for walls – it is the number of meters the entire texture would fill horizontally, then vertically. For our hagar file we used
SCALE 40 10
X-Plane will use this reference to scale the image up or down since we specified in the line above that this texture can be used for walls between 5-100 meters wide.
The SLOPE command indicates the number of degrees the wall should bend.
ROOF_SLOPE 0
We set the roof slope to 0 to indicate there is no angle to it–our roof is flat.
Specifying the image’s “parts”
Now we need to specify what portions of the image will be used for each part of the facade. This will include a top, middle, and bottom, as well as a left, right, and center.
The bottom, top, left, and right divisions will be included once at most in each facade wall. Center and middle can be used repeatedly to provide particularly long or tall walls.
You will need to use your image editing program to determine the s and t coordinates of each of these lines. For instance, the ruler in Photoshop can be set to display in percent width and percent height, so you can easily determine the coordinates at which your image should be divided by WED.
LEFT 0.0 0.05
CENTER 0.05 0.365
CENTER 0.365 0.673
RIGHT 0.673 .958
BOTTOM 0.0 0.785
MIDDLE 0.785 0.977
TOP 0.977 1.0
Keep in mind:
Commands should be listed in order, e.g. all bottoms, then all middles, then all tops, then all lefts, then all centers, then all rights. (The left/center/right sequence may optionally come before the bottom/middle/top sequence, as it does in our examples.)
All coordinates must be adjacent, e.g. each “next” tile’s left or bottom coordinate must be the same as the previous tile’s right or top coordinate – no gaps! (The first CENTER line ends with 0.365 and the next CENTER line starts with 0.365.)
All facades should contain at least one horizontal and one vertical tile.
The completed text files
Basichangar.fac
A
800
FACADE
TEXTURE hangar.png
RING 1
TWO_SIDED 0
LOD 0.1 50000.0
ROOF 0.1 0.1
WALL 5 100
SCALE 40 10
ROOF_SLOPE 0
LEFT 0.0 0.05
CENTER 0.05 0.365
CENTER 0.365 0.673
RIGHT 0.673 .958
BOTTOM 0.0 0.785
MIDDLE 0.785 0.977
TOP 0.977 1.0
Hangarwithroof.png
A 800
FACADE
TEXTURE hangarwithroof.png
RING 1
TWO_SIDED 0
LOD 0.1 50000.0
ROOF 0.0 0.518
ROOF 0.671 0.518
ROOF 0.671 1.0
ROOF 0.0 1.0
WALL 15 200
SCALE 30 15
ROOF_SLOPE 0
LEFT 0.0 0.049
CENTER 0.049 0.364
CENTER 0.364 0.671
RIGHT 0.671 .975
BOTTOM 0.0 0.393
MIDDLE 0.393 0.440
TOP 0.440 0.518
WALL 0 15
SCALE 30 15
ROOF_SLOPE 0
LEFT 0.671 0.7
CENTER 0.7 0.8
RIGHT 0.8 0.975
BOTTOM 0.518 0.784
MIDDLE 0.784 0.931
TOP 0.931 1.0
Basicbuilding.fac
A
800
FACADE
TEXTURE buildingside.png
RING 1
TWO_SIDED 0
LOD 0.1 50000.0
ROOF 0.1 0.1
WALL 5 100
SCALE 16 8
ROOF_SLOPE 0
LEFT 0.0 0.149
CENTER 0.149 0.293
CENTER 0.293 0.709
CENTER 0.709 0.851
RIGHT 0.851 1.0
BOTTOM 0.0 0.426
MIDDLE 0.426 0.915
TOP 0.915 1.0
This tutorial will walk through the creation of an airport from scratch, including runways, taxiways, air traffic control frequencies, and more. It is related closely to the tutorial on airport customization; that document does not deal with modifying the airport data itself, and this one doesn’t deal with the terrain or objects placed on an airport.
Note that X-Plane’s official airport data is updated frequently, so you may want to check the Airport Scenery Gateway to see if there is an existing copy of the airport you’re building. For our tutorial, we’ll create data anew for Johnson County Executive Airport (KOJC), the same airport used in the Airport Customization tutorial.
This tutorial assumes you have installed the latest version of World Editor, selected an airport to work on, created a new scenery package, and familiarized yourself with the World Editor interface, all per the Airport Customization tutorial.
Remember to save often!
Getting Started
We begin with a new, empty scenery package. Before we can start laying down runways, we must first create a new airport. Open the airport menu and click Create Airport.
Click on the “unnamed entity” and give it a name–for our example, we’ll use “KOJC Johnson County Executive.”
Now we need the airport’s elevation. (Note that, by default, this is in feet above mean sea level. You can change these measurements to meters by clicking the Meters option in the View menu.) Using the Airnav database, we can see that KOJC has an elevation of 1096 feet above mean sea level.
After inputting the elevation, uncheck the “Has ATC” box if necessary (by default, WED assumes the airport does have ATC). Then, type in the ICAO identifier–in our case, KOJC.
Drawing the Main Runway
Now let’s draw the main runway. Using the Airnav database, we found that our example airport has its northern end at 38.8532228333 N, 94.7375677167 W, and its southern end at 38.8419830833 N, 94.737600583 W. We can use these coordinates, together with the mouse pointer coordinates at the bottom of the scenery editing pane, to zoom in on our airport.
Note that you may need to convert between degrees-minutes-seconds of arc to decimal degrees. In doing so, remember that there are 60 minutes of arc to a degree, and 60 seconds of arc to a minute, or use an online converter tool such as this one from the FCC.
Note also that you can place an orthophoto guide according to the Airport Customization tutorial to help visually check your scenery.
Now we will draw our runway. Select the Runway tool from the toolbar. Click once on one end of the runway, then again on the other end. For the sake of consistency, we recommend clicking first on the northern or western end (depending on the runway’s orientation) and clicking second on the southern or eastern end. Note that, for now, this does not have to be very precise–we’ll clean it up momentarily to make it pin-point accurate.
After your second mouse click, the green drawing line will turn into an orange outline, and the runway will appear in the object hierarchy pane, with a long list of attributes below it. Using data from Airnav (or another source if you prefer), you will need to input all the airport’s attributes. You should begin with the “Latitude 1” and “Longitude 1”–these are the coordinates of the first end you drew previously, which should have been the northern or western end of the runway. Then, input the “Latitude 2” and “Longitude 2” coordinates. (Note that the Latitude/Longitude Center, the Heading, and the Length attributes will all be calculated automatically from these.)
Beyond these attributes, the order in which you input the data does not matter. At the very least, you should specify the runway width, the surface, and, of course, the name.
Note that, for all attributes with “1” and “2” variants, the “1” end is the end you clicked first when drawing.
Some important attributes whose significance may not be obvious are:
Roughness: this specifies how rough the runway is (and how much it bumps the plane around) when taxiing. This is on a scale from 0.0 to 1.0. A runway in good condition should have a roughness of about 0.25.
Displaced Threshold 1 and 2: these specify how far from the end of the runway an aircraft is allowed to touch down, measured in feet or meters depending on your settings in the View menu. By default, the threshold is the end of the runway, so this is set to 0.0.
Shoulder: this sets the surface type of the runway shoulder, which is a small section of pavement beyond the runway found mostly in large airports.
Edge lights: runway edge lights are classified by the intensity of the light they produce. They can be HighIntensity Runway Lights (HIRL), Medium Intensity Runway Lights (MIRL), or Low Intensity Runway Lights (LIRL), or the runway may have no edge lights at all.
Markings 1 and 2: these specify the type of markings on each end of runway. Read more about these on Wikipedia.
Blast pad 1 and 2: these specify the length (in either meters or feet) of the blast pad. A blast pad is an area of pavement at the end of the runway constructed to keep dirt and grass from being blown around in the jet blast created by a large aircraft taking off.
Approach lights 1 and 2: many configurations exist for a runway’s Approach Lighting System (ALS). You can read about them here.
REIL 1 and 2: the Runway End Identifier Lights.
TDZ lights 1 and 2: the Touch Down Zone lights.
Our finished runway for KOJC looks like this:
Repeat these steps for the creation of any other runways. You may want to lock the runways (by clicking the lock symbol next to them) in order to prevent accidental editing later.
Creating the Airport Boundary
After creating your runways, select the Boundary tool (labeled with an image of a fence) from the toolbar. Click at each corner around the airport to draw the boundary. This is the area that will be flattened in X-Plane when the rendering options are set to do so.
Be sure to go in one direction–either all clockwise or all counter-clockwise. When you have placed the last corner, press the Enter key to commit the points to the boundary. At this point, the boundary will appear in the object hierarchy pane; you can then name it there.
If your points aren’t in the places you would like, you can use the vertex tool to click the points and drag them.
Setting the Tower Viewpoint
Select the Tower Viewpoint tool from the toolbar, and click where the air traffic control tower sits (as seen in the image below).
If there is no physical tower, as is the case in many smaller airports, set this to the main terminal. If this viewpoint is not set, selecting the tower view in X-Plane will put the view right on the runway.
After setting the viewpoint, be sure to set the Height attribute.
Creating Communication Frequencies
After creating your runways, highlight your airport in the Hierarchy pane by clicking on it. Open the Airport menu and click Create ATC Frequency.
An “unnamed entity” will appear in the object hierarchy pane. Name this one something like “[Airport] Tower Freq,” and set its attributes properly (once again, this information can be found in the Airnav database). For instance, we found that KOJC’s tower uses frequency 126.0, so we set its attributes accordingly.
Repeat this for all the communication frequencies present in your airport, using the Type attribute to specify which frequency it is. In our example airport, we have 5 different radio frequencies to set up, using the Type attributes CTAF, Tower, Ground, Approach, and Departure. In the following image, we have set the KOJC Departure Freq to Departure type and are setting its frequency at 118.9.
It may be helpful for the sake of organization to group these communication frequencies together. To do so, highlight the frequencies you want by clicking them while holding down the Ctrl key in Windows or Command key in OS X. With them all selected, go to the Edit menu and click Group.
Name this new group, and we’re ready to move on.
Drawing Taxiways and Other Pavement
Now let’s draw your taxiway(s) and other pavement (aprons, parking lots, etc.). We will use the Taxiway tool to do all this–X-Plane doesn’t care that a layer of asphalt might actually be a parking lot.
Note: when drawing these polygons, make sure there is only one enclosed area per polygon–that is, make sure that the outline does not cross over itself at any point.
With this in mind, select the Taxiway tool from the toolbar and click around the outside of your paved areas. At this point, you should not be making the shapes look pretty–use a small number of nodes, with the intention of cleaning the shape up later. Note especially that you do not need to pay special attention to curves–soon we will create bezier curves to follow the contours of the pavement, but don’t worry about it now.
The best way to do this is to outline all the taxiways and other pavement in your object, then use the Hole tool to cut out all the area that gets selected which isn’t pavement. When you finish drawing each item, press enter–you should have a few objects that look similar to those in the image below. This will not work if you need markings on your (true) taxiways, though–in that case, you’ll need separate objects.
If you are using an orthophoto, it will be helpful to change the transparency of the taxiway in order to see where the holes should be drawn. To do this, click the View menu and select “Pavement Transparency.” Set the taxiways to 50% transparency for a good balance.
In the image on the left below, the taxiway has just been drawn–it covers a lot of area that it shouldn’t. Then, in the image on the right, holes have been cut in it so that it doesn’t cover the grassy areas around it. It still isn’t pretty, but we’ll clean it up soon to more closely match the real taxiways.
Smoothing the Curves
Now that we have (very) basic outline of our pavement drawn, we need to modify it to follow the contours of the actual airport’s curves. We’ll do this by turning the node near a corner into a bezier node, which will cause the line connected to it to curve around it.
You may need place an extra node between two points for the purpose of creating this bezier node. To split the line connecting two points and place a node between them, highlight the points using the vertex tool, open the Edit menu, and click Split. Alternatively, you can highlight the points and press Ctrl+E in Windows, or Command+E on a Mac.
For instance, in the image below, we split the line between the node on the left and right, then used the vertex tool to drag the new node down to the pavement.
Now, to turn this into a bezier node, hold down the Alt key and drag the mouse away from the point. After you let go of both the mouse and the Alt key, you can click and drag the outside arrows to further tune the curve.
From here, you can click and drag the arrows attached to the node to further modify the curve. A completed curve will look like the above image.
Repeat this process for each curve around the pavement.
Creating Markings and Lighting
Now we will add markings to our runways, taxiways, and other pavement. Markings come in two varieties–perimeter markings (found around the outline of taxiways), and overlay markings (like taxilines, ILS, and hold short markings).
Note that whenever you select a tool that supports markings (i.e. the taxiway and taxiline tools), you’ll notice some options appear at the top of the scenery editing pane. One of these options are markings. When you select a marking in this pull-down menu, that marking will be applied to that tool until you change it. So if you were going to draw taxilines, you’d select the taxiline tool, then set the Markings to Double Solid Yellow (Black) and begin drawing the shape.
You can, however, draw the shape first and add the markings later. This is easily accomplished by selecting the entity, with either the vertex tool or the marquee tool, then going to the attributes pane and setting the Line Attributes, Light Attributes, or both. When you do this, the markings will be applied to the entire shape. This is generally not what is desired, though, and you’ll need to remove the markings from some of the segments for taxiway intersections and the like.
To remove the markings from one section of the taxiway, select a single node using the vertex tool. Then, in the attributes pane, set its Line Attributes to none. The line connecting this node to whichever node was drawn after it will no longer have that attribute. For instance, if you selected Node 9 and set its Line Attributes to none, the line connecting it to Node 10 would have no markings.
Adding the Finishing Touches
We have just a few more things to add to the airport for it to be ready to go.
Creating Runway Signs
To create a runway sign, select the Sign tool from the toolbar. Click where you would like to place it, then drag your mouse around that point to orient it in the direction it needs to go. Note that the arrow coming out of the sign indicates its heading. To move a runway sign, use the marquee tool to click and drag it. To change its heading, drag it with the vertex tool.
For information on setting the text on the sign, and for examples of the text used, see the WED manual appendix on defining taxi signs.
Creating Windsocks, Light Fixtures, and Airport Beacons
Windsocks, light fixtures, and airport beacons are all placed on the airport like runway signs–click to place them, and, in the case of the light fixtures, drag the cursor to change their orientation. You can use the marquee tool to change their position, and, for the light fixtures, you can use the vertex tool to change their heading.
Adding ATC Flow and Taxi Networks
If you are customizing a large or busy airport, it is a good idea to specify the taxi network the airport should have, as well as the ATC flows. A taxi network you create is more likely to be realistic than the one X-Plane can automatically generate. Most large airports will also have several “flows” depending on weather or time conditions, or type of aircraft
To add an ATC flow item, select your airport in the hierarchy pane, open the Airport menu, and click Create Airport Flow. Then, after selecting that flow in the hierarchy pane, open the Airport menu again and select Create Runway Use Rule, Create Runway Time Rule, or Create Runway Wind Rule.
These rules specify under what conditions the runway should be used. X‑Plane will try to use the rules in order (from top to bottom), so be sure to order multiple flows from most specific to least. It also a good idea to have a generic, catch-all flow that can be used in all conditions in case the condition-specific flows overlook a possible scenario.
To create taxiway routings for the AI aircraft, select the taxi routes tool. Set your properties at the top of the window, then click to trace the path aircraft should take. The Departure, Arrival and ILS fields set up hold short parameters. The slop field indicates how close your point must be to another taxiway section in order to snap to it. Larger numbers allow the paths to snap together from farther away. The other preset fields are self-explanatory.
Check for degenerate edges, double nodes, and crossing edges before exporting an airport with a taxi network. These are found under the Select menu and will show any errors in the attributes pane.
Before exporting your airport data, open the File menu and click Validate, as shown in the image below.This command will check the WED file for errors based on the current export target. You can change the export target by selecting Target X‑Plane Version from under the File menu. Remember that selecting a version older than 10.0 might disable newer features, such as ATC data.
If no errors are present, select Export Scenery Pack from the File menu. The new scenery will be visible the next time you load the area in X‑Plane.
Alternatively, with version 1.3 of WED and newer, you can upload your scenery creation directly to the Airport Scenery Gateway. See these instructions to register first.
This tutorial will walk through very basic customization of an airport’s scenery using freely available tools. It is targeted at first-time users of the scenery tools–no prior experience is required or assumed. Screenshots were taken in Windows 7 or OS X Mavericks, but the steps should be identical in other versions of Windows or OS X, except where noted.
The tool that we will be using primarily is WorldEditor (or WED), which was created by Laminar Research specifically for working with X-Plane scenery. If you do not already have the latest version installed on your computer, you can download it here.
Once the file has downloaded, unzip it to an easy-to-find folder. No installation is required; to launch it, just double click WED.exe (Windows) or WED.app (OS X). Because there is no installation, we recommend placing the file in the X-Plane folder to make it easier to find.
Special considerations for Windows Vista/7 users
In Windows Vista and Windows 7, users may need to disable Aero for their mouse clicks to be where they appear to be. In some cases, unless Windows is forced to use the Basic theme, clicking in the WED window may act strangely.
To launch WED using the Basic theme, right click on WED.exe and click Properties from the menu that appears. In that window, go to the Compatibility tab and check the Disable desktop composition box (highlighted in the image below). Click Apply, and in the future, WED will always launch using the Basic theme.
Select an airport
Before we can begin, we’ll need to select an airport. Regardless of what airport you are interested in customizing, be sure to search the web (and especially the X-Plane.org Downloads page or the Airport Scenery Gateway) to make sure someone else hasn’t already created a good scenery package. There’s nothing worse than spending hours on a project, only to find that there is a better free version of it already available!
For the purposes of this tutorial, we will work with Johnson County Executive Airport (KOJC) in Kansas. As you can see in the image below, the default X-Plane scenery is detailed regarding the placement of runways, but is unimpressive beyond that–a perfect candidate for basic customization!
Creating a new scenery package
We are now ready to create a new, empty scenery package in WED. Double-click on WED.exe (or WED.app on a Mac) to launch it.
When the WED window appears, you may first need to navigate to your X-Plane folder, but then you should be able to click the New Scenery Package button. Type a name for the package, then press Enter. For our example airport of Johnson County Executive, we’re going to use the name “KOJC Johnson County Executive.”
With the name entered, click Open Scenery Package. After a moment, the WED drafting window will appear.
Getting familiar with the workspace
The WED workspace is made up of multiple panes, labeled in the image below.
On the far left is the library browser. Here, you can browse through the files in the X-Plane library using their virtual paths. (A full understanding of the library system is not required for our purposes here, but for further reading, see The X-Plane Library System). We will talk more about this pane when we begin adding objects to our airport.
To the right of the library browser are the scenery editing panes This includes the toolbar in the left of the pane, the pointer coordinates at the bottom, and the map pane in the center. This pane is used to place objects and to visually modify their positions. To zoom in, either scroll up with your mouse or press the + key on your keyboard. To zoom out, scroll down or press the – key. Note that the program will zoom in toward wherever the mouse is pointing.
To the right of the scenery editing pane is the object hierarchy list and the attributes pane. The object hierarchy pane lists all the objects in a given airport, in (roughly) the order that they will be loaded in. In reality, X-Plane will load certain sets of objects together (for instance, all of the taxiways), but for most purposes, the order of objects in this pane is the order in which they will be visible in the sim. The objects at the bottom of the list will be covered by all the things above them, and objects at the top of the list will be visible above all the objects below them.
Note that in this pane, each object and each group of objects can be set to locked (and un-editable) or unlocked (and editable), and visible or invisible by clicking the appropriate icon. In the image above, all objects are unlocked and visible.
Beneath the hierarchy pane is the attributes pane. This lists all the user-modifiable attributes of whichever object is selected. Click the field to modify its value.
Above all these panes is the tool defaults pane, where you can set up the preferences before using a tool so you won’t have to edit later. The attributes available to set vary by tool but will be remembered the next time you use it.
When the WED window opens for the first time, the size of the window’s panes may not be to your liking. To fix this, mouse over the bars separating each segment and drag it to the size you would like. Alternatively, you can right click within the three outer panes and drag your cursor to resize that pane (doing this in the center pane will just move the view).
Importing airport data
With our package created, we’ll need to import its apt.dat information. Recall that an apt.dat file contains information about the layout of an airport. The airport data included with X‑Plane by default is generally of high quality, even in cases such as this where only the main runways are included, so we will import the existing data for KOJC.
Open the File menu and click Import from Airport Scenery Gateway. We recommend using this option because it contains the most up-to-date airport information.
Type the ICAO identifier KOJC in the text box labeled Filter (found at the top of the dialog box), click the airport to select it, and click Next. Select the specific scenery pack you want to edit on the next screen, then click Import Pack(s). (In cases where more than one scenery exists at an airport, select the pack with the status “Recommended.”)
You should now be able to see, at the minimum, the main runway and an airport boundary.
Adding an orthophoto guide
Depending on the airport you’ve chosen, you may not be familiar with how all of its buildings, pavement, and so on are laid out. We can fix this by downloading some orthophotos of the area–aerial photos whose corners are mapped to exact latitude and longitude coordinates.
For scenery in the US, it’s easy to obtain public domain orthophotos that may be used freely in our scenery. Outside the US, it may be more difficult–copyright on most imagery like this will prevent you from distributing the images with your scenery.
Since our example airport is in the US, we’re going to download our orthophoto from a public image server, the USGS Seamless server. For instructions on how to download the images you need from this server, see the Using the USGS Seamless Server article.
From here on, we will assume that you have either downloaded orthophotos from the Seamless server, or that you have similar files from some other resource. The advantage to using the Seamless server is that many of the image file types have their geographic coordinates embedded in the files themselves–they are GeoTIFFs or JPEG2000s.
Once you have your orthophotos saved into your custom scenery folder, click Pick Overlay Image… from under the View menu, and navigate to your image file. Assuming you selected an image with coordinates embedded in the file, WorldEditor will automatically place the image in the correct location. Now as we complete the next steps of adding objects and facades, we can use the orthophoto guide to help us place them in the correct spots.
Note: The overlay image is only a guide for use in WorldEditor and will not show up as orthophoto scenery in X-Plane.
Adding objects
With our basic data imported, it’s time to build up the airport’s objects.
For the purpose of this tutorial, we don’t want to design our objects from scratch. Instead, we will use X-Plane’s built-in objects. We will not be using the OpenSceneryX object package, as it would prevent us from uploading our finished scenery to the Airport Scenery Gateway database.
Let’s begin adding our objects. To draw an object, first find it in the library pane. Use the library drop down menu and the “Filter” field to narrow down the scope of the search (for example, by typing “tower” if you are looking for a control tower). Select an object by clicking on it in the list, which will also select the Object tool from the toolbar. You can use the mouse to drag your view around in the preview pane if you are not familiar with what the object will look like in X-Plane.
Click in the map pane to place it, or click and drag your mouse around to set the object’s heading at the same time. You can also use the vertex tool to change the heading, and use the marquee tool to drag it around (click on the cross). If you’d like, you can change the name of the object by clicking twice on it in the hierarchy pane or in the name field of the attributes pane.
Drawing facades
A facade in WED is essentially an image wrapped around a polygon at a specified height. This is used to build a simple building quickly and easily. Users specify only the shape of the building at its base, its height, and the .fac file to use.
To draw a building facade, select the facade tool from the toolbar or select a .fac file from the library pane, which will automatically select the correct tool.
Use the facade tool to trace the outline of the buildings you’d like to add. After it is outlined, give the facade a name and change its height (in the attribute pane) as needed.
Exporting a scenery package
When you have finished customizing the airport, open the File menu and select Validate. This command will check the WED file for errors based on the current export target. You can change the export target by selecting Target X‑Plane Version from under the File menu. Remember that selecting a version older than 10.0 might disable newer features, such as ATC data.
If no errors are present, select Export Scenery Pack from the File menu. The new scenery will be visible the next time you load the area in X‑Plane. If you would like to share your work with other X-Plane users, check out the section of the manual that details how to submit scenery to the Airport Scenery Gateway.
This tutorial will walk through overlaying a photo onto an aircraft fuselage in Plane Maker. It assumes familiarity with the basic aircraft texturing techniques discussed in the Creating Basic Paint Textures tutorial.
You can download the aircraft file and images used in this tutorial here: A36_photo.zip
Selecting a Photo
The ideal photo to use as a Plane Maker texture is one taken from a 90 degree side view with even lighting across the whole of the fuselage. Beyond these requirements, be sure sure your use of the photo complies with the terms of its copyright.
For our example Bonanza, we used the photo below, with many thanks to its copyright holder Terry Shepherd:
Getting Started
Create a starting point PNG image as in the Creating Basic Paint Textures tutorial. Then, using your image editor, cut away everything from your photo except the fuselage. In Photoshop, you can use the lasso tool to do this. You will inevitably get some of the wings in the photo, but don’t worry about these for now.
In our case, this fuselage-only image looked like this:
This image was stretched and warped (using the Transform options in Photoshop’s Edit menu) to sit over the starting-point image of the fuselage. Note that it is not uncommon to have a large area on the top and bottom of the fuselage side views that is not covered by your stretched image. This area, like the parts covered by the wings, can be cleaned up later.
Go through the same procedure to texture the wings, stabilizers, engine nacelles, and so on. For each piece that you have a photo, you’ll need to:
crop a version of the original image to include nothing but that piece,
paste the image of that piece over its placeholder in the starting-point image, and
stretch and/or warp the piece to fit the area you defined in Plane Maker.
Do this for both the left and right sides of the aircraft, where necessary.
Using a layered image format like PSD will prove invaluable for making small changes during this process.
Because a top view of our example aircraft’s wings and horizontal stabilizers was not available, our example aircraft will only have it fuselage, vertical stabilizer, and engine housing textured with the photo. For the rest of the wings, we will simply use the same solid white that the body is painted with.
Touching Up the Photo
With a rudimentary version of each piece of the aircraft placed properly, it’s time to clean it up. Note that each time you save your Aircraft name_paint.png file, you can press the T key in Plane Maker to reload the texture.
Unless you have photos of the top and bottom of the aircraft, you will probably want to use Photoshop’s clone stamp tool (or an equivalent) to fill in the top and bottom of your fuselage. Because our example Bonanza has a flat underside, there was a great deal of area that needed this in our photo. Because the aircraft has a very plain, flat white texture for most of its body, this wasn’t a problem.
The clone stamp tool should also be used to get rid of the wings and any other bodies that are attached to the fuselage in the photo but are not actually part of the fuselage.
Finally, in addition to cloning for the top and bottom of the fuselage and removing the wings and other non-fuselage bodies, you’ll need to use your image editor to remove the shadows and other artifacts of uneven lighting across the body (because, of course, the X-Plane simulator will add its own shadows where it needs them.
We’ve highlighted the most prominent trouble areas in green in our photo here:
In the areas highlighted, our aircraft texture needed a lot of attention before it would look convincing in X-Plane.
A Note on Windows
If you are creating a 3-D cockpit object in a program like AC3D or Blender, you will want to completely fill in the windows in this overlay image, as the transparent windows in your cockpit object will replace this texture as needed. Since, for the purpose of this tutorial, we are not creating a 3-D cockpit object, we left the windows and made them semi-transparent.
Examining the Finished Product
Our finished images are seen below, and are also included in the completed aircraft ZIP. Our ACF file is A36_photo.acf, so our two image textures are A36_photo_paint.png and A36_photo_paint2.png, respectively.
A few things to notice about these images:
The textures for some pieces overrun the area laid out for them by the Plane Maker-generated starting points, but for small areas, this isn’t a big deal.
The white area in the middle of the first texture image is used for the gear doors and struts, which were too shadowed in our image to be usable. Instead, the white texture from the body was copied.
The propeller texture (located in the far left center of the first image) is simply made of a darkened slice of the nacelle texture, which itself is in the second image.
Since our original image was of the left side of the fuselage, the tail number on the right side had to be reversed.
Comments Off on Creating Photo-Real Paint Textures
This tutorial will walk through the creation of a basic paint job for an aircraft file in Plane Maker. It require only Plane Maker (and the image editor of your choice) to do so–it doesn’t make use of any 3-D modelling programs.
This tutorial assumes familiarity with the Plane Maker interface, and it references the aircraft file created from scratch in the basic aircraft creation tutorial.
Introduction
Plane Maker can be used to overlay a 2-D image on a 3-D aircraft model. For this tutorial, we will apply a very simple (and ugly) paint scheme to our example aircraft.
In order to understand how the textures are applied, we will look at the example aircraft found here: Bonanza_A36_painted.zip
Creating a Starting Point
We will begin by setting up the approximate placement of our aircraft’s parts in the image which we will create. From that data, we will have Plane Maker create a PNG file that will serve as our starting point.
To begin, open the Expert menu in Plane Maker and click Visual Texture Regions. In the window that appears (shown in the image below), you can click and drag the flashing red boxes to change which area of the (currently non-existent) image will be used for each part. Move between each part of the aircraft using the tabs at the top of the window.
For now, don’t worry about modifying the positions of anything but the fuselage, wings, and engine nacelles–these are the parts of that plane that will be in the starting-point image that Plane Maker creates for us. For now, our biggest concern is making sure that none of these parts overlap one another accidentally. Note that you can (but do not have to) use the same area of the image for both the left and the right side of each part. Note also that you can check the use second texture box, which will force X-Plane to look for a second image for that part of the aircraft.
Once you get your aircraft’s parts arranged in roughly the positions you want them, close out of the Texture Region Selection window and click Output Texture Map Starting Points from Plane Maker’s Special menu.
Plane Maker will automatically create one or two image files (depending on whether you used the use second texture check box) in your aircraft’s folder. It will also automatically name them properly. The first image (or the only one, as the case may be) will be called ACF file name_paint.png. The second image, where applicable, will be called ACF file name_paint2.png. Note that in order for Plane Maker and X-Plane to find the image textures, they must keep this name.
Note: You will need to re-create these starting point images each time you change the aircraft’s geometry.
Here’s what our example plane’s starting-point image looks like:
Note that images used with an aircraft file should have dimensions (in pixels) that are a power of two. For instance, the image could have a resolution of 512 x 2048, 1024 x 1024, 2048 x 1024, and so on, with a maximum resolution of 2048 x 2048. The image should be saved as a PNG. The files that Plane Maker outputs will abide by these rules.
Creating the Image Textures
Now that the starting-point PNGs have been created, open them in your image editor of choice. While it is possible to use photos of a real aircraft to create these textures, doing so is beyond the scope of this tutorial (for information on this, see the Creating Photo-Real Paint Textures tutorial). Instead, we used our image editor to create simple textures based on solid colors.
You will probably have to go back and forth between modifying and saving your image in your graphics editor and viewing it in Plane Maker. Press the ‘t’ key in Plane Maker to quickly reload the textures displayed on the aircraft.
Here is our completed basic texture (which is also included in the aircraft package download in the introduction):
Adding a Livery
A livery is a second set of paint textures, which can be selected in X-Plane by opening the Open Aircraft dialog from under the Aircraft menu and choosing among the livery options in the bottom right box. To use an image as a livery, save it with the same name as the original paint texture (that is, as “ACF file name_paint.png”), but place it in a path that looks like this:
Aircraft folder\liveries\Name of livery\
Thus, the complete path for our example aircraft’s second livery was:
Note that you must use the same placement of the aircraft parts in each of your liveries; that is, the fuselage, wings, wheels, etc. must all be in the same place, respectively, in each image. The livery’s name in X-Plane will be listed as the folder name, thus in our example above, the second livery will be called “Labeled Parts.”
Final Notes
Once again, you can download the completed example aircraft file here: Bonanza_A36_painted.zip
To begin, get Plane Maker running (recall that the Plane Maker application is located in the X-Plane directory) and open the Bonanza. Open the Standard menu and click Panel: 2-D. You’ll be greeted by a very plain panel background with no objects on it.
Creation of the panel is pretty straightforward. First, make sure the Instrument List is visible by clicking its tab if needed (labeled 1 in Figure 1 above). Find the instrument you’re looking for in the instrument list and click on it. For instance, in the image above, the general aviation altimeter (labeled 2) is selected. With an instrument selected, you can see what it will look like in the Preview tab (labeled 3 in Figure 1 above). Beneath this is the Description tab (labeled 4 in Figure 1), which details what the instrument does.
Taking up the center of the screen is the layout pane (labeled 5 in Figure 1 above). To add an instrument to the panel layout, drag it from the instrument list into this pane. Once there, click the instrument once to select it. With it selected, you can drag the instrument around to reposition it, or use the arrow keys to move it by very small amounts. If there is more than one instrument in the panel, guide lines will appear to which the instrument will “snap”, allowing you to align instruments perfectly.
When an instrument has been added to the panel layout, it will appear in the Hierarchy list (labeled 6 in Figure 1 above). You can select an instrument from the layout pane by clicking its name here. Additionally, you can set its status to visible or invisible by clicking the eye next to it, and to locked or unlocked by clicking the padlock.
To select multiple instruments, hold down either the Control or Shift keys and click as desired. To group instruments, select them and press the G key. Double-click an instrument to change its name.
When an instrument is selected in the layout and hierarchy panes, the Properties tab (labeled 7 in Figure 1) will display its settings. This includes which electrical bus the instrument is on, what Tool Tip (if any) will be displayed when it is moused over in X-Plane, and what lighting is used on the instrument.
Finally, in the very bottom of the window is the status bar (labeled 8 in Figure 1 above). Here, you can see the level of zoom for the panel layout pane, the position of the currently selected object, and its size (as a ratio compared to its original size).
Tips for the Panel Layout Pane
Use the = and – keys or your mouse wheel to zoom in and out in the panel layout pane. Right click (or hold the Control key and left click) on the panel and drag it to pan the view left and right. Hold the Alt key to view which electrical bus each instrument is on. Click and drag to form a box that selects multiple instruments. To delete an instrument, select it and hit the Backspace key.
Creating the 2-D Panel
To create our example panel, we found an image on the Web of a real A36 Bonanza’s panel and (loosely) based our instrument selection and layout on that. Creating custom instruments is beyond the scope of this tutorial, so we used the closest approximations to the real instruments that we could find in the Plane Maker instrument list. If you’re interested in creating custom instruments, see the Generic Instruments page of the Plane Maker manual.
Creating the Background
Before beginning the layout, you will want to create a basic version of the background panel image you will use. Plane Maker will supply a default panel image based on your cockpit setting in the Viewpoint window, but you may want a different image for a number of reasons.
For our example aircraft, we modified the default general aviation panel to make it 1600 pixels wide, with both “ends” of the panel visible (instead of only having the left side in the image). A width of 1600 pixels was selected so that the panel will be usable, albeit a little shortened, in the smallest X-Plane window available (which is 1024 x 768 pixels), but it will also look great in a large, widescreen window of, say, 1920 x 1080 pixels.
If you want to customize the panel background, you’ll want to create at least a basic version of it before beginning the layout so that you don’t have to rearrange or resize your instruments later.
Our example cockpit image, before customizing it, is here:
Panels used in Plane Maker can follow one of two naming conventions. The old convention is simply to name the file “Panel.png” (without the quotes, of course). As of version 9, Plane Maker will still find a panel named this way. The new convention, and the one you should use when creating new aircraft, is to name the image to match the panel setting in Plane Maker’s Viewpoint window.
For instance, if the cockpit setting in the Viewpoint window is set to General Aviation (as in our example Bonanza), the cockpit image will be named Panel_General.png. If it were instead an airliner, the image would be named Panel_Airliner.png.
The official names for panels are the same as in Resources/bitmaps/cockpit/-PANELS-/ and are:
Panel_General.png
Panel_Airliner.png
Panel_Fighter.png
Panel_Glider.png
Panel_Helo.png
Panel_Autogyro.png
Panel_General_IFR.png
Panel_Autogyro_Twin.png
Panel_Fighter_IFR.png
In order for Plane Maker to find your background, you must (re)name it using one of these conventions and save it in this folder:
[Your aircraft folder here]\cockpit\-PANELS-\
Thus, our example aircraft’s panel image had a full path of:
After you get your layout complete, you’ll probably want to come back to this image and customize it further–for instance, to add a column of a different color. You can find the finished version of our example Bonanza panel below.
Adding the Instruments
Once your Panel.jpg image has been placed in the correct folder, it should appear the next time you open the Panel window in Plane Maker. Once it’s loaded, you can begin dragging and dropping instruments from the list into your panel.
For our example panel, we chose to use the S-Tec System Fifty-Five X autopilot. This is a complete autopilot system modeled as a single instrument in X-Plane. You can find it in the “autopilot” folder in the instrument list.
You can download the .acf file of our example A36 Bonanza with the completed 2-D panel here: Bonanza_A36_with_Panel.zip
Creating a 3-D panel
Creation of a 3-D panel requires the use of a 3-D modeling program, which is beyond the scope of this tutorial. For more information, see the 3-D Panel section of the Plane Maker manual.
In this tutorial, we’ll walk through the creation of an airplane–specifically, a Beechcraft A36 Bonanza–from start to finish using Plane Maker. No prior knowledge of the Plane Maker software is required, though familiarity with the X-Plane simulator itself is assumed.
You can download the example aircraft referenced throughout this tutorial here: A36.zip
Choosing an Aircraft, Researching the Design
Plane Maker can be used to model a tremendous variety of aircraft. For the purposes of this tutorial, though, we suggest choosing a straightforward design to model. Our example craft is a Beechcraft A36 Bonanza.
In the course of creating the aircraft file, you will need a good deal of information on the actual plane, including its physical dimensions, engine and propeller specifications, weight, fuel capacity, fuel tank locations, limiting and recommended airspeeds, and so on. A web search should turn up this data for most popular planes.
Beginning the Project
To begin creating the aircraft, open the Plane Maker application found in your X-Plane installation directory.
When the window appears, open the File menu by mousing over it and click New. This will create a new, very basic aircraft file. Then, open the File menu again and click Save As. We will save our example aircraft in the “BonanzaA36” folder which we created in our X-Plane installation directory, and we’ll name it “A36.”
We’ll begin by setting a few basic parameters for our aircraft in order to the avoid the warning that pops up every time you save.
Setting the Aircraft’s Details
Open the Standard menu and click Viewpoint. The most important settings here are for the aircraft’s limits (found on the left side of the window in the Default tab). With the exception of the G-limits, these will not be factored into the flight model; they may, however, be used in the airspeed indicator. These limiting velocities are not hard to find, either in the pilot’s operating handbook or on the Web.
If you can’t find official G-limit values, 4.0 is a good guess for most general aviation aircraft. At G-loads more than 50% above these values, if the appropriate settings are enabled in X-Plane, structural damage will occur–probably in the form of a wing being torn off!
Setting the Weight and Balance
Next, open the Standard menu and click Weight & Balance. In the Center of Gravity section of this window you can set three longitudinal positions for the center of gravity, along with one vertical position. The center of the longitudinal positions is the default, while the outer two are the forward and aft limits. The center of gravity can be modified within these limits in X-Plane.
Beneath the Center of Gravity box is the Weights box. The empty weight, fuel load, and maximum weight can all easily be found from the manufacturer. Set these parameters now.
Now move to the Tanks tab of this window. There are 9 different fuel tanks available, each one holding a ratio of the maximum fuel. Note that the ratios must add up to 1. For our example Bonanza, we have two fuel tanks, one in each wing, each holding 0.5 of the total fuel. Position each tank’s center of gravity using the standard longitudinal-lateral-vertical positioning relative to the reference point.
Making A Fuselage
Preparations
If you are not familiar with the basic views and controls in Plane Maker you can review them in the section “Working with the Views” found in the Plane Maker manual.
Unless you have physical access to the aircraft you’re designing, you’ll want to find scaled images of the craft to use in the design. We found front, top, and left views of our A36 Bonanza on the Beechcraft website. These will be used as background images with which to align our design.
For use with the fuselage creation, crop your top and left images down to just the fuselage, being sure that the images are the same size and are both centered on the fuselage center.
Setting the Basics
With the images ready to go, open the Standard menu and click Fuselage.
In the window that appears, we’ll set the Body Data section first.
The number of stations corresponds to the number of individual sections that Plane Maker will link together to form your aircraft body, with a maximum of 20. You’ll probably want to add 2 to the number of sections you had in mind to account for the two closed ends. In our case, we will use a total of 15 sections: 13 “real” divisions, which meet at a point at each end (adding 2 extra cross sections).
The number of radii per side is the number of points used on each side of the cross section. Unless your aircraft has a very simple shape to its body, you’ll probably want to use the maximum of 9.
The body radius setting controls the width of the cross-section views below. Keep this close to the actual max body radius for accuracy when placing your points, but err on the side of setting this too big so that all your points are visible.
Finally, the body coefficient of drag controls the amount of drag generated by the fuselage. An average fuselage will have a coefficient of drag of 0.1, while a very sleek one will have a coefficient of 0.05. We didn’t have any official data on this for our Bonanza, so we chose an approximate value of 0.075.
Setting the Length
While still in the Section tab of the Fuselage window, look directly above the cross section boxes. The parameters there set the distance of each cross section relative to the reference point. The reference point can be whatever you want. Many people use the aircraft’s nose. For our example, we’ll make it the aircraft’s center.
Note that negative numbers along the longitudinal line of the aircraft (like the parameters for the cross-section placement) indicate a position forward of the reference point; positive numbers indicate a position behind the reference point.
At this point, we will set the approximate distances from the reference point for each of our cross sections (as in the image below). The most important of these will be the first and last cross sections. Since our example aircraft’s reference point is its center, the forward-most point of our aircraft will be set at -13.50 feet, and the rear-most point will be at 13.50 feet. Taking these two together, we have a 27-foot fuselage. The aircraft’s official length is 27 feet 6 inches, but since we will build the housing of our propeller separately, this should be about perfect.
With the fuselage’s length properly set, move to the Top/Bottom tab. At the bottom of the window, click Load Top Background Bitmap and select the image of the top that you worked with in the Preparations section above. Then, click the Load Left Background Bitmap button and do the same for the side image.
At this point, since the fuselage has the correct length, we need to align its two ends with the ends of the fuselage in the background images. Use the – and = keys to zoom the 3-D models out and in, and use the arrow keys to move them around.
You will likely want to return now to the Section tab to fine-tune the distances set for your cross-sections.
Setting the Radius Points
With the distances properly set, move back to the Top/Bottom tab. There, drag the radius points evenly around the fuselage visible in each of the three sections. You will likely want to use the buttons in the top right of the window to occasionally reset the cross-sections to be vertical. Note: You will likely find the Ellipse buttons (found near the bottom of the screen) helpful. Clicking this for a given cross-section will shift its points to a best-fit ellipse. To lock a point from further automatic shifting, just double-click on it (it should turn a sold black color). This may be helpful once you have them correctly established, especially the center line of each frame in the Top/Bottom tab.
Move occasionally to the Section and Front/Back tabs to check how the cross sections look from other views. You will probably find the best workflow to be something like this:
In the Top/Bottom tab, match the outer points to the fuselage edges in each of the three views.
Distribute the middle points evenly between the outer ones in each of the three views.
Move to the Section tab and modify cross sections to conform to the shape you know they should have. For instance, with our A36 Bonanza, we knew its bottom was completely flat in the middle of the plane.
Move to the Front/Back tab to fine-tune the points that are very close together.
Repeat as needed.
Eventually, your points should look something like this:
When you’re finished, close out of the Fuselage window and load up your background bitmaps one at a time (using the button in the bottom left of the screen). Check your fuselage against each one. (Tip: use the Background menu to select whichever view you have loaded in the background.)
Designing the Wings
Now that our fuselage is finished, let’s move on to the wings. Open the Standard menu and click Wings.
In this window, you can specify four wings, a horizontal stabilizer, and two vertical stabilizers. The wings will be mirrored on each side, as will the horizontal stabilizer, whereas the horizontal stabilizer will of course only be created once. Other than this, each of the flight surfaces here behave identically.
Note that if you need more wing sections than what is available here, the Misc Wings window (which is also found in the Standard menu) allows you to specify up to 20 additional wing sections.
Creating the Main Wing
For our example Bonanza, we’ll use three wing sections, with each section meeting the one closer to the fuselage, in order to model the single wing of the actual aircraft. Each wing section can have two different airfoils set for it (one for the root and one for the tip, which are blended together in the center), as well as different control surfaces.
For the initial creation of each wing section, you can focus exclusively on the Foil Specs section of the window. You can enter these parameters visually if your top view scaled background image is loaded and your Plane Maker window is wide enough.
Let’s talk about these parameters a little.
The semi-length parameter sets the length of each side of the wing as measured through the center of the wing, from the root to the tip, 25% behind the leading edge.
The root and tip chord set the width of the wing at the root (closest to the fuselage) and tip (farthest from the fuselage), measured from the leading to the trailing edge of the wing.
The sweep parameter sets the angle (in degrees) that the wing is angled back.
The long, lat, and vert arm parameters set the wing’s position relative to the reference point. See the diagram to the right illustrating the longitudinal-lateral-vertical positioning system.
The dihedral parameter sets the angle (in degrees) that the wing is angled up. For instance, in the image below, each of the 3 wing sections used has a dihedral set between 5.5 and 6 degrees, causing the wings to angle slightly up.
Example Wings
The image below shows the foil specs used to create our innermost wing section in the G36 Bonanza. Note the 15.8 degree sweep, which creates a relatively sharp backward angle for the section.
This creates a wing section that looks like this:
The next image shows the foil specifications for our middle wing section, entered on the Wing 2 tab. This section is significantly longer than the base one–it has a semi-length of 12.5 feet, compared to 2.6 feet. Note also that, unlike the base wing, our mid-wing has a lateral arm specified. This moves the wing’s root out away from the body, so that it meets up with the base wing’s tip. You can have the section “snap to” the previous section by selecting Right Wing 1 from the drop down box in the top right corner of the dialog, instead of setting the wing section’s location manually using the long, lat, and vert arm boxes.
This creates a wing section that looks like this:
Click on the Wing 3 tab to finish the tip of the wing with the specs shown in the image below.
Creating the Horizontal and Vertical Stabilizers
The horizontal stabilizer is specified just like the previous wing sections; the only difference is that it will have a much higher value for its longitudinal arm than the previous wings.
The vertical stabilizer, unlike the other wing sections here, is not mirrored on each side of the aircraft. Other than this, and its default dihedral of 90 degrees (so that it sticks straight up), you can set it just like the previous wings.
Setting the Airfoils
With your wings created, close out of the Wings window. Open the Expert menu and click Airfoils. In the Airfoils window, go to the Wings tab. Here, you can set two versions of both the root and the tip airfoil for each wing section. The foils on the left are for the root side of the section, and the ones on the right are for the tip side, as seen below.
Plane Maker will interpolate between these two foils in the middle of the wing section. The top set of foils in each wing’s box specify the low Reynolds number version of the foil; the bottom set specify the high Reynolds number version.
The following two pages may be useful in determining what airfoils to use in your wing:
To set an airfoil, click the gray box to the left of it to open your X-Plane Airfoils directory folder. Select an airfoil from among the list then click the Open Airfoil button. Remember that our wing is made up of three separate sections, so you will want to choose the same “wing root airfoil” for all four boxes for Wing 1 and Wing 2. Set the boxes of Wing 3 to the “wing tip airfoil” as it functions entirely as our wing’s tip.
Setting the Control Geometry
With the wings and their associated airfoils set, it’s time to set up the control surfaces. To do this, open the Standard menu and click Control Geometry. In the window that appears, a number of possible control surfaces can be specified, from ailerons to elevators to rudders to speedbrakes to flaps. Each of these work in a similar way.
In the image above, the parameter on the far left sets the control surface’s root-side width as a percentage of the root width of whatever wing section it is placed on. Thus, if this were set at 0.50 and it were used in a wing whose root was 5 feet wide, the control surface would have a root width of 2.5 feet. To the right of the root width is the tip width, also specified as a percentage of the tip width of whatever wing it is placed on. These two parameters are the same on each of the control surfaces available. Start with an amount close to the default recommended by the mouse over text.
To the right of the size parameters are the parameters controlling how far the surface can move. This will be different for each aircraft, but again start with the defaults recommended. You may need to return to this window after your first test flight to fine-tune it.
With this knowledge, specifications for ailerons, elevators, and rudders are all fairly straightforward. At the bottom of the Control Sizes box is the control surface type setting, which modifies how effective the surfaces are in X-Plane. Surfaces which are corrugated with gaps are least effective.
In the right half of this window are the flap settings, as seen in the image to the right.
Here, you can set the root and tip width ratios like the other control surfaces. You can also specify the flap type and the aerodynamic coefficients for each flap. Plane Maker will calculate the coefficients of lift (Cl), drag (Cd), and moment (Cm) based on the size of the flap, but these may be modified manually.
Beneath the coefficients, you can set the flap deflection time, the number of detents (or stop points), and the deflection at each detent. In our example, the maximum flap deflection is 30 degrees, so that is set in the last box. The first box is 0 for no deflection, and the remaining boxes in between are spaced evenly (in our case, 10 and 20 degrees).
For our example Bonanza, we specified one aileron type, one elevator, one rudder, and two flaps. We now need to add them to our wings.
Adding the Control Surfaces to the Wings
In order to see the control surfaces once we add them, open the Special menu and click Show with Still/Moving Controls. This will make the control surfaces move as we add them, so that we’ll better be able to judge where they are.
Now, open the Wings window from the Standard menu once again.
In the Element Specs box for each wing section, you can control:
the number of pieces that this wing section will be divided into (using the parameter highlighted in red in the image above),
the incidence, or upward angling, of each “piece” (using the parameter highlighted in blue), and
the control surface (if any) present in each “piece” (using the parameter highlighted in orange).
For instance, in the image above, the middle section of our main wing is divided into 9 “pieces,” all with zero incidence. The first four pieces (the four closest to the fuselage) use the flap 1 control surface, and the last 5 pieces (the five farthest from the fuselage) use the aileron 1 control surface. Both of these control surfaces were specified in the Control Geometry window and were fine-tuned after seeing how they looked here.
Set your control surfaces as you need them for each wing section. Our Wing 1 had 8 sections with the flap 2 box checked for all but the first piece (where the wing would attach to the fuselage). Wing 3 does not move in our Bonanza so despite having multiple pieces, no control surface boxes are checked. The horizontal stabilizer is where the elevator boxes are checked and the vertical stabilizer has the rudder boxes checked.
Adding the Engine
With the wings and their associated control surfaces finished, it’s time to add an engine. To do this, open the Engine Specs window, found in the Standard menu.
When the window opens, it will be in the Description tab. Let’s talk about the Critical Altitude box first. If your aircraft has a turbocharged reciprocating engine or a “down-rated” jet or turboprop, use the critical altitude parameter to set the maximum altitude at which the engine can put out its maximum allowed thrust. If the engine has a Full Authority Digital Engine Control (FADEC) system, check the appropriate box. Our Bonanza has neither, however, so we will leave these alone.
In the Prop Engine Specs below, you can set the engine’s maximum allowable power. For our example A36 Bonanza, this is 300 horsepower. Beneath this control are the various engine RPM settings. Note that the top of green arc and redline parameters should probably be the same. If it is a fixed-RPM engine, these should be the RPM the engine runs at. Also, the bottom of green arc should be set to zero for fixed-RPM engines.
The rest of the prop engine settings are self-explanatory. Once these are set, move to the Location tab. Here, you can set the details of the engines and propellers, including how many there are, their type, location, RPM, etc. The parameters available here will vary depending on what type of engine you set. At the minimum, you will set the location in longitudinal-lateral-vertical arms for the center of thrust (which, for a propeller based craft, is just the center of the propeller).
Unless you have multiple transmissions or propellers, you can ignore the Transmission tab. Unless you have specific numbers on the engine’s specific fuel consumption or the propeller’s dimensions and angle of incidence, you can safely ignore the rest of the tabs here, too.
Creating an Engine Nacelle
If you created the aircraft fuselage like we did in the example Bonanza, you left off a few inches from the fuselage for the propeller and its housing. We’ll add this now around the propeller.
Open the Standard menu and click Engine Nacelles. In the window that appears, check the aircraft has a nacelle over this engine box, found near the top of the screen. From there, you can design the nacelle just like you did the fuselage. This time, though, the distances will be relative to the engine’s center of thrust, not the craft’s reference point. In our example Bonanza, we needed 6 station and 6 radii per side to model the propeller housing, with a body radius of 0.07 feet.
While designing the nacelle, you will likely find the Ellipse buttons (found near the bottom of the screen) helpful again. Clicking this for a given cross-section will shift its points to a best-fit ellipse. To lock a point from further automatic shifting, just double-click on it (it should turn a sold black color).
When you’re finished creating the nacelle, you should see the aircraft really beginning to take shape. All that’s left is to create the landing gear!
Creating a Landing Gear
Open the Standard menu and click Landing Gear. In this window, you can add up to ten different gears. For each gear, you must specify (listed in order from top to bottom in the window):
its type (e.g., skids, single wheel, double wheel in a lateral line, etc.),
its position (in longitudinal-lateral-vertical feet from the reference point),
its latitudinal and longitudinal angles when extended and retracted (where applicable),
its leg length,
its tire radius and width,
its steering ability,
the degrees that the wheels spin when retracting,
the distance that the strut compresses when retracting,
the time it takes to retract or extend the gear,
whether or not it brakes, castors or has fairing.
For our example Bonanza, we created 3 landing gears with the parameters shown below.
To finish the gear, you must go to the Gear Data tab and enter the specs for the wheels and tires, as shown below.
The Test Flight
At this point, you aircraft is ready to be flown in X-Plane. It won’t be pretty (we haven’t added any overlay graphics or objects), and it won’t have any instruments in its panel, but it should fly just fine. Load up X-Plane, fly the plane around a bit to see how it handles, then return to Plane Maker to tweak it as needed.
Good luck!
Further Reading
For information on creating a panel for this aircraft, see the panel creation tutorial. For information on adding a paint job to the aircraft, see the paint texturing tutorial.
The latest version of the Plane Maker manual is always available online.
Comments Off on Creating a Basic Aircraft in Plane Maker
Decals are overlay textures that sit on top of a regular albedo (day-time) texture to add high-frequency, high-res detail to an existing texture.
A typical use of decals might be:
To add a grassy leafy pattern to a field or airport grass texture.
To add a gravel pattern to a runway or road.
Decals work by modulating the textures they overlay. Decals typically repeat much faster than the base texture, but may also be used at a very low frequency to add subtle changes in the overall brightness of the terrain across a very large area, helping to disguise repetition.
Decals contain high frequency pixels at high res; when viewed from far away, the entire decal blends together into a constant color/grayscale. The decal shader ensures that when a decal has become a solid tone (because it is far away) the net result is the same as your underlying albedo. In other words, as you move away from the decal, the decal blurs into “no effect”. This means that you can generally apply decals and not worry about the effect on the far-away view.
Decal Texture Formats
A texture typically has two decals together:
One RGB decal in the color components of the texture.
One alpha decal in the alpha channel.
If you do not need the RGB decal, you can save VRAM by having a decal with only alpha (this is done using a gray-scale no alpha png on disk). If you need the RGB decal but not the alpha decal, there is no VRAM savings (the alpha channel is included in VRAM no matter what) so you might as well use the alpha channel for something.
Decal Application
Decals are applied by specifying a DECAL command in the text file for the art asset. (Decals are allowed in any file that uses the Standard Shader, including .ter, .pol, and .net files.) The DECAL command specifies the texture to use and the mixing parameters that control application.
Examples
The following examples are based on some of Albert’s and Sergio’s terrain textures, and attempt to show some of the possible ways decals might be applied. They are not intended to be perfect, and make use of decal textures that Alex happened to have lying around! The examples also include some suggestions for normal map usage. For the purpose of these examples, the terrain files were applied to flat, horizontal mesh – mainly for convenience!
Example 1
The first example is based on Albert’s rock_cld_hill_d.png albedo (as far as we’re concerned, “albedo” is just another name for “daylight texture”).
Here is a small section of it, in it’s basic form:
First, we will use the DECAL command to apply a grayscale detail texture. DECAL is the simplest form of X-Plane decal, and has the following characteristics:
It can only every apply a greyscale decal texture. X-Plane greyscale decals are applied using a blending mode similar to Photoshop’s “hard light” mode.
The decal is applied evenly across the entire area of the albedo.
DECAL has just two parameters: a scale ratio, and the texture file name.
DECAL 25.0 ..textures/soil/DECAL_stony_dirt.png
Adding this line to the file means that we will apply DECAL_stony_dirt.png at 25.0 x the frequency of the albedo, in other words, it will repeat every 60 metres. (Note: the decal texture does NOT need to have the prefix DECAL – I just happen to use that convention).
This is the result:
In some cases, a simple, homogenous greyscale decal like this will be enough. In our example, however, the albedo contains patches of vegetation. It would be nice to apply a different decal to the vegetation, instead of DECAL_stony_dirt.png. To do this we can use either DECAL_KEYED or DECAL_PARAMS, the other two types of X-Plane decal. There are two ideas we need to understand first:
Although we will be using two separate decal images, they will both be squeezed into a single texture file! By using a combination of one RGB decal and one greyscale decal, we can save VRAM by putting them both into a single RGBA file. The greyscale image goes into the alpha channel. This means, of course, that only one of our two decals will be in colour, but in practice, there are many cases where greyscale can be very effective. Both DECAL_KEYED and DECAL_PARAMS reference only a single texture file, therefore, even though they let us use two decal images. There is a restriction, however: both images are applied at the same scale. In other words, they will both cover exactly the same area of terrain.
We control exactly which decal gets applied to which areas of the albedo by using a key. A key is a variable which tells the shader how strongly to apply a decal to a given pixel of the albedo texture. DECAL_KEYED uses a single key to control both the RGB and the greyscale decals, while DECAL_PARAMS uses two keys, one for each decal. Each key has four controls: R, G, B, and A. By tuning these controls, we can apply a decal more aggressively to some pixels than others.
Let’s continue with our example by removing the simple greyscale DECAL, and replacing it with a DECAL_PARAMS. We will be using an RGBA decal texture which contains an RGB “vegetation” decal, and a greyscale “stony_dirt” decal – in fact, the greyscale decal is exactly the same image as the one we used before, the only difference is that this time it lives in the alpha channel of an RGBA texture instead of being a discrete file of its own:
The first parameter is the scale ratio, relative to the albedo (BASE_TEX), exactly the same as it is in the DECAL command.
The second parameter is the “dither ratio”. It controls the relative influence of the albedo and the decal on composite border dithering.
The next four parameters are the controls for the RGB decal’s key.
The next four parameters are the controls for the greyscale decal’s key.
The last parameter is, of course, the decal texture file name.
How do the parameters get these values?
We set the scale ratio as before, at 25:1, so that the decals both repeat every 60 metres.
We set the dither ratio to 0.5. This means that the albedo and the decals will have roughly the same influence on the shape of the rendered borders. Higher values favour the decal. This means that if, like in this example, the decal is of higher frequency that the albedo, increasing the value of this parameter will make borders more “finely-grained”.
This is where it gets a bit more complicated!
Looking at the albedo texture, we observe that the rocky parts are mainly grey and relatively light in colour (ignoring baked shadows for now). On the other hand, the vegetation is mainly green and rather darker than the rock. (This statement is clearly an approximation, but is accurate enough for our purposes.)
Therefore, by tuning the RGB decal’s key to respond to darker, predominantly green colours, the areas of vegetation will receive more of our RGB decal, which is conveniently a sort of “shrubby” image.
In a similar fashion, by tuning the greyscale decal’s key to brighter, grey tones in the albedo. those areas will receive more of the greyscale decal – our “stony dirt” image from before.
The actual values for the two keys are usually found by experiment, and do not follow any particular rules or equations. Experimentation is probably the best way of getting a feel for the controls, but this is how I arrived at the values in our example:
The second key (the one controlling the greyscale decal) is a bit more obvious that the first one, so we’ll start with that. We want the rocky decal to be applied only to bright areas, so we set high values for R (=2.0), and B (=2.0). However, we don’t want it to respond to green (we don’t want rocks on our vegetation) so we set a low value for G (=-2.5). As mentioned at the top of this page, the exact function of control A depends on what other shader tricks we’re using in the .ter file. In this case, it is simply a constant value which gets added to the R, G and B values. Basically, the greater the value of A, the more of that decal we will get. So in the case of our greyscale decal key, we set A to zero, because we only want to see the decal on bright colours. If we were to set a higher value for A, we would see the decal regardless of the colour of the albedo!
Now let’s look at the first key, the one which controls our RGB “shrub” decal. In contrast to the greyscale decal, we want to see the RGB decal on both light and dark parts of the albedo – provided they are greenish. Therefore, we start by setting a high value for A. Doing this will draw shrubs over everything, so we must now tune out those areas we want to be shrub-free, by reducing the values of both R and B to -3.5.
The reason why some of these values are greater than 1.0 is that in order to get a reasonably sharp transition between regions of vegetation and regions of rock, we have to exaggerate the effect of the tuning controls. The actual difference in tone between a “veg” pixel and a “rock” pixel is generally pretty small, so we need to crank up the controls in order to get some “grip” on the albedo. The final key values are clamped between 0.0 and 1.0, so “overdriving” the key values will not cause artefacts in actual visible textures.
Here is the result:
Here is the same decal applied to a different albedo (sparse_cld_steep_D.png) with exactly the same parameter values:
To return to our first example, let’s now try adding a normal map. First, we’ll use a normal map that was originally designed to suggest rough, open grassland. It was made by hand-painting a greyscale height-map in Photoshop, using a soft-edged pen to create hummocks and clumps of grass, and basic noise to add “grit”. This was then baked into a normal map in Blender. Although it is doesn’t match the albedo, it still adds a nice sense of richness and depth to the terrain, and by adjusting the scale, quite a satisfying effect can be achieved:
Changing the scale of the normal map (from 6.0 to 11.0) creates a slightly different effect:
General Observations Regarding Decals and Normal Maps in the context of terrain
The following points are based on the results of tests so far conducted by the author (Alex) and on some more general resource-management considerations.
Effective scaling
It seems that best results are obtained when the scale ratios between individual elements within a terrain definition is not “too large”. If the scale ratio between one element and the next-closest-in-scale exceeds a value in the region of 100 – 150, it is difficult to make them look integrated. Instead, they are likely to look like independent, unconnected layers, which is generally not desirable. An effective strategy for combining multiple elements in cases where the scale ratio between the largest and smallest is great seems to be one of adding an additional element of intermediate scale. For example, if a 10 x 10 m decal is applied directly to a 4000 x 4000 m albedo, the effect will probably not be good, since the scale ratio is very large: 400.0. However, adding a normal map of an intermediate size, say, 100 x 100 m, will help to bind the decal to the albedo, because the largest relative ratio between _successive_ elements is now 40.0:
Element Size (m) Scale Ratio Relative Ratio
Albedo 4000 x 4000 -
Normal map 100 x 100 40.0 40.0
Decal 10 x 10 400.0 10.0
It is this relative ratio which appears to be critical to the effectiveness of the terrain. The exact order or type of the elements seems less critical. For example, an alternative strategy in the above case might be to use a 100 x 100 m decal and a 10 x 10 m normal map.
Realism versus Impressionism
In my earlier experiments, I took a literal, realistic approach to design, choice, and scaling of decals – I attempted to match their size and content as closely as possible to the real world. However, results seem to suggest that, in many cases, a looser, more impressionistic approach can be as – or more – effective.
For example, it is possible to use a “park grass” decal to suggest much rougher terrain simply by reducing its scale ratio (thus increasing the area it covers). Similarly, a normal map designed to suggest a field of boulders might be used at a smaller size to represent fine scree.
Arguably, a truly accurate effect is beyond the scope of our system, and would require a disproportionate allocation of resources to make it work. However, I’m of the opinion that by adopting a more impressionistic approach, really good results can nevertheless be achieved, without obvious compromise of realism. In the previous section’s Example 1, a greyscale decal representing loose, stony ground is applied to a sheer rock albedo. Even though it is not strictly speaking realistic, it nonetheless adds interest and richness to the terrain. That particular example is probably taking this principle a bit too far – a more appropriate decal would make for a more realistic effect – but in terms of our visual priorities, it is suggested as a potentially acceptable method by which to add detail to our terrain reasonably quickly.
Comments Off on Using Decals to Add Detail To Scenery