Graphics.Release20 - lordmundi/wikidoctest GitHub Wiki
EDGE v2.0 Release Notes
On this page… (hide)
- 1. Patches
- 2. Upgrading (please read)
- 3. Summary of Changes
- 3.1 Model cache update
- 3.2 Planet2 Updates
- 3.3 Plume comm rewrite
- 3.4 Benchmarking utility
- 4. Installation
- 5. Known Issues
- 6. Fixes and Enhancements
« | EDGE User’s Guide | »
NOTE: These are the release notes for EDGE version 2.0. You can find the release notes for other versions here.
1. Patches
No patches exist for this version yet.
2. Upgrading (please read)
If you are upgrading from a previous version of EDGE, please be aware of the following:
- CLOUDS node
- The node named "CLOUDS" needs to be at xyz,PYR of all 0.0 (zeroes). If you have saved off a custom base state, please ensure that it is not rotated.
- USERDATA override:
- In this version, the .doug_cshrc will check to see if $USERDATA is already defined before assigning it. If you want to specify a specific userdata directory to use, set the USERDATA environment variable to the appropriate userdata directory before running the "run_graphics" script.
- Planet2 updates:
- The planet2 plugin and config file has some updates. If you were overriding the default planet2 config file with your own, you will want to look at the new config file "configs/planet2.cfg" and merge in any changes you require into there.
- The planet2 updates include a really nice earth atmosphere. If you are running another plugin to provide an earth atmosphere, you will want to disable one or the other.
- Moon south pole elevation data is available in this release, but is ITAR restricted. You must ensure that you are abiding by all ITAR regulations when accessing, storing, or sharing this data.
- Plume comm rewrite:
- This is one update that will have an impact. We are encouraging people to update their sims and graphics installation to use the way plumes are handled in EDGE v2.0. This update rewrites the plume comm so that it is entirely one way communication and no longer requires an "ACK" of plume commands from the graphics to the sim. This is good because plumes were the only things requiring two-way communication. The new logic does away with that and results in a much cleaner way of driving plumes and a more reliable method. Upgrading users need to update the logic and files in their sims to be compatible with the logic in EDGE v2.0. More details below.
- Look and feel:
- Many printouts on the command line have been cleaned up. Do not be alarmed. This is done via a command line option "-quiet" which is used inside the run scripts. If you want the old behavior use "run_graphics -noquiet".
- The "dsp_timeit" plugin has been removed from the default config. This is what provided the strip at the bottom of the view with the frame rate. This frame rate was not very accurate. If you want the framerate, run with the "-fps" option. Of course, you can also add the plugin back in if you really want it there.
3. Summary of Changes
We are excited to release EDGE v2.0. For the full list of changes, please see the section at the end of this document. Notable changes include:
3.1 Model cache update
The model cache has been updated to be more representative of the latest assembly complete configuration. This is the main reason why we elected to change the major EDGE version rather than releasing this as EDGE v1.2. The stub models for CEV are unchanged.
3.2 Planet2 Updates
There have been some significant improvements in the planet2 plugin.
Right away, users will notice the new earth atmosphere model and the clouds. You can notice the sun specularity change when reflecting off of water versus land and clouds. Also, as the light falls through more and more atmosphere, the shift to red becomes more apparent, even on the reflected light from the water! Cloud shadows are also there. Some before and after shots:
[![1.1 vs 2.0][15]][15]
Atmospheric model produces a red sky at dusk
[![1.1 vs 2.0][16]][16]
Water specularity and haze adds realism to views from space
One significant improvement that is allowing those lighting effects and shading is the custom shaders being used inside the shaders directory. These are files written in OpenGL shading language that developers can write or augment to customize the shading of layers in the planet2 plugin. Very powerful. Of course, the atmosphere modeling itself is completely customizable in the config file, letting you modify the parameters used in the model to tune the atmosphere however you desire.
[![1.1 vs 2.0][17]][17]
Atmospheric model gives a great transition from sky to space
Another significant improvement is the change in shading technique. Previously, shading was geometry based, so as higher and higher resolutions of terrain were rendered, higher detail of shading could be seen. There are a couple of downsides to this. One is that the elevation detail always trails the detail of the imagery by a factor of about 16, so the quality is lower. Another downside is that as higher resolution geometry is paged in, the changes in the shading cause a very obvious "pop" in the image. This shading has been improved upon and moved to an image based solution. Basically, the mapplugin now provides an interface to deliver a bumpmap as well as the elevation. The bumpmap is used for shading, and has the advantage of being done at the resolution of each pixel being drawn. This results in much higher resolution in the shading, and also much less popping as the geometry shifts.
Geometry based vs. image based shading
Which brings up perhaps the biggest development in planet2, which is the mapplugin interface. Mapplugins are plugins anyone can write that can provide imagery, elevation, or slope (for bump mapping) information to planet2. Have some elevation data you would like to see? Write a mapplugin and add it into your scene easily! Planet2 takes care of caching the information provided by mapplugins and resolving the requests down to a simple interface.
Lastly, the image tile management and tile subdivision has been improved in the plugin. This is a big improvement for performance, particularly when looking at the poles where hundreds of textures can converge.
3.3 Plume comm rewrite
The plume comm rewrite is, unfortunately, one change which requires a change on the graphics side (which we took care of) and a change on the sim side (which means users will need to update their sims if they had previously integrated with EDGE). We don't exactly like rolling out changes which require integration work for our users, but this was one change we felt needed to be made as the previous method of plume comm was not reliable and not clean.
A little background: Plumes are a bit of a special case. For all other elements in graphics, the sim drives a position, or a flag. Plumes can fire on and off extremely quickly. The problem comes in because some facilities have a requirement that something be shown in the scene regardless of how fast the toggle. For example, if a plume goes - on, off, on, off - all between a frame update, the graphics basically started in an off state, and ended in an off state. Without some sort of logic, the plume in the scene would never get drawn. Some facilities require that at least one frame show a plume on. It is understandable why they would want this.
The previous solution to this plume problem (prior to EDGE v2.0) was to use an acknowledgment packet (ACK) from graphics to notify the sim when a plume event was drawn, and to have the sim not send further updates until it received that ACK.
There was a couple of problems with this. One, it didn't work reliably. The ACK packet could get missed, and everything gets hosed. Also, there was a consistency problem: for all other sim/graphics interaction, the comm was unidirectional - meaning data only flowed from the sim to the graphics (except at init of course to get node ID's). For this plume implementation, it required a packet in the opposite direction - from graphics to the sim - for the plume ACK. We didn't like this.
The problem is more complicated than it seems. First, as described above, a simple on/off switch is insufficient, since a quick toggle in the sim from off, to on, and back to off can cause the graphics to recieve two "offs". The graphics must be capable of knowing that something happened and that it must turn on the plume for at least one frame. Another complexity is the fact that the plume code must be capable of running with recorded data as well, which means the playback can jump to other simulation times, and can also back up to previous simulation times.
The new solution aims to make the comm unidirectional (from sim to graphics only) while being able to detect and handle the cases described above. We do this through an "even/odd" method. Basically, the sim side increments a value on plume events. When the graphics sees an odd value, the plume is considered on. Even represents an off plume. Since the sim only increments the number, the graphics is able to detect a missed packet.
This makes the logic more complicated on the graphics side, but we feel like this is a good trade. The only new setting that comes into play is an environment variable called "PLUME_MIN_TIME_ON" which is defaulted to 50ms but customizable in userdata. This setting represents the minimum amount of time a plume stays on in response to an "on" event. This upgrade is tracked in Issue 00066.
3.4 Benchmarking utility
This is an exciting addition to the EDGE package. We highly encourage 2.0 users to run the benchmarks (simply type "./run_benchmarks") and send in your results. Results will be shared on the website. Get some bragging rights for that monster machine you have in that lab. Send in your benchmark results!
4. Installation
To install:
- Untar the "EDGE_v2.0.tgz file". Notice there is a "gisdata" link in that directory that defaults to "/dougdata/gisdata_2.0". This is because it is preferable that the gisdata_2.0 folder reside on the local machine where doug is running.
- Extract the "EDGE_data_pack_v2.0.tgz" (referred to as data pack) somewhere (it is recommended that this be somewhere on the local machine where doug will be run and not on a network path such as a home dir).
- 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.
To integrate into your sim:
For ANTARES sims, this integration has likely already been done for you ad delivered with the ANTARES sim. For other sims, see the Orbital sim integration page.
5. Known Issues
-
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
-
00102 - ztile boundaries show up as lines in planet2 textures
-
00103 - weird planet2 shading issues
-
00104 - missing some lens flare textures
-
00110 - low detail models for some nodes on station are missing
-
00112 - lens flare sometimes shows up when sun is occluded
-
00114 - comm connection error message can cause seg fault
-
00116 - MxMt broken
-
00121 - DSF_GetMapData() may be returning grey when it shouldn't
-
00158 - common.mk is not defining __LINUX__
-
00159 - dsp_fltloader.c doesn't handle "." (dots) in pathname or show warnings
-
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
-
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
-
00188 - Problem with HFOV text input in Edit Camera Node - Cores
-
00190 - trackcam plugin doesn't install if no tracking cameras defined
-
00193 - ac3d doesn't appear to handle spaces in material name
-
00194 - default highlight and flash color not set for user models
-
00197 - dsp_state plugin fails to load in manager
-
00199 - doug seg faults if doug path is too long
-
00203 - some plugins/libraries failing to load
-
00205 - DOUG seg faults with 190.xx series of NVIDIA drivers
-
00216 - nodes in matrix mode not propagated when in double precision
-
00217 - planet2 occasionally seg faults
-
00219 - one canvas per viewport when using associate_canvas helper function
-
00224 - doug background command seg faults
-
00226 - Link issues with dcomm under C++
-
00229 - doug header relies on X.h
-
00231 - simdata plugin may be calling DSF_ExecuteCore twice
-
00236 - issues when replacing or extracting files using dsp_package
6. Fixes and Enhancements
- 00003 - water shows as black
- 00006 - DOUG error looking for plugin even though it is found
- 00007 - double-clicking state files can result in weird "after#xxxx" errors
- 00010 - sim interface code is missing prototypes
- 00038 - Hooks for user DEM data
- 00048 - AC3D model highlight color is black
- 00050 - ScrollWheel Bindings For Cue Card GUI doesn't work properly
- 00051 - add a states dir to userdata
- 00052 - correct double pointer in drive_orbital_graphics_elements
- 00054 - cev_plume_drive.tcl and cev_plume_init.tcl should not have hard-coded dependency on cev_plume_array.tcl
- 00056 - Simdata Dialogue Doesn't Retain Last Data File Chosen
- 00061 - User-defined USERDATA environment variable
- 00062 - gde.csh doesn't report driver versions > 100
- 00063 - gde.csh reports incorrect video memory size
- 00064 - DCF_GetNodeID segfaults when node_name pointer is null
- 00065 - doug.node command segfaults on type mismatch
- 00066 - plume comm/ack timing issue
- 00068 - update plumes and chutes from ANTARES 08.1
- 00069 - add planetary atmosphere
- 00070 - clean up/reduce doug printouts
- 00071 - Update canvas/drawcanvas plugins to be double precision compatible
- 00072 - multidisp weirdness when clicking after changing views
- 00073 - add camera noise capability
- 00075 - problems with canvas row/column locking in double precision mode
- 00076 - fix typo in math_utils_library.tcl
- 00079 - planet2 lat/lon/alt cconversions do not take into account layer rotation
- 00080 - add method to customize speedy args via userdata mechanism
- 00081 - get rid of redefinition warnings for assert
- 00083 - Earth textures sometimes look crawly
- 00084 - Models flickering or bleeding through when far away
- 00085 - separation of ISS docking target and hatch models
- 00087 - reconfigs don't seem to work after applying AC3D 080609 patch
- 00089 - remove degenerate triangle printouts
- 00090 - Update canvas plugins to tessellate polygons
- 00091 - add benchmark utility
- 00092 - gde.csh reports video memory > 1 GB incorrectly
- 00093 - Make planet2.cfg more configurable via env variables
- 00094 - Add capability to override the gisdata location
- 00095 - Generic lens flare capability
- 00096 - Update default tcl precision
- 00097 - Make base cache and update cache path customizable
- 00098 - need a method to defined camera parameters via USERDATA mechaism
- 00099 - add a warning if update cache is not writeable
« | EDGE User’s Guide | »