filnet

  • *****
  • 113
OSGEarth integration todo list
« on: November 01, 2015, 05:00:32 pm »
Small
  • camera initial position is too far from model although home position is ok (use space key to reset to default home position)
  • PFD should clamp altitude to terrain like ModeView does
  • PFD : terrain behind PFD is not optimally layed out (top part is chopped off...)
  • PFD artificial horizon issues : does not take into account fov and altitude ("horizon dip")
  • make corfu default location
  • GCS should ship with default imagery when user has no web access and no cached content
  • offer model view without terrain
  • reuse previous bg images in new model view without terrain
  • sky options (stars, sun, moon, ambient light, sun light)
  • cache only option
  • terrain loading indicator (spinning thingy) - can be done in Qml
  • terrain loading indicator (spinning thingy) should spin only when loading tiles from web (and not from cache)
  • Model View : camera should be closer by default + different view angle? + better lighting
  • Model View : display model based on configured vehicle type
  • camera fleld of view does not seem to be taken into account any more
  • other Qml items : camera control scheme, etc, etc, etc... just ask...
  • add fog
  • add noise to terrain rendering to increase realism (look into splat)
  • add LODBlending
  • display some kind of help for the numerous keys and mouse actions
  • add google sat as data provider
  • force google sat caching
  • provide GCS command line option to enable/disable vsync
  • GPS position is sampled at 1Hz causing jerkiness when playing back a log file : need to add some kind of interpolation
  • tweak terrain options (like min_tile_range_factor) to improve rendering
  • add dirty flag to PFD configurations to avoid expensive rebuild when no change were done by user
  • simplify location logic. new logic should be : use GPS if there is a fix, else use home location is set, else use default location defined in options.
  • uninstalling GCS takes ages if the osgearth cache contains many files (cache grows quickly to few Gb).

Big
  • osx build
  • clouds
  • waypoints display
  • benchmark
  • cache pre-seeding
  • 3D buildings, trees, etc...

Technical
  • Stability test : remove all osgplugins -> GCS should not crash
  • Problem when enabling OpenGL on Map : replace all deprecated QGLWidget by QOpenGLWidget
  • osgearth library should be turned into a QtQuick plug-in
  • [Windows] freetype2 is complled along the other required osg dependencies but it is not picked up by cmake when building osg
  • allow to switching between QQuickWidget and QQuickWidget at runtime (could be useful for testing)

Cleanups
  • osgearth is initialized early causing a window to flash briefly (linux)
  • remove QtDeclarative from copydata.pro
  • factorized javascript duplicated in PdfTerrainView.qml and ModelTerrainView.qml
  • compile with OSG_USE_REF_PTR_IMPLICIT_OUTPUT_CONVERSION set to OFF to sanitize ref_ptr usage.
  • don't clone the whole osg and osgearth repositories. get source tar balls instead.

Bugs
  • crashes when resizing gadget (linux and windows)
  • random crashes on Windows (happens rarely...) was apparently caused by non thread safe new log to file feature
  • crashing often when switching to "Model View (No Terrain)"
  • crash when selecting "Model View (No Terrain)" a second time (windows)
  • splitting an osgearth gadgets will crash GCS
  • splitting an osgearth gadgets will leave gadget all black (but enabling stats with 's' key will restore rendering???)
  • closing an osgearth gadgets will crash GCS (linux only?)
  • rendering corruption/crash when adding/removing/configuring PFD gadgets multiple times (something not being freed)
  • model rendering artifacts when zooming close (especially on test_quad) - is it z-fighting or something else? bug in LogDepthBuffer.
  • nasty flicker when resizing osgearth gadgets (probably a Qt bug). Fixed by switching from QQuickView to QQuickWidget.
  • QQuickWidget regression : when switching to full screen mode, menu bar does not display popup menus anymore (windows)
  • QQuickWidget regression : when switching workspace, rendering artifacts are briefly visible (linux)
  • widgets containing terrain will render as a black rectangle when being splitted. Exact cause is not understood but it hapens when the widget becomes parent less. When becoming parent less, the associated glcontext is destroyed and recreated later and that will cause osg glitches. Strangely switching on the stats overlay (with the 's' key) will restore proper rendering. Workaround was to rework the SplitterOrView class to make sure gadgets never become parent less. Exact cause of the black rectangle needs to be understood
  • when removing a PFD gadget, the gadget is not destructed
  • opening Options dialog crashes immediately for some users (AMD/ATI related)?

Osg[earth] bugs

Performance
  • CRITICAL :  when starting GCS for the 1st time, there is long freeze while osgearth downloads a first batch of data
  • vsync seems to be a CPU hog. Disabling Qt vsync reduced CPU usage a lot
  • switch to on demand rendering + improve rendering loop (very basic at this stage) - there a good example to work from
  • use QQuickWidget in place of QQuickView to avoid creating a new window per view
  • use CompositeViewer to share terrain data between views
  • improve thread safeness (update vs render)
  • switch to use multi-threaded osg rendering
  • switch to QSG multi-threaded render loop

Models
  • some 3ds files are much bigger than others and (might) be more taxing to render. osg has a feature to optimize and check models that outputs some stats. could it be that some 3ds models are full of meta data. it is possible to generate "optimized" versions
  • are there options to generate more optimized 3ds models (using triangle strips and/or fans, etc...)

Build
  • build on windows, linux and mac
  • fully automatize build on windows
  • installer on windows, linux and mac
« Last Edit: July 21, 2016, 05:05:22 pm by filnet »

Re: OSGEarth integration todo list
« Reply #1 on: December 28, 2015, 05:07:10 pm »
I would also add that todays PC's no longer use just 1024x768 resolution. Can GCS include an adjustment for the res of the OS  being used or can it auto detect the res being used? It does not display correctly and covers some of its functions when used on high res monitors.

filnet

  • *****
  • 113
Re: OSGEarth integration todo list
« Reply #2 on: December 29, 2015, 01:54:40 pm »
Do you have screen shots of the issues with high res monitors?

I recently acquired a high-dpi device (a surface pro 4) and can see some issues.
Qt 5.6 is supposed to address high-dpi related issues : http://blog.qt.io/blog/2015/12/18/qt-5-6-beta-released/

5.6 is in beta now so we could test it.

filnet

  • *****
  • 113
Re: OSGEarth integration todo list
« Reply #3 on: December 29, 2015, 10:13:23 pm »
Just tested with Qt 5.6.0-beta on Windows and GCS looks much better on surface pro provided the env variable QT_AUTO_SCREEN_SCALE_FACTOR is set to "1".
See https://doc-snapshots.qt.io/qt5-5.6/highdpi.html for more details.
 
Similar results might be achieved with Qt 5.4 (used by current version of GCS) by setting the env variable  QT_DEVICE_PIXEL_RATIO to "auto". I have not tested this...
See http://doc.qt.io/qt-5/highdpi.html for more details.

Re: OSGEarth integration todo list
« Reply #4 on: December 29, 2015, 11:58:33 pm »
I am using it on a Surface Pro 3 and had this issue. I had to reduce the resolution to see GCS correctly. Surface Pro 3 normally runs 2160 x 1440. I was able to get it to work eventually but the text is very small and hard to read.

filnet

  • *****
  • 113
Re: OSGEarth integration todo list
« Reply #5 on: January 04, 2016, 11:33:24 am »
Try to set the environment variable QT_DEVICE_PIXEL_RATIO to "auto" and then run GCS on your Surface Pro.