Added functionality:
- New class renderablesphericalgrid is repurposed code from powerscaledsphere class.
Due to z-buffer issues used as reference grid to confirm planetary orbits are correct.
This has been a major problem as prior we had no visual reference.
Now we have a Galactic-, Celestial- and Ecliptic-coordinate grid.
To this also added separate shader: grid_vs.glsl / grid_fs.glsl
These grids have a static-rotational matrix derived from partiview (thanks to Brian)
since spice req. to-from frame to compute rotational matrix.
Time dependency:
- Added struct RuntimeData - which for now only contains openspace time and is passed to all renderables
- All renderables accept runtimeData, keep private reference and use for computation of rotational matrix
- This obviously carries corresponding changes to Scenegraph and ScenegraphNode.
Spicemanager:
- Added function that more easily provides access to rotational matrix used in spice
(used in renderableplanet for computing planetary objects spin around axis)
Ephemeris-classes:
- Now compute ephemeris from spice based on timeepoch in runtimedata
TODO: once z-buffer fixed - set ephemeris correctly as meters (not kilometers)
Renderengine:
- Advances time with the advanceTime method in RuntimeData struct
ISSUES:
- Our Y axis NOT same as SPICE or star-catalogue, all renderables rotated now 90deg, needs redefinition,
lots of debugging and major headaches before this conclusion.
- Depth buffer needs to be fixed in order to properly place planets.
- Spice kernels have finite time-range, when time stops - simulation ends - ugly fix: reset time to zero.
Possible fix: kernels de431 (part 1-2) cover huge timespan and most likely have functions to extrapolate time,
drawback is that they are 1,7 gb each.
TODO:
- Compute and draw dynamic ephemeries for each renderable. Either do full year sweep then update for each point or
create a tail of linesegments for each planet. Dont know yet how to do this, would like spicephemeris to be
sub-class of Renderable (have own render() method) - good/bad?
- Fixed the ABuffer rendering for intersecting volumes
- Added keyboard callback for toggling renderables
- Changed textures from ClampToBorder to ClampToEdge
- Fixed transferfunctions to clamp to edge instead of fade to black
- Added PowerScaling to RenderableVolumeGL and RenderableFieldlines
- Removed the use of volumeraycasterbox since it used FBO and textures
which was not used anymore.
- Added a simple box implementation to RenderableVolumeGL that can have
PowerScaled vertex positions
TODO: The #include command needs to be extended in some way since the
FieldLines passthrough shader can't access the PowerScaled includes in a
good way.
- Pointing to bugfixed Ghoul
- Pointing to Ghoul with Linux file callback
- Fixed interaction distance control bug when moving to close
- Distance control with mouse wheel added
- Kameleonwrapper normalization based on histogram
- ABuffer seems to work with small issues
- Added support for volume caching
- Fixed bug when moving camera in the direction or the origin causing
position lock
- Fixed camera being to only being affected on SGCT_PRESS and
SGCT_REPEAT
Renamed OpenCL qualifiers due to conflict with "ERROR" macros
Removed boost::timer and boost::system dependencies
Added fixed for Windows path handling
- Removed old classes and moved code to the Renderables
- RenderableVolume is now abstract with some helpful functions
- Added swapinterval=0 to sgct config for performance analysis