Commit Graph

36 Commits

Author SHA1 Message Date
Anton Arbring
914b3896ad SPICE error handling, position/rotation estimation etc...
- When loading SPICE kernels, coverage for each body is stored.
- If the body does not have spk coverage a position is estimated.
- Added "pulsating" transparency levels for renderableModels with
  estimated position.
- Spice manager clean up, left a few unused methods but removed a lot of
  dead code.
- To support multiple missins being loaded, some errors are simply
  ignored in spicemanager, for better or worse.
- Added start time and stop time as dictionary keys for renderables.
- Made RenderableTrails only show the time between gaps.
- Added but out commented vesta coordinate system swich in renderengine.

NOTE: Renderables using spiceEphemeris will give errors if body keyword
is omitted in modfile (When checking SPK coverage in position update).
2015-04-09 17:35:30 -04:00
Anton Arbring
b79e6df763 Planets shape creation & fixed texture longitude
Instead of spheres, the planets are now created as triaxial ellipsoids
according to the corresponding radii values in the SPICE kernels (if such
values are available). Apart from being more scientifically accurate, the
planets are shaped as the intersection functions in SPICE expects.

The textures will now also be aligned in longitude as in reality (w.r.t.
UTC) when using a texture map ranging from -180 in the left end to +180 on the
right, with 0 longitude in the middle (such as Greenwich in Earth texture)
2015-03-20 19:59:26 -04:00
Alexander Bock
43a3716afd Intermediate result to change viewpoint from Jupiter projection to Plutoprojection 2015-02-24 17:52:40 +01:00
Alexander Bock
cc331a7496 Linux compile fix 2015-02-23 13:08:14 +01:00
Alexander Bock
f00158969c Cleanup of ImageSequencer
Added caching to playbook loading
Increased performance of playbook loading
Added default placeholder image
2015-02-19 16:21:28 +01:00
Joakim Kilby
3d04af03a3 Merge branch 'develop' into plutoViz
Conflicts:
	include/openspace/rendering/planets/simplespheregeometry.h
	include/openspace/util/powerscaledsphere.h
	openspace.cfg
	shaders/pscstandard_fs.glsl
	src/engine/openspaceengine.cpp
	src/rendering/planets/renderableplanet.cpp
	src/rendering/renderablefov.cpp
	src/rendering/renderabletrail.cpp
	src/rendering/renderengine.cpp
	src/scenegraph/scenegraph.cpp
2015-02-18 15:52:35 +01:00
Alexander Bock
a6ebddb8eb Updated copyright header in all files 2015-02-17 14:20:03 +01:00
Alexander Bock
bb5f6e1bca Renamed member variable of SimpleSphereGeometry from _planet to _sphere 2015-02-16 22:13:03 +01:00
Alexander Bock
69e0213e79 Added ability to disable shading for RenderablePlanet renderables 2015-02-16 19:23:23 +01:00
Michal Marcinkowski
4c53f763f0 Recentering at Pluto,
Todo - add NH with kernels.
2015-01-23 12:10:21 -05:00
Michal Marcinkowski
a8e5b61272 Image sequencing improvements and optimization of projection.
Projection now occurs only at specified timestamps.
Todo:
projection class now dependent on image sequences, will have
to change that once we read specific instrument schedule.
2015-01-21 11:28:38 -05:00
Michal Marcinkowski
fa0f26c9da In short, this is new:
- ImageSequencer class added, requires planetary data service files (not added to openspace-data, too large)
   : Given current time returns path to specific image in dataset for projection.
- Changes to RenderablePlanetProjection class to accomodate sequencing
- Fixed normal computation in reverse-mapping stage
- Rudimental target recognition (will prob. become part of separate class at some point - since both fov & proj classes do similar things)

Next up:
- Redo pluto mockup visualization & begin spreadsheet reader for instrument-switching.
2015-01-16 13:06:52 -05:00
Michal Marcinkowski
812a9a48be Normal computation in pre projection pass issue resolved. 2015-01-13 10:59:09 -05:00
Michal Marcinkowski
f37958c24f beginning to work on sequencing 2015-01-10 16:07:05 -05:00
Michal Marcinkowski
ca39f5aaf5 begin cleanup, making code more transparent 2014-12-30 17:07:57 -05:00
Michal Marcinkowski
a6a34cf7dd projection GPU first results, pre-cleanup commit.
TODO:
- fixes so it reads mission specific modfile keywords (ie targets)
- speedup using one more pass (vertex map generated every something-frame)
- sequencing (timestamp check + load of separate images on-the-fly)
- pass in geometric data of target + target-texture switching (later)
2014-12-26 13:42:34 -05:00
Michal Marcinkowski
ee306cf54c Added separate shader for write to texture, relies on blend logic. 2014-12-22 10:02:31 -05:00
Michal Marcinkowski
b14ff04f76 wip - piping projection-to-texture to GPU. 2014-12-18 12:00:27 -05:00
Michal Marcinkowski
f032b4e3b0 Merge branch 'develop' into solarsystem2
Conflicts:
	.gitignore
	include/openspace/rendering/renderablefov.h
	src/CMakeLists.txt
	src/rendering/model/renderablemodel.cpp
	src/rendering/renderablefov.cpp
	src/rendering/renderablepath.cpp
	src/rendering/renderabletrail.cpp
	src/util/factorymanager.cpp
2014-12-15 13:23:30 -05:00
Michal Marcinkowski
70d24185de intermediate commit prior to merge 2014-12-12 11:52:31 -05:00
Jonas Strandstedt
da4fa44c03 Continued work on memory leaks and proper isReady usage 2014-12-11 16:48:49 +01:00
jonasstrandstedt
81caf96d72 Started working on Renderables
- Making sure isReady is properly set
- Making sure initialization is done correctly
- Making sure deinitialization is done correctly
2014-12-10 19:43:38 +01:00
Michal Marcinkowski
bd841c488c Merge branch 'develop' into solarsystem2
Conflicts:
	.gitignore
	src/rendering/renderablefov.cpp
	src/rendering/renderablepath.cpp
	src/scenegraph/scenegraph.cpp
	src/util/factorymanager.cpp
2014-12-08 21:26:38 -05:00
michal
bd74acedd3 fixing stupid git mistake. 2014-11-28 17:15:13 -05:00
michal
a5c232eb88 Tidying up. 2014-11-28 14:41:59 -05:00
michal
83ed904f1d changes to projective texturing, some cleanup. 2014-11-28 13:49:18 -05:00
Alexander Bock
4de8071efe Force all Renderables to declare an 'isReady' function to circumvent assertion triggers when a crucial element of initialization fails
Fix velocity in RenderableStars
2014-11-28 01:41:26 +01:00
michal
c154141b8b minor changes, testing 2014-11-26 11:22:11 -05:00
michal
4c8814b237 Projective Texturing
Created test class based on renderableplanet & co.
Doing it this way carries some implications that need discussing.
2014-11-24 14:06:50 -05:00
michal
484dfefbee Adding temporary testing class based on renderablePlanet for testing projective texturing.
Note: This class will most probably be removed at some point, carry on.
2014-11-13 15:00:45 -05:00
michal
ecfc4ad79a reshaping the modelloader class to suit the overall design of openspace 2014-10-23 18:49:15 -04:00
Alexander Bock
7359adf400 Replaced RuntimeData with separate, temporary structs that are passed around 2014-09-26 13:29:01 +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
d09a1e0b54 Misc work
More cleanup of RenderablePlanet
Added const modifier to pss method
Added faster travel method for interactionhandler
2014-05-05 18:04:53 +02:00
Alexander Bock
a86d544812 Created classes for PlanetGeometry
Added SimpleSphereGeometry
Created infrastructure for added other geometries
2014-05-05 17:28:46 +02:00
Alexander Bock
5e758b16d1 Misc work
Added ext/kameleon to .gitignore
moved renderableplanet to a subfolder
2014-05-05 12:41:41 +02:00