CSS Menu Buttons Css3Menu.com

ProX Golf Course Design Tutorial (Part 1) 

Note: This tutorial describes the basic GGS design method that only requires the use of a normal graphics tool. A more advanced method is also available but will require the use of a 3d modeling tool. (ie 3d Studio, Vue, WorldBuilder  or MilkShape ). 

Map Sizes and Scale

Apart from the surface texture map, all map files are 1024 pixels wide and either 2048 or 2560 pixels in length. The surface texture map is 2048 pixels wide and either 4096 or 5120 pixels in length.

The scaling is 4 pixels per yard/meter for all map files other than the surface texture file which is 8 pixels per yard/meter.

For course holes up to approximately 450 yards, your map files need only be 2048 pixels in length. For longer hole yardages (or if you want to define more terrain behind the flag) then they should be 2560 pixels in length.

Map files of size 1024*2048 allow you to create course holes 256 yards/meters wide and 512 yards/meters) in length.
Map files of size 1024*2560 allow you to create course holes 256 yards/meters wide and 640 yards/meters in length.

Setting up the surface textures in Photoshop:

In the directory \courses\textures you will find a number of small bmp image files containing the textures for each of the surface types. You will need these to create the course hole texture file.

Open each file in turn, select the entire image, copy the image to the clipboard (Edit/Copy) and define the image as a new Adobe texture ( Edit\Define texture sample). Name each texture appropriately e.g. “Sand” for the sand texture, “Green” for the checkered green texture, Fairway, Rough, HiRough etc 

You can also use other or your own created textures if you want.

Here an example of high resolution photo textures being used. 

Step 1: Create course directory

All course hole map files are stored in a sub-directory of the “Courses” directory. 

Before you begin creating the map files, make sure a course directory exits to place them in.

If you are creating a complete new course, then create a new sub-directory in the “Courses” directory and name it as the course name. ie if the course name you choose is Stonebridge then create a new sub-directory in the "Courses" directory called Stonebridge.  

Step 2: Create surface recognition and object map

This is where the basic hole layout will be made.

Using the area Select, Fill and Paint Brush tools in Photoshop, and with the appropriate pre-defined surface colors, you paint the hole layout i.e. fairway, green, bunkers, footpath , ponds etc.


The following procedure is recommended:

1.  Open the SurfaceColors.bmp file from the \courses\textures directory  

2. Create a new 24 bit bmp file with a width of 1024 pixels and length of 2048 pixels (or 2560 pixels for longer courses).

3. Save the file with the following naming convention in the Courses subdirectory of the GGS directory:

The first 2 characters in the file name are the first 2 characters in the name of the course you choose.
e.g. if the course name you choose is “Stonebridge” then “St” is used.

This is then followed by the string “SurfaceObjects”.

And finally the hole number e.g. “4” if it is the hole number 4 you are defining.
The final file name with the file extension is then “StSurfaceObjects4.bmp

4. Fill the entire image with the base surface color (normally Hi-Rough) using the fill tool and selecting the appropriate fill color from the already opened SurfaceColors file ( use the Pipette to select the surface color from the SurfaceColors image)

5. Use the Photoshop Lasso select tool and draw the outline of the in-play area of the hole and fill this with the Rough surface color. Scaling is 4 pixels per yard.

6. Draw the outline of the fairway and tee hitting areas and fill with the Fairway surface color.

7. Repeat the above step for the bunkers, greens, footpaths, ponds etc using the appropriate surface colors and save the file.

Step 3. Object (Trees, Flag etc) Placement

There are two ways of placing objects onto the course: Interactively - walking the course and planting as you go - or the Pixel dot method in the SurfaceObjects file.

The interactive planting method is only available to you when all the files for the course exist.

At this stage, because the course hole is not yet completed, you can only use the pixel dot method.

However, because this method has been superseded by the interactive method you can opt to just place the flag and tees.

Pixel Dot Method:

1. Open the image file “Objects.bmp” This image file contains small icon pictures of all the standard objects (Trees, Flag, Tees etc) that you can place on the course. Underneath each object picture is the name of the object and a colored box. This box contains the object identification RGB color. 

2. To place a particular object on the hole layout, use the pipette tool to select the color code underneath the desired object and then, using the color crayon tool set to 1 pixel, make a single dot at the place where you want the object to appear in the scene. In order to more clearly see where the objects have been placed, put a larger (10 pixels) white dot at the place where the object should appear and then place the blue dot in the center of it. It’s probably easier and quicker to place all the white dots first and then choose what object should appear. 

3. The Red,Blue,White and Gold Tees have two colors. The first is for the Tee position (ie where the ball is positioned within the tee box) and the second for two Tee markers in the tee box.

 In addition to the trees, you have to place the flag, two Tee pegs in each tee position and the ball position on the tee areas using the appropriate color code dots. An optional “Initial Target” object is used to instruct the camera to point to this instead of the default flag target. It is mainly used on dog-leg holes where you will want the camera to point at the apex of the dog leg. 

Important! Make sure there is only one clear single dot representing in each object position.

Save the layout file.

Interactive Tree Planting and Object Scaling.

When all the map files have been completed (or at least exist) you can use the interactive method to plant trees and other objects.

Pressing ctrl/T puts you in tree/object planting and scaling mode and opens the object palette.
In this mode the left/right/up/down arrow keys move the plant pole which is used to position the point where the new tree should appear. (Press the Space bar to move the camera to the ball if getting too distant).

Select the tree/object from the palette with the page up/down keys. When the desired tree / object appears in the window, just press the Ins (Insert) key to plant and the tree will immediately appear.

To remove, press the Del (Delete) key. If you want to remove an existing tree, move the pole close to the tree until the Tree Detected pop up window opens. Pressing the Del key will then remove it.

The only danger is that you might get carried away and plant too many trees for the real time rendering to work satisfactorily. So don’t go planting thousands of trees for the forests. You can check with the Frames per Second display open to see if you are still getting good rendering times.

To scale the objects, hold the ctrl key down and adjust with the page up/down keys. When releasing the ctrl key the objects scale will be set accordingly.

The new scale factors are individual for the particular object but global for all the same type objects in all courses.

The new planted objects and trees are, of course, specific for the particular hole you have planted them in.

Auto Tree Planting with Tree Maps (as of GGS version 4.21.6)

An alternative to manually planting trees and plants is to use the new AutoTree plant feature. For this to work you must first create a TreeMap bmp file that defines where on the course-hole trees and plants should be planted.

To do this open the appropriate course hole surfaceobjects.bmp and the courses\textures\surfacecolors.bmp file in PhotoShop. 

Duplicate the surfaceobjects image and name it TreeMap with the usually naming convention. (ie AuTreeMap2.bmp if this is the treemap for Augustin Hole 2).

Using the Photoshop select tools mark the select the area where trees should be planted and fill these areas with the AutoTrees color from the surfaceColors pallet file.

There's also a Plants color that you use for defining areas where plants should be auto planted. Use the same procedure as above to define these.

If you just want plants around a water bank then select the entire water,  increase the selection size by around 15 pixels and then activate a 10 pixel border for the selection. This should leave just the pond banking selected. Now fill with the auto plant color.

Note: You can have just plant areas if you have already planted trees manually.

When all areas have been defined reverse the selections and fill in the remaining ares with pure black and save the file.

To activate the auto trees load the course hole in GGS and activate the tree planting mode (ctrl/T). 

The AutoTree planting feature only uses trees and plants that are in the AutoTree member list and/or the AutoPlant member list.

By default all user objects are in the AutoTree member list. As you page through the objects (page/up/down) you will notice that user object trees are in the AutoTree member list. (Red Text).

To add/remove  user objects to the AutoTree member list just press the T key. 

To add/remove user objects to the AutoPlante member list just press the P key. 

To activate the AutoTrees and/or Auto plants, press the adjacent buttons in the Tree Planting window. You can switch ON/OFF individually for both trees and plants.

Note: Only User object trees and plants are used for the AutoTree planting  

User defined Collision Mesh definition

Course designers can interactively set collision meshes for user defined objects (trees, buildings etc). Press the F3 key when in tree planting mode to enter this mode.

Step 4: Create the Terrain Height map

The height map is an image file that contains the information required to generate the terrain – hills, dips, bunkers, ponds etc.- interpreted by the levels of gray. The RGB values of gray are from 0 to 255 (black to white) with 127 (medium gray) being normal ground level. Darker shades of gray (rgb values below 127) represent height levels below normal ground level and lighter shades of gray (rgb values above 127) represent height levels above normal ground level.

Terrain height maps for GGS can also be 16 bit color map files allowing 65,536 steps to be defined. You will need a 3D terrain modeling tool to create these though.

GGS requires the 16 bit height map files to be in TGA format whereby the green component of the 24 bit RGB color is used for the low order byte and red the high order byte.  

GGS height map naming convention for 16 bit height map files is as for gray scale maps except that the file type is tga instead bmp. e.g.  "AuHeight1.bmp" is for the gray scale map the Augustin course hole 1 and  "AuHeight1.tga" is the 16 bit version.

GGS automatically detects if a 16 bit tga height map exists for a particular course hole and will load this instead of 8 bit gray scale map.

As for 8 bit gray scale maps there can be up to 3 height maps for every golf course hole in the GGS system – fine, medium and coarse. For normal hole layouts the fine height map is sufficient to define bunkers, hills and dips. For more dramatic terrain the medium and coarse height maps will be required. 

The following steps are required to produce the GGS height maps:

For the fine height map:

Create a new 24 bit bmp image w1024*h2048 (or
2560) file and using the same naming convention as above but replacing “SurfaceObjects” with “Height” e.g. “StHeight3.bmp” and save the file.

Optional For the medium gray scale height map:

Create a new 24 bit bmp image w1024*h2048 (or
2560)  file and using the same naming convention as above but adding “Base” at the end of “Height” e.g. “StHeightBase3.bmp” and save the file.

Fill the entire area with gray (rgb = 127, 127, 127) to represent the normal height level.

Optional For the coarse gray scale height map:

Create a new 24 bit bmp image w1024*h2048 (or
2560)  file and using the same naming convention as above but adding “BaseBig” at the end of “Height” e.g. “StHeightBaseBig3.bmp” and save the file.

For course orientation you will need to see the surface map

In Photoshop you can add layers to an image allowing you superimpose one image on to another with some degree of translucency. To do this open the height map and the surfaceObjects map files.

Select the entire surfaceObject map and copy paste on to the height map. Go to the layers tab, select the layer 1 and set the opacity to around 50%.

You will now see the surfaces through the height map.

Creating hills and dips in Photoshop Elements 

  1. Set the foreground to a shade lighter shade of gray to represent the maximum height of a hill and the background to a shade darker to represent the maximum depth of a dip.
  2. Use the Lasso select tool to mark the area of the dip or hill
  3. Set the selected area to Soft corners to 100 pixels (depending on how steep you want the gradient to be).
  4. Fill with the lighter or darker shade for a dip or hill  



At this stage your fine level height map (bottom left) and the course height map (bottom right) could look something like this.


Creating the bunker and pond height levels:

Up until now we have created terrain without knowing exactly where the green and fairways are. This is not quite so important at this stage but when defining the levels of ponds and bunkers we will, of course, have to know exactly where they are in the height map before hand.  

In Photoshop you can add layers to an image allowing you superimpose one image on to another with translucency. To do this open the height map and the surfaceObjects map files.

Select the entire surfaceObject map and copy paste on to the height map. Go to the layers tab, select the layer 1 and set the opacity to around 50%.

You will now see the surfaces through the height map.

Alternatively, do the following for a clearer method: 

Open the SurfaceObjects file again and, using the color crayon set to the bunker surface color, place a single yellow pixel dot in each of the far end corners of the image and save the file  again. This is done so that when we select an area in the SurfaceObjects image - together with the four corner dots - and copy it into the HeightMap, it will appear in the correct aligned position. Without the dots, the copied selected area will be inserted into the HeightMap image in the center.

Now select the bunkers and pond(s) - if any – in the SurfaceObjects image with the select wand. Copy this into the clipboard, change to the HeightMap image and insert it there.



Your height map image (on the right ) should now look like this.


Select the area to work on (in this case the pond) and, with the pipette, select a shade close to the edge of the pond or bunker and fill the area with it.

Expand the selection by about 20 pixels and set to soft corners (also about 20 pixels).

Set the foreground shade to a darker shade to represent the level of the bottom of the pond and fill the area. (2 or 3  clicks with the fill tool may be required).


You should now have a nice level transition from the pond’s bank to the bottom level. (As shown above)




Use the same procedure to define the bunkers but expand the selection by just 6 pixels and also set soft corners to just 6 pixels.

Don’t forget that after selecting the bunkers you have to fill them with a shade of gray - taken from the immediate surrounding - before expanding and softening.

Note: A couple of fill clicks are usually required to get a smooth transition

Save the file!


For more dramatic terrain:

Create a new 24 bit bmp image (w1024*h2048/h2560) file and using the same naming convention as above but replacing “Height” with “HeightBase” e.g. “StHeightBase3.bmp” save the file.

Fill the entire area with gray (rgb = 127, 127, 127) to represent the normal height level and use the same procedure as above for the bigger terrain.  

Terrain Editor

As of version 2.37.1 ProX features an Interactive Terrain Editor for course designers.

The Terrain Editor allows you to create terrain interactively while on the course. Create hills and dips of any size and shape anywhere by moving the terrain grid and pressing the appropriate keys. You can also set the slope ratio as required plus minimum and maximum altitudes.

Just as important is the new Terrain Smooth function. When creating terrain with 8 bit gray-scale maps the terrain is quite coarse. This is especially noticeable on the green with the grid set on - although the ball roll itself is not effected as much because of smooth-out routines in the trajectory calculations.


The Terrain Editor's smooth-out routines can now take care of terrain irregularities inherent with 8 bit gray-scale height maps with just one button click.


Step3: Creating a light map

Note: The GGS graphics engine features OpenGL terrain lighting and shading so the use of a light map is optional. You can use it to completely replace the OpenGL lighting or to enhance it with your own shading and lighting.  

A Light map is similar to a Height map in that it consists of 256 gray scales but instead of adjusting the terrain height it adjusts the light and shade so that gray scale values above 127 increase the brightness and values below decrease brightness.

To create the Light Map save the Height map to a new file replacing “Height” with “Light” in the name.  

You can use adjust the light map made from the height map to enhance terrain with the Photoshop air brushes. The result may look something like the image above.


Shading under trees.

 The GGS Graphics engine also features basic tree shading but you might want to enhance this with your own tree shading.

There are also number of pre-defined tree shades in the Shades bmp file (stored in the \courses\textures directory).

These are copied and pasted into the light map at every tree position.


To do this, open the SurfaceObjects file and place a 1 pixel white dot in each of the far corners (next to the yellow ones you set before. This is done so that when copying and pasting into the light map, the alignment is correct). Then, using the select wand, select all the white spots that you have placed in the layout that represent the tree locations and paste them into the light map.



Now we know the exact location of all the trees.

Save the Light Map file.

Open the desired tree shade image file from the Textures directory

These images are in Photoshop format  (.psd files) and have transparent backgrounds.


To place a tree shade in the light map simply copy the tree shade and paste it in at the desired  place over the white dot.

Because the white dots will show up in the final scene, you will have to manual paint over them with a dark shade afterwards.

Save and close the file.  

You define whether a course is scaled in yards or meters interactively after opening the course in ProX and pressing ctrl/S or manually in the courseInfo file. 

Terrain height scaling

The terrain height scaling can also be done interactively by pressing ctrl/H when on the course hole. Here you can adjust and immediately see the results of your height scale settings. The above two images show the same hole using the same gray scale height map but with different height scale settings.

Continue to Golf Course Designing Tutorial Part 2