Commit Graph

99 Commits

Author SHA1 Message Date
Hans-Christian Helltegen
834612469c Finalized the billboard rendering. Code cleanup 2014-12-01 16:27:30 +01:00
Hans-Christian Helltegen
337ce2dd92 Added support for rendering fieldlines as textured view-aligned billboards 2014-11-24 17:18:55 +01:00
Hans-Christian Helltegen
815fc3b348 Fixed depth, position, scale and shader issues with fieldlines. Added passthrough geometry shader 2014-11-21 10:37:01 +01:00
Jonas Strandstedt
8d2503b68e Added support for pixelData for ABuffer
- ABufferFixed should work but it doesn't. But the interface works at
  least.
- ABufferFixed works for normal rendering
- Removed position for ABuffer, it should make rendering much faster.

Todo:
- Figure out why the fetching of pixelData for ABufferFixed gives wrong
  result.
2014-11-13 15:41:10 +01:00
Jonas Strandstedt
ba7a4a4a47 Added ABuffer visualizer
- First draft of the ABuffer visualizer renders a cube with all fragments
  from the single linked abuffer. Lua command to turn on is
  openspace.visualizeABuffer(true)
- Fixed LuaConsole to stop receiving input command after inputing command
- Fixed LuaConsole not to add command to history if it is identical to the
  most recent command.

 TODO:
 - Add support for dynamic and fixed abuffer
 - Scale the cube to match the window ratio
2014-11-12 16:54:40 +01:00
Jonas Strandstedt
46959b4801 Cleanup for KameleonWrapper
- Fixed so size and scale for RenderableVolumeGL can be deduced from model.
2014-11-11 13:43:38 +01:00
Jonas Strandstedt
f85e18dc18 OS X now doesn't crash for volumes
- Fixed a few warnings
2014-11-05 17:11:27 +01:00
Jonas Strandstedt
15db56ff33 Removed unused file 2014-10-27 19:10:09 +01:00
Jonas Strandstedt
4bb9d8c800 Merge branch 'solarsystem2' into cleanup
Conflicts:
	src/util/factorymanager.cpp
2014-10-27 19:03:36 +01:00
Jonas Strandstedt
ea3c5e8d11 More cleanup 2014-10-24 13:34:03 +02:00
michal
d3ea503454 Fixes to the modelloader class 2014-10-23 20:11:49 -04:00
michal
ecfc4ad79a reshaping the modelloader class to suit the overall design of openspace 2014-10-23 18:49:15 -04:00
michal
08a97d9e68 Merge branch 'develop' into solarsystem2
Conflicts:
	scripts/default_startup.lua
	src/rendering/renderablewavefrontobject.cpp
2014-10-23 11:45:24 -04:00
Jonas Strandstedt
5e410c6816 Removed unused files 2014-10-23 14:35:04 +02:00
Jonas Strandstedt
a7da4d84cc Added SyncBuffer class
- Added SyncBuffer class for easy and effecient synchronization
- Small changes to Camera class
- Forward declared a few classes to minimize dependencies
2014-10-22 16:37:54 +02:00
jonasstrandstedt
490fbc4869 Linux fix 2014-10-21 21:44:29 +02:00
Jonas Strandstedt
db141e8e86 Merge branch 'develop' into bug/abuffershadersupdater
Conflicts:
	ext/ghoul
	openspace.cfg
	src/abuffer/abuffer.cpp
	src/engine/openspaceengine.cpp
	src/rendering/renderengine.cpp
2014-10-21 14:54:48 +02:00
michal
54809c6376 Pluto geometry artefacts commit. 2014-10-20 18:29:55 -04:00
michal
50b4c1ec36 fixed renderabletrail class to suit for all different delta times, tropical orbits etc etc. lot of stuff to do with precision and set time intervals (pain in the ass). works clockwork.
changes to modules etc. will do more fixes soon. Incoming.
2014-10-20 16:00:38 -04:00
Jonas Strandstedt
18a87ef99e Added ScreenLog
- Added first version of a ScreenLog mechanism
- Moved the info box to the upper left corner
- Added Ubuntu fonts
- Made RenderEngine a PropertyOwner with _showInfo and _showScreenLog as
  bool properties that can be edited through Lua.
2014-10-17 12:20:23 +02:00
michal
099bcc2c9b changing renderabletrail class to work for planetocentric 2014-10-16 16:13:54 -04:00
Alexander Bock
0e46642624 Merge branch 'develop' into solarsystem2
Conflicts:
	src/util/factorymanager.cpp
2014-10-11 10:54:52 +02:00
michal
3bb9912356 latest changes involve adding an unfinished class called "renderable fov"- ignore that one.
The rest is pretty straight forward, renderable trail is the ephemeris class and wavefrontobject is a very crudely constructed reader... ill fix that on monday
2014-10-11 01:43:31 -04:00
Jonas Strandstedt
9adc1e69fa Added RenderablePlane
- Only first version of the RenderablePlane

Todo:
- Support rotation of planes
- Support billboarding
- Support different local origin (LowerLeft, LowerRight, Center...)
2014-10-10 15:18:16 +02:00
Jonas Strandstedt
9a1b59a73e Intermediate commit 2014-10-10 11:29:16 +02:00
michal
1ed4b74d3e added renderablepath and made changes to renderabletrail 2014-10-08 16:15:37 -04:00
michal
36925cbde7 Finished ephemeries for all 8 planets and fixed so that renderablewavefront object.
NOTE: Basically, added a whole bunch of mod files, I agre - its ugly but later we need to decide ownership of this class.

Ephemeries goes temporarily under the name "RenderableTrail"
It displays a fading ephemeries with nodes of equal time (planetary days for now, will make changable)
For each modfile one specifies all the usual spice stuff with the addition of:
 - Planets tropical orbit
 - Planet/Earth orbit ratio
 - Planets day length in earth hours
Pulled from NASAs webpage so its reliant data, got the link from Brian.
2014-10-07 23:06:21 -04:00
michal
21745b91a5 new class - renderabletrail - will later be renamed and current replace renderableephemeris.
Right now just adding a bunch of mod files, i know this is rather ugly but i just need it to work for friday.
2014-10-07 18:44:14 -04:00
Alexander Bock
67f0fb3c08 Merge branch 'develop' into solarsystem2
Conflicts:
	.gitignore
	include/openspace/util/spicemanager.h
	shaders/star_fs.glsl
	src/engine/openspaceengine.cpp
	src/rendering/renderengine.cpp
	src/rendering/stars/renderablestars.cpp
	src/scenegraph/scenegraph.cpp
	src/scenegraph/scenegraphnode.cpp
2014-10-06 22:22:30 +02:00
michal
acc8056455 added some new classes for ephemeris rendering.. 2014-10-06 15:30:13 -04:00
Alexander Bock
b7da50b3dd Added Lua method to print a screenshot 2014-10-05 17:31:47 +02:00
michal
9eaf25f38c still working on obj loader, trying to maintain regular pushes to git. 2014-10-03 22:35:17 -04:00
michal
d2c13eb104 adding objloader 2014-10-03 18:57:01 -04:00
michal
59161e186c Renderableehpemeris still as it is, will be repurposed though.
Renderable trail now acts like planet ephemeris, not yet finished. Need to work on objectloader
2014-10-03 18:56:16 -04:00
Jonas Strandstedt
3cad506b5b PowerScaling modifications
- Started working on PowerScaling with some initial changes
- Faking the stars by blending with the abuffer
- Changed texture filtering for planets, looks better in my opinion
2014-10-03 17:02:31 +02:00
michal
938c442dd6 got renderable ephemeris working for larger deltas, problems with leap years though 2014-10-02 11:00:43 -04:00
Jonas Strandstedt
5427dbdeb2 Merge branch 'develop' of openspace.itn.liu.se:/openspace into develop
Conflicts:
	src/rendering/planets/renderableplanet.cpp
	src/rendering/renderablefieldlines.cpp
	src/rendering/renderablevolumegl.cpp
	src/rendering/stars/renderablestars.cpp
2014-09-26 17:17:18 +02:00
Jonas Strandstedt
2d359fd48c Started working on modularizing PSC and ABuffer 2014-09-26 17:03:59 +02:00
Alexander Bock
7359adf400 Replaced RuntimeData with separate, temporary structs that are passed around 2014-09-26 13:29:01 +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
Jonas Strandstedt
82ff7fa984 Merge branch 'develop' into stars
Conflicts:
	include/openspace/util/constants.h
	shaders/pscstandard_fs.glsl
	shaders/pscstandard_vs.glsl
	src/interaction/interactionhandler.cpp
	src/main.cpp
	src/rendering/renderengine.cpp
	src/scenegraph/scenegraph.cpp
	src/scenegraph/scenegraphnode.cpp
	src/util/factorymanager.cpp
2014-09-24 15:39:22 +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
dd629db53d More code cleanup, force inclusion of swizzling for GLM 2014-09-19 17:44:33 +02:00
Alexander Bock
0fbdbb8dab Fix a bug in TemplateProperty preventing new bool values to be set
Add "isEnabled" flag BoolProperty to all renderables
2014-09-18 08:46:46 +02:00
michal
7bd44efc8e code optimization, cleanup. 2014-08-30 21:33:30 -04:00
michal
7e078352d0 Fixes to shader pipeline.
- Added second shader for points only
- VBO interleaved array passed to both shaders
- passthrough in geom. shader works
- reading of additional scalar data from speck files.

TODO: calibrate scale and apparent brightnesses
2014-08-30 16:40:44 -04:00
michal
b1851e5313 Added geometry shader for halos and separate shader for points. Parsecs->m conversion works and added test-data to datafolder. 2014-08-28 23:04:27 -04:00
michal
8f3bcdeb54 WIP3: problems with texture coordinates, needs fix. 2014-08-26 19:26:09 -04:00
michal
013d4c5bb6 WIP: intermediary commit, will attempt to run HC's code on this machine. 2014-08-25 17:37:23 -04:00
michal
d75171c69b Added new class renderablestars.cpp for rendering starfields.
As for now only reads and stores *.speck file data.

TODO:
1. write cache mechaninsm (load avg ~15 sec)
2. fix render function.
3. add textures.
2014-08-20 11:29:31 -04:00