Proof 3D (P3D) Overview

P3D is Wolverine's long-awaited 3D animator.  It builds on the strengths of its 2D predecessors, P4 and P5, but offers new and exciting capabilities at a very affordable price. Please take a look at our Pricing page.

P3D Updates

Note: On July 21, 2011, Wolverine issued a new baseline release of all of its products.  The new baseline release incorporates all prior updates to P3D.  To get the latest version of P3D, you must first install the July 21, 2011 baseline release (if you haven't already done so) and then apply the latest update provided below. 

For details on how our updates work, click here.  To install the latest baseline edition, click here.

Release PR216 of P3D requires a license date of January, 2009 or later.

This update includes the following change:

SLX-style escape sequences are allowed in the text of "set userinfo" commands, e.g.,

    set 27 userinfo \R\B\URed bold underlined text

Multiple \R, \B, or \U escape sequences within the text toggle red, bold, and underlined rendering, e.g.,

    set 27 userinfo This is a line containing a \B\Rbold red\B\R keyword

To download and install Release PR216, click here.

Release AN206 of P3D includes the following change:

An "into" option has been added to the "move" trace file command, e.g.,

    move AGV 100 into Target

The above command takes its (X,Y,Z) destination from the current position of the object named "Target."  The target destination of the move is not updated if the object named "Target" subsequently moves.  See P3D's online help for details of the move command.

Release UG245 of P3D includes the following change:

Cumulative roundoff errors for the size and position of split screen windows have been eliminated. Such errors could accumulate across repeated saves of a layout file.

Release AN135 of P3D includes two changes:

1.  Limits imposed on the student version of P3D have been revised. The new limits are as follows:

    A.  Trace files are limited to 5000 lines.

    B.  Layout file sizes are limited to 25000 bytes.

    C.  Playing time is limited to 3 minutes.

2.  Warning messages are now issued when student P3D is used to convert ATF files in excess of 5000 lines to PTF files.  (PTF files created with the student version are subject to student limits.)

Release EP114 of P3D includes a student version of the P3D DLL, named SP3D.DLL. Prior to this release, there was no student version.

Release PR084 of P3D incorporates the following fixes:

1.  A problem with detaching an object in the middle of a string of attached objects has been fixed.

2.  A problem that caused billboarded text/messages to disappear at certain viewing angles has been fixed.

Release PR074 of P3D incorporates several improvements to Draw Mode and and alpha color rendering.

Release AN064 of P3D corrects a problem with "Set Camera Target" when the target object is the child of another object.

Release AN054 of P3D incorporates a number of fixes to object rendering and a few user interface tweaks.

Release AN044 of P3D incorporates a number of fixes to rendering of objects that make use of alpha blending.

Release EC213 of P3D incorporates a fix to rendering of directional objects with local paths, where the objects are themselves on another path.

Release EC123 of P3D incorporates a fix to rendering of objects on paths with zero speeds and remaining idle for extended periods.

Release EC053 of P3D incorporates a fix to orientation of objects placed at the ends of paths with their rear guidepoints (RGPs) off the ends of the paths.

Release OV213 of P3D incorporates several improvements to P3D's path-finding algorithm (used to define and extend paths in path mode).

Release OV053 of P3D incorporates a few tweaks to P3D's presentation mode user interface.

Release UN193 of P3D corrects problems with acceleration of collections of attached objects that span multiple paths.

Release UN133 of P3D corrects the a number of problems with file management for imported mesh files contained in a multiplicity of directories.

Release UN073 of P3D corrects the "remembering" of the final screen position from the most recent run.  Previous versions stored faulty non-full-screen screen positions when a run was exited in full-screen mode.

Release PR193 of P3D incorporates the following corrections:

1.  Serious!  Canceled attempts to save a layout after time zero could result in an empty layout file being saved.  This problem has been fixed.

2.  An object that is detached from its parent object while both are on an accumulating path is now properly recorded as an accumulation successor of its parent.  Previously, this action was not take, allowing the possibility for a detached object to overrun its former parent.

Release PR023 of P3D incorporates improved messages for camera positioning errors.

Release AR203 of P3D incorporates the following improvements and corrections:

1.  Set bar commands that set one of the boundaries of a bar, but do not specify a rate for the corresponding boundary now cancel an ongoing rate, if any, for the boundary.  This change was made for compatibility with P5.

2.  Several corrections have been made to abridged trace file generation.

3.  A warning is now issued if you attempt to save a layout after an animation has begun.  Saving a layout under such circumstances risks saving properties originally defined in the layout.  For example, a layout may contain layout objects that are subsequently moved.  If the layout is saved after they've been moved, in the updated layout, they'll be positioned at their current locations.

Release AR143 of P3D rincorporates additional  improvements for running in multi-monitor environments.

Release EB233 of P3D incorporates greatly improved support for running in multi-monitor environments. Note that window positions may change the first time you run the new release, particularly in multi-monitor environments. However, once you relocate the main window, its new location will be retained in future runs.

Release EB063 of P3D requires a license date of January, 2009 or later.  It incorporates fixes to on-the-fly decompression of compressed trace files (both ATF and PTF).

Release UG172 is a purely administrative release that incorporates Wolverine's annual renewal of its download certification.

Release UL112 incorporates the following change:

It is now possible to destroy child objects independently from their parent objects.  If a child object in turn has children of its own, they are automatically destroyed as well.

Release UN202 incorporates the following changes:

1.  A number of problems with abridged trace file generation have been fixed.

2.  The default winding order for imported (.x) mesh files has been changed from clockwise to bidirectional.  Winding order is used in the process of determining whether a surface should be rendered or culled (quickly ignored).  Each surface (mesh triangle) has a normal perpendicular to the surface.  When a surface normal points out from the plane of the screen, the surface is eligible for rendering, and when the normal points in from the plane of the screen, the surface is culled.   The interpretation of "out" and "in" depend on whether a right-handed or left-handed coordinate system is used.  For polygons, vertex winding order (clockwise or counterclockwise) has the same effect.  Note that a non-culled surface is still invisible if it lies behind another surface. 

Because there is no standard for winding order, we have elected to use "bidirectional" as the default for imported meshes.  Under the bidirectional approach, the absolute values of surface normal angles are used; hence, no surfaces are culled.

In the event this causes problems with any imported meshes you use, you can change the winding order for any mesh by using the mesh management dialog.  (Click the "IM" icon on the Draw Mode toolbar, and select the "Options" tab.)

Release AY012 incorporates a few improvements common to all Wolverine products.

Release PR042 incorporates a few user interface tweaks to P3D's and general improvements.

Release AR292 incorporates a few tweaks to P3D's pixel shaders.  These tweaks should brighten colors that were formerly too dark from certain viewing angles.

Release AR272 incorporates a number of extensions for better handling of imported mesh files, e.g. .X files.  The "Imported Mesh" management windows now contains an "Options" pane that allows specification of the winding order (clockwise, counterclockwise, or bidirectional) of a mesh. Winding order determines whether the triangles comprising a mesh are visible from one side of the triangle, the other side, or both.  The primary uses of winding order specifications are (1) to accomodate meshes prepared by "other" software, and (2) to permit the use of things such as planar "walls" that should be visible from either side. 

Release AR212 incorporates bug fixes and improvements to rotational extrusions.

Release AR142 incorporates bug fixes and improvements to RGP motion. 

Release AR082 incorporates fixes to to step mode in conjunction with compressed trace files.

Release AR012 is a cosmetic release intended only to synchronize P3D with the latest releases of SLX and P5. 

Release EB222 incorporates the following improvements:

1.  Mouse drag-based zooming in and out has been revised to improve computational stability.  Prior to this update, mouse-based zooming could result in camera radii that were very small, compared to the size of a layout.  When the ratio of camera radius to layout size is very small, all kinds of computational artifacts can take place.

2.  Alpha blending has been implemented for imported mesh files.  For example, in a mining application, you could import a mesh that portrays the current state of a tunnel, declare a small alpha blending factor, e.g., 0.2, and show through translucent tunnel walls the movement of equipment inside the tunnel.

3.  A problem with directory searches for imported texture files has been fixed.

Release EC221 incorporates a number of minor user interface improvements.

Release CT071 corrects a number of problems with presentation scripts that have components contained in complicated directory structures.

Release UL211 fixes two problems:

1.  On most systems, a DirectX installation/update problem caused fatal ERROR_MOD_NOT_FOUND errors during compilation of P3D's vertex shaders.  The incompatibility with earlier distributions has been found and fixed, but required us to issue a new baseline release.

2.  Under certain circumstances, roll, pitch, and yaw commands specifying "to" target angles could add an additional 360 degrees to a requested rotation.  This problem has been fixed.

Release UL111 fixes a problem introduced by upgrading DirectX libraries in the June 23, 2011 baseline installation.  The major symptom of this problem was screen corruption.

Release AY171 contains the following fixes:

1.  Further improvements have been made to relative file paths.  For example, names of texture files used as materials in a .x files are interpreted as relative to the .x file, whose name in turn is interpreted as relative to the layout file.

2.  Beginning with this release, updates of P3D.exe and P3D.dll will be issued concurrently.  This corrects an oversight in the preparation of updates

Release AY021 includes the following improvements:

1.  A number of user interface issues associated with importing meshes have been fixed.  In particular, meshes, which are available throughout a layout, can be defined when there's an active class.  Meshes so defined "belong" to the layout, not the currently active class.  Mesh instances can belong to classes.

2.  Further improvements have been made to handling of subdirectories.  In particular, mesh file names are now properly treated as relative to the layout file unless fully qualified.

Release PR221 includes the following fix:

A number of problems with "relative" subdirectories in file names used in presentation scripts have been resolved.

Release AR151 includes the following fix:

A work-around has been implemented to circumvent crashes caused by faulty code generation in the compiler used to build P3D. These problems were reported for the P3D DLL, but could also occur in other versions of P3D.

Release CT140 includes the following improvements:

Steps have been taken to reduce failures to recognize Wolverine security keys.  Such failures were already rare on most systems, and such henceforth be quite rare.

The EP030 release of P3D adds a preliminary version of acceleration for objects on non-accumulating paths.

The general rules of operation are as follows:

1.  Accelerations can be assigned only to individual objects on a non-accumulating path.  Acceleration is not yet supported as a path property or class property.  Thus, if you wish to use acceleration on a path, you must assign an acceleration to each object placed on the path.

2.  Accelerations can be positive or negative.  Positive accelerations are in the direction of increasing path distance, and negative accelerations are in the reverse direction.  Note that this convention is identical to P3D's interpretation of object speeds on a path.

There are four combinations of speed and acceleration:

A.  A positive speed and a positive acceleration result in an object accelerating down a path.

B.  A positive speed and a negative acceleration result in an object moving down a path at a progressively slower speed.

C.  A negative speed and a negative acceleration result in an object backing up along a path at a progressively faster speed.

D.  A negative speed and a positive acceleration result in an object backing up along a path at a progressively slower speed.

3.  Speeds cannot reverse sign as the result of acceleration or deceleration.  If an object's speed accelerates or decelerates to zero, the object is stopped; i.e., its speed and acceleration are set to zero.

4.  Since a negative speed is required to specify backward motion along a path, if you want to apply negative acceleration to an object whose initial speed is zero, you must set its initial speed to a small negative value, e.g., -0.00001.

5.  The following examples illustrate the syntax of the "set" command for specifying accelerations of path objects:

set 99 speed 0 accel 5        move forward, accelerating

set 99 speed 10 accel -1    move forward, decelerating

set 99 speed -.0001 accel -1    move backward, accelerating from a dead stop

set 99 speed -10 accel 1    move backward, decelerating

6.  Accelerations can also be specified with specifying a speed, in which case the current speed of an object is used:

set 99 accel 2

The UL210 release of P3D includes the following improvements and fixes:

1.  Specifying a rate of zero in a "scale" command now properly updates the current scale of the object to which the command is applied.

2.  Floating point precision has been relaxed in the algorithm that detects intersecting lines.  Previously, the test issued was too stringent.  The primary symptom was P3D's failure to detect obvious intersections when trimming lines and arcs.

3.  A number of user interface issues have been fixed with the "Intersection Gap Tolerance" feature of the "Setup" toolbar drop-down menu.

The UL060 release of P3D corrects a problem affecting the positioning and orientation of layout textures.  This release also introduces a new option for paths, entitled "backandforth".  If a path is defined to be a "backandforth" path, when objects reach either end of the path, their direction is reversed; i.e., their speed is set to -speed.  This option is useful for animating the motion of arms and legs of moving people, the flapping of insect/bird wings, etc.  Note that the "backandforth", "accumulating", and "circular" options for paths are mutually exclusive.

The UN140 release of P3D corrects a problem with computation of error tolerances for path encroachment errors.

The AY270 release of P3D fixes the following problems:

1.  A number of problems have been fixed in proof3d.slx.

2.  Polylines that are drawn in the backdrop color no longer affect other objects on the screen.  Drawing of backdrop-colored polylines is now totally suppressed, rather than drawing in the backdrop color.

The PR190 release of P3D includes an updated version of Proof3D.slx, the SLX interface for generating P3D trace streams).

The PR090 release of P3D corrects a problem with selective scaling of objects (scaling along one or two axes, but not all three).

The PR080 release of P3D corrects a number of problems with interaction between object orientations and segment-based auto-roll, auto-pitch, and auto-yaw.

The PR060 release of P3D corrects a problem with destruction of child objects. (When a parent object is destroyed, all of its children are implicitly destroyed as well.) The problem was that some of the bookkeeping details for child object were not fully expunged, which could result in subsequent references to objects that no longer existed. This problem could be manifested in a wide variety of ways.

The AR090 release of P3D addresses general user interface issues in Class Mode and in specifying plots in Draw Mode.  In addition, P3D now "remembers" your preferred file extension for files to contain "grabbed" screen images, so you only have to choose an extension once per run.

The heuristics for angular extrusion have been changed to provide more detail.

The AR040 release of P3D fixes a problem with drawing in Class Mode that was inadvertently introduced in Release AR010.

The AR010 release of P3D incorporates the following changes:

1.  A number of issues contributing to instability of mouse-based view manipulation when the camera is "close" to the layout, such as <ctrl>-dragging to zoom in, have been resolved.  Prior to this change, zooming in that resulted in extreme magnification of a layout, could cause the current view to wobble, reflecting computational instabilities.

2.  The Camera dialog box has been expanded to allow distortion of all three axes.  Previously, only the Z-axis could be scaled (typically to exaggerate height).  Distortion of the X- and Y-axes can be used to compensate for distortion that would otherwise appear.  For example, consider an animation of an airport located at thirty degrees of longitude.  If the coordinate values for such a layout are derived as planar projections of (latitude, longitude) values, the layout will appear to be "squashed" vertically, because north-south distances will appear to be shorter than east-west distances.  Circles will appear to be ellipses.  To compensate for this distortion, one could scale Y-axis coordinate values by 1/cos(30 degrees) = 1.1547.

3.  In draw mode and class mode, coordinate values are now displayed next to the mouse cursor.  Prior to this change, coordinate values were shown only when drawing layout elements.  This change makes it easy to simply explore a layout without having to draw and discard geometry.  Note that P3D assumes one fixed and two variable dimensions when the mouse is moved.  A common error in the use of P3D is to ignore Z-axis coordinate values and focus on (X,Y) coordinate values.  The "Elevations" icon on the toolbar (a trident-shaped red/green/blue icon) can be used to set the elevation (coordinate value) of the fixed axis.

End of the AR010 update.

The EB250 release of P3D incorporates the following changes:

1.  A problem with rendering of messages contained within objects has been fixed.

2.  Several problems in the user interface for specifying rotations for text and messages have been fixed.

The EB170 release of P3D incorporates a number of minor improvements to P3D's user interface.

The EB040 release of P3D incorporates the following changes:

A thread synchronization problem in dual-core environments has been fixed.  Although synchronization failures could cause a multitude of problems, the most common manifestation was storage management corruption.

Additional improvements have been made for dealing with situations in which of large numbers of attached objects, e.g., trains, move across a multiplicity of end-to-end paths.

The EB010 release of P3D incorporates the following changes:

Additional improvements have been made for dealing with situations in which of large numbers of attached objects, e.g., trains, move across a multiplicity of end-to-end paths.

The AN210 release of P3D incorporates the following changes:

1.  Several motion roundoff problems have been solved for situations in which of large numbers of attached objects move across a multiplicity of end-to-end paths.

2.  The heuristic for determining the number of lines segments used to approximate arcs has been improved.

The AN140 release of P3D incorporates miscellaneous, largely cosmetic updates.

The AN070 release of P3D incorporates the following changes:

1.  Extruded, degenerate polylines containing only two vertices are now handled properly.

2.  A number of minor problems with creation of plots have been fixed.

The EC159 release of P3D incorporates the following changes:

1.  Layout objects that are backdrop-colored are no longer totally excluded from P3D's lists of existing objects.  Prior to this release, actions such as "place 123 into Lobj", where Lobj was a backdrop-colored object failed, because the existence of Lobj could not be confirmed.

2.  Lines added to a layout solely by using the keyboard (no mouse input) are now accepted.

3.  A number of improvements have been made to 3D plots.

End of the EC159 Release

The EC109 release of P3D incorporates changes to security key interrogation for Run-Time P3D applications.  Running P3D in "normal" mode is unaffected by these changes.

The OV289 release of P3D incorporates miscellaneous updates and brings P3D into sync with the November 28, 2009 baseline installation of Wolverine's products.  (Click here for an explanation of how our baseline installation works.)

The CT139 release of P3D incorporates a number of general improvements, including resizing of plot labels when zooming in or out.

The CT139 release of P3D fixes a problem with bitmap texture dimensions that affected the display of bitmap slides in Presentation Mode and sometimes caused textures to be applied to mesh surfaces incorrectly.

The EP259 release of P3D is a cosmetic update that brings P3D into line with other Wolverine products.

The UL079 release of P3D includes updated help files.

The UN229 release of P3D includes updated help files.

End of the UN229 update

The UN119 release of P3D incorporates the following fix:

Creation of new imported meshes no longer causes exceptions when saving the layout in which the meshes are contained.

End of the UN119 update

The UN089 release of P3D incorporates the following fixes:

1.  A number of problems with rotation of child objects have been fixed.

2.  A number of problems with drawing of polylines, including cutting and pasting, have been fixed.

3.  The algorithms that P3D uses for constructing filled/textured polylines requires all polyline vertices to be coplanar.  Diagnostics have been improved for polylines that are fail to meet this requirement.  (In the past, such polylines produced "triangle error count" messages that bore no obvious relation to the true cause of an error.)

End of the UN089 update

The AY189 release of P3D incorporates the following fixes:

1.  Mouse selection of objects and geometry has been corrected for the case when camera rotations are in force.

2.  Rotations by very small angles no longer wrap around to 360-degree rotations.

End of the AY189 update

The AY159 release of P3D incorporates the following fixes:

1.  A problem with automatic generation of texture names for P5 "Picture" layout elements imported into P3D has been fixed.

2.  Closed polylines drawn with collinear first and last edges no longer generate line buffer overruns.  (Consecutive collinear edges are collapsed into a single line.  When collinear edges spanned the first/last vertex of a polyline, the edge counts got off by 1.)

3.  The vertices of filled or textured polylines must all lie in a single plane.  The reason for this is that filling of non-planar polylines is ambiguous.  Consider a polyline with four vertices, three of which lie in a plane (by definition) and the fourth of which is located above the plane of the other three. If it were allowed, filling of this polyline would result in two triangles, with a fold.  The fold could be located in either of two places. (Draw a picture.)

In the past, attempts to fill non-planar polylines usually resulted in triangle count errors. The true source of such a\errors was extremely difficult top track down.  In the event of triangle count errors, P3D now analyzes the offending polyline's planarity and issues a message that shows sample vertices in error. The likeliest cause of such errors is drawing vertices and forgetting about their third axis (usually the Z-axis).

4.  P3D requires imported .X files to contain at least one "material."  In earlier releases of P3D, attempting to import a .X file containing no materials resulted in a chain of repeated messages that was hard to break.

5.  Deletion of imported meshes now works properly

End of the AY159 update

The PR289 release of P3D incorporates the following fixes:

1.  A problem with automatic conversion of P5 "Picture" layout elements to P3D textured polylines has been fixed.

2.  When creating a new imported mesh, P3D mistakenly generated multiple entries in the Imported Mesh dialog box.  Clicking on the "wrong" entry caused P3D to crash.  The problem has been resolved so that only a single entry is created.

A problem dealing with concentric circles during path definition has been fixed.

End of PR289 update.

The PR019 release of P3D incorporates the following improvement:

A problem dealing with concentric circles during path definition has been fixed.

The AR319 release of P3D incorporates the following improvements:

1.  A problem with transitions between class mode and class path mode has been fixed.

2.  Text positioning for multi-line text and messages has been improved.  Prior to Release AR319, only the first line of a multi-line message was properly positioned.  For example, for centered text, only the first line was centered, and subsequent lines were left-justified.  Now, subsequent lines are centered as well.

Note that the line separator for multi-line text/messages in both the P3D IDE and in layout & trace files is "\n", e.g.,

    Write MyMessage Line1\nLine2\nLine3

End of the AR319 update.

The AR269 release of P3D incorporates two minor improvements:

1.  The tie-breaking rules for mouse-click selection of objects in draw mode and class mode have been changed.  Formerly, clicks that fell within the bounding box of a layout object or imported mesh instance took precedence over other objects.  This made it difficult, if not impossible to select objects that were within one of these bounding boxes.  That rule has been reversed.  It is now easier to select objects that are in or near a layout object or mesh instance.  It is only marginally more difficult to select layout objects and mesh instances.  You just have to be sure to click within their bounding boxes, but not too close to other objects.  Note that changing the camera position may sometimes be required to discriminate more easily among adjacent objects.

2.  The "Focus = Centroid" option of the View menu has been improved.  The camera radius chosen is in part determined by the standard deviation of the collection of points defined by the collection of on-screen objects.  This reduces the influence of outlier points.  For example, imported DXF files frequently have extreme outlier points that are invisible to the person who prepared the DXF file, but seen by P3D.  Formerly, the existence of a single extreme outlier point would cause P3D to shrink the size of an entire drawing down to a small dot in order to get everything to fit.

The processing of imported meshes in "Focus = Centroid" calculations has been improved.

End of the AR269 update.

The AR259 release of P3D is a general "cleanup" release that fixes a number of problems with recently added features, such as polyline-based ribbons and pipes.

The AR199 release of P3D incorporates the following improvements:

1.  Additional general improvements have been made to polyline creation and editing.

2.  Two new options are available for polylines: pipes and ribbons. In addition to their obvious use, pipes can be handy for representing things such as tunnels or mine shafts. Ribbons provide a very handy method for quickly defining lanes of traffic.

The AR119 release of P3D incorporates the following improvements:

1.  Numerous changes have been made to improve polyline creation and editing.

2.  The user interface for importing mesh files has been tweaked.

3.  Texture file names in imported .x files are interpreted as relative to the directory containing the .x file, not the layout directory.

4.  Some improvements have been made to the scaling and positioning of billboarded text.  Note, however, that since billboarded text is always rotated to face the camera, the relationship between the text's defined location and justification and the way it appears from arbitrary viewpoints is at best rather vague.

End of the AR119 Update.

The AR049 release of P3D incorporates the following improvements:

1.  Numerous improvements have been made to DXF importing.

2.  A number of problems with the handling of imported meshes have been resolved.  Please refer to the description of imported mesh handling in the notes for the EB269 release, below.

3.  The Polyline drawing tool is now able to construct rounded corners.  (All you have to do is specify a radius for a vertex.)  Previously, to round corners of a polyline, you had to first draw the polyline as a collection of straight edges and then use the fillet tool to round corners.  This was a cumbersome process.  Now everything can be done using a single tool.  In fact, the use of the fillet tool to round polyline corners is no longer allowed.

End of the AR049 Update.

The EB269 release of P3D incorporates massive changes to P3D:

1.  Significant improvements have been made to DXF importing.

2.  The handling of imported mesh files has been upgraded and generalized. To import a 3D mesh file into a P3D layout, two steps are required. First, a "define mesh" command is required to specify a file and to assign a P3D internal name to the file. Second, one or more instances of the mesh are defined by means of "mesh" commands. For further details, take a look at the descriptions of the "Define Mesh" and "Mesh" commands in P3D's on-line help. Note that P3D's DXF import feature now converts 3D solid objects into .P3M files (a Wolverine format).

3.  It is no longer necessary to wrap imported mesh files into a P3D class. Prior to this release, a P3D class was either a "normal" class (containing lines, arcs, text, etc.) or a class comprising a single mesh file. It is now possible to insert mesh files directly into a layout, and a P3D class can be any mixture of "normal" drawing elements and mesh file instances. Multiple mesh instances can be included in the same class.

4.  Text items and Messages can now be "billboarded." "Billboarding" is a term used in 3D gaming to describe objects that always point toward the camera, no matter how the camera is oriented. The classic application of billboarding is to attach billboarded messages to moving objects, e.g., aircraft in an air traffic animation. If a moving object is relatively flat, and text describing the object is always written in the plane of the object, when the object is viewed from the side, the text may be difficult to read. If the text is billboarded, it will be readable unless the object is too far from the camera.

5.  A "rerun" icon has been added to P3D's toolbar. This icon is a convenient shortcut for jumping to time zero and restarting an animation.

6.  The number of digits P3D uses when writing layout files has been increased. Nearly all of P3D's internal floating point calculations are done using single-precision arithmetic. This change assures that there's no loss of precision when values are written to a layout file. Note that single-precision arithmetic offers about 6-7 decimal digits of precision. Earlier versions of Proof, including P5, did/do most of their arithmetic using double precision, which offers 16-17 decimal digits of precision. The reason P3D uses single precision is that all modern graphics hardware uses single precision arithmetic.

End of the Release EB269 update.

The EB129 release of P3D fixes a problem with importing DXF files.

The AN309 release of P3D adds support for non-English characters, e.g., German characters with umlauts. P3D now conforms to the Code Page 1252 standard, which supports most European languages.

The AN159 release of P3D corrects a problem with draw mode deletion, as well as undoing deletions, and undoing undo's of layout objects that contain sub-objects.  It also corrects a minor annoyance with view deletion.

The AN149 release of P3D is a continuation of the work described on Release AN079 below.  A number of features have been further polished, and a new command line utility, AnalyzeX.exe, is now provided (in the P3D directory) for exploring the contents of .X files.  AnalyzeX.exe is invoked as follows:

    AnalyzeX myXfile    (A ".x" suffix is assumed.)

The Setup dialogs for "Hardware/Software Capabilities" and "Hardware/Software Configuration" have been updated.  There's a new option for enabling Dual Core support.  Although Direct3D does not provide dual core support, activities with P3D such as updating object positions are easily partitioned into two parallel streams.  This approach offers a modest performance improvement for animations that move large numbers of objects.

The AN079 release of P3D incorporates changes and improvements to .X file processing.  All users who make use of imported .X files should download and install this update. Details are as following:

1.  P3D now handles binary format .X files on its own.  Previously, P3D handled only ASCII format .X files and relied on DirectX for importing binary .X files.  P3D's processing is faster, and having P3D perform its own importing of binary .X files makes it easier to explore compatibility issues arising from their use.

2.  P3D can now generate vertex normals for .X files that are generated without this information.

3.  The .X file syntax P3D uses for importing .X files has been relaxed to accommodate .X files that are generated by applications we had not previously encountered.

The AN059 release of P3D incorporates general cleanup and responses to user suggestions. It adds no new functionality.  All P3D users should download and install this update.

The EC298 release of P3D incorporates a fixes to a number of minor problems and adds a new mode of plotting.

Plots can now be used for plotting triangles. The default mode of operation remains plotting line segments. Line plotting and triangle plotting cannot be mixed in the same Plot. In other words, a Plot is either a line plot or a triangle plot, but not both. If a Plot is a triangle Plot, you cannot achieve the effect of a line by supplying a triangle with two of its three vertices being identical. Graphics hardware completely suppresses triangles with area zero.

The EC228 release of P3D is a major release that introduces the following new capabilities:

1.  P3D now supports Z-axis scaling. You can manipulate Z-axis scaling by using a new tab that has been added to the Camera dialog.  When a Z-axis scale is specified, it is applied to all Z-coordinate values in an animation. In certain applications, it can be advantageous to distort Z-coordinate values. For example, in an air traffic control animation showing airplanes flying over an entire country, aircraft altitudes are not obvious when drawn to scale. Increasing their Z-scale improves visibility without requiring "manual" scaling of data by the software used to generate a trace stream.  Z-coordinate scaling is a property of an individual view, so it is possible to provide a multiplicity of Z-scales in a single animation.

2.  P3D now supports specification of "alpha" factors for drawing Plots. Alpha factors can be specified for plot data, axes, and X-, Y-, and Z-grid lines. An alpha factor specifies a blending percentage.  For example, if grid lines are drawn with an alpha factor of 0.25, everywhere they overlap other elements of an animation, the resultant color will be 75% of what it would have been without any overlap of plotted information, plus 25% of the respective grid line colors.

Addition of alpha factors makes it possible to overlay significant portions of an animation with plots, without having the plots become unduly obtrusive.

3.  A "preserve aspect ratio" option has been added for polyline textures. If this option is selected for a polyline, a texture is applied to a polyline without "squeezing" its dimensions to fit the maxima of the polyline. Instead, if the aspect ratio defined by the extrema of a polyline does not match the aspect ratio of the texture bitmap, texture wrapping is performed along the axis that is "too short." Note that older hardware may not fully support texture wrapping, in which case visible streaks of color typically appear. In general, it's best to draw polylines in a proportion identical to the bitmap texture to be applied.

4.  P3D's Setup menu has been streamlined by placing a number of video hardware/software options into a single dialog.  A new option has been added to allow specification of how textures are mapped to screen pixels. Three different performance vs. appearance alternatives are available.

End of the EC228 Update

The EC188 release of P3D is a cleanup release that fixes a number of problems and polishes off some of the recent developments in P3D.  All users of P3D should install this update.

The EC158 release of P3D incorporates fixes to a number of problems with .X file import, texture support, and attach/detach.  The efficiency of .X file support has been improved by retaining significant portions of data structures built the first time any given .X file is encountered in a P3D session.

The EC118 release of P3D fixes a problem with importing DXF polylines that use "bulges" to create curved segments.  In addition, the sensitivity of mouse + shift key manipulation of the camera has been increased.

The EC108 release of P3D fixes a problem occurred when displaying objects that were imported meshes.  When Direct3D shader model 3 was enabled, imported meshes in general, and imported meshes that were used as subclasses of other P3D classes in particular, failed to appear on the screen.

The EC098 release of P3D fixes a number of user-reported problems and adds one major new piece of technology.  P3D is now able to directly read ASCII .x files.  It previously used a Direct3D API function for doing this.  P3D's importing is considerably faster; its diagnostics are better; and since Wolverine controls P3D, any incompatibilities that arise when importing .x files form other software can now be dealt with more effectively.  Previously, there was little recourse if something went wrong inside the "black box."

While we have tested quite a few .x files, there will be a learning curve associated with P3D's .x file importing; however, in the long run, the improvements will be worth it.

End of the EC098 Update

The OV208 release of P3D corrects at problem with the detach command that could arise when an object and its parent were both on the same accumulating path.

Release OV198 fixes two obscure problems:

1.  THE P3D debugger now properly handles display of extremely long trace stream commands (by truncating them).

2.  A problem with layout file-relative texture file names has been resolved. This problem arose when the first letter of such a file name matched the letter of the drive containing the layout file.

Release OV148 adds detection of degenerate polylines for which filling is requested or a texture is to be applied.  For example, to use filling or to apply a texture, a polyline must have at least three edges and be closed.  When an attempt is made in P3D draw mode to fill or apply a texture to a degenerate polyline, a warning is issued, and the request is ignored.  Prior to this change, it was possible to construct filled/textured polylines that were incompletely drawn.

Release OV138 fixes a number of problems with importing of .X files.

Release OV128 fixes a number of inconsistencies that could arise when switching back-and-forth between view-specified camera positioning and "manual" positioning of the Camera object.

Release OV078 incorporates improvements and corrections to all issues reported by P3D testers.

This release also offers improved interactions between an animation and P3D's debugger.

In addition, switching back and forth between view-specified camera placement and explicit placement and aiming of the Camera object has been improved.

When switching from traditional view-specified camera placement to explicit manipulation of the Camera object, P3D assumes virtually nothing.  If you wish to manipulate the Camera object, you must explicitly place it and set its pitch and yaw.  Roll and pitch default to zero, exactly as they would for any other object, and the Camera points in the direction of the X-axis. Note that the Camera object's pitch is the negative of camera latitude, and the Camera object's yaw is 180 degrees minus camera latitude.  For example, when the Camera object's pitch = -45 and its yaw is -90, aiming of the camera is identical to specifying latitude 45 and yaw = 90; i.e., the Camera will point to the north and down by 45 degrees.

To facilitate manipulation of the Camera Object, a "view" keyword has been added to the "place at", "pitch", and "yaw" commands:

     place Camera at view [ view_name ]

    pitch Camera to view [ view_name ]

    yaw Camera to view [ view_name ]


When such commands are used, the Camera object is positioned in accordance with the first dynamic window of the specified view. If no view is specified, the currently active view is used. The specified or implied view must contain at least one dynamic window.


The "set view" command supersedes camera positioning accomplished by manipulating the Camera object.  If you wish to switch back to explicit manipulation of the Camera object subsequent to issuing a "set view" command, you must explicitly set all pertinent positioning properties (almost always the Camera Object's position, yaw, and pitch).


End of the OV078 Update

Release CT248 incorporates improvements and corrections to all issues reported by P3D testers.  In addition, this release fixes a number of problems with the use of roll, pitch, and yaw commands when they are used to dynamically point the P3D's "Camera" object.

Release CT018 incorporates improvements and corrections to all issues reported by P3D testers.  In addition, this release offers improved ability to quickly change views by using mouse drags.  Details are shown in "Getting Started, Manipulating Views" in P3D's on-line help.