Carbon Graphics Announces Geo Version 1.0
Park City, Utah - October 1 2003 -
Carbon Graphics is pleased to
announce the upcoming full release of its flagship Geo product. This release
reflects the encouraging feedback from our growing customer base &
introduces many cutting edge features as well as bug fixes. The main highlights are...
-
Added a Real-World Width & Real-World Height size fields to
the texture property dialog. These values can be used in various texture mapping
applications.
-
Added a Repeat Factor to the Per-Face Mapping Tool. This change
makes the tool interactive. Any change to the current texture or current
texture's real-world width & height values will be reflected in the mapping.
-
RC4 has a bug regarding the display of selected vertices when in Shrink-Face
mode (selected vertices were drawn highlighted in the non-shrunk location). This
has been fixed.
-
Added the ability to set a Hard-Edge flag in the Vertex attribute page.
This flag forces the use of the Vertices' face normal during shading -
effectively retaining a hard edge. Support added in the Geo format for the
flag.
-
Added the ability to set a Normal Freeze flag in the Vertex attribute
page. This flag forces Geo to leave the normal alone during calc-shading
operations. Support added in the Geo format for the flag.
- Added Vertex to the list of Nodes that can be searched by attribute. To
access - ensuring that Vertex pick mode is active - click on the Select->On
Property menu.
- Revamp of the Undo Engine to fix some reported crash bugs. This has
resulted in some Plugin SDK changes that will require minor user code
changes if Undo had been implemented for the plugin. Contact Carbon Graphics
for details.
- Fixed a crash-bug in the Merge Tool.
- Added missing (or broken) Undo functions for the following
tools:
- Text
- Duplicate
- 3-View Template
- Tube
- Rotate
- Translate
- Place
- Flip-Face
- Merge
- The Geo Wire-frame display did not display Decal (aka Subfaces)
outlines . This has been fixed.
- Geo would crash when clicking on the Terrain and/or Billboard check
flags in the RenderGroup property panel. This is no longer the case.
- Polygons created with the first 3 (or more) vertices being colinear will no
longer generate an invalid Polygon normal.
- Geo now transparently support Concave Polygons. Although these are a
bad thing for the run-time (and Geo's) performance - they are a useful
modeling tool. This release identifies and tesselates the offending polygons
"on the fly", even although users still deal with their 'n-sided'
concave polygons.
- Added a Select Concave Polygons function under the Select Menu.
- Reworked the Triangulate tool so that it correctly triangulates
concave polygons. This was not previously the case.
- Sometimes Geo would load a textured model a skew the initial texture
found in the palette (and on any textured polygons using the texture). This
has been fixed.
- The Show Vectors button did not work when showing LightPt direction
vectors. This has been fixed.
- Added the ability to View Texture Actual Size. You can pop-up a
window with a pixel accurate image of the current texture by double-clicking
on its thumbnail in the texture palette or by invoking the View Actual
Size... item in the Texture palette File menu. When the image-view
window is open it displays the current texture as it is being interactively
reset by clicking other texture thumbnails in the palette.
- Under certain circumstances the Rotate Tool would mangle geometry if
a rotated primitive contained a Behavior. This has been fixed.
- Fixed the Coordinate Input controls in the following ways...
- Geo would crash when picking an existing vertex with one of the Freeze
Flags set.
- Overall, the Freeze Axis Input now works as intended.
- Added keyboard shortcuts for the following common tools...
- Polygon
Shift+f
- Translate
Shift+t
- Rotate
Shift+r
- Scale
Shift+s
- Place
Shift+p
- Duplicate
Shift+d
- Modify Vertex
Shift+m
- Planar Mapping
Shift+x
- Remove All Helper Points Shift+SPACEBAR
- Changed the individual Pickmode keyboard shortcuts to the following...
- Group
Shift+Ctrl+c
- Polygon
Shift+Ctrl+f
- Vertex
Shift+Ctrl+v
- External
Shift+Ctrl+e
- Text
Shift+Ctrl+t
- Added a new On Keyboard Shortcuts dialog to the Help Menu.
- There was a bug with Geo's Auto-Lod switching mechanism - making it
possible to permanently "turn-off" all geometry display. This is no
longer the case.
- Added a Weld Verts tool with a user-definable merge tolerance. The
tool acts on the the current selection list or the entire model if nothing is
selected.
- Highlighting is now draw with a thicker line - making it easier to see in
some cases.
- Improved the visual display of Wire-Over-Solid (also known as Outline)
render mode when viewing with Z-Buffer on (less outline "tearing").
- Added a Flatten Transforms Tool. This optimization plugin traverses
the selection list (or entire model if nothing is selected) and
multipies out any transform-effected vertices. Transforms associated with
Externals or Instances are left alone.
- Added a Modify-UV (texture coordinates) Tool. This tool allows
users to hand-modify existing Vertex UV values by interactively setting the UV
value within a "texture-space" window. This 2D window displays the current
texture that the vertices reference and the polygon/vertices location within
the texture. Interaction is the same as the main 3D views. There are no modes.
Vertices can be dragged individually, collectively or scaled. The scene can be
panned and zoomed with no perspective distortion. Other tools include UV
alignment, Collapse, Fit, Select All etc. The tool also provides an unlimited Undo,
one-level deep Redo (undoes the last Undo operation) as well as Undo-All (by closing the ModifyUV Window and/or
clicking on the tool [Cancel] button).
- The lower Status-Bar controls (Current Parent, Texture, Texture Unit
etc.) have now been moved above the 3D view-ports and just below the
toolbars. This minimizes mouse movement.
-
Added a new TextureUnitUsageCompressor Tool. This tool checks Polygon
texture unit usage and compacts unit usage sequentially from unit # 0. For
example: A polygon using Texture Unit # 4 and Texture Unit # 7 for its
first & second textures respectively will be changed to using Texture unit #
0 and # 1. Texture unit texture functions and Vertex UV references are changed
also. There may be some performance improvement from this operation.
-
Made the following changes to the OpenFlight import & export Plugins:
- Huge LOD Switch values would crash Geo when displayed in the property
page. This has been fixed.
- Geo now supports Flight Vertex Hard-Edge & Freeze flags
both import & export.
- Flight Lit & Lit Gouraud flags (which have a different
meaning in Geo) now correctly loaded & saved. The visual effect that was
seen in Geo & after export was the loss of vertex normals.
- Encountered some customer OpenFlight files which reportedly loaded
fine in Creator(tm) but not in Geo. Discovered that the files had a
large amount of random data "tacked onto" the end of the file
& which did not seem to honor the (known to us) OpenFlight
specification. The Geo OpenFlight loader plugin now guards against such an occurrence
and loads such modified OpenFlight file succesfully.
- "Active" Variables (defined in the Variable Editor) are now
interpreted by the OpenFlight exporter as defining the constraints of
the Translate/Scale & Rotate actions. These Actions are converted to
OpenFlight DOF nodes but if they are driven by an active user
variable - then the user variable will provide the DOF min/max constraints,
step value etc. (previously the only way to set DOF constraints was to have
a Range action prior to the Translate/Rotate or scale action).
- Fixed a bug, introduced in RC4, which would crash Geo when writing
comment records (of a particular size!).
- Fixed a problem with reading & writing Polygon Billboard flags.
- Added a new user preference: FlightBlendMaterialPolyColorOnLoad. This
option (off by default) pre-blends the from-file material diffuse color with
the polygon colors (this matches what is done at run-time in Creator(r) ).
The result of this is that all material palette diffuse components are all
set to (1,1,1) ie white. This ensures that the model displays the same if
exported & reloaded back into Creator. This operation will not provide
work in all cases (due to differences between Geo & Creator), but is
here as an option for when it makes sense.
- The Units field of the header record was being ignored. This is no
longer the case.
- Fixed a number of bugs associated with Instances, Externals &
Transformation lists.
- Fixed a bug in the exporter plugin which would save out degenerate
polygons on export (with invalid vertex references) if any element was
selected when the file was exported. This is no longer the case.
- When exporting a Node with a Transformation matrix, changed the Flt opcode
exported from FLT_GENERAL_MATRIX (Opcode: 94) to FLT_TRANSFORMATION_MATRIX
(Opcode: 49). It was reported that the OpenSceneGraph flight
loader did not recognize the General transform matrix.
- Support for OpenFlight 15.8 implemented
-
Made the following changes to the Aechelon Hie format import & export
Plugins:
- The exporter now creates a per-model directory on save in the chosen file
export directory. This avoids name mangling between different files.
- The exporter now supports multi-texture.
- The exporter saves all file textures into the save-model directory as
Aechelon ".tx" image format files. All references in the
TEX file are made local to the save directory.
- Added a new Hie Format User Preference Tab to the Geo User
Preferences dialog. The initial option is HieEmbedPtoFilesOnLoad -
which is true (on) by default. When set (the default), Geo will embed all
PTO file geometry directly into the Model as children of the appropriate RenderGroup
or Multi-Tex Shader. This means that all geometry will be
pickable & editable within Geo. Uncheck the preference to load &
retain the external PTO files. Saving as Hie format will resort the
RenderGroup geometry into appropriate PTO files.
- The Exporter now correctly writes out Geo Transform Groups as Hie SCS
Nodes (with appropriate translate/scale/Rotate values pulled from the
transformation list). Transforms were previously written out as vanilla
Groups.
- Fixed some bugs associated with exporting a (previously imported) Hie
file.
- Added a HieFlattenTransformsOnLoad option to the Hie Preferences
Tab. The default value is true (on). This invokes the new FlattenTransform
Plugin from the loaded Root Node & multiplies out any SCS
transforms found in the scene.
- GeoState definitions are now uniquely named (they include the model
filename). This avoids inadvertent name-matching across multiple files.
-
Made the following changes to the Coryphaeus Software Designer's Workbench (DWB)
format import & export Plugins:
- DWB RenderGroups also flagged as Clip Regions would not be
recognized. This is no longer the case.
- Geo now honors the DWB View Record (if present) - positioning &
orienting the model as it was last viewed in Designer's Workbench.
- The DWB format exporter now saves the last Geo model orientation &
position in the saved DWB file.
- Anti-Aliased line support is now turned on by default in Geo-generated DWB
files.
- Geo now supports the loading, rendering & use of DWB Polygon Fonts
(such as the seven-segment display font).
- There was a bug in the DWB Exporter associated with Vector/Polygon string
positioning - this has been fixed.
- Fixed a bug in the exporter plugin which wrote out Polygon line style
palette indices when no line style palette existed in the file. This would
crash some DWB-enabled run times.
- Drag & drop reparenting a Node with a Discrete Action associated
with it would crash Geo. This has been fixed.
- Strip Face Tool was locking the Pickmode on exit (Done or Cancel)
- making it impossible to change the pickmode from vertex. This is no longer
the case.
- The Scale Tool function: "Set Scale Center" would
not reset the scale value as the user moved the scale center. This was
confusing. The tool now acts like the Rotate Tool, in that resetting
the origin now resets the scale values back to 1.0.
- Improved/Fixed a number of problems with the Ortho-View Image Background
Display...
- Image Background Display was broken in RC4. It works again.
- Image zoom is now centered in the viewport and is much easier to use.
- Removed the Image Pan option from the right-mouse pop-up menu.
- Added an Image Fit option to the right-mouse pop-up menu.
- Added an Image Rotate option (+/- 90 Degrees) to the right-mouse pop-up menu.
- Made a big speed improvement in the Shared-Vertex Palette Creation Plugin.
This is useful for the OpenFlight & Hie Exporters (especially
if they are vertex hungry), and tools like the Modify Verts tool.
- Added a set of new Alignment Tools. These tools act upon the current
selection (either Groups, Polygon-types or Vertices) and adjust (translate)
the selection based on the appropriate min/max value of the selection.
The new tools are...
- Align left (-X Axis)
- Align Right (+X Axis)
- Align Top (+Y Axis)
- Align Bottom (-Y Axis)
- Align In (-Z Axis)
- Align Out (+Z Axis)
- Distribute Horizontally (Along X Axis)
- Distribute Vertically (Along Y Axis)
- Distribute On Z (Along Z Axis)
- The Disable Selection View toggle in the View menu was broken. It now
works. This option allows you to " turn-off " selection highlight
drawing. This can be useful when the selection overdraw interferes with (or
users understanding of) the display, but should be used carefully (otherwise,
users will not see highlighted picking results).
- A number of tools suffered from an interactive slow- down due to context
switching between Windows(r) & OpenGL. These were the Translate, Rotate, Scale,
Extrude, Strip-Face, Polygon, Mesh, Line, Move Grid Along Normal & Bevel tools.
All these tools are now much more interactive. Other improvement details are...
- Major revamp of the Translate tool. The Translate along selected Vertex
Normal & Face Normal options now work correctly. Added 3 new
translate mode's - XY Plane, XZ Plane & YZ Plane. With one of these modes
enabled Geo will constrain input to the desired plane positioned at the From-Pt's
XYZ location. The reason for the performance problem (occasional display
update lag) in the Vertex & Face Normal translation modes
has been identified & removed. Dragging the translation in Face, Vertex
& Grid Normal modes also now shows an on-screen value
display.
- Improved performance of the Rotate Tool as stated above. Added icons to represent the
preset snap-planes. Improved the on-screen rotate angle display (it now has a
display background which makes the angle readout much easier). Improved tool
rendering quality.
- Improved performance of the Scale Tool as stated above. Added an on-screen scale offset display.
Improved tool rendering quality.
- Improved performance of the Move Grid Along Normal as stated
above and added an on-screen offset display
- Improved performance of the Extrude Tool as stated above. Added an on-screen
offset display.
- Improved performance of the Bevel Tool as stated above. Added an on-screen
offset & scale display. (Scale dragging is activated by holding down
the [Shift] key). Improved tool rendering quality & increased
the size of bevel offset that is possible.
- Added current OpenGL driver info in the About Box. Also added a
button to write out a text file with full OpenGL extension support info.
- Fixed a bug in the internal Calculation of Normals function which
resulted in a crash when multi-vertex polygons were restricted to a line.
Trying to load a model with such degenerate polygons would crash Geo.
- Added a new Select Polygons w/Coincident Vertices and Select
Polygons w/Colinear Vertices to the Select Menu. These tools provide the
user with a tolerance entry capability and act on the current selection list
or the entire model if nothing is selected. These tools replace the previous Remove
Coincident Verts & Remove Colinear Verts modify tools.
- Added a new Fix Degenerate Polygons tool. This tool will attempt to
auto-fix found polygons with coincident and/or colinear vertices. The tool
works on the current selection list, or entire model if nothing is selected.
- Geo no-longer ships with the Remove CoPlanar Polygon tool. This has
been replaced with a new Select Menu option (Select Non-Planar Polygons).
The new selection mechanism also provides an user-settable off-plane tolerance
which was never exposed in the previous removal tool.
- Fixed a bug in the Delete Empty Nodes Optimization Tool. It would
crash if it enountered files with instanced externals. This is no longer the
case. Added a dialog box on completion to inform the user of the number of
deleted Nodes.
- Fixed a bug in the Tool Vertex/Point Selection mechanism --when
holding down the [SHIFT] key to pick a point on a Polygon surface. This
would crash Geo if instances were encountered during the pick-draw traversal.
This is no longer the case.
- The Calc Vertex Normals routine no longer requires a manual "Calc
Shared Vertex Palette" step. If this is required, it is done
automatically. The tool now calculates the normals for the entire model if
nothing is selected (previously it would error-out informing the user to
select something first).
- This version introduces some changes to the Geo Picking mechanism. This has
been "tidied up" & some functionality added.
- When a TOOL is active:
- LEFT MOUSE - Pick
- MIDDLE MOUSE - Zoom
- RIGHT MOUSE - Trackball
- MIDDLE+RIGHT MOUSE - Pan
- NOTES:
- Picking is modified as follows:
- With no modifiers the default behavior is to pick an existing Vertex
(this has the highest priority)
- When no Vertex is picked - the Grid is picked.
- Holding down the [Shift] Key activates the Pick Edge or Pick
Surface modes. Which is picked is dependent on where the cursor is
positioned when the Shift Key is pressed (i.e. there is no differentiation
between Edge and Surface picking). As
soon as an Edge or surface is picked it locks the input allowing input
to be confined to the picked edge (and its extended line) or the
picked surface (and its extended plane). It must be held down to
continue picking. Added a new Picking preference which toggles the LockToEdge/PlaneOnPick
property - by default this option is enabled. Removed the EdgePickingTolerance
& enable/disable flag (Edge picking is on by
default if the [Shift] Key is down) and the 3-Space tolerance
value is no longer required as edge picking is done in screen space
now.
- [Shift] Picking has the side effect of not picking
vertices or the Grid when held down.
- Holding down the [Ctrl] Key prohibits any Geometry picking
(i.e. only Grid picking is enabled).
- During a tool operation Geo flashes the currently selected Vertex,
Edge and Polygon as they are picked. This helps indicate what had
actually been picked.
- When a Tool is NOT active - Mouse interaction is unchanged.
- Added two new picking methods to the geoTool SDK class -
these are:
- geoEdgePick(float* pt_on_edge, int num_edges_picked,geoEdge*
array_of_edges); and
- geoPlanePick(float* pt_on_plane, geoNode*
picked_poly);
- Neither are required, but each provides additional information
which may be useful for some tools.
- Added a new Loft Tool. This "create" tool provides the
ability to loft (AKA skinning) between 2 or more contours (selected polygons).
This tool is ideal for skinning convex hulls such as aircraft body or wings.
The contours can be closed or open wireframe and of differing Vertex counts.
- Added a new Grid Texture Mapping Tool. This tool uses 2-Pts to
define the texture origin & alignment. The plane of the Grid defines the
planar projection onto the selected polygons. Use the Grid major division
size, texture real-world dimensions or user-defined distance between the
origin & alignment points) to specify the 0->1 UV space range. Users
can enter the 2 reference points on the grid or via any of the usual input
schemes (i.e. pick existing vertices, edge or surface points). All non-Grid
point data entered is projected down onto the grid plane - this means that the
distance between the two grabbers in User-Defined entry mode is
grid-plane distance not actual (including vertical) distance between the
points.
- Added a new Collapse Edge Tool. This tool allows the user to
interactively pick edges - collapsing edges to a single midpoint each time. If
multiple edges are shared then selecting an edge will collapse all shared
edges. This tool is very useful for manual polygon simplification.
- Geo would crash (or cause a later crash) when copy/pasting a Node which had
behavior associated with it (such as drag-n-drop in the Tree View).
This is no longer the case.
- This version is built with an updated License Manager (including a Network
License Option) & may require a new unlock key.
-
The Light Pt String By Number and Helper Pts By Number tools
shared the same fault. They would both crash if another tool was started before
they had entered both from and to line end points. This has been
rectified.
-
Hard to explain this, but previously if you did SceneGraph->Create->Group,
followed by SceneGraph->Create->Instance, followed by SceneGraph->Re-Parent
Selection followed by another SceneGraph->Re-Parent Selection it
would crash Geo. Not any more.
- Geo now supports GeoScript - an embedded scripting
language. This language is based on LUA (www.lua.org), an
extremely fast extension language, used heavily in the interactive gaming
market. GeoScript adds Geo-specific commands to the language. By convension,
GeoScript files use the ".gs" extension. This means that Geo
now uses 4 additional start-up DLLs - lua.dll, lualib.dll, tolualib.dll &
script.dll.
Geo can execute Scripts in any of four
ways. These are...
- As a command-line argument. Any ".gs" GeoScript
files passed to the application by way of a command-line argument (as in
geo.exe dostuff.gs ) will be treated as just another supported file
and executed once Geo has opened up. This is the perfect place for putting
batch file processing.
- Entering commands in the application command line
interface. The
Geo desktop has a command-line entry field under the 3D view & property
panel areas. This text input area allows you to enter simple GeoScript
commands. The command stream is executed when the Return/Enter key is
pressed. Multiple GeoScript commands can be entered on one line separated by
semi-colons (;). This approach is fine for very simple script input but for
more complex command streams the Script Editor should be used.
- Executing scripts loaded/created in the Geo Script Editor. The Script
Editor is invoked by clicking on the Script Editor Icon on the lower right
corner of the Geo interface. The Script Editor window consists of a menu bar
and two main panes. the top half is the Script Editor window for viewing
& editing GeoScript files. The lower pane is the output result window.
Scripts edited in Geo can be executed (even if not saved) by pressing the
F5 key or clicking on the appropriate menu command.
- Executing GeoScript "plugins" loaded at application
start-up. Any GeoScript ".gs" file located in the
Geo Plugins directory (<GEO_DIR>/Plugins) will be treated like a
Plugin DLL and loaded into Geo as a Script "plugin". An entry will
be added to the Script menu & ToolBar. Clicking on either will invoke
the loaded script.
Pricing and Availability
Geo 1.0 (the product) is available now, but with complete documentation in Q4 of
2003. Contact sales@carbongraphics.com
for pricing information.
About Carbon Graphics
Carbon Graphics LLC is an innovative company
specializing in software products & services for the Visual Simulation
market. Their flagship product is Geo - a 3D modeling and animation tool used
for building, editing & animating dynamic real-time models and scenes. Visit
the Carbon Graphics Web site at http://www.carbongraphics.com
For further in formation regarding this press
release or Carbon Graphics, please contact:
Alison Weckler
Carbon Graphics
435-649-9874
alison@carbongraphics.com
All trademarks, trade names, service marks
and logos referenced herein belong to their respective companies