This merge request contains the work needed to migrate the internal model to an ECS.
Gaia Sky now uses a scene graph which is baked into an OOP inheritance hierarchy that has become a major PITA. It is huge, with multiple overrides and a far too deep structure. It is difficult to maintain and prone to errors.
The idea is to move the whole object hierarchy (the root being SceneGraphNode) to an entity component system (ECS) paradigm. Artemis-odb and Ashley were considered. Artemis seems a bit over-engineered, so we'll go with Ashley for now. Additionally, Dominion is looking very compact, fast and simple, but it is still in a very early development phase. It may be worth a look in the near future.
The work will be split into phases:
The first phase moves the JSON loading and recreates the whole structure into entities and components.
The second phase moves the logic in the scene graph objects into systems and tries to achieve a fully working build.
The third phase also incorportaes the current renderer into the ECS structure.
Once this is implemented, the code base will be wildly different and much more maintainable. It will enable easier parallelization in two different ways:
First, some of the update systems will be able to run in parallel. When the first top-down update of the scene graph has been completed, the rest of the update operations can essentially be run in parallel. This is not possible right now, as the update operation is monolithic and sequential for all objects.
Second, it will possibly enable concurrent update/render processes (i.e. run the update thread separate from the main render thread). Right now, the update/render cycle is ran in the same thread:
Since the model is being rendered and updated at the same time, this may require an extra 'extract' step, where a representation of the scene containing the information to render is extracted to send into the render system. Once this extraction operation is done, and since the render system reads the extracted data only, the next update cycle can start safely.
All in all, this is a major refactoring and it is expected that it will require a few months' work. The work has already started, and lives in the branch ecs.
Usage
The refactor lives in the ecs branch. Check it out and run it normally:
git checkout ecs
gradlew core:run
Currently, both the old and the new model and renderers live alongside each other, so the frame rates are a bit lower than usual. The default mode uses the old renderers. Use the equals key = to switch between the old and the new, ECS-based model and renderers. EDIT 2022-09-22: The old model and renderers have been removed, so the = is now unmapped, and it is no longer possible to use them.
Progress
Load basedata package into ECS (100%)
Move all loading to ECS (100% )
Implement scene graph logic into systems (100%)
Initialize (100%)
Update (100%)
Extract (100%)
Move render process to systems (100%)
Migrate camera focus to ECS (100%)
Make sure tessellation works
Game mode / elevation maps
SSR
Shadow maps
Scripting API (100%)
Make sure keyframed camera paths system works (100%)
Post-processing (100%)
Ray-marching shaders and objects (100%)
Spacecraft mode (100%)
Dataset descriptors, filters, attributes, etc. (100%)
Make sure all test and showcase scripts work (100%)
Remove old inheritance model (100%)
Test thoroughly, fix all bugs (100%)
This merge request contains the work needed to migrate the internal model to an ECS.
Gaia Sky now uses a scene graph which is baked into an OOP inheritance hierarchy that has become a major PITA. It is huge, with multiple overrides and a far too deep structure. It is difficult to maintain and prone to errors.
The idea is to move the whole object hierarchy (the root being `SceneGraphNode`) to an entity component system (ECS) paradigm. [Artemis-odb](https://github.com/junkdog/artemis-odb) and [Ashley](https://github.com/libgdx/ashley) were considered. Artemis seems a bit over-engineered, so we'll go with Ashley for now. Additionally, [Dominion](https://github.com/dominion-dev/dominion-ecs-java) is looking very compact, fast and simple, but it is still in a very early development phase. It may be worth a look in the near future.
The work will be split into phases:
1. The first phase moves the JSON loading and recreates the whole structure into entities and components.
2. The second phase moves the logic in the scene graph objects into systems and tries to achieve a fully working build.
3. The third phase also incorportaes the current renderer into the ECS structure.
Once this is implemented, the code base will be wildly different and much more maintainable. It will enable easier parallelization in two different ways:
First, some of the update systems will be able to run in parallel. When the first top-down update of the scene graph has been completed, the rest of the update operations can essentially be run in parallel. This is not possible right now, as the update operation is monolithic and sequential for all objects.
Second, it will possibly enable concurrent update/render processes (i.e. run the update thread separate from the main render thread). Right now, the update/render cycle is ran in the same thread:
```mermaid
stateDiagram-v2
[*] --> update1
update1 --> render1
render1 --> update2
update2 --> render2
render2 --> update3
update3 --> ...
```
After this is implemented, the `render 1` and `update 2` tasks will be concurrent:
```mermaid
stateDiagram-v2
[*] --> update1
update1 --> render1
update1 --> update2
update2 --> render2
update2 --> update3
update3 --> ...
```
Since the model is being rendered and updated at the same time, this may require an extra 'extract' step, where a representation of the scene containing the information to render is extracted to send into the render system. Once this extraction operation is done, and since the render system reads the extracted data only, the next update cycle can start safely.
All in all, this is a major refactoring and it is expected that it will require a few months' work. The work has already started, and lives in the branch [`ecs`](../../tree/ecs).
## Usage
The refactor lives in the `ecs` branch. Check it out and run it normally:
```bash
git checkout ecs
gradlew core:run
```
Currently, both the old and the new model and renderers live alongside each other, so the frame rates are a bit lower than usual. The default mode uses the old renderers. Use the equals key <kbd>=</kbd> to switch between the old and the new, ECS-based model and renderers. **EDIT 2022-09-22:** The old model and renderers have been removed, so the <kbd>=</kbd> is now unmapped, and it is no longer possible to use them.
## Progress
- [x] Load basedata package into ECS (100%)
- [x] Move all loading to ECS (100% )
- [x] Implement scene graph logic into systems (100%)
- [x] Initialize (100%)
- [x] Update (100%)
- [x] Extract (100%)
- [x] Move render process to systems (100%)
- [x] Migrate camera focus to ECS (100%)
- [x] Make sure tessellation works
- [x] Game mode / elevation maps
- [x] SSR
- [x] Shadow maps
- [x] Scripting API (100%)
- [x] Make sure keyframed camera paths system works (100%)
- [x] Post-processing (100%)
- [x] Ray-marching shaders and objects (100%)
- [x] Spacecraft mode (100%)
- [x] Dataset descriptors, filters, attributes, etc. (100%)
- [x] Make sure all test and showcase scripts work (100%)
- [x] Remove old inheritance model (100%)
- [x] Test thoroughly, fix all bugs (100%)
added 1 commit
<ul><li>584f0582 - none: refactor spacecraft so that its coordinates are provided by</li></ul>
[Compare with previous version](/langurmonkey/gaiasky/-/merge_requests/263/diffs?diff_id=385915998&start_sha=66fa64260bfe90db73e00734cd65eca3ceea4dd4)
added 34 commits
<ul><li>0f0b0864 - refactor: add `I18nFormatter` to reformat i18n files.</li><li>4b5b4dcd - refactor: abstract attitude loading system, remove gaia class, use</li><li>cdd5be71 - refactor: flatten object hierarchy by removing some classes, merging their functionality upwards.</li><li>172c4c7c - none: prepare NBG to be loaded from JSON.</li><li>da716278 - fix: hide system cursor correctly with GLFW until libgdx 1.10.1 is released.</li><li>4862bf06 - none: clean up.</li><li>828c5ef4 - fix: workaround for libgdx backslash bug in asset manager. Fixes #398.</li><li>2966128f - none: remove some todos.</li><li>51773906 - none: merged cosmic ruler initialization from ecs branch.</li><li>70ad217e - none: add missing adjective no. 4 in i18n.</li><li>8c73ad39 - none: increase controls scroll box width.</li><li>a689cc8a - none: replace '_' with '-' in key strings.</li><li>0efec205 - fix: null-check settings in crash reporter.</li><li>ebeaccca - none: add about button to welcome window.</li><li>13631cc8 - feat: improve layout and information of crash window.</li><li>e7759e3c - none: fix regression in previous commit.</li><li>35c3c6e9 - none: update sha256 of base data package due to Gaia's move to heliotropic coordinates.</li><li>3fe438ce - none: deprecate `GaiaCoordinates` class.</li><li>171e24ab - none: initial commit to ECS branch.</li><li>5c035e97 - none: some cleanup.</li><li>15820eb1 - refactor: add `I18nFormatter` to reformat i18n files.</li><li>f5fe2c25 - none: more stuff.</li><li>83017339 - none: more work.</li><li>83845644 - none: base data JSON conversion done.</li><li>2df46435 - none: constellations to JSON format. New loader loads constellations and more.</li><li>e241c80c - none: constellation boundaries moved to JSON.</li><li>b5bff09f - none: already initializing components using systems.</li><li>eab6d08d - none: star/particle init.</li><li>ff95779a - refactor: abstract attitude loading system, remove gaia class, use</li><li>ce340188 - none: initializing model bodies, spacecraft and satellites.</li><li>a6941a60 - refactor: flatten object hierarchy by removing some classes, merging their functionality upwards.</li><li>22d5043a - none: prepare NBG to be loaded from JSON.</li><li>a448680a - none: a lot of refactoring and initialization work.</li><li>b334f69f - none: more things.</li></ul>
[Compare with previous version](/langurmonkey/gaiasky/-/merge_requests/263/diffs?diff_id=386364658&start_sha=584f0582fdab3aa42e38c2091100b47003bfb076)
added 1 commit
<ul><li>c473984c - none: more scaffolding to make all updates fall in place.</li></ul>
[Compare with previous version](/langurmonkey/gaiasky/-/merge_requests/263/diffs?diff_id=386563370&start_sha=cc8125a143d24282029f9f85ebd195bb63c20bed)
added 1 commit
<ul><li>512e1819 - none: scene graph update system is no longer an iterating system.</li></ul>
[Compare with previous version](/langurmonkey/gaiasky/-/merge_requests/263/diffs?diff_id=386792115&start_sha=68215fe99efa1deb86ac914b38e8eab5f27a23da)
added 2 commits
<ul><li>85d45dd5 - none: add parallel system, does not seem to improve performance at all.</li><li>32b4a878 - none: fully initializing and setting up all model bodies (planets, satellites,...</li></ul>
[Compare with previous version](/langurmonkey/gaiasky/-/merge_requests/263/diffs?diff_id=387561985&start_sha=512e1819b3514d939ff1787c7c883dd4d4fe916a)
added 1 commit
<ul><li>6f324034 - none: starting to implement full model updater.</li></ul>
[Compare with previous version](/langurmonkey/gaiasky/-/merge_requests/263/diffs?diff_id=387746249&start_sha=32b4a878cb8c9a3023c10d207f5d71a929d1f93a)
added 1 commit
<ul><li>d4477d3c - none: comment out catalog info event.</li></ul>
[Compare with previous version](/langurmonkey/gaiasky/-/merge_requests/263/diffs?diff_id=387828127&start_sha=48a93de90a8221526ffa50c65e1b5eff22fe2194)
added 1 commit
<ul><li>8c489303 - none: looks like the extracting of particles is successful.</li></ul>
[Compare with previous version](/langurmonkey/gaiasky/-/merge_requests/263/diffs?diff_id=389478754&start_sha=a31f00ef03e715cd44495cc27984b07f199d86c8)
added 2 commits
<ul><li>6427a022 - none: fix error dialog title by breaking it into lines if necessary.</li><li>d799e816 - none: unify star and sprite billboard renderers, add set and set element tags.</li></ul>
[Compare with previous version](/langurmonkey/gaiasky/-/merge_requests/263/diffs?diff_id=390336751&start_sha=4061cca844c3df321ed8f8d538df8aaaacf4bf76)
added 1 commit
<ul><li>6afb0733 - none: single point primitive renderer implemented.</li></ul>
[Compare with previous version](/langurmonkey/gaiasky/-/merge_requests/263/diffs?diff_id=390679974&start_sha=b884738f0ed3b90556d6de190be713d55adfd19c)
added 1 commit
<ul><li>252f9f60 - none: some much needed refactoring involving the index, the archetypes and the attribute map.</li></ul>
[Compare with previous version](/langurmonkey/gaiasky/-/merge_requests/263/diffs?diff_id=392432930&start_sha=57ffd5f251f5431b36b6b6d56a1de3a10c81d9e3)
added 1 commit
<ul><li>7a25b8cb - none: add orbit updater. Extractor and renderer still not ready.</li></ul>
[Compare with previous version](/langurmonkey/gaiasky/-/merge_requests/263/diffs?diff_id=392554896&start_sha=3558ca9be1b229c40d4beb043953a4b349fc0f85)
added 2 commits
<ul><li>4bfcd091 - fix: regression with libgdx 1.11.0 that caused vertical tooltips.</li><li>126b87bd - none: trajectory update system does not crash now.</li></ul>
[Compare with previous version](/langurmonkey/gaiasky/-/merge_requests/263/diffs?diff_id=392643388&start_sha=300ac1740d1a61ada22252bdc543dae9195b5d9d)
added 1 commit
<ul><li>ebc33d6c - none: implement line and orbit rendering, not active yet.</li></ul>
[Compare with previous version](/langurmonkey/gaiasky/-/merge_requests/263/diffs?diff_id=393673716&start_sha=6a983d8ebf73a764462595145e319abab0d79daf)
added 1 commit
<ul><li>047115c5 - none: activate line and trajectory rendering, bad results so far.</li></ul>
[Compare with previous version](/langurmonkey/gaiasky/-/merge_requests/263/diffs?diff_id=393731493&start_sha=ebc33d6c876464015237e4ad9225540b1985acb9)
added 1 commit
<ul><li>e3006ec5 - none: add focus view, a bit of view refactoring.</li></ul>
[Compare with previous version](/langurmonkey/gaiasky/-/merge_requests/263/diffs?diff_id=393845933&start_sha=047115c58ad89644b505162841e0e5225d6fe8c9)
added 1 commit
<ul><li>4f2fab0f - none: several fixes for orbits, still not working.</li></ul>
[Compare with previous version](/langurmonkey/gaiasky/-/merge_requests/263/diffs?diff_id=394153290&start_sha=e3006ec5c42dd77083e80a14cf66a7abc1ebfb44)
added 1 commit
<ul><li>c9fed198 - none: more on orbits.</li></ul>
[Compare with previous version](/langurmonkey/gaiasky/-/merge_requests/263/diffs?diff_id=394303866&start_sha=f24f4dfb224af9bd12cdc55dd74aef31f10e9a0c)
added 1 commit
<ul><li>6a3f83ef - none: orbits and trajectories render correctly, for the most part.</li></ul>
[Compare with previous version](/langurmonkey/gaiasky/-/merge_requests/263/diffs?diff_id=394646479&start_sha=c9fed19894ada8ebbd8b62f7ae244d7e2c43116e)
added 1 commit
<ul><li>1ed96c04 - none: fix issues with init and update of particle and star sets. More to go.</li></ul>
[Compare with previous version](/langurmonkey/gaiasky/-/merge_requests/263/diffs?diff_id=395083414&start_sha=099273beecd14821dc31a1a5b7160df56b71b65e)
added 1 commit
<ul><li>b246cbd5 - fix: remove phase of pi radians in default-model orbital elements.</li></ul>
[Compare with previous version](/langurmonkey/gaiasky/-/merge_requests/263/diffs?diff_id=395252951&start_sha=1ed96c04d35e2fd8574d8b2178d26357dee41c4c)
added 1 commit
<ul><li>9ecc5c01 - none: add titles for oort cloud and solar neighborhood, update data descriptor.</li></ul>
[Compare with previous version](/langurmonkey/gaiasky/-/merge_requests/263/diffs?diff_id=395554951&start_sha=b246cbd58c223484b29d7802bce4dca40343425b)
added 1 commit
<ul><li>14c62546 - none: add supported full screen modes at debug level, should help with #401.</li></ul>
[Compare with previous version](/langurmonkey/gaiasky/-/merge_requests/263/diffs?diff_id=395576687&start_sha=1732bfbbb9d1bef2ad21d217822ea0df6afcd30d)
added 1 commit
<ul><li>344a5147 - feat: add full screen bit depth and refresh rate to fully qualify selected full screen modes.</li></ul>
[Compare with previous version](/langurmonkey/gaiasky/-/merge_requests/263/diffs?diff_id=395677489&start_sha=8ae11b044478ebdf3552adb8291a0cde12dfc1af)
added 1 commit
<ul><li>3ffeaa5e - none: hide/show dataset sent to post runnable.</li></ul>
[Compare with previous version](/langurmonkey/gaiasky/-/merge_requests/263/diffs?diff_id=395822126&start_sha=37e79634294e944dd9705990e36e43752ab7a9c6)
added 1 commit
<ul><li>40717cff - none: implement all star and particle render systems for the new ECS model.</li></ul>
[Compare with previous version](/langurmonkey/gaiasky/-/merge_requests/263/diffs?diff_id=396695034&start_sha=eec5a903b4edb71eaab3d2c9d9bcce71356fc121)
added 1 commit
<ul><li>33530315 - none: use true reference system transform for orbital elements instead of ecliptic.</li></ul>
[Compare with previous version](/langurmonkey/gaiasky/-/merge_requests/263/diffs?diff_id=396824808&start_sha=09c2093bf0a9824f56bb032b3b04e031967cec62)
added 1 commit
<ul><li>48c475fc - none: fixes for billboard renderer.</li></ul>
[Compare with previous version](/langurmonkey/gaiasky/-/merge_requests/263/diffs?diff_id=397109967&start_sha=687328a46b3113006e95582f107ef665bf5b66a1)
added 1 commit
<ul><li>db7e61ef - none: increase opacity of title lines.</li></ul>
[Compare with previous version](/langurmonkey/gaiasky/-/merge_requests/263/diffs?diff_id=397626769&start_sha=48c475fc411e344508faf7363e15c1bce4d926fb)
added 1 commit
<ul><li>2565dad9 - fix: increase size star point buffer when needed.</li></ul>
[Compare with previous version](/langurmonkey/gaiasky/-/merge_requests/263/diffs?diff_id=398727905&start_sha=73ebab40c267f0dd71c43fae76098a6c3c72e062)
added 1 commit
<ul><li>60d78eae - none: adjust thresholds for particles and billboards, set default appmag for particles.</li></ul>
[Compare with previous version](/langurmonkey/gaiasky/-/merge_requests/263/diffs?diff_id=398766181&start_sha=2565dad9cffda73a9e9c2f2b4929054aa4d97cbb)
added 1 commit
<ul><li>9d8b1dc1 - none: transport particle and billboard adjustments to ECS.</li></ul>
[Compare with previous version](/langurmonkey/gaiasky/-/merge_requests/263/diffs?diff_id=398769865&start_sha=60d78eae5efcf8aa1b8ae7198545dd4c381be481)
added 1 commit
<ul><li>7bde5fc2 - feat: add popup notice when opening the keyframes window if component 'others' is not visible.</li></ul>
[Compare with previous version](/langurmonkey/gaiasky/-/merge_requests/263/diffs?diff_id=398827071&start_sha=9d8b1dc1da474d1af0dfc6fd94cebef16e221436)
added 1 commit
<ul><li>eb5ffe56 - none: more star renderer fixes.</li></ul>
[Compare with previous version](/langurmonkey/gaiasky/-/merge_requests/263/diffs?diff_id=400155044&start_sha=8e9ef832079189946e123a7ce95374601b65e3b1)
added 1 commit
<ul><li>31bbcf35 - none: star set labels and models.</li></ul>
[Compare with previous version](/langurmonkey/gaiasky/-/merge_requests/263/diffs?diff_id=400380163&start_sha=40b8381ce11274d6a605bda143320a4e1ba5f181)
added 1 commit
<ul><li>0ad2029c - none: star set labels render correctly.</li></ul>
[Compare with previous version](/langurmonkey/gaiasky/-/merge_requests/263/diffs?diff_id=400929684&start_sha=31bbcf356b4c6fde756df0ca7b5e77a164cb6116)
added 1 commit
<ul><li>ba177585 - none: star groups render now proper motion arrows.</li></ul>
[Compare with previous version](/langurmonkey/gaiasky/-/merge_requests/263/diffs?diff_id=401067497&start_sha=0ad2029c089961404d0466bfe36faf699c371064)
added 1 commit
<ul><li>73323e86 - fix: make sure direction and up vectors are orthogonal in camera transition call.</li></ul>
[Compare with previous version](/langurmonkey/gaiasky/-/merge_requests/263/diffs?diff_id=402184194&start_sha=ba177585a2a07fa45c6cc0dd0ca7af841c77cfd9)
added 1 commit
<ul><li>915ad16e - feat: add number of samples to orbit objects.</li></ul>
[Compare with previous version](/langurmonkey/gaiasky/-/merge_requests/263/diffs?diff_id=404887533&start_sha=10cfbe5d4ca2f1caf04f442b03da5bfb2b1340ec)
added 1 commit
<ul><li>24d4e305 - none: add support for 'orbit.numSamples'.</li></ul>
[Compare with previous version](/langurmonkey/gaiasky/-/merge_requests/263/diffs?diff_id=404889650&start_sha=915ad16e516706a46794524cc830573e08f2e58f)
added 1 commit
<ul><li>01822955 - none: more work on the octree.</li></ul>
[Compare with previous version](/langurmonkey/gaiasky/-/merge_requests/263/diffs?diff_id=405287107&start_sha=24d4e305ac22ddb8ee5569378e13e646741a891a)
added 1 commit
<ul><li>668d474b - none: the octree renders already. Only star sets supported.</li></ul>
[Compare with previous version](/langurmonkey/gaiasky/-/merge_requests/263/diffs?diff_id=405751824&start_sha=0182295585a8cf1bb16c30ed62642f8da6d1a1f3)
added 2 commits
<ul><li>be64f851 - none: fix link to repository in readme file.</li><li>5a15b1ef - none: fixes to DR3 descriptor.</li></ul>
[Compare with previous version](/langurmonkey/gaiasky/-/merge_requests/263/diffs?diff_id=414069371&start_sha=0795dfff3b86f8317cf9ebeb5755d20d6e27f5a4)
added 1 commit
<ul><li>dea421d4 - feat: use view angle instead of view angle apparent for `goToObject()`</li></ul>
[Compare with previous version](/langurmonkey/gaiasky/-/merge_requests/263/diffs?diff_id=414069653&start_sha=5a15b1ef3d96aecb4f55bddd860ebfbf2a9383d2)
added 1 commit
<ul><li>ca071558 - fix: break link in dataset manager if too long.</li></ul>
[Compare with previous version](/langurmonkey/gaiasky/-/merge_requests/263/diffs?diff_id=414577831&start_sha=c059c30b8916d1e94755245f52d5e84a0b2e7ff1)
added 3 commits
<ul><li>e14f3e64 - none: adjust sensitivity of roll in game mode.</li><li>c922ab37 - fix: typo in Jupiter English translation file, add meshes to data descriptor file.</li><li>1d88e7ec - fix: increase number of vertices of minimap shape renderer, fixes crash in heliosphere minimap.</li></ul>
[Compare with previous version](/langurmonkey/gaiasky/-/merge_requests/263/diffs?diff_id=416814826&start_sha=dbeb6475d0c8bc9d353f33b9ce6467c01a8193a3)
added 1 commit
<ul><li>184aa89b - none: remove old and unused scripts.</li></ul>
[Compare with previous version](/langurmonkey/gaiasky/-/merge_requests/263/diffs?diff_id=416846921&start_sha=1d88e7ecb60676ffd06f73ca8460a641f1b65416)
added 1 commit
<ul><li>3f0a9b47 - none: add support for number of samples in trajectory and orbit objects.</li></ul>
[Compare with previous version](/langurmonkey/gaiasky/-/merge_requests/263/diffs?diff_id=417410716&start_sha=184aa89bcfa20269bce777840c82cbdc0ceaf7c6)
added 1 commit
<ul><li>83ee46e5 - fix: use view angle instead of view angle apparent in go to object API call.</li></ul>
[Compare with previous version](/langurmonkey/gaiasky/-/merge_requests/263/diffs?diff_id=417416326&start_sha=3f0a9b47692ca7354b4527591cb597ead5f010db)
added 3 commits
<ul><li>8a652f0a - none: more work on the octree.</li><li>3e3ca5fd - none: the octree renders already. Only star sets supported.</li><li>f8729f62 - none: fade octree transitions work.</li></ul>
[Compare with previous version](/langurmonkey/gaiasky/-/merge_requests/263/diffs?diff_id=417420396&start_sha=83ee46e5f042ca7aede7f3caa95eb5741b23f3d9)
added 1 commit
<ul><li>4d702dd4 - fix: frame sequence number synchronized, value updated when opening preferences.</li></ul>
[Compare with previous version](/langurmonkey/gaiasky/-/merge_requests/263/diffs?diff_id=418855127&start_sha=2d8202312fcddc8cf52ec3dcd739a36d2c97170c)
added 2 commits
<ul><li>6bd3cb3c - fix: jump in Pluto's orbit due to deviation between full periods.</li><li>10411828 - none: fix for long-period orbits.</li></ul>
[Compare with previous version](/langurmonkey/gaiasky/-/merge_requests/263/diffs?diff_id=419080149&start_sha=f1f3096f91c11e993156949223e537469808cb67)
added 1 commit
<ul><li>4fc92588 - fix: modal windows made not collapsible by default.</li></ul>
[Compare with previous version](/langurmonkey/gaiasky/-/merge_requests/263/diffs?diff_id=419132544&start_sha=d169205ae120fe9960681b453c2fe7f88b3ed0d5)
added 2 commits
<ul><li>00fb5a17 - fix: filters crash with instanced star renderers.</li><li>75554d0b - none: transport instanced renderer fix to ecs.</li></ul>
[Compare with previous version](/gaiasky/gaiasky/-/merge_requests/263/diffs?diff_id=419917567&start_sha=5d8060f6027d80c6f05281db8ff55c2e7e2b2eb7)
added 1 commit
<ul><li>90156e64 - none: variable stars work with ECS.</li></ul>
[Compare with previous version](/gaiasky/gaiasky/-/merge_requests/263/diffs?diff_id=420217574&start_sha=5df7dd7dc6dd433d5751df2d38f41eee8914363d)
added 1 commit
<ul><li>3652bc41 - none: prioritize setter methods to direct attribute injection in new JSON loader.</li></ul>
[Compare with previous version](/gaiasky/gaiasky/-/merge_requests/263/diffs?diff_id=420306201&start_sha=c1e7566cdc8499e6a7c2e3180dac529214990e90)
added 1 commit
<ul><li>55dc4f36 - none: started with star clusters.</li></ul>
[Compare with previous version](/gaiasky/gaiasky/-/merge_requests/263/diffs?diff_id=420375096&start_sha=3652bc411b22ba536ce41403348f31707e85a6b2)
added 3 commits
<ul><li>98bcfd05 - none: bump version numbers.</li><li>cba7196d - none: update changelog and config files to point to new repo URL.</li><li>23f02844 - none: mend paths in release JSON files.</li></ul>
[Compare with previous version](/gaiasky/gaiasky/-/merge_requests/263/diffs?diff_id=420913125&start_sha=4fbc1df593ab749941bb675d126166d8ee4fec9f)
added 1 commit
<ul><li>666f4679 - none: billboard group renderer, extractor and updater implemented.</li></ul>
[Compare with previous version](/gaiasky/gaiasky/-/merge_requests/263/diffs?diff_id=421293897&start_sha=3768e340538022ab0691562b30e59fc951f0470d)
added 1 commit
<ul><li>e5319441 - none: some fixes for billboard sets.</li></ul>
[Compare with previous version](/gaiasky/gaiasky/-/merge_requests/263/diffs?diff_id=421345411&start_sha=666f4679ba19c53b1d0c38232a9725d082d9c4e8)
added 1 commit
<ul><li>7c275a0a - none: billboard groups (milky way, for instance) render correctly.</li></ul>
[Compare with previous version](/gaiasky/gaiasky/-/merge_requests/263/diffs?diff_id=421839935&start_sha=e53194413326532d5013dbc81def1072bac62db3)
added 1 commit
<ul><li>da808a7f - none: billboard groups render labels correctly.</li></ul>
[Compare with previous version](/gaiasky/gaiasky/-/merge_requests/263/diffs?diff_id=421908341&start_sha=7c275a0a4eb2b4e8cc75bf14f51e61991a5a466e)
added 1 commit
<ul><li>1454e4c9 - none: some fixes, bump code version to accommodate new base data version.</li></ul>
[Compare with previous version](/gaiasky/gaiasky/-/merge_requests/263/diffs?diff_id=422104093&start_sha=be45971affd797e5d88bb08fc4600875894c5996)
added 1 commit
<ul><li>74567be3 - none: labels on billboard galaxies.</li></ul>
[Compare with previous version](/gaiasky/gaiasky/-/merge_requests/263/diffs?diff_id=422327295&start_sha=c9eafedc65a2e320ba856cc88175a6f3a92c9211)
added 1 commit
<ul><li>6ddb7695 - fix: names in star groups can now be localized, fix focus name in panel.</li></ul>
[Compare with previous version](/gaiasky/gaiasky/-/merge_requests/263/diffs?diff_id=422348317&start_sha=74567be3eaddab5bd5d6c794eda3116463de3df8)
added 1 commit
<ul><li>c7219189 - none: billboard galaxies also seem to work.</li></ul>
[Compare with previous version](/gaiasky/gaiasky/-/merge_requests/263/diffs?diff_id=423233497&start_sha=27d9b99411748f86e527d1302717c0a7068142ad)
added 1 commit
<ul><li>61abad9f - none: boundaries also work now.</li></ul>
[Compare with previous version](/gaiasky/gaiasky/-/merge_requests/263/diffs?diff_id=424155678&start_sha=585d9c155d2cd626b19da3a8fcc7eea98b2de2cc)
added 1 commit
<ul><li>28846dbd - none: halfway through orbital element sets.</li></ul>
[Compare with previous version](/gaiasky/gaiasky/-/merge_requests/263/diffs?diff_id=424334747&start_sha=61abad9f13fe65bd7054170ca02d6f4d2e9630ae)
added 1 commit
<ul><li>e0b706aa - none: orbital elements set render correctly and fully.</li></ul>
[Compare with previous version](/gaiasky/gaiasky/-/merge_requests/263/diffs?diff_id=425001702&start_sha=28846dbd6a8e2bb179fe59d431d15193459ed95f)
added 1 commit
<ul><li>86fc8bd5 - none: single orbital elements renderer ported to ECS.</li></ul>
[Compare with previous version](/gaiasky/gaiasky/-/merge_requests/263/diffs?diff_id=425028606&start_sha=e0b706aa5e8f5096acfdd06fc8bfb0d6ce8b4a56)
added 1 commit
<ul><li>033def01 - none: fix velocity vectors using the right scene renderer.</li></ul>
[Compare with previous version](/gaiasky/gaiasky/-/merge_requests/263/diffs?diff_id=427194547&start_sha=026ea17344887f4d7a1eec1dad1505d947e3f434)
added 1 commit
<ul><li>c8a77689 - none: titles and particle effects work fine with the new ECS.</li></ul>
[Compare with previous version](/gaiasky/gaiasky/-/merge_requests/263/diffs?diff_id=427333842&start_sha=033def01cb74b1960ebcace94e91aec2d455d537)
added 2 commits
<ul><li>d74521ed - none: merge label and text components, label render method is now stored in component.</li><li>388ab0fd - none: line render method contained in line component.</li></ul>
[Compare with previous version](/gaiasky/gaiasky/-/merge_requests/263/diffs?diff_id=428544012&start_sha=7c53f4f8e15af19f39fdd9b14ff2716fbde685f2)
- Add diffuse cubemap support to default per-vertex lighting shader.
- Move model in shape object to actual model component.
- Update data files (in version 36 of base data pack).
scripts.
- `getObjectPredictedPosition(name)` computes the next-frame position of the object
identified by `name`. This is useful when the camera position depends
on the object's.
- `parkCameraRunnable(key, runnable)` enables runnables to run after the
camera update and between the scene update stages. Use this when
modifying the camera state.
- `setCamera[Position|Direction|Up](vec, immediate)` are new versions of
the classical methods to set the position, direction and up vectors of
the camera, which are applied immediately and not after the current
frame has finished. Use these if you call them from within a parked
runnable.
- lunar-libration.py shows lunar librations as viewed right above Earth's surface.
- synodic-periods.py shows the relative orbital motions of the planets relative to the fixed Sun-Earth system.
Work on this has concluded, will be merging shortly. One last item is making sure the VR app works, especially with the untested controller models. This will happen before release.
Work on this has concluded, will be merging shortly. One last item is making sure the VR app works, especially with the untested controller models. This will happen before release.
This merge request contains the work needed to migrate the internal model to an ECS.
Gaia Sky now uses a scene graph which is baked into an OOP inheritance hierarchy that has become a major PITA. It is huge, with multiple overrides and a far too deep structure. It is difficult to maintain and prone to errors.
The idea is to move the whole object hierarchy (the root being
SceneGraphNode
) to an entity component system (ECS) paradigm. Artemis-odb and Ashley were considered. Artemis seems a bit over-engineered, so we'll go with Ashley for now. Additionally, Dominion is looking very compact, fast and simple, but it is still in a very early development phase. It may be worth a look in the near future.The work will be split into phases:
Once this is implemented, the code base will be wildly different and much more maintainable. It will enable easier parallelization in two different ways:
First, some of the update systems will be able to run in parallel. When the first top-down update of the scene graph has been completed, the rest of the update operations can essentially be run in parallel. This is not possible right now, as the update operation is monolithic and sequential for all objects.
Second, it will possibly enable concurrent update/render processes (i.e. run the update thread separate from the main render thread). Right now, the update/render cycle is ran in the same thread:
After this is implemented, the
render 1
andupdate 2
tasks will be concurrent:Since the model is being rendered and updated at the same time, this may require an extra 'extract' step, where a representation of the scene containing the information to render is extracted to send into the render system. Once this extraction operation is done, and since the render system reads the extracted data only, the next update cycle can start safely.
All in all, this is a major refactoring and it is expected that it will require a few months' work. The work has already started, and lives in the branch
ecs
.Usage
The refactor lives in the
ecs
branch. Check it out and run it normally:Currently, both the old and the new model and renderers live alongside each other, so the frame rates are a bit lower than usual. The default mode uses the old renderers. Use the equals key = to switch between the old and the new, ECS-based model and renderers. EDIT 2022-09-22: The old model and renderers have been removed, so the = is now unmapped, and it is no longer possible to use them.
Progress
requested review from @langurmonkey
assigned to @langurmonkey
added 1 commit
a0d6ece9
- none: add set-up stage to initializers. Orbits initialize (partially).Compare with previous version
added 1 commit
66fa6426
- none: add missing setter.Compare with previous version
added 1 commit
584f0582
- none: refactor spacecraft so that its coordinates are provided byCompare with previous version
added 34 commits
0f0b0864
- refactor: add `I18nFormatter` to reformat i18n files.4b5b4dcd
- refactor: abstract attitude loading system, remove gaia class, usecdd5be71
- refactor: flatten object hierarchy by removing some classes, merging their functionality upwards.172c4c7c
- none: prepare NBG to be loaded from JSON.da716278
- fix: hide system cursor correctly with GLFW until libgdx 1.10.1 is released.4862bf06
- none: clean up.828c5ef4
- fix: workaround for libgdx backslash bug in asset manager. Fixes #398.2966128f
- none: remove some todos.51773906
- none: merged cosmic ruler initialization from ecs branch.70ad217e
- none: add missing adjective no. 4 in i18n.8c73ad39
- none: increase controls scroll box width.a689cc8a
- none: replace '_' with '-' in key strings.0efec205
- fix: null-check settings in crash reporter.ebeaccca
- none: add about button to welcome window.13631cc8
- feat: improve layout and information of crash window.e7759e3c
- none: fix regression in previous commit.35c3c6e9
- none: update sha256 of base data package due to Gaia's move to heliotropic coordinates.3fe438ce
- none: deprecate `GaiaCoordinates` class.171e24ab
- none: initial commit to ECS branch.5c035e97
- none: some cleanup.15820eb1
- refactor: add `I18nFormatter` to reformat i18n files.f5fe2c25
- none: more stuff.83017339
- none: more work.83845644
- none: base data JSON conversion done.2df46435
- none: constellations to JSON format. New loader loads constellations and more.e241c80c
- none: constellation boundaries moved to JSON.b5bff09f
- none: already initializing components using systems.eab6d08d
- none: star/particle init.ff95779a
- refactor: abstract attitude loading system, remove gaia class, usece340188
- none: initializing model bodies, spacecraft and satellites.a6941a60
- refactor: flatten object hierarchy by removing some classes, merging their functionality upwards.22d5043a
- none: prepare NBG to be loaded from JSON.a448680a
- none: a lot of refactoring and initialization work.b334f69f
- none: more things.Compare with previous version
added 1 commit
f82c6aef
- none: loading NBG.Compare with previous version
added 1 commit
ad73bfd5
- none: fixes.Compare with previous version
added 1 commit
cc8125a1
- none: loading billboards.Compare with previous version
added 1 commit
c473984c
- none: more scaffolding to make all updates fall in place.Compare with previous version
added 1 commit
68215fe9
- none: initializing orbit and orbit coordinates, updating scene graph.Compare with previous version
added 1 commit
512e1819
- none: scene graph update system is no longer an iterating system.Compare with previous version
added 2 commits
85d45dd5
- none: add parallel system, does not seem to improve performance at all.32b4a878
- none: fully initializing and setting up all model bodies (planets, satellites,...Compare with previous version
added 1 commit
6f324034
- none: starting to implement full model updater.Compare with previous version
added 1 commit
48a93de9
- none: fix model updater.Compare with previous version
added 1 commit
d4477d3c
- none: comment out catalog info event.Compare with previous version
changed the description
mentioned in issue #397
added 1 commit
4f727749
- none: initializin/updating models (planets, satellites, spacecraft,...Compare with previous version
changed the description
added 1 commit
f86fd97f
- none: centralize families, extract render assets from main renderer.Compare with previous version
added 1 commit
a31f00ef
- none: abstract scene renderers, rename SGR to render process, more.Compare with previous version
changed the description
added 1 commit
8c489303
- none: looks like the extracting of particles is successful.Compare with previous version
added 1 commit
4061cca8
- none: fix orbit refresher.Compare with previous version
added 2 commits
6427a022
- none: fix error dialog title by breaking it into lines if necessary.d799e816
- none: unify star and sprite billboard renderers, add set and set element tags.Compare with previous version
changed the description
added 1 commit
Compare with previous version
added 1 commit
6afb0733
- none: single point primitive renderer implemented.Compare with previous version
added 1 commit
46afcc65
- none: add model extractor.Compare with previous version
added 1 commit
8f9ccc16
- none: remove Gaia object.Compare with previous version
added 1 commit
ff840ad7
- none: wee changes.Compare with previous version
added 1 commit
c375074b
- none: some models already render, others don't.Compare with previous version
added 1 commit
1ff41ec7
- none: planets render correctly.Compare with previous version
added 1 commit
57ffd5f2
- none: skyboxes and UV grids render, fade nodes update.Compare with previous version
added 1 commit
252f9f60
- none: some much needed refactoring involving the index, the archetypes and the attribute map.Compare with previous version
added 1 commit
e3a9753f
- build: upgrade to libgdx 1.11.0 and LWJGL 3.3.1 --- this adds M1 MacCompare with previous version
added 1 commit
3558ca9b
- none: add caps lock to Gaia Sky available keys list.Compare with previous version
added 1 commit
7a25b8cb
- none: add orbit updater. Extractor and renderer still not ready.Compare with previous version
added 1 commit
8265ede2
- none: fix for ecliptic orbits.Compare with previous version
added 1 commit
300ac174
- none: fix null archetypes, activate trajectory updater.Compare with previous version
added 2 commits
4bfcd091
- fix: regression with libgdx 1.11.0 that caused vertical tooltips.126b87bd
- none: trajectory update system does not crash now.Compare with previous version
added 1 commit
6a983d8e
- none: trajectory extractor working.Compare with previous version
added 1 commit
ebc33d6c
- none: implement line and orbit rendering, not active yet.Compare with previous version
added 1 commit
047115c5
- none: activate line and trajectory rendering, bad results so far.Compare with previous version
added 1 commit
e3006ec5
- none: add focus view, a bit of view refactoring.Compare with previous version
added 1 commit
4f2fab0f
- none: several fixes for orbits, still not working.Compare with previous version
added 2 commits
75e2d4e2
- build: force safe graphics mode on M1 macOS.7debbaaf
- build: add aarch64 JRE to macOS bundle for M1 machines. Move to macOSCompare with previous version
added 1 commit
c0ad38ea
- none: planetary orbits render correctly.Compare with previous version
added 1 commit
f24f4dfb
- none: fix issues with orbits.Compare with previous version
added 1 commit
c9fed198
- none: more on orbits.Compare with previous version
added 1 commit
6a3f83ef
- none: orbits and trajectories render correctly, for the most part.Compare with previous version
added 2 commits
7b4fc47f
- none: SSO billboards work well.e98a9414
- none: initializing particle and star sets.Compare with previous version
added 1 commit
099273be
- none: remove omission of 'argofpericenter' in SSO converison script. Add...Compare with previous version
added 1 commit
1ed96c04
- none: fix issues with init and update of particle and star sets. More to go.Compare with previous version
added 1 commit
b246cbd5
- fix: remove phase of pi radians in default-model orbital elements.Compare with previous version
added 1 commit
9ecc5c01
- none: add titles for oort cloud and solar neighborhood, update data descriptor.Compare with previous version
added 1 commit
0742ecb8
- Merge branch 'RacerBG-master-patch-54899' into 'master'Compare with previous version
added 1 commit
1732bfbb
- fix: 'add scene graph object' event missing source object. Fixes #400.Compare with previous version
added 1 commit
14c62546
- none: add supported full screen modes at debug level, should help with #401.Compare with previous version
added 1 commit
b3adaf3e
- Merge branch 'RacerBG-master-patch-50539' into 'master'Compare with previous version
added 1 commit
8ae11b04
- fix: empty tips may crash Gaia Sky at startup.Compare with previous version
added 1 commit
344a5147
- feat: add full screen bit depth and refresh rate to fully qualify selected full screen modes.Compare with previous version
added 1 commit
37e79634
- none: particle and star sets update correctly.Compare with previous version
added 1 commit
3ffeaa5e
- none: hide/show dataset sent to post runnable.Compare with previous version
added 1 commit
1a7cabc5
- fix: null-check satellite attitude before getting quaternion. Fixes #402.Compare with previous version
added 1 commit
eec5a903
- none: star sets already render (as quads) correctly.Compare with previous version
added 1 commit
40717cff
- none: implement all star and particle render systems for the new ECS model.Compare with previous version
changed the description
added 1 commit
09c2093b
- none: fix particle group externally provided mean positions.Compare with previous version
added 1 commit
33530315
- none: use true reference system transform for orbital elements instead of ecliptic.Compare with previous version
added 1 commit
03999c79
- none: switch between renderers with equals '=' key.Compare with previous version
added 1 commit
687328a4
- none: fix shape renderer shader assignment.Compare with previous version
added 1 commit
48c475fc
- none: fixes for billboard renderer.Compare with previous version
added 1 commit
db7e61ef
- none: increase opacity of title lines.Compare with previous version
added 1 commit
a5dcb632
- none: simplify threshold angles for celestial bodies.Compare with previous version
added 1 commit
05e83f8f
- none: update solid angle thresholds.Compare with previous version
added 1 commit
73ebab40
- none: halfway through label rendering.Compare with previous version
added 1 commit
2565dad9
- fix: increase size star point buffer when needed.Compare with previous version
added 1 commit
60d78eae
- none: adjust thresholds for particles and billboards, set default appmag for particles.Compare with previous version
added 1 commit
9d8b1dc1
- none: transport particle and billboard adjustments to ECS.Compare with previous version
added 1 commit
7bde5fc2
- feat: add popup notice when opening the keyframes window if component 'others' is not visible.Compare with previous version
added 1 commit
48d56a02
- none: prevent abstract octree wrapper from updating children outside the octree structure.Compare with previous version
added 1 commit
21942e5c
- none: fix var name.Compare with previous version
added 1 commit
9da8d9e3
- none: some labels already render.Compare with previous version
added 1 commit
7f374d20
- none: remove NBG loader.Compare with previous version
added 1 commit
387d3049
- none: wee label fix.Compare with previous version
added 1 commit
8e9ef832
- none: fix particle/star labels.Compare with previous version
added 1 commit
eb5ffe56
- none: more star renderer fixes.Compare with previous version
added 1 commit
40b8381c
- none: star models render correctly.Compare with previous version
added 1 commit
31bbcf35
- none: star set labels and models.Compare with previous version
added 1 commit
0ad2029c
- none: star set labels render correctly.Compare with previous version
added 1 commit
ba177585
- none: star groups render now proper motion arrows.Compare with previous version
added 1 commit
73323e86
- fix: make sure direction and up vectors are orthogonal in camera transition call.Compare with previous version
added 1 commit
ff4a227c
- none: initial octree load successful.Compare with previous version
added 2 commits
c9dbc9b1
- none: join abstract octree wrapper and octree wrapper, add tag to octree objects, more.10cfbe5d
- none: wee issue.Compare with previous version
added 1 commit
Compare with previous version
added 1 commit
Compare with previous version
added 1 commit
Compare with previous version
added 1 commit
Compare with previous version
added 1 commit
Compare with previous version
added 1 commit
Compare with previous version
added 1 commit
Compare with previous version
added 2 commits
Compare with previous version
added 2 commits
Compare with previous version
added 1 commit
Compare with previous version
added 1 commit
4bf76e5d
- none: update data descriptor with latest DR3 systems.Compare with previous version
added 1 commit
afd780c1
- none: docs ref.Compare with previous version
added 1 commit
c059c30b
- none: remove eDR3 catalogs from descriptor.Compare with previous version
added 1 commit
ca071558
- fix: break link in dataset manager if too long.Compare with previous version
added 1 commit
dbeb6475
- none: docs ref.Compare with previous version
added 3 commits
e14f3e64
- none: adjust sensitivity of roll in game mode.c922ab37
- fix: typo in Jupiter English translation file, add meshes to data descriptor file.1d88e7ec
- fix: increase number of vertices of minimap shape renderer, fixes crash in heliosphere minimap.Compare with previous version
added 1 commit
184aa89b
- none: remove old and unused scripts.Compare with previous version
added 1 commit
3f0a9b47
- none: add support for number of samples in trajectory and orbit objects.Compare with previous version
added 1 commit
83ee46e5
- fix: use view angle instead of view angle apparent in go to object API call.Compare with previous version
added 3 commits
8a652f0a
- none: more work on the octree.3e3ca5fd
- none: the octree renders already. Only star sets supported.f8729f62
- none: fade octree transitions work.Compare with previous version
added 1 commit
2d820231
- none: typo.Compare with previous version
added 1 commit
4d702dd4
- fix: frame sequence number synchronized, value updated when opening preferences.Compare with previous version
added 1 commit
72bc7d59
- build: docs project no longer a submodule.Compare with previous version
added 1 commit
fc85ce84
- fix: highlight 'all visible' setting in quad-based star renderers.Compare with previous version
added 1 commit
2341d443
- none: extend fix to highlight 'all visible' setting in quad-based star renderers.Compare with previous version
added 1 commit
f1f3096f
- none: implement variable star renderers.Compare with previous version
added 2 commits
6bd3cb3c
- fix: jump in Pluto's orbit due to deviation between full periods.10411828
- none: fix for long-period orbits.Compare with previous version
added 1 commit
d169205a
- fix: hotkey tooltip backgrounds.Compare with previous version
added 1 commit
4fc92588
- fix: modal windows made not collapsible by default.Compare with previous version
added 1 commit
20d46aca
- build: move namespace from 'gitlab.com/langurmonkey' to 'gitlab.com/gaiasky'.Compare with previous version
added 1 commit
5d8060f6
- none: scripting API links pointing to wrong location.Compare with previous version
added 2 commits
00fb5a17
- fix: filters crash with instanced star renderers.75554d0b
- none: transport instanced renderer fix to ecs.Compare with previous version
added 1 commit
c8ca8037
- fix: moon orbits are recomputed more often.Compare with previous version
added 1 commit
fea4cd06
- fix: translate strings of filters, shapes, datasets and minimap. Fixes #403.Compare with previous version
added 1 commit
5df7dd7d
- none: remove unused imports.Compare with previous version
added 1 commit
90156e64
- none: variable stars work with ECS.Compare with previous version
added 1 commit
c1e7566c
- feat: save configuration when closing dataset manager window.Compare with previous version
added 1 commit
3652bc41
- none: prioritize setter methods to direct attribute injection in new JSON loader.Compare with previous version
added 1 commit
55dc4f36
- none: started with star clusters.Compare with previous version
added 1 commit
dc81ca78
- none: BG - Translated the latest stringsCompare with previous version
changed the description
added 1 commit
4fbc1df5
- none: i18n key cleanup and format.Compare with previous version
added 3 commits
98bcfd05
- none: bump version numbers.cba7196d
- none: update changelog and config files to point to new repo URL.23f02844
- none: mend paths in release JSON files.Compare with previous version
added 1 commit
68c92f42
- none: star clusters update/extract/render correctly.Compare with previous version
added 1 commit
3768e340
- none: create raymarching updater.Compare with previous version
added 1 commit
666f4679
- none: billboard group renderer, extractor and updater implemented.Compare with previous version
added 1 commit
e5319441
- none: some fixes for billboard sets.Compare with previous version
added 1 commit
7c275a0a
- none: billboard groups (milky way, for instance) render correctly.Compare with previous version
added 1 commit
da808a7f
- none: billboard groups render labels correctly.Compare with previous version
added 1 commit
be45971a
- none: formatting.Compare with previous version
added 1 commit
1454e4c9
- none: some fixes, bump code version to accommodate new base data version.Compare with previous version
added 1 commit
c9eafedc
- none: move fade updater logic to graph updater.Compare with previous version
added 1 commit
74567be3
- none: labels on billboard galaxies.Compare with previous version
added 1 commit
6ddb7695
- fix: names in star groups can now be localized, fix focus name in panel.Compare with previous version
added 1 commit
0be71625
- none: move render package into system package.Compare with previous version
added 1 commit
27d9b994
- none: regular billboards (i.e. nebulae) seem to work.Compare with previous version
added 1 commit
c7219189
- none: billboard galaxies also seem to work.Compare with previous version
added 1 commit
e03180c2
- none: add `setEpoch(Long)` to octree loaders.Compare with previous version
added 1 commit
0085a12e
- none: constellation lines render correctly.Compare with previous version
added 1 commit
585d9c15
- none: constellation labels are ok.Compare with previous version
added 1 commit
61abad9f
- none: boundaries also work now.Compare with previous version
added 1 commit
28846dbd
- none: halfway through orbital element sets.Compare with previous version
added 1 commit
e0b706aa
- none: orbital elements set render correctly and fully.Compare with previous version
added 1 commit
86fc8bd5
- none: single orbital elements renderer ported to ECS.Compare with previous version
added 1 commit
ca9f0a9e
- none: iso-density meshes render correctly.Compare with previous version
added 1 commit
74cfbfc8
- none: mesh labels render correctly.Compare with previous version
added 1 commit
877932c0
- none: recursive grid works fully.Compare with previous version
added 1 commit
f6fb63a6
- none: cosmic ruler mostly alright, lacks label.Compare with previous version
added 1 commit
c5642c2d
- none: cosmic ruler label works.Compare with previous version
added 1 commit
026ea173
- none: axes implemented and working.Compare with previous version
added 1 commit
033def01
- none: fix velocity vectors using the right scene renderer.Compare with previous version
added 1 commit
c8a77689
- none: titles and particle effects work fine with the new ECS.Compare with previous version
changed the description
changed the description
added 1 commit
21dc1a67
- none: starting keyframed paths.Compare with previous version
added 1 commit
7c53f4f8
- none: finish porting keyframed camera paths to ECS.Compare with previous version
added 2 commits
d74521ed
- none: merge label and text components, label render method is now stored in component.388ab0fd
- none: line render method contained in line component.Compare with previous version
Work on this has concluded, will be merging shortly. One last item is making sure the VR app works, especially with the untested controller models. This will happen before release.