jjlG2022

James J Lemon Graphics
Copyright © James J Lemon Graphics
surfPPC Manual II

up | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10

surfPPC.244
Part II (Reference)
Kitchen Sink of the Surface World

Part I
toc (1)
Part II
toc (2)



First, get a file!
You may use any type of image, just save it in a compatible format. I prefer to make my own with MetaCreations© Bryce and Carrara and Adobe© PhotoShop. Just remember, for best results, the image should be somehow interesting in terms of its light/dark balance and composition. When surfPPC opens a file, color is converted to height based on its brightness. The color, its brightness and height are then used to make some interesting derivative images... in huge variety, as afforded by a rich set of adjustable parameters.
The original goal of surfPPC was to read USGS DEM files of the Continental US. Later, I found Mars, the Moon, etc. were also available. There are also sources of satellite and aerial images which can add color and detail to the surface rendering. There are some interesting links on the Internet listed at the end of this manual. (See References and Links).

Figure xx
Use your favorite programs with surfPPC

For images, use any combination of raster image editing program to create a Windows BMP file(s) or convert to that format. Files to be treated as layers need to have exactly the same dimensions.
Download a DEM file. These are normally downloaded compressed and then expanded for rendering.
Create a BMP file from scratch. This requires some kind of image editor, and proficiency not addressed here. PhotoShop© or equivalent is preferred and assumed in this manual for the purposes of discussion. Other excellent tools are ArtMatic©, Bryce and Painter©, used to create imagery as well as in post-processing.
Create a BHFF or LOH file from scratch. For this it is usually best to write a program or script to write the binary BHFF file and/or the ASCII LOH file, but if you want to depict an equation that can be expressed as a function of two dimensions, surfPPC is an excellent tool.
Convert a file to BMP format, for example a scan or photograph. Be aware that the purpose of surfPPC is to interpret the "shape" of the image, so it may be desirable to clean up the image before rendering.


This is, to me, the most fun. By creating a color image, I can also at the same time create a height map. I can "carve in" the highs and the lows as well.
It's important to remember that the picture you are making isn't the final one, that the brightness is converted into heightness. Since surfPPC implements a lighting model, be sure to use filters and textures devoid of any other brightness information. For example, it is equivalent to the PhotoShop filters which may apply a lighting mdel. Distortion, Hue, Saturation, are "Safe" whereas "Lighting" will produce wierd effects, perhaps but not necessarily objectionable. Photos are sometimes not working well because the brightness information does not really represent the shape of the object. We require instead the equivalent of something that comes out of a laser rangefinder, where it's only measuring the distance.
Some of the tricks to have up the sleeve are:
a threshhold filter on an alpha channel to get a selection mask , usually blurred appropriately
a fractal generator, best so far is ArtMatic, or
the KPT 3.0 texture Explorer or
KPT 3.0 Gradient Explorer.
There are many filters which can enhance your design. Go experiment and have fun.
These are excellent starting points for your designs. Imagine the effect when the bright areas rise above the darker ones.
After some stage, try adding text and appropriate images. These can give a great deal of structure and meaning to the piece. Then continue filtering. After applying a filter, try the blending modes. Try combining them to creat secondary effects. For this I like the difference mode.


surfPPC can open the following types of files:
Industry-Standard formats:
USGS (ASCII) DEMs of CONUS, Alaska, Hawaii, etc.
USGS (ASCII/Binary) GTOPO30 DEMs of the Earth
BMP Windows format (ala PhotoShop©)
BMP Windows 24-bit
BMP Windows 8-bit
BMP Windows 4-bit
BMP Windows 1-bit
These formats are defined by surfPPC, other programs will generally not open them.
LOH, "List of Heights", a surfPPC format of editable ASCII text, heights only
BHFF, "Binary Height Field Format", a surfPPC format of binary single-precision floats, heights only
surfPPC Preferences files
The first two are very simple means (in ASCII or binary, respectively) to write a regular grid of measurements ("heights") to a file. There is no color information and all coordinates are referenced to the lower left of the array (where X=Y=0). These formats are somewhat more compact or more compressible than the other DEM formats, and can be used as a temporary "holding bin" for surfaces, for example during joins of more than two patterns into a single pattern.
Another good feature of these formats is support for single precision IEEE floating-point heights, which may be important. The other formats for images do not have this property, for example support for 16-bit grayscale images (or anything more than 8-bit grayscale) is only sporadic in early 2001. The 32-bit float provides 1 part in 2^23 for really great precision and has a range of +/- 10^38 for really good dynamic range. Saving the BMP rendered version of a DEM quantizes everything to 256 levels, on the other hand, usually something done with the final rendering.
Not yet... if required use a conversion utility (see below) to convert formats:
BMP OS/2 format
BMP compressed formats (not yet, these formats are somewhat rare)
Other image formats readily convertable to uncompressed BMP such as GIF, JPG, PICT or TIF may be supported someday via QuickTime but for now the conversion can be perhaps inconvenient, but necessary step.
In general simply opening a file replaces the previous file's data. For example opening a preferences file completely resets the preferences of the saved file, and opening a DEM or image file replaces any data and image. The order in which files are opened is obviously important, and the scripting features can assist when there are a large number of files.
Two free applications are of particular utility here:
GraphicConverter© for converting almost any other bitmap format (e.g. PICT and .JPG) to the surfPPC standard uncompressed Windows© .BMP format.
Stuffit© Expander for opening .gz and .tar.gz Digital Elevation Map (DEM) files from the USGS.

Figure xx
gcmore.gif

To convert a whole directory full of files, use GraphicConverter©. The dialog's topmost button says "AutoConvert" here because I had to hold the command- and option- keys to make the screen shot; normally it reads "Convert". Use it to convert to BMP - Windows format, then surfPPC can render. Afterwards, convert the BMP output of surfPPC to a more economical format such as JPG if desired.


Sometimes it is necessary to open multiple files. There may be a colorbar image which converts color to altitude, or there may be a header file which defines an associated data file. In these cases open the colorbar or header file first, then the image or data file.
To use colors from one image and heights from another, open the first file without using the shift key, then open the heights only with the shift key. The dimensions of the two files must be identical.
For BMP image files, open the color image file and then shift-open an optional heights file, which can be any supported file type of the identical dimensions as the image..
For GTOPO30 files, open the .HDR file and then the .DEM file. See the GTOPO30 Tutorial .
For Mars relief map, open the .cbar file and then the image. See the Mars Tutorial.


These files are large, but surfPPC opens them quickly. Heights only. The amount of memory consumed depends on the EditParms settings GTOPO20MODX and GTOPO30MODY, the subsampling moduli. For example if GTOPO30MODX is 2, only every second point is read.
Begin by obtaining a tar.gz file from the website. (See References and Links)
Uncompress and untar using Expander©.
In surfPPC, open the .HDR file and then the .DEM file.
See the GTOPO30 Tutorial.


The LOH ("List of Heights") file format is provided so that it is easy to define a surface in a text editor.
The file has a simple syntax:
Line 1: Definition
Six numbers:
nCellsX nCellsY SizeX SizeY OriginX OriginY
where
nCellsX = number of cells in the X dimension
nCellsY= number of cells in the Y dimension
SizeX = size of a cell in the X dimension
SizeY = size of a cell in the X dimension
OriginX = location of first cell (0,0) in the X dimension
OriginY = location of first cell (0,0) in the Y dimension
Lines 2-n: Data
One height value per line, for (nCellsX +1) * (nCellsY + 1) lines.
Y-Major order, where the first point is the origin point at the lower left.
Columns are defined from the bottom up.
Helpful Tips
The LOH file must be in the same directory as surfPPC. For this reason, save the information to the BHFF format as soon as possible, since it is more cpompact and has none of the location restrictions (current folder only) of the LOH file.

Sometimes it is useful to join or merge two or more files into one large file. To join files, give the Join command with a capital "J" to join horizontally, or option-J to join vertically, then open the two files in order from left to right (shift-J) or bottom to top (option-J). Only height data is merged; to merge color data use another utility such as PhotoShop and open the single file as usual. To merge more than two files requires saving the merged height data as BHFF and using it as the first ot the next two files to merge.
For example let us merge horizontally three files, A, B and C.
open surfPPC
type J to join the next two files horizontally
o to open the leftmost file A (#1)
o to open the middle file B (#2)
Command-S to save (A+B's BHFF data) to a new file called AB.bhff
type J again
o to open AB.bhff (#1) (You may delete AB.bhff as soon as it is read)
o to open the rightmost file C (#2)
the data is the join of A+B+C.
See the Joining Tutorial.


With the Sampling Tool selected, point at the image and click.

Figure xx
surfPPC.014.xyz2a.jpg

The point is sampled, and the normal vector at the point is calculated.
Sampling is the basis of all the effects in surfPPC, and the samplng tool was one of the first tools in the program.
When the sampling tool is selected, if data has been loaded, the data pattern is sampled at the point below the tip of the cursor.

Figure xx
surfPPC.028.sample.gif

Click where you want to sample.

The (X,Y,Z) coordinates of the intersection are posted to the system message line at the top of the draw area. The Z coordinate is plotted in the Color Gnomon.

Figure xx
surfPPC.029.sample.gif

Read the elevation on the Color Gnomon.
The sampling tool is also the basis of the jalopy, contouring and following tools, since they also operate via a click, and are concerned with the point below the tip of the cursor when and where the click (mouse down) occurs.



Drawing is usually the goal of a surfPPC session

There are a few adjustable parameters in this software-based renderer. The image drawn depends on the projection mode, color mapping mode, toggle settings, EditParms parameters, but most of all, on the height and color arrays read in from a file or files.

surfPPC works on one image at a time, unlike other programs where multiple documents may be open. The image formed is composed of color and height information from one or two input files. Color and height mey be related (one file) or unrelated (separate height and color arrays from two files).

Drawing may proceed in any direction, left..right or top..bottom
Drawing is interruptable, depending on the choice of keys or menu items. Hitting the space bar always causes surfPPC to clear the screen and refresh the drawing. Likewise, changing a parameter in the EditParms dialog may or may not cause a refresh.

Drawing depends on your choice of a transformation
  • 2D Square Aspect Ratio
  • 2D True Aspect Ratio
  • 3D Isometric
If the projection is isometric, it depends on your choice of two EditParms parameters:

  • X factor, how much the window is stretched, 1.0 is no stretching
  • Z factor, how much the image height is stretched by the projection
Note that the projected image height can be a separate value from the amount of sensitivity to the slope used in ray tracing. Each number plays its part, the ZFactor controlling the height for projecting the image and zzfMult controlling the amount of shadow or highlight. When looking straight down in the 2D projection, it is like a plan view.

Drawing depends on Color Mapping Mode
Require only height
  • Linear
  • Linear Light
  • Linear Dark
  • Sine
  • Sine Light
  • Sine Dark
Require height and another color
  • User
  • Blend
  • Ray

Figure xx
surfPPC.031.plane.gif
Planar Rendering
Planar projection renders the surface on a plane.
Figure xx
surfPPC.032.3d.gif
3D Isometric Rendering
Isometric Projection renders the surface as if it is standing above a base plane of the lowest elevation.
Figure xx
surfPPC.033.warnock.gif
3D Warnock Rendering
Warnock Projection renders the surface on an object, currently a sphere.


Defined Constant
Index
Description
COLORMAP_SIN_GRAY
0
Sinusoid GrayScale
COLORMAP_LIN_GRAY
1
Linear GrayScale
COLORMAP_SIN_GRAY_LT
2
Sinusoid GrayScale Light
COLORMAP_LIN_GRAY_LT
3
Linear GrayScale Light
COLORMAP_SIN_GRAY_DK
4
Sinusoid GrayScale Dark
COLORMAP_LIN_GRAY_DK
5
Linear GrayScale Dark
COLORMAP_USER
6
Linear GrayScale, Mapped to User0..User1
COLORMAP_BLEND
7
Linear GrayScale, Mapped to User0..User1, blended with image
COLORMAP_RAY
8
Linear GrayScale, Mapped to User0..User1, blended with raytraced image, user specified light source direction

User, Blend, and Ray color mapping depends on two user-selectable colors:
User0 Color (color of the lowest height, default black)
User1 Color (color of the highest height, default white)
Hit the < and > keys or click on the < or > toggles to increment or decrement the color mapping mode.
The speed of rendering is greatly affected by the mode, Ray being slowest and linear the fastest. In the picture below, the Color Gnomon displays a black-to-white gradient, because "black" and "white" were selected as User Color 0 and User Color 1 respectively. Actually any color can be selected with the SetColors Menu. Make a blueprint effect by setting the colors darker and lighter blue, or a sepia effect with dark and light brown. See Set Colors.
Figure xx
color mapping modes
Use the color mapping mode controls even while rendering.


Color Mapping Modes Cycle
Figure xx
Drawing Modes









Linear Linear Dark Linear Light Sine Sine Dark Sine Light User Blend Ray



















Use the < and > keys to cycle through the modes. The values are normalized to the range zero at the bottom to unity at the top.
Note that the color mode may or may not include the colors of the image, only Blend and Ray use the image color. The comma( or less-than "<") and period (or greater- than ">")keys decrement and increment the mode.
Blend and Ray color mapping depend on the EditParms parameter called fBlendBalance, the balance of image color and height color.
A factor from 0 to 1, the amount of rendering effect blended with the original image. Zero eliminates all rendering effects and just shows the original image. Unity eliminates the original image and shows 100% of the rendering (using the user colors).
Ray color mapping depends on these parameters:
zzfMult multiplies the slope, which affects the ray's intensity indirectly for elaborate effects.
ZFactor multiplies the height of the surface.
fBlendBalance multiplies the amount the raytraced image is blended with the original image. or the original image, with zero being "no effect of ray tracing, all image color" and one being "all ray tracing, no image color".
For example a small value, much less than 1.0 perhaps 0.001, produces a "stone like" effect and nearer to 0.1 and up through 1.0 adds glossiness going from "plastic" to "lacquered wood" much above unity, where the actual slope is used to calculate the reflected ray.


When the Contouring or Autocontour tools are selected, contours of constant height can drawn on the image in response to user clicks in the drawing area. Click on the image to contour. When autocontouring, the levels are selected automatically, otherwise the level passes through the cursor position.
Figure xx
contours.a.jpg
Use the contouring tools to obtain accurate delineation of isolevels

The example shows the initial state before rendering and auto contouring
(A tool, then click in drawing to start)
manual contouring with and without levels (C tool, command-click in drawing) and showing sample point (B toggle ON, click in drawing)
The color of the contour lines is determined by the Match and Match Inverse toggles.
If the Match toggle is set, the Color Mapping Mode in effect is used to map height to color.
If the Match Inverse toggle is set, the Color Mapping Mode in effect is used to map the inverse of the height to color.
The height's color so derived is used as the local color at that point on the surface. If neither Match nor Match Inverse toggles are set, the colors are defined in the user Set Colors palette.
In the Set Colors pallette, there are four colors used for contouring, as follows:
The Z dimension (height) is divided into Grids, Ticks, and Minor Ticks.
For example there might be 4 major grids, with 8 Major Ticks and 80 Minor Ticks.
There are always 10 Minor Ticks per Tick, and Minor Ticks are only plotted if the Detailed toggle is set.
Contour1 is used for Minor Ticks (optional) and contours generated with the Contour tool
Contour2 is used for Major Ticks generated with the Autocontour tool
Contour3 is used for Major Grids generated with the Autocontour tool
Contour4 is used for text Labels along the contour (optional, only if the ShowSamplePt toggle is set)


When the Ray drawing mode is selected, surfPPC draws using a simple ray tracer. There are a few adjustable parameters in this software-based renderer. The direction of the light may be controlled. The "intensity" of the light is indirectly controlled with the zzfMult,, , fBlendBalance, and sensitivity parameters from the EditParms dialog.
There are four modes:
Planar, selected with the space bar,
Warnock, selected with the numeric keypad enter key and trails mode off
Warnock particles, selected with the numeric keypad enter key and trails mode on
Autocontours, selected with the autocontours tool.

Drawing Follows: Spraying Fall-Lines and Fire-Breaks

Figure xx
surfPPC.030.fall.gif

Click on the data with the follow tools to follow up or follow down the slope.

Spraying is like throwing particles of water or fire on the surface, in a uniform gravity field of course. Water will run downslope and fire will run upslope. Select the Follow Up or Follow Down tools, point and click on the surface. The sensitivity, gnomon radius, and zzfMult are taken into account in calculating the force on the particle. As long as you hold the mouse down, the particle will follow the field on the surface. Scrubbing of the mouse feels like spraying something.
Using the follow up and follow down fonctions automates the search for fall-lines (where water would run, and where it's best for skiing), and fire-breaks (where fire would burn, the steepest ascent). The blue lines are follows down the slope.
See also AutoMag.


Figure xx
surfPPC.018.warnock.jpg

Use the Warnock rendering mode to map the image onto the surface of an object.

The Warnock rendering mode gets its name from the way it subdivides the image space. It is really quite efficient. In surfPPC.234, there is always just one "object", a sphere. Perhaps a later version will support other primitive geometric types.
When rendering to a file, the size of the image is either the size of the original (planar) height field, or if nonzero, the resolution specified in the EditParms dialog.

Figure xx
Zero: Next Zoom or ReDo Same as number of Cells

Figure xx
Non-Zero: Next Zoom or ReDo Size Controlled by user

Figure xx
Number of Cells



Figure xx
surfPPC.016.setball.gif
Use the ball to set the viewing direction
The orientation of the sphere is controlled with a small ball in the lower right corner of the screen, only visible when the Black Tool or the White Tool is selected. The new orientation is applied in the next Warnock rendering.



surfPPC can save the following types of files:
BMP Windows format (ala PhotoShop)
24-bit rendering of the current image at full size, (preferred) image only (Save Render As BMP...)
planar map
object map
24-bit dump of the Offscreen image last drawn, (sometimes expedient or necessary) image only (Save OffScr As BMP...)
BHFF "Binary Height Field Format", heights only (Save As...)
surfPPC Preferences files


Selecting the menu item "Save Prefs..." and selecting a new file name saves surfPPC Preferences. Following is a typical surfPPC Preferences file, which renders like "stone":
SURF 
PREF TOOL 7 b Black
PREF DRAWMODE 0
PREF COLORMAP 8
PREF FONTSIZE 12
PREF FONTNAME Monaco
PREF TOGL 0 0 1 3D X-Axis shade
PREF TOGL 1 0 2 3D Y-Axis shade
PREF TOGL 2 0 3 3D shade
PREF TOGL 3 0 4 3D Animate
PREF TOGL 4 0 g Grids
PREF TOGL 5 0 f Frame
PREF TOGL 6 0 s Solarize Frame
PREF TOGL 7 0 L Outline
PREF TOGL 8 0 d Detailed Contours
PREF TOGL 9 0 m match
PREF TOGL 10 0 M Match Inv
PREF TOGL 11 0 p Pause
PREF TOGL 12 0 e Edit Parameters
PREF TOGL 13 0 u Auto Magnitude
PREF TOGL 14 0 r Prism
PREF TOGL 15 1 a Aspect
PREF TOGL 16 0 t Track Chart
PREF TOGL 17 0 c Colors
PREF TOGL 18 0 B Show Sample Point
PREF TOGL 19 0 < Prev ColorMap
PREF TOGL 20 0 > Next ColorMap
PREF COLR 0 0 0 0 Back
PREF COLR 1 32767 32767 32767 Desk
PREF COLR 2 65535 65535 65535 text
PREF COLR 3 16383 16383 16383 Gridtext
PREF COLR 4 49151 49151 49151 Contour1
PREF COLR 5 32767 32767 32767 Contour2
PREF COLR 6 0 0 0 Contour3
PREF COLR 7 0 0 0 Contour4
PREF COLR 8 0 65535 0 Hair
PREF COLR 9 65535 0 0 HairRoot
PREF COLR 10 0 0 0 UserColor0
PREF COLR 11 65535 65535 65535 UserColor1
PREF COLR 12 24575 24575 24575 Shadow
PREF PARM fZoom 1.5
PREF PARM EQNPIX 1
PREF PARM EQNPIXfactor 2
PREF PARM EQNPIX_Mult 1
PREF PARM EQNSTEP 0.5
PREF PARM zzfMult 0.2
PREF PARM dXfactor 1
PREF PARM dZFactor 0.5
PREF PARM dRESOLUTION_X 0
PREF PARM dRESOLUTION_Y 0
PREF PARM fBlendBalance 0.1
PREF PARM LSx -0.389833
PREF PARM LSy 0.606407
PREF PARM LSz 0.693037
PREF PARM Response 50
PREF PARM GTOPO30nodata -9999
PREF PARM GTOPO30MODX 3
PREF PARM GTOPO30MODY 3
PREF PARM yiqR 0.299
PREF PARM yiqG 0.587
PREF PARM yiqB 0.114
PREF Tball 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1
PREF ListOfFiles abc.bmp

Since it's just a regular text file, the Preferences file can be edited with any text editor.
Notes:
SURF
All surfPPC preferences files begin with this line.
PREF
This token must precede all preferences entries in the file.
PREF TOOL nTool name
The tool selection is saved with this prefix.
PREF DRAWMODE nDrawMode
The drawing mode selection is saved with this prefix.
PREF COLORMAP 8
The colormap index selection is saved with this prefix.
PREF FONTNAME name
the name of the selected font is saved with this prefix.
PREF TOGL nTog nState
Toggles are saved with this prefix.
PREF COLR nColor r g b name
ColorMap colors are saved with this prefix
PREF PARM
Editable EditParms parameters are saved with this prefix
PREF Tball 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1
The Warnock sphere's orientation is expressed as a 4x4 transformation matrix.
PREF ListOfFiles abc.bmp
SurfPPC maintains a list of fle names, with the assumption that the folder or directory is already set in the last used file dialog such as Save As... Open..., etc.


surfPPC can build a list of files to read, in a specified order, then execute the list. Files can be any file surfPPC can read. Since surfPPC saves the list of files in saved preferences, this makes it easy to define batch rendering for later.
Every time surfPPC reads a surface file it makes and saves the rendering to a new file in the same directory as the original file, the last file read. Guaranteed 100% good luck with this making and executing lists during the one run of surfPPC. To use this feature reliably between runs seems to rely on running the two sessions from the same starting point, and not moving files between volumes between making and executing the list.
A favorite labor-saving technique involves:
1 making a temporary directory
2 putting all my BMP files there, or make some there
3 run surfPPC
4 read one set of preferences with no list, or clear any list,
5 specify all the files in a new list
6 save preferences in the temporary directory
perhaps quit and take a break
7 execute.
8 enjoy.



There are two ways to zoom in,
using the zoom tool
using the Black Tool or White Tool
With the Zoom In Tool selected, click and hold until a black rectangle appears, then release to zoom. The rectangle is centered on the mouse location. The black rectangle is the same aspect ratio as the image, but smaller by the amount of the zoom factor. Change the zoom factor in the EditParms Dialog. Change the number of samples X and Y in the EditParms Dialog. If the number of samples in one of the dimensions is not zero, that dimension is controlled by the number in the dialog, if zero, the dimension is the dimension of the original image.
With the black or white tool selected, all the same rules apply except the zooming dimensions and zoom factor are specified interactively, using the familiar marching ants selection rectangle. The mouse down and mouse up locations are transformed to determine a rectangle, and the dimensions of the image depend, as before, on the value of the EditParms resolution if it is non-zero, or the size, in pixels, of the largest (similar aspect-ratio) selection within the rectangle.

Select the Zoom Out tool to zoom out to the original image.


With the Jalopy Tool selected, point at the image and click.
Figure xx
surfPPC.015.jalopy.gif

The point is sampled, and the normal vector at the point is calculated.


Figure xx
surfPPC.001.menubar.gif

Use the Menu Bar to open and save data files and preferences, set font or font size.

Many items are used to control toggles and are displayed with a checkmark. Many items are accessible via keyboard or mouse shortcuts.
Apple
The regular Apple menu
File
Figure xx
surfPPC.021.filemenu.gif

File Menu

Open...
Close
Edit
Figure xx
surfPPC.023.editmenu.gif

Edit Menu

Font
Figure xx
surfPPC.024.fontmenu.gif
Font Menu

All your fonts
Size

Figure xx
surfPPC.022.sizemenu.gif

Size Menu

A few convenient selected smaller sizes, and a way to set any size
Surface
Figure xx
surfPPC.019.surfmenu.gif
Surface Menu

Next/Prev Color Map
Pause
Match Colors
Match Colors Inv
Help not supported

toc

Figure xx
surfPPC.005a.tools.gif

Click to select a tool

X Sample Tool
C Contour Tool
+ Zoom In Tool
- Zoom Out Tool
F Follow Up Tool
J Jalopy Tool
Only one tool is in use at a time. Click to select a new tool.


Figure xx
surfPPC.005b.toggles.gif

Click to invert a toggle. Some toggles hold their values, but others may flip back automatically, for example when an action completes.
1 3D Drawing ShadeRegion X ON/OFF Toggle
2 3D Drawing ShadeRegion Y ON/OFF Toggle
3 3D Drawing ON/OFF Toggle
4 Animate ON/OFF Toggle
g Grids ON/OFF Toggle
f Frame ON/OFF Toggle
s Solarize Frame ON/OFF Toggle
L OutLine ON/OFF Toggle
d Detailed ON/OFF Toggle
m Match Contours ON/OFF Toggle
M Match Contours Inverse ON/OFF Toggle
p Pause Toggle
e EditParms ON/OFF Toggle
u AutoMag ON/OFF Toggle (to acces, command-click on a map with the sampling tool. See also Trix)
r Prism ON/OFF Toggle
a True Aspect Ratio ON/OFF Toggle
t Track Chart ON/OFF Toggle
c Set Colors Palette ON/OFF Toggle
B Show Sample Point ON/OFF Toggle


The key displays the short name of each tool and toggle.


Click on the name to select a tool or invert a toggle>.
The key is only displayed if NO files are loaded.


Figure xx
surfPPC.002.statusline2.gif

Information about the current session

Number of cycles
Pattern name and specifics
Projection
Grids
Color Mode
Information about the task(s), if applicable
Elapsed task running time
Expected task total time
Expected task remaining time
Total running time
Last state or message


Figure xx

Shows the status of the memory areas allocated by surfPPC

4 Ability to use ColorBar
3 Ability to undo colors
2 Ability to display colors
1 Ability to undo heights
0 Ability to display heights
-1 Offscreen status.

Numbered from the top down.
Click on 0 if it's green and it will close the file, and turn red.
Click on 0 if it's red and it will open a file, and turn green.
Click on 4 if it's green and it will suspend the use of an external color map. To load a map just be sure it has cbar in its name. Offscreen image is fresh if -1 is green.


Figure xx
surfPPC.017.showinfo.gif

Shows status and other surfPPC metrics

Settings
Drawing Mode xxx or Warnock
Grids or NoGrids
Color Mapping Mode
Projection Mode
Color Interpolation Mode
Number of Contour Levels Remaining
Number of Contour Levels Total
Warnock Submode.Cell Size.Depth
Response cycles
Image Data 1
Size
Number of Pixels
Number of bytes in RGB image
Image Data 2
Bounding box
Performance Data
Seconds in Function
Estimated Seconds Total
Estimated Seconds Remaining

Most information is not displayed unless requested. Use the Show Info toggle to show or hide this information.



Figure xx
surfPPC.004.colorGnomon.gif
Shows the mapping of height to color, where applicable



Figure xx
surfPPC.007.setColors2.gif

The setColors panel controls all colors used by surfPPC

Click on the Set Colors toggle to enable display of the setColors and light direction palettes.
Click on a color swatch rectangle to set any of the surfPPC colors.


Figure xx
surfPPC.008.lightdir.gif

The lightdir panel controls the current light direction

Click on the Set Colors toggle to enable display of the Set Colors and light direction palettes.
Click in the circular area to move the light source direction



Figure xx
surfPPC.010.progressbar.gif

Shows progress in completing a task such as drawing
Most tasks are interruptable, except in particular drawing direction gnomons and saving.




Figure xx
surfPPC.011.trackchart.gif
The Track Chart can be hidden or displayed

Click on the Track Chart toggle to enable display of the Track Chart.
The Track Chart plots a continuous graph of (x,y,z) coordinates as the mouse moves over the surface.
As the mouse moves around the surface, gnomons are plotted, and if the Show Sample Points option is also enabled, the points are labelled.


Figure xx
surfPPC.012.editparms2.gif

Dialog to change any parameters used by surfPPC

X Cells
Y Cells
The size (or desired size) of the image in memory
If you change these, the image will be resampled. Zoom Out to undo.
a positive integer

Zoom Factor
When zooming, inverse proportion to new size, dimensionless
If you zoom, the zoomed image will be resampled. Zoom Out to undo.
a positive float number

Gnomon Radius
When drawing gnomons, the radius, pixels
a positive float number

Gnomon Spacing
When drawing gnomons, the distance between, pixels
a positive float number

Hair Length Mult
Multiplies the hair (unit normal vector) projected length, pixels
a positive float number

Multiplies the slope
a positive float number

X Step
Y Step
X Origin
Y Origin
Information about the image (or desired image) in memory
If you change these, the image will be resampled. Zoom Out to undo.
Steps are positive numbers
Origins are float numbers

X Factor
Z Factor
When drawing isometric, multiplies X or Z, dimensionless
positive float numbers

Resolution X
Resolution Y
When zooming in or saving, non-zero values override all others, pixels. Zoom Out to undo.
positive integers

If Blend or Ray drawing, controls amount of the effect.
a positive float number, normally in the range 0.0 (pure image) -> 1.0 (pure effect)

Response
surfPPC cycles between checking for window events
a positive integer
Higher values are less responsive.

Thresh Low
Thresh High
These two items control "hither and yon" clipping planes.
If equal, there is no clipping.
If not equal, the data is clipped beyond the specified range.

GTOPO30 nodata
This is the value used to signify that there is no data at a location. (In all cases I have seen this should be -9999)

GTOPO30 modX
GTOPO30 modY
These two items control subsampling the large GTOPO30 files down into something more reasonable. If you have the memory these can be set to 1 and all the data will be read. If set to 4, 1/16 of the data is actually retained from reading the file. If set to 10, 1/100 of the data is retained.

yiqR
yiqG
yiqB
These three items are a vector in RGB-space representing the transformation from color into luminosity. The default values as shown correspond to the NTSC standard.

ambient
For Warnock rendering, controls the amount of ambient light contribution.


Select the White Tool to set the background to white, foreground to black.
Select the Black Tool to set the background to black, foreground to white. With the Black Tool selected, zooming is done by clicking and dragging. (See Zooming)
In addition, there are special features of the White and Black Tools. With the Black or White Tool selected:
Zooming is done by clicking and dragging. (See Zooming)
The Warnock orientation ball can be manipulated. (See Warnock)


When enabled, surfPPC makes pleasant sounds, and speaks when important events occur. There are four sound and speech modes combined in a cycle. To advance to the next, type "S" or click on the "S" toggle.
0 No sound, no speech
1 Sounds but no speech
2 Speech but no sounds
3 Speech and sounds
The startup default mode is 3, sounds and speech.
The mode is saved and restored with preferences files.
The "bing" sound indicates the beginning of an operation.
The "bong" sound indicates the end of an operation.

These are the fields of the GTOPO30 header field used by surfPPC.





BYTEORDER M required



LAYOUT BIL required
NROWS 6000 required
NCOLS 4800 required
NBANDS 1 required = 1
NBITS 16 required = 16
BANDROWBYTES 9600 required
TOTALROWBYTES 9600 required
BANDGAPBYTES 0 required = 0
NODATA -9999 optional, otherwise -9999
ULXMAP 100.00416666666666 optional, otherwise 0
ULYMAP 39.99583333333333 optional, otherwise 0
XDIM 0.00833333333333 optional, otherwise 1
YDIM 0.00833333333333 optional, otherwise 1












unused
toolsym
togsym
CmdKey
Key
Description






 
 
 
 
+=
Zoom In Tool
 
 
 
 
-_
 
 
1
1
1
3D Drawing:X ON/OFF Toggle
 
 
2
2
2
3D Drawing:Y ON/OFF Toggle
 
 
3
3
3
3D Drawing ON/OFF Toggle
 
 
4
4
4
Animate ON/OFF Toggle
 
A
 
aA
A
 
 
a
 
a
True Aspect Ratio ON/OFF Toggle
 
 
 
 
b
Black Tool
 
 
B
bB
B
Show Sample Point ON/OFF Toggle
 
C
 
 
C
Contour Tool
 
 
c
 
c
Set Colors Palette ON/OFF Toggle
*
 
 
cC
 
(mac copy to clip)
 
 
d
dD
dD
Detailed ON/OFF Toggle
 
 
e
e
e
 
 
 
E
E
Execute List
 
 
f
fF
fF
Frame ON/OFF Toggle
 
f
 
 
 
 
F
 
 
 
 
 
g
gG
gG
Grids ON/OFF Toggle
*
 
 
 
 
h
*
 
 
 
 
i
 
 
s
jJ
sS
*
 
 
 
 
k
 
 
L
 
lL
Outline ON/OFF Toggle
 
 
LT
m
GT,
 
 
GT
M
LT.
 
 
 
 
m
Match Contours
 
 
 
 
M
Match Contours Inverse
*
 
 
 
 
(mac new)
 
 
 
O
O
Open... (levels only)
 
 
 
o
o
Open... (levels and colors)
 
 
p
pP
pP
Pause ON/OFF Toggle
 
 
 
qQ
qQ
Quit
 
 
r
r
r
Prism ON/OFF Toggle
*
 
 
sS
 
(mac save) (to save, see ` and ~)
 
 
s
 
sS
 
 
t
tT
tT
Track Chart ON/OFF Toggle
 
 
u
uU
uU
AutoMag ON/OFF Toggle
*
 
 
 
 
(mac paste)
 
 
 
wW
W
Close
 
w
 
 
w
White Tool
*
 
 
xX
 
(mac cut)
 
 
 
 
xX
*
 
 
 
zZ
Add to List
*
 
 
 
yY
y
 
 
 
 
~
Save Offscreen As BMP
 
 
 
 
`
Save Render As BMP
 
 
 
 
Enter
ReDraw Warnock
*
 
 
 
SP
ReDraw Planar
 
 
 
 
Return
ReDraw in same Planar/Warnock mode










When using surfPPC, when you hit a key, click the mouse, etc., the function actually performed may depend on context, on what happened before. Clicking in the drawing area is a good example; depending on the current tool, toggle settings, and EditParms parameters, different functions are performed all by simply clicking.
For example, when contouring:
The color of the contour line depends on several toggles and other settings in effect when the contouring is requested.
If the Sampling Tool is selected, the point is sampled and optionally labelled in one of several styles, depending on the toggle settings.
If the contouring tool is selected, the surface is scanned for the contour which passes through the position of the cursor.
On the other hand if the AutoContour tool is selected, the position of the mouse does not matter as contour levels are automatic and may not pass through the cursor position.
The preceding may seem obvious, but this section is for the others which may not be obvious at first. A common trick is,to interpret a shift-, option- or command click or keystroke somewhere in the window and react according to the current tool and state of the data, i.e. whether any is loaded or not at the time of the click,, as will be seen below.
Slope Analysis and Ray Tracing
Under Sampling Tool with data buffers loaded, Command-Click in drawing area for slope analysis, draws hairs and uses the wierd AutoMag effect. This is nothing but an attempt to make the hair lengths more evenly distributed. If AutoMag is on, the data is first scanned and the slopes are normailzed. The figure shows the effect. To obtain this picture, read mariposa-e, turn on AutoMag, clear to black, and command-click in the data window. The blue lines are follows down the slope. The combination of the fall-lines with the gnomons reinforces the contours of the surface.

Figure xx
surfPPC.034.automag.gif

Command-click when there is data loaded and the sample tool seelcted to obtain the gnomons array. Do It again and the gnomons disappear, leaving only the hairs. When the AutoMagnitude function is ON, the radius of the gnomons and length of the hairs varies with slope. When OFF, the radius of the gnomon is fixed. Type "f" or click on the "follow down" tool to explore the surface slope with fall-lines, which draws blue trails in the downslope direction.

When a file is opened, is bounding box of the surface is calculated, once and for all. But, this says nothing about the bounding box of the slope of the surface, which depends on the EditParms settings which can multiply the surface ZFactor and the slope zzfMult. Such a bounding box is also not normally necessary for ray tracing. For drawing the hairs, it made sense to pre-scan and scale the hairs by normalizing to the bounding box zof the slope. Enable AutoMag to do this, and disable AutoMag to show un-normalized "raw" hairs.
Opening Files
o, Command-o to read image AND its colors. If there are pre-existing colors, they are cleared.
O, Command-O to read image, but no colors. If there are pre-existing colors they are kept.

ColorMap Toggles
There are a number of colormap choices. The commands cycle upward or downward in the list.
Click on ColorMap toggles anytime or use the keyboard equivalent command.
To avoid needing to use the shift key, A shifted key (< or >) reverses cycle direction (so < = Next and > = Prev)
A unshifted key (, or .) works in its "forward" direction (so , = Prev and . = Next)

Warnock Demo Mode

Figure xx
surfPPC.027.demo.gif

Command-click when there is no data loaded in warnock mode to obtain the demo warnock rendering. Use the left and right arrow keys to change the warnock procedure. Here the Chkr() procedure is used.
When NO files are loaded, and the key is being displayed, Command-Click on the empty drawing area starts the demo rendering of a sphere. You can control the orientation of the sphere, and the drawing mode, and only in the demo can you specify a patterned sphere in one or more of the selected patterning styles, using the left and right arrow keys. This can be used to preset the orientation of the sphere before any data files are read.


Open a Surface (See Opening Files)
Open and Save Preferences (See Saving Files: Preferences)
Save as BHFF (See Saving Files: Images)
Font & Font Size controls
Steady Header and status lights
Convert to Color and Draw (See Drawing)
Stacked Up, Color-Filled Cuts with or w/o frames, prismatic, etc.
Animated, Stacked Up, Color-Filled Cuts with or w/o frames, prismatic, etc.
Interruptable
Map image onto surface
same image and surface
image on different surface
interpolate image when zooming, keep undo copy
Sample Point(s) (See Sampling)
sample a point
contour at a point
slope at a point
draw a path
spray particles (See Spraying)
ReDo
bi-cubic interpolation of height field
bilinear interp of texture colors
via Edit Parameters Menu
set a new image size
set a new Zoom In image size
via Zoom-In Tool
Draw Contours (efficiently, interruptably)
Uses Color Mapping Mode
Render any Size
Slope Display
Hair Gnomons
Follow up or dn (Spray)
Click to start a particle which follows slope down or up as long as...
the mouse button is still down at the same point
the particle is within the bounds of the image
the particle is still moving
Start over if the mouse is moved