Graphics.Release21 - lordmundi/wikidoctest GitHub Wiki

EDGE v2.1 Release Notes

« | EDGE User’s Guide | »

On this page… (hide)

  1. 1. Patches
  2. 2. Upgrading (please read)
  3. 3. Summary of Changes
    1. 3.1 New Hadley Rille and Mars imagery
    2. 3.2 Stars
    3. 3.3 Generic joystick support
    4. 3.4 Command line DEFINES
    5. 3.5 Shadows and environment reflections
    6. 3.6 New simdata capabilities
    7. 3.7 New platform plugin
    8. 3.8 Dynamic camera tracking
    9. 3.9 Performance based LOD control
    10. 3.10 Node name autocomplete
    11. 3.11 Remote Commanding
    12. 3.12 Lightning and City Lights
    13. 3.13 New tcl commands
    14. 3.14 Mac support
    15. 3.15 Tcl control of planet2 shaders
    16. 3.16 Updated benchmarks
    17. 3.17 Updated 3d canvas capabilities
  4. 4. Installation
    1. 4.1 To install:
    2. 4.2 To integrate into your sim:
  5. 5. Fixes and Enhancements
  6. 6. Known Issues

NOTE: These are the release notes for EDGE version 2.1. You can find the release notes for other versions here.

1.  Patches

2.  Upgrading (please read)

EDGE v2.1 is considered a fairly significant release in terms of new features and compatibility issues. This is mainly due to the long time since the last release (although we plan to make minor releases more frequently from now on!). We have tried to make items as backward compatible as possible, but these measures probably shouldn't be used as a long term fix. Projects should consider rebuilding their userdata directories to take advantages of the new configuration options, layouts, and features. Some of these items you should be aware of are outlined below:

  • Environment (csh) files
    • In the interest of providing Windows support in the future, we are deprecating csh files for setting environment variables, as other OS'es such as windows don't have this capability. The good news is that the "DEFINES" block in a config file can do the exact same thing and be cross platform. In this EDGE release, the .doug_cshrc file and user_env.csh files have been deprecated. All of the default environment variables that were in the .doug_cshrc file have been moved in a main settings file called "edge_settings.cfg". These variables can be overridden just as before using the DSP_CONFIG→DEFINES block in your user.cfg or any other included config file.

    • Note that the .doug_cshrc file and a file called "run_graphics.compat" will still exist in the release for backwards compatibility reasons. We recommend moving all of your settings in user_env.csh file into the DEFINES block of your user.cfg, but this script could help as a temporary fix. Some settings truly need to be set on the command line, such as the "__GL_FSAA_MODE" type settings for the NVIDIA driver, or the "LD_LIBRARY_PATH" variables, so these should remain in the user_env.csh file. All others should be moved to user.cfg.

NOTE: As noted in issue Issues.00242, there is an issue using the new scripts on the Mac. As a workaround, you might try running with the "./run_graphics.compat" script, or manually setting the EDGE_SETTINGS_FILE environment variable to "edge_settings.cfg" before running.

  • run_graphics script

    • The run_graphics script has been renamed to run_standalone and does not utilize a manager. If you wish to run a manager for other clients to connect to (such as a sim), run a separate manager process (use run_manager) and then run_client for graphics. See Issue 00183 for more info.
  • Comm port

    • To avoid conflicts, the default comm port has been changed to 8000. See Issue 00175 for more info.
  • JimboCam and JimboCamRms Pan of 180 removed

    • Just in case you were using these cameras and saved off a state, you may need to edit the state file. Basically, these two cameras had a pan of 180 between the camera and the actual node used for moving the camera. This has been removed in the keybinds script and also in our base state. But, if you have your own states saved off and use them, you may notice the key bindings rotating backwards or moving the wrong direction. This is why. See Issues.00172 for more info.

3.  Summary of Changes

We are excited to release EDGE v2.1. Changes are many. See the full list in the "Fixes and Enhancements" below. Some of the most notable changes are:

3.1  New Hadley Rille and Mars imagery

If users care to download the extra map files, we now have some great high-quality Hadley Rille lunar imagery. Also, we have a base map of Mars imagery available. See below for screenshots.

[![][35]][35]
New Hadley Rille imagery and a base Mars map are available


The stars at night… are big and bright…

3.2  Stars

We now have stars! And fancy image based stars at that.

Don't like the way the stars look? Configure them any way you like. Also the new "-viewdata" feature that lets plugins share scene brightness information allows the stars to automatically dim as the scene gets bright.

See this page for more details.

3.3  Generic joystick support

Any joystick device recognized by linux (which is virtually all USB joysticks) can be used in EDGE. Hot-plugging is supported, and the interface uses simple tcl event handlers for button presses and axes motion so you can customize the behavior however you like!

Map button presses or button releases to any tcl call you want. Or, have a tcl procedure act on axis events including the axis value for proportional control. The dsp_joystick2 plugin lets the user define a simple tcl callback for any events on a connected joystick and also connect/disconnect events.

3.4  Command line DEFINES

Now, similar to arguments to a compiler, DEFINES can be set on the command line with a "-D" switch, which will help in cases where variables need to be set before config file processing is done. See Issues.00196 for more info.


Shadows in EDGE 2.1

3.5  Shadows and environment reflections

Turn it all on! Shadows and environment reflections can now be toggled during runtime. In the default config, there is a right-click menu that lets you toggle the shadows and environment reflections features. Quality of the shadows can be configured in the config file for performance or quality. See Issues.00214 for more information.

3.6  New simdata capabilities

There is now a great new way to visualize simulation data that is consistent and seamless whether it is from a live TRICK simulation, or recorded sim data.

The simdata plugin has been upgraded as a generic transport to the TRICK variable server, and allows for even greater mapping possibilities in an API file. No more writing of tcl scripts to hook up to a TRICK simulation. Also, the features you have for recorded data, such as pausing and rewinding are also available for real-time sims! This means you have "DVR" style functionality during a connection to a live sim to rewind, examine something, then go back "live" to the simulation.

Much of this is made possible through an upgraded API file format allowing inline transformations of data. For more information see Issues.00132 and Graphics.DspSimdataNew.


LIDS graphics using the platform plugin

3.7  New platform plugin

The platform plugin gives the capability to specify nodes that point to another node, or even scale/offset in relation to another node. For example, in a docking mechanism there can be many pistons or linear actuators that need to slide as the ring translates and rotates. The plaform plugin can be used to make sure each half of a rod points to its counterpart so that as the docking ring moves, all of the linear actuators rotate and slide to accomodate. See Issues.00218 for more info.

3.8  Dynamic camera tracking

Now you can make any camera track any node with a simple tcl command. This can be great for a targeting capability. For example, holding a trigger on a hand-controller could force the camera to track a target and easily fly to it and around it with pure translation inputs. There is also now a right-click menu that allows you to manually command the current camera to track a particular node. See Issues.00170 and Issues.00166 for more info.

3.9  Performance based LOD control

LOD targets can now be specified with a target framerate, with EDGE adjusting to lower detailed models as needed to maintain the framerate requested. See Issues.00155 for more info.


Less typing!

3.10  Node name autocomplete

Saving you from carpal tunnel syndrome… now node names autocomplete in the fields of the node edit dialogs! Also, the left Alt button cycles through possible matches.

3.11  Remote Commanding

One of the great new features in this release is the ability to remotely command and query an instance of EDGE using simple commands over a socket. The new remote commanding server allows users to execute tcl commands remotely, which is great for commanding an instance to do things such as switch camera views, turn overlays on and off, trigger tcl scripts, etc. And since it is bidirectional, you can also get data such as the values of tcl variables, current framerate, heartbeat, etc. This capability should be great for facilities which will have distributed EDGE clients. See Issues.00150 for more information.


The city lights map in EDGE v2.1

3.12  Lightning and City Lights

All sorts of new functionality and bug fixes are in planet2, including more accurate sun lighting direction (taking into account things such as the light direction on the moon being different than the earth), lightning strikes (with a configurable number and placement of storms as well as the radius of the storm and each strike), city lights on the night side of the earth, better lighting at dusk, etc.

NOTE: The lightning feature does add some realism, but it is mostly meant to be an example of how to talk to a planet2 shader from tcl scripts. See the section "Tcl control of planet2 shaders" for more information about this.

3.13  New tcl commands

There are some great new tcl commands available to query health and status of an EDGE instance. Combined with the new remote commanding capability, this is a great method to remotely query an EDGE instance for items such as heartbeat, framerate, plugin versions, viewports, etc. See Issues.00228 for more info.

3.14  Mac support

This is the first full release that includes some support for Mac OSX Snow Leopard. Testing on this platform was limited, so some things may be broke. We welcome feedback and bug reports from all of our Mac friends!


A single lightning strike in the cloud map

3.15  Tcl control of planet2 shaders

There is an exciting new capability in this release to link tcl variables to variables inside the openGL shaders used on planet layers. This gives an exciting level of control as the shaders allow developers to customize all aspects of planet layers, and giving hooks from tcl makes this control dynamic.

For a very simple example of this control, see the gui/earthcloud.tcl script. It lets a tcl script simply turn on and off the cloud layer on the earth, having the shader not draw fragments from the cloud layer, as well as not drawing the cloud shadows on the ground.

For a more exciting example of the dynamic control, look at the gui/lightning_test.tcl script. This script defines a configurable number of storms on the earth's surface with a configurable radius and lightning strike radius. This information is fed to the cloud shader along with a random number being generated. When the random number indicates a strike has occurred, the fragment shader checks to see if the pixel is on the night side of the earth and within the strike radius, and if so, overrides the pixel color to white. The effect is some neat flickering lightning strikes occurring on the surface only seen at night. A screenshot showing a single strike:

3.16  Updated benchmarks

The benchmark utility has been updated to include a new canvas tag on each test explaining what settings are being used. It also has one new heavy test at the end that will really give your graphics card a workout!

3.17  Updated 3d canvas capabilities

EDGE always had the ability to draw canvas overlays in tcl and embed them into the 3d scene, but recent upgrades allow you to scale the canvas to remain the same size on a viewport, and also lock the canvas rotations such that it always faces the camera. See the picture below to see how the ALHAT group has used this capability to draw landing site markers with simple tcl scripts, place them on the moon's surface at the landing sites, and then have them remain the same size and face the camera no matter where the camera may be located. (Also notice how they have customized their moon shaders to highlight slopes above a certain threshold). See Issues.00106 for more info.


ALHAT viusals using 3d canvas elements

4.  Installation

4.1  To install:

  1. Untar the "EDGE_v2.1.tgz file". Notice there is a "gisdata" link in that directory that defaults to "/dougdata/gisdata_2.1". This is because it is preferable that the gisdata_2.1 folder reside on the local machine where EDGE is running.
  2. Extract the "EDGE_data_pack_v2.1.tgz" (referred to as data pack) somewhere (it is recommended that this be somewhere on the local machine where EDGE will be run and not on a network path such as a home dir).
  3. Modify the gisdata link to point to the location where you extracted the data pack.

That's it. To run, cd into the EDGE directory and type "./run_graphics". As mentioned above, you can also type "./run_benchmarks" to get a performance assessment of your machine. Email in your benchmark results to help us measure the effects of different drivers, kernel versions, etc., or just to brag about your fancy new hardware.

4.2  To integrate into your sim:

  • For simple desktop integration with a TRICK simulation, try using the simdata plugin found under the "Options" menu. You can read more about this on the Graphics.DspSimdataNew page. This supports both live sims and post-sim visualization of recorded data.
  • If you want to integrate a simulation using the DCOMM library, see the Orbital sim integration page.

5.  Fixes and Enhancements

  • 00078 - OSX Support
  • 00101 - feature to allow external variable to be mapped to planet2 shaders
  • 00104 - missing some lens flare textures
  • 00105 - need a way to force sun nodes to face EARTH
  • 00106 - implement auto scale for 3d canvases in canvas plugin
  • 00107 - feature to check for modified files since release
  • 00108 - node name autocomplete
  • 00109 - update node edit dialog to automatically open dialog of the correct type
  • 00110 - low detail models for some nodes on station are missing
  • 00111 - separate lod swap sizes for different sized models
  • 00112 - lens flare sometimes shows up when sun is occluded
  • 00115 - generic joystick support
  • 00116 - MxMt broken
  • 00117 - add ability to override planet2 node names
  • 00119 - Smaller model of Earth for Lunar Work
  • 00120 - add mrSID support to gdal library
  • 00122 - investigate possible new FSAA_MODE default
  • 00124 - update cctv to allow removal of camera type
  • 00125 - add warning when speedtest cannot find alpha channel
  • 00127 - break up cev_models.cfg
  • 00130 - allow models to be loaded more quickly
  • 00132 - update simdata to be generic pathway to variable server comm
  • 00135 - ability to configure edge for low, medium, and high performance machines
  • 00139 - update ISS tree to make ATV and SOYUZ separate nodes
  • 00143 - obvious warning when running without direct rendering
  • 00145 - adding light to the dark side of the earth
  • 00146 - need documentation on how to make calls to planet2 from plugin
  • 00147 - adjustments to atmosphere
  • 00148 - city lights
  • 00150 - remote commanding capability
  • 00152 - stars
  • 00154 - conversion of .csh files to doug config files
  • 00155 - dynamic performance based LOD
  • 00156 - tutorial for basic OpenGL drawing plugin
  • 00157 - document doug.node options
  • 00158 - common.mk is not defining __LINUX__
  • 00159 - dsp_fltloader.c doesn't handle "." (dots) in pathname or show warnings
  • 00161 - generic texture loading plugin
  • 00162 - add in an atmosphere adjustment utility
  • 00163 - PLANET2 Plugin causes segmentation fault if the number of bump map pages is set to zero
  • 00164 - ac3d loader may have bug with TEXTURE_MAP_PATH
  • 00165 - add plugin version information to canvas plugins
  • 00166 - add "targeting" capability
  • 00167 - upgrade flycam plugin to read deflections from a node
  • 00169 - flying FAR away eventually causes seg fault (probably in dcomm)
  • 00170 - upgrade trackcam so camera tracking can be set during runtime
  • 00172 - remove pan of 180 from JimboCam and JimboCamRms
  • 00175 - change default COMM port
  • 00176 - base map of mars
  • 00177 - Sometimes EDGE crashes when using dsp_planet2
  • 00178 - HMD mode does not render properly when ztiles are enabled
  • 00179 - Incorrect tile caching in dsp_planet2
  • 00180 - Multiple renderings of canvas in scene when ztile enabled
  • 00181 - run_manager should specify double precision
  • 00183 - Change run_graphics to run in standalone mode
  • 00184 - Canvas plugin should support more than just jpeg images as sources for the image element type
  • 00185 - add capability to print out plugin versions
  • 00186 - Add version information to some plugins
  • 00188 - Problem with HFOV text input in Edit Camera Node - Cores
  • 00189 - star adjustment capability and image based stars
  • 00190 - trackcam plugin doesn't install if no tracking cameras defined
  • 00191 - add hysteresis to dynamic LOD
  • 00192 - update trick_comm_library to discard corrupted data
  • 00193 - ac3d doesn't appear to handle spaces in material name
  • 00194 - default highlight and flash color not set for user models
  • 00196 - add -D capability to doug and dsp_manager command line
  • 00197 - dsp_state plugin fails to load in manager
  • 00198 - make background color configurable via userdata
  • 00199 - doug seg faults if doug path is too long
  • 00201 - expanded inputs for API file transforms
  • 00205 - DOUG seg faults with 190.xx series of NVIDIA drivers
  • 00206 - backwards compatibility files for csh environment userdata
  • 00209 - change "non-baseline" error to notification
  • 00210 - modify some plugins to autoload other required plugins
  • 00211 - only report non defined variables on last pass through configs
  • 00212 - DOUG should give an error when a load is specified that doesn't exist
  • 00213 - Allow stars sensitivity to scene light to be configured
  • 00214 - realtime shadows and environment reflections
  • 00215 - camera target selction with toggle for centering
  • 00216 - nodes in matrix mode not propagated when in double precision
  • 00217 - planet2 occasionally seg faults
  • 00218 - capability to force nodes to face another node
  • 00220 - change default for SYNC_TO_VBLANK to off
  • 00221 - add entry to turn off lights
  • 00224 - doug background command seg faults
  • 00227 - add tcl command to get runtime seconds
  • 00228 - add tcl commands to get status info
  • 00231 - simdata plugin may be calling DSF_ExecuteCore twice
  • 00232 - simdata plugin should check if data has changed before modifying node
  • 00235 - updated base state to have moon believable position
  • 00236 - issues when replacing or extracting files using dsp_package
  • 00238 - add dynamic scaling to flycam
  • 00239 - update common.mk to check /usr/lib32
  • 00240 - add GUI to adjust water detection

6.  Known Issues

  • 00242 - 2.1 appears to be broke on Mac

  • 00243 - EDGE seg faults with NVIDIA driver < 180.29

  • 00245 - planet2 may have memory leak

  • 00248 - remote_commanding_server fails if blipper menu doesn't exist

  • 00251 - EDGE freezes after sim stop

  • 00265 - Spot light flares render incorrectly

  • 00266 - Flares not occluded

  • 00272 - Lensflares not rendered properly in multiple viewport configurations

  • 00276 - Jumpy shadows when controlling vehicle attitude in matrix mode

  • 00277 - canvas addview and delview commands cause DOUG to hang

  • 00278 - RCS sometimes throws errors when PIPE is broken

  • 00280 - run_benchmarks may have problems if eng_graph.update exists

  • 00282 - Simdata crash on invalid plot session file

  • 00284 - remote commanding server doesn't play well with client side timeouts

  • 00285 - simdata interacts with RCS when commanding liveconnect

  • 00294 - Config file parsing does not properly handle late defines when used as block headers

  • 00295 - stars config may not be honored when running with -viewdata

  • 00297 - state file loading does not honor light type

  • 00303 - src.dist plugin compile issues in v2.1 with libstdc++

  • 00305 - unloading of a plugin should uninstall tcl commands

  • 00306 - run_manager script is missing "-mode server"

  • 00308 - Modifying a camera using the doug.camera command does not update the view

  • 00320 - CCTV lens definitions don't work

  • 00324 - Simdata segfault on missing transform parameter

  • 00325 - canvas plugin causes seg fault if font not found

  • 00327 - speedtest should not load if no openGL context available

  • 00331 - potential bug in fix_ideal_light.tcl

  • 00333 - The STL loader fails on some binary files

  • 00334 - doug dies when some defines get too long

  • 00337 - edge has issues when paths have spaces

  • 00339 - AC3D loader is improperly parsing the MATERIAL definition

  • 00342 - some doug tcl commands seg faults when missing arguments

  • 00343 - add bgerror definition only when NOT running with tcldebug

  • 00346 - Sometimes bumpmap shading is inverted on some triangles

  • 00102 - ztile boundaries show up as lines in planet2 textures

  • 00103 - weird planet2 shading issues

  • 00114 - comm connection error message can cause seg fault

  • 00121 - DSF_GetMapData() may be returning grey when it shouldn't

  • 00219 - one canvas per viewport when using associate_canvas helper function

  • 00074 - problems with the -timing command line option

  • 00086 - possible trackcam bug

  • 00100 - script plugin doesn't handle toggles with flags other than HIDE flags

  • 00173 - Fix DCF_GetRelPosAtt for double precision

« | EDGE User’s Guide | »