top of page

GEO STUDIO PRO Version 4.3 RELEASE NOTES

6 hours ago
14 min read
  • The application and Geo Format Version have increased to 4300 (4.3)


  • We've added a New RunwayBuilder Plugin. This plugin builds geo-accurate runways for any Airport in the world. The Airport and Runway data comes from the excellent OurAirports Data Source. Geo ships with a binary version of their airport and runway data which loads blindingly fast on application startup. You enter an Airport identifier or partial airport name and the plugin will list all the airport runways. Simply clicking on the generate button will create acccurate runway geometry, center lines, threshold markings, edge lines, as well as edge and approach light points. A runway priority value is automatically calculated and used to control tesselation in the case of intersecting runways. Higher Priority values indicate greater runway importance. "Lesser" Runway markings and lights are all clipped/managed if a priority Runway crosses them.


Runway Builder Tool GUI
Runway Builder Tool GUI
  • To facilitate this new functionality we have added two new Group types: Airport and Runway. Both nodes are implemented as 'UserGroup' nodes as defind in the User Node & Private Data Editor. The RunwayBuilder tool creates an Airport node with up to eight Runway children. An LOD node culls out certain markings when beyond a certain switch distance. You can see from the tree view snapshot below how the Runway Group children are organized. The generated node plugin source code is provided as example code.

Tree View showing Airport & Runway Nodes for San Francisco International Airport
Tree View showing Airport & Runway Nodes for San Francisco International Airport
Generated Runways For KSFO - San Francisco International Airport
Generated Runways For KSFO - San Francisco International Airport

  • The LightPt node is now rendered with a shader that dynamically renders the lightPt based on its properties (previously, that was left to the runtime). The shader now controls properties such as visibility and directional color depending on its directionality (i.e. whether its an Omni-Directional, Bi-Directional or Uni-Directional LightPt. This means that for bi-directional lights the front color is used when the dot product between the direction vector and view vector is greater than zero and the back color when not. If the LightPt is a uni-directional light then it will only be visible when the view vector is within the LightPt's vertical and horizontal lobe angles. The combination of LightPt direction and animation effects makes it easy to build and test complex lightPt Systems. In addition, the LightPt now respects the Header node's environmental TimeOfDay property so you can test TOD visibility within Geo.

LightPt Node Attribute Page
LightPt Node Attribute Page
  • LightPt Node's have a new Enable Animation property which enables/disables lightPt animation and directionality processing.


  • Added two new GeoScript Plugins: LightPtActivate.gs and LightPtDeactivate.gs. These scripts simply enable or disable LightPt animation and directionality logic for all visible LightPts in the scene. These are the plugin icons in the View Toolbar...


  • Any file with .gs extension in the Scripts folder and a .gsd with the same name will be treated as a GeoScript plugin and loaded into Geo on startup. This is a really easy and quick way to add functionlity to Geo with miminal effort. For example here is the LightPtsDeactivate.gsd file...


and here is the simple LightPtsDeactivate.gs GeoScript (Lua-based) file...



  • Improved the behavior of the Tree View Expand and Collapse functions. Previously the collapse function could collapse more than one level depending on what was selected. This has now been fixed. We also added convenient Expand and Collapse buttons at the top of the Tree View area.


  • The Wavefront OBJ importer now enables the Specular & IOR khronos extensions for OBJ materials with specular values. (The OBJ importer creates PBR materials from the OBJ material definitions).


  • We fixed some bugs and improved the DDS compressed texture image import plugin.


  • We've added partial X-Plane 12 model support. X-Plane specifies all aircraft components in their .acf file. Each component (or object) is stored in an X-Plane OBJ8 file (although by convention the extension is .obj). Aircraft object files are typically things like fuselage, undercarriage, wings and individual instruments like airspeed, compass, altimeter etc. Obviously loading an aircraft object by object is not ideal.


Unfortunately the X-Plane .acf file is not documented for public use. The X-Plane OBJ8 file is documented and open but this approach means that you can only load aircraft models on an object by object basis. To handle this case we've added an X-Plane .obj Import Plugin.


To provide a better experience we've added an X-Plane .acf Import Plugin! The acf file does seem to list all the aircraft Objects but the context is missing. This means that the .acf loader will load all the object files it finds listed in the acf file. The result is that the loaded file will likely have additional unwanted objects (for example damaged versions of objects or multiple 3D pilot models). If this happens just select and delete in the tree view.


NOTE: X-Plane aircraft models will often load with all cockpit geometry, individual instruments, multiple 3D pilot model(s) and complete interior geometry (if applicable for that model). Unless this is desirable, select these interior objects and delete as necessary.


Here is an example of a Cessna Citation (Cessna_CitationX.acf) loaded into Geo...




  • Both the X-Plane Obj and Acf loaders give you the option to import X-Plane animated items as Geo Behaviors (or not). This means that X-Plane DataRefs (data variables that are used to drive animated items) will be converted into Geo Behaviors with all X-Plane DataRefs being loaded as Geo External Variables.


  • If you elect to create Geo Behaviors - all DataRefs used in Geo behaviors will be listed as external Vars. Click MenuBar->Behaviors->List Variables to open the variable browser and check this.


  • You can save all external vars as an aircraft.vars file. These vars files can be loaded into new aircraft or instrument models - allowing you to tie new behaviors to named X-Plane vars. Here's the above externals exported as a vars file for that aircraft (showing the top few variables)...

The file format is Type, Shortname, Input/Output, Longname
The file format is Type, Shortname, Input/Output, Longname

  • This release comes with an X-Plane 12 plugin called GeoDataRecorder.xpl. This plugin will generate a data file (as a .csv file) that contains per frame data for every DataRef listed in the vars file found in the GeoDataRecorder plugin folder between the start and stop recording commands of the X-Plane plugin.


  • To use this data-file. Use the new Geo menu command: File->Load Vars Data File (.csv). If a data file loaded and you enable Behavior mode - each of the external vars listed in the csv file will be updated with their per-frame value from the data file. This is a great way to check out and debug the behaviors against real simulation data.


  • There are five new View Preset Apply and Goto View buttons on the Right-Side GUI toolbar.


The left button lets you set the perspective view and the right button lets you jump to that view. Clicking on a previously set Preset will unset that Preset.


  • To support X-Plane animation we've enhanced the Geo Behavior VisibilityAction. Generally, this action evaluates as Node Visibility OFF if the input variable value is less than zero. There is now an option to evaluate visibility based on a Range Check. If enabled the action evaluates as Node Visibility OFF if the input variable value is >= to a Min_Range value and <= to a Max_Range value.


  • To support X-Plane animation we've enhanced the Geo Behavior RangeAction. Generally this action interpolates the input variable value so that when the value is at the Minimum input the output is at the minimum output and when variable value is at the maximum input the output is at the maximum output. This action is good for modifying the range of an input variable into a different output range. For example...


Input Min (0.0) => Output Min (0.0)

Input Max (10.0) => Output Max (360.0)


  • The RangeAction now has an Update Ranges toggle button. If this button is set the Input Min and Max are dynamically updated when the input variable value exceeds the Input Max. This means that when the input variable value exceeds the Input Max the Input Min is reset to the previous Input Max and the Input Max is reset to the previous Input Max * 2.0. This output range is uneffected. This input range switching will continue to be modified based on the input variable's value. This feature provides flexibility amd negates the need for multiple actions handling different input ranges.


  • To support X-Plane animation we've enhanced the Geo Behavior RotateAction. Generally this action drives a rotation around a vector by the input variable's value. The RotateAction now has a toggle button to enter and use a LookUp Table of Rotation Key-Value pairs. If set the LookUp Table is queried using the input variable's value as a key. The returned angle is used for the rotation. Take this Key-Angle table as an example...


It is gauranteed that when the input variable value matches a table key - the returned angle will be exactly the angle specified for that key value. In other cases the returned angle will an interpolated value between the preceeding and next key value


This means that quite sophisticated rotation control can be managed.
This means that quite sophisticated rotation control can be managed.

  • To support X-Plane animation we've enhanced the Geo Behavior TranslateAction. Generally this action translates along a vector by the input variable's value. The TranslateAction now has a toggle button to enter and use a LookUp Table of Translation Key-Value pairs. If set the LookUp Table is queried using the input variable's value as a key. The returned translation is used for the translate. Unlike the RotateAction which has one (an angle) value - the translate table value is a 3D coordinate.


NOTE: If the option to Use Key Table is set - translation will be completely defined by the table values - ignoring other TranslateAction properties (such as direction vector). Here is a simple example...


The Key-Value Table makes it easy to create translations that speed-up, slow-down or stop based on the driving variable's value.
The Key-Value Table makes it easy to create translations that speed-up, slow-down or stop based on the driving variable's value.
  • Added a Set Grid Properties tool that allows you to explicitly set the distance between major grid lines in the current database units, the number of minor Grid lines between the Major Grid line distance and the overall number of major grid divisions to display (for example if the database units is set to Feet you could set the Major division distance to 1 (i.e. 1 foot per Major) and set the number of minor divisions to 12). This was previously possible with the interactive GridDivisions tool but that tool was more focused on visually increasing the overall grid size. This tool is a quick simple way to ensure the grid is set to a division of the current DB units to facilitate exact model construction.


  • The Ortho-Views have been completely re-engineered in this release. Previously the 3D viewports were configured inside a 4-view Tile widget. This is no longer the case. Geo STUDIO now has only one OpenGL window but the window can be partitioned in one of many viewport layout configurations. We've added a new Layout Browser to facilitate fast layout configuration switching.



  • This new approach comes with a number of benefits...


  1. The 4-View Tile widget required user interface space which is now given over completely to 3D rendering.

  2. The 4-View arrangement was inflexible and couldn't be organized into typical Modeler or Design Tool layouts. The new layout browser fixes this with over twenty predefined layouts to choose from.

  3. Having a single master OpenGL window with managed viewport areas results in better performance. Shaders, textures and buffer data is available in all views and wont go out of scope if a view closes as the views share one OpenGL context.

  4. Redraws are instant across all displayed views. Previously this was not the case.

  5. There are 3 types of Orthographic projection views - Top, Front and Left Side. You can flip between Top/Bottom, Front/Back and Left/Right. All views maintain their own projections and grid properties. This means that interactions like "Fit", "Zoom" and "Pan" can be done on a per View basis. views.

  6. The "Top/Bottom", "Front/Back" and "Left/Right" views automatically configure themselves based on the UpAxis field of the Header Node. This means that if an OpenFlight or Aechelon Hie file is loaded - the ortho views will be consistent for a Z-Up file type. This was not previously the case.

  7. Each Ortho view has a unique grid "depth" value which sets the third axis value (i.e. the Grid Depth in the XY (Front/Back) View specifies the Z coordinate value if the model is a Y-Up model. If the model is built Z-Up then, for example, the Grid Depth in the XZ (front/Back) view specifies the Y coordinate.

  8. Orthographic views can each have an image background. Furthermore a new Real-World Distance tool allows you to specify a known distance on the background image. When you do this the image is automatically calibrated so that the image is scaled and translated to match the user-defined "real-world" size with database units and the grid. This makes building models from blueprints a snap.


An image of the new ortho view desktop and Layout Palette
An image of the new ortho view desktop and Layout Palette
A snapshot of a SpaceX dragon image loaded as a background image for the Side view. The grid divisions are set to 1.0 DB units (meters). The real world length of the capsule and trunk is 8.1 meters. the image was calibrated to that length. Another datum was selected at the base of the capsule and the image was translated to align to that image point (effectively moving the world origin to the selected point).
A snapshot of a SpaceX dragon image loaded as a background image for the Side view. The grid divisions are set to 1.0 DB units (meters). The real world length of the capsule and trunk is 8.1 meters. the image was calibrated to that length. Another datum was selected at the base of the capsule and the image was translated to align to that image point (effectively moving the world origin to the selected point).
  • We've added a View Configuration file that saves the current file's View Configuration Layout including background images used, all callibration steps undertaken, Per-View Grid properties, Ortho view zoom, Perspective View trackball and more. The file is saved alongside the main file. Within Geo, layouts persist for all loaded files. File view layouts are remembered between file switching, closing and loading events. The file has a filename.gconf extension. The config file is automatically generated and used for all loaded files and supported formats.


  • Press the Shift-Key and Right-Mouse Button click to pop-up an Ortho-View specific menu.



  • Grid Off / Grid On toggles display of the Grid for that particular View.


  • Grid Depth sets the coordinate value for the missing axis in an Ortho view. i.e. if you set the value in the XY view - you are specifying the Z coordinate for that view. A small Input widget opens at the cursor position.


  • Grid Settings opens a dialog and allows you to set the distance between major grid lines, the number of minor lines between each major lines and the number of Major-line cells in X and Y. This is useful because, by default, the Major grid division distance is auto-calculated based on the size of the model. When dealing with calibrated images it's better to have Major grid lines set to one for meters, or set one for feet and have twelve minor lines to mark off inches.


  • Grid Opacity sets the Grid Transparency. A small Slider widget opens at the cursor position.


  • Grid Snap / Grid Snap Off. Grid Snap is disabled in ortho views by default.


  • Set Background Image sets the current texture in the palette as the Ortho View background image


  • Clear Background Image removes the image from the Ortho View.


  • Calibrate Image to RW Distance - Starts a tool that lets you click and drag two points on the image and enter what that distance is in the Real-World. This will calibrate the image by adjusting its position and scale. The Image will





  • Calibrate Image to RW Origin - click on the image again to set a Known Datum - i.e. determine where the origin (the 0,0,0 location) is in this image. Clicking on a point directly down from the current origin but at the bottom of the tire level. Moves the RW origin as seen in the next image. Now clicking anywhere on the Image will give us a RW coordinate on the YZ plane (for this Y-Up model)


  • Share Image Point Grid Depths. When you have a calibrated background image you can pick any point on the image by holding down the CTRL-Key and clicking with the Left Mouse. When you do the Image point (in 3D) is shown briefly at the top of the View.


NOTE:

YOU CAN PICK IMAGE POINTS AT ANY TIME - INCLUDING WHEN ANOTHER TOOL IS ACTIVE.



  • If Share Image Point Grid Depth is checked - the picked Image Point coordinate value will automatically set the Grid Depth in the other Ortho Views. A follow-on Image pick returned a 3D coordinate of (0.0,2.21,2.454). That means the Grid Depth (Y coordinate) in the XZ (Top) View will be set to 2.21m and the Grid Depth (Z coordinate) in the XY (Front) View will be set to 2.454m.


  • Being able to pick image points at any time becomes useful when the Make Polygon tool is active. You can enter Polygon Vertex points as you dynamically change the grid depth in different Ortho Views.


  • Here's a snapshot of the Ambulence constructed in Geo using the above technique...


  • We've uploaded a new Video Tutorial - Tracing Polygons On Background Images to the Carbongraphics.net/videos page.


  • ALT-Key + Double-Clicking in a View will immediately make that View the only View. Alt-Key + Double-Clicking in a Single-View Layout will return to the previous multi-View layout (if one exists).


  • Pressing the Shift-Key and Right-Mouse Button together now also pops-up a Context Menu in the Perspective View. Its just some Grid operations right now for consistency but more will likely be added in the future.


  • We fixed a bug in the Copy/Mirror Tool. It now functions as expected.


  • Added a new tool - the Split Edge Tool. You pick a Polygon edge and the tool splits the original polygon into two Polys with the split point being midway between the original picked Poly's Edge points. This operation is undertaken on one Poly only - so if the edge is shared it may split a different Poly than intended. If that happens undo the operation and Shrink the desired Poly (select it and press the 'K-Key' to shrink the Poly's within its surface area). Redo the SplitEdge tool on the shrunken Poly's edge.


  • Added a new tool - the Combine Verts Tool. This tool sets the average of the selection as the coordinate for all the selected Vertices. This is is simpler version of the existing Weld Verts Tool which merges vertices based on a user-input tolerance value.


  • Fixed Freeze Flags and Ortho Views for all Tools. Freeze Flags now work great in all Views and for all tools that use interactive grabbers.


  • The HelperPt at Line-Line Intersection tool was broken. This has now been fixed.


  • The HelperPt at Point-Line Intersection tool was broken. This has now been fixed.


  • The Tube Tool has been rewritten to work with the new Ortho Views. The Tube tool is intended to facilitate creation of vehicles and fuselage-type models using reference textures. However, the previous implementation did everything in the 3D perspective view using a textured mapped bounding box. This approach had a number of issues and was unecessarily complicated. The tool has been simplified and improved significantly by using our new Ortho Views. Here is a summary of usage...


Modes

1. Contour Mode - 2D cross sections (ellipses)

2. Point Mode - Vertices that define the Contour shape. They can moved individually or as a collection on the contour plane,


Image Setup

1. Load Front,Top and side model images or blueprints. Set the respective image as the appropriate Ortho View Background Image.

2. As described previously, callibrate each image by entering a real-world length, width or height for each Ortho Background Image (this is done by picking two points on the image and entering a real-world distance.

3. Optionally, enter another datum which will adjust the origin location with respect to the image. Its important that all images are calibrated and have the same origin point.


Starting the tool open its configuration Window
Starting the tool open its configuration Window

...Followed by the Tool Gui and contours displayed in all open Views.



The Dimensions entered above are valid for NASA's Orion capsule and Service Module.


You can grab and move the contours (or points) easily in the Ortho Views.


an image of the contours positioned in the Side View
an image of the contours positioned in the Side View
Of course, this is a simple shape but in a few minutes this 3D model was generated
Of course, this is a simple shape but in a few minutes this 3D model was generated
  • A new Tutorial Video "Calibrating Background Images and Tube Tool" has been loaded to the Carbongraphics.net/Videos page.


  • We have removed the Current Texture button from the GUI. It's resolution was only 25x25 pixels and was too small to be useful for most textures. In its place we've added a new Hide All button. When set, this function Hides ALL geometry in the scene. We found this handy while using the Ortho View background images to build geometry. Previously created geometry could hide the image or parts of it. This function solves that problem with one mouse click.


  • Added two additional buttons inside the Tree View panel...


1. Remove Childless Nodes

2. Flatten Tree (Remove Unessesary Nodes in a Deep Parent-Child list)


These buttons are shortcuts for the same named Tools found in the Optimize Toolbar.


  • Added a new Translate Vertex tool. Unlike the Move Vertex tool that allows you to grab and move vertices by clicking on a shared vertex and dragging it - this tool allows you to translate selected vertices on the X, Y and Z-Axis. This can be useful when there isn't an existing vertex to move to (or the Grid isn't conveniently setup for vertex manipulation). Translation is applied to all vertices sharing the selected vertex position. If you don't want this behavior - shrink the vertex's polygon parent and select the vertex on the shrunken Poly.


  • Added a new Measure Tool. This tool reports the distance between two points (click and drag to enter the points). Add a third point and the tool also reports the angle between p1-p2-p3. This is an alternative to reading the value from the Coordinate Input Panel. Using this tool might be more convenient as the Measure tool is available on the Radial Menu for quick execution.


  • Added Full Syntax Highlighting to the (Lua-Based) GeoScript Text Editor...


Comments


Featured Posts
Recent Posts
Archive
Search By Tags
Follow Us
  • Facebook Basic Square
  • Twitter Basic Square
  • Google+ Basic Square
bottom of page