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: P3D Updates must be applied to a version of P3D that was previously installed with the current baseline release (November 28, 2009) or later.

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.

Click here to download the AR090 update.  Note that this download is an update. To apply this update, you must have previously installed P3D.

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.