Commit Graph

33 Commits

Author SHA1 Message Date
jonasstrandstedt 179f6edd9d Added warning for SceneGraphNodes that were not loaded 2014-12-10 15:38:22 +01:00
jonasstrandstedt 302e642c1c Dependency system for OpenSpace Modules
When loading the SceneGraph for the first time all modules are loaded
into a map and the parent dependency to another map. After all modules
and ScenegraphNodes have been loaded into the map, each module is loaded
in dependency order starting from the root node.
2014-12-10 14:35:08 +01:00
Alexander Bock 82c42cb97a General code cleanup 2014-12-09 18:36:23 +01:00
Alexander Bock 90eac194dc Initial work on performance measuring 2014-12-09 01:41:42 +01:00
Jonas Strandstedt 8196645284 Added support for placing camera att arbitrary position
- Pointing to openspace-data commit that reflects postition changes
- Fix camera to have correct rotation on startup
2014-12-02 11:06:15 +01:00
Alexander Bock c226e9b82f Cleaned up code
Added new COMMON_FOLDER setting in scene file
Error handling when spice kernels are not available
2014-10-11 13:40:52 +02:00
Jonas Strandstedt e4a8e87098 Using new ghoul ProgramObject functionality
- Fixed risk of memory leak in SceneGraph (deleting shaders)
2014-10-01 15:30:39 +02:00
Alexander Bock 1b3823d88c Remove old Spice wrapper 2014-09-27 21:46:24 +02:00
Alexander Bock 7359adf400 Replaced RuntimeData with separate, temporary structs that are passed around 2014-09-26 13:29:01 +02:00
Alexander Bock d7190b2239 Allow Lua scripts to reload scenegraph file 2014-09-26 01:02:13 +02:00
Alexander Bock e6576e88d6 Retrieve modules path from scene file instead openspace.cfg 2014-09-25 23:40:33 +02:00
Jonas Strandstedt 8042111ffe Merge branch 'develop' into spicesolarsystem
Conflicts:
	include/openspace/rendering/renderable.h
	include/openspace/rendering/renderablevolumecl.h
	include/openspace/rendering/renderablevolumeexpert.h
	include/openspace/rendering/renderablevolumegl.h
	include/openspace/rendering/renderengine.h
	include/openspace/scenegraph/ephemeris.h
	include/openspace/scenegraph/scenegraph.h
	include/openspace/scenegraph/spiceephemeris.h
	include/openspace/scenegraph/staticephemeris.h
	include/openspace/util/constants.h
	include/openspace/util/time.h
	src/engine/openspaceengine.cpp
	src/interaction/interactionhandler.cpp
	src/rendering/planets/renderableplanet.cpp
	src/rendering/renderablevolumecl.cpp
	src/rendering/renderablevolumeexpert.cpp
	src/rendering/renderablevolumegl.cpp
	src/rendering/renderengine.cpp
	src/rendering/stars/renderablestars.cpp
	src/scenegraph/spiceephemeris.cpp
	src/scenegraph/staticephemeris.cpp
	src/util/factorymanager.cpp
	src/util/spicemanager.cpp
	src/util/time.cpp
2014-09-25 13:54:42 +02:00
michal 700f590a2a SPICE-time dependency, retrieval of spice ephemerides and rotational matrix + coordinate references.
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?
2014-09-19 20:32:33 -04:00
Alexander Bock bd850d56f5 Remove renderableToggle as it has been replaced with a property 2014-09-18 20:39:30 +02:00
Alexander Bock 66722e83a6 Cleaned up script functionality in SceneGraph
Removed scriptfunctions.h and cpp as the functions have moved into other classes
2014-09-14 18:36:33 +02:00
Alexander Bock 954dbdce13 Merge branch 'origin/feature/ABuffer' into properties 2014-09-13 10:59:33 +02:00
Alexander Bock 9671921331 More work towards a unified interface for accessing properties 2014-08-30 10:01:11 +02:00
Alexander Bock 5793498ddf Added first version of ScriptEngine, allowing Lua script to set propety values 2014-08-21 18:44:42 +02:00
Alexander Bock 26a7fbe47e Code cleanup of Ephemeris classes and SceneGraph 2014-08-20 16:55:07 +02:00
Jonas Strandstedt e99a98224c Working ABuffer
- 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
2014-07-23 16:06:49 -04:00
Jonas Strandstedt 08a8e2f3bb Intermediate ABuffer commit 2014-06-03 16:50:47 -04:00
Alexander Bock 3520bd121e Renamed pss to PowerScaledScalar 2014-05-11 18:34:57 +02:00
Alexander Bock 40a2cb1068 Renamed psc to powerscaledcoordinate and pss to powerscaledscalar 2014-05-11 14:32:42 +02:00
Alexander Bock 636f5327aa Code cleanup regarding scenegraphnodes 2014-05-05 12:15:20 +02:00
Alexander Bock a7fba6363f Added missing ephemerides files 2014-05-05 08:15:27 +02:00
Alexander Bock 7f7e25fd8b More work on ephemerides 2014-05-04 16:50:20 +02:00
Alexander Bock 794a88060f Rename "PositionInformation" to "Ephemeris" 2014-05-04 16:31:36 +02:00
Alexander Bock e84c26aeb7 Renamed constants for dictionary keys
Created static creation method for Renderables
2014-05-04 16:18:35 +02:00
Alexander Bock 982ec8b87c Restructured SceneGraphNode code 2014-05-04 15:28:07 +02:00
Alexander Bock 2bf71ad9b6 More cleanup 2014-05-04 14:16:53 +02:00
Alexander Bock 8d2e86447c Require renderables to derive from PropertyOwner and use dictionary-constructor 2014-05-03 18:44:39 +02:00
Alexander Bock a53888cd26 Changes in clang-format
Applied formatting to some files
2014-05-03 18:23:16 +02:00
Jonas Strandstedt 89eeae62d0 Restructuring for OpenSpace tests
- Moved all OpenSpace headers to separate include directory
- Added OpenSpaceTests binary with OPENSPACE_HAVE_TESTS define
- Added CMake setting of BASE_DIR
- Added OpenSpace initial tests for SceneGraph and SceneGraphNodes
- Added OpenSpace initial tests for psc and pss
- Restructured OpenSpace so no GL functions are called in constructors
to make the classes testable

- Todo: Make the base dir possible to set through command line argument
and configuration file
2014-03-19 14:57:10 -04:00