Commit Graph

55 Commits

Author SHA1 Message Date
Alexander Bock 6e29d898cf Update copyright header 2024-02-06 15:53:24 +01:00
Emma Broman c165098cdc Point cloud rewrite (RIP RenderableBillboardsCloud) (#2932)
* Start refactoring billboardscloud renderable

* Remove extra unit computation in geometry shader

* More refactor and fix size parameter not working without colormap (it never did)

* Remove redundant bool in shader

* Divide settings into property owners

* Refactor colormap

* More refactoring (utilize properties for visiblity)

* Remove redundant extra data structures for options

* Move data logic to the colormap settings structure

* Remove confusing correction size properties

* Separate polygon cloud into its own renderable

* Clean up some unused code

* Update some property descriptions

* Split some more code out into functions

* Remove odd and unused "linear filtering"

Should be reimplemented ina better way in a general color map overhaul

* Start refactoring some more properties

* Make color optional and remove redundant color assignments in assets

* Refactor color-parameter input and make range mapping work correctly

* Code cleanup (unused code and fix data types)

* Rename ScaleFactor to ScaleExponent

* Add a scale factor as well, as they're easier to use, and clarify documentation

* Fix faultily renamed scale factors

* Remove confusing multiplication for scale exponent

* Fix problem with points not appearing when _drawElements was set to true

* Move all colormapsettings into its own table in the asset files

* Move scaling/sizing into its own table as well

* Group sizing properties and remove min pixel size limit (was always zero)

* Add some docs and rename a parameter to avoid repetition

* Remove IsExact colormap and add an option to hide outliers

OBS! Still need to update the actual cmap files

* Add property to disable size mapping

* Increase pixel size of polyon texture - reduces jagged edges

* Remove unused points class

* Rename files and billboard class, to make it clearer that it is a point cloud

* Move size mapping into size settings

* Move color map properties out into its own component

* Move color map related computations into the new component

* Add outlier colors, to cover some specific color mapping issues

* Automatically fill parameter options if no colormap parameters were defined

* Move all color-related parameters to under one property owner

* Inlcude changes from matrix maintenance

* Add a checkbox to disable additive blending

* Remove a unused variable in shader

* DO color maping on the graphics card instead of CPU, using a texture

* WIP remove old "Outliers" and start introducing concept of no data colors instead

* Move speck loader to core and divide into a general data loader and a speck specific loader (In preparation for adding CSV support)

* More labelscomponent to core

* Fix a faulty header

* Handle NaN values

* Rename color map component property owner

It's not just the color map, but the settings for the entire mapping

* Hide point with nan value is show missing data is not selected

* Fix labels component documentation after move

* Add option to not provide any texture, and use a sphere generated form the shader

* Don't crash when loading unsupported data formats :)

* Add some TODO comments that should be addressed before merge

* Move renderables from DU module to base, and do some header cleanup

* Move colormapping component to core ad rename it to make it clear that it is not the color map itself

* Add above, below and nan color values to cmap loading

* Remove missing Data value specs in asset (and use belowRange in cmap instead)

* Make warning about wrong color number more verbose

* Add TODO comment about colormap, and actually used color in prev version, to localdwarfs

* WIP: Load CSV files

* Update some property visbility

* Check if chosen parameter options actually exist

* Fix fault column check

* Update example asset to cover more different cases

* Use new asset.resource loading

* Update asset versions (major update)

* Add parent documentation for RenderablePolygonCloud

* Add point cloud example with size scaling and add TODO comment

* Add example with textured points

* Don't blend textured points

* Fix problem with shaders being confused about texture units

* Bring back deepsky points color

* Start implementing more sophisticated datamapping for point data files

* Allow reading datamapping from input dictionary

* Load dataset in constructor instead

Solves problem with color map columns not loading for big datasets when loaded the first time

* Fix crash from reading column value that is interpreted as inf

* Inlcude information about data mapping when caching dataset

Updating the parameters now leads to an updated caching of the data file

* Adapt to tolower update

* Add option to specify columns to exclude in load (for CSV files)

* Start updating some docs

* Add a readonly property that shows the number of data points

* Rename example asset to shorter name

* Add option for not using cache when loading dataset

* Fix some errors in example asset

* Set scaleExponent from max position if not specified

That way the points are always visible, even when no exponent is given

* Restructure and add explanations in example asset

* Add option to not cache labels component data file

* Add example file with labels and units

* Compute fade distances in model coordinates instead of world space (issue #1746)

* Add possiblity to invert fading and add exmaple asset

* Make a separate propertyowner for fading settings

* Update docs

* Add example asset with custom data mapping

* Address some of my own review comments

* Read provided Parameter from asset

* Read ValueRange from asset

* Add example asset for more advanced color mapping settings

* Allow using the same column for two position coordinate axes

* Update src/rendering/colormappingcomponent.cpp

Co-authored-by: Alexander Bock <alexander.bock@liu.se>

* Update src/data/datamapping.cpp

* Use helper function for tolowercase

* Simplify some std::optional handling, and fix broken assignment from code review fix

* Update data file versions to get updated cmap files

* Include a progress bar to show progress of CSV data loading

* Update csv data-to-float parsing for clang

* Add a description about why `openspace.absPath` is used in the file instead of `asset.resource`

* Apply suggestions from code review

* Apply suggestions from code review

* Add some missing info in documentation

* Place size-related property descriptions next to each other

* Remove the explicitly set renderbin

* Fix overly complicated description

* Fix polygon texture not being used

* Add polygon cloud example

* only bind texture and activate texture unit when required

* Rename alpha to opacity in shader

* Fix value range not loading, and make first parameter in list the default

* Rename Pixel Size property

* Use base 10 for scale exponent instead of base e

* Update src/data/datamapping.cpp

* Update modules/base/shaders/billboardpoint_gs.glsl

* Remove some redundant asset settings (Home label)

* Review comments

* Add TODO comment for localdwarfs asset (Speck file reading problems)

* Oops, forgot part of the comment

* Apply suggestions from code review

Co-authored-by: Alexander Bock <alexander.bock@liu.se>

* More code review fixes

* Fix faulty isReady check when labels are included

* Apply suggestions from code review

Co-authored-by: Alexander Bock <alexander.bock@liu.se>

* Apply suggestions from code review

Co-authored-by: Alexander Bock <alexander.bock@liu.se>

* More code review updates

---------

Co-authored-by: Alexander Bock <alexander.bock@liu.se>
2023-12-19 13:20:07 +01:00
Malin E ce789fcd22 Feature/matrix maintenance (#2875)
* Split RenderableSphere class into a local and an online sphere

* Make the video sphere derive from the regular sphere

* Make RenderableTimeVaryingSphere derive from RenderableSphere

* Some clean up

* Add general functions for renderable matrix calculations

* Make RenderableSphere and Plane use them

* Fix an issue with the RenderablePlane shader

* Make one function that returns all three types of render matrices

* Make more Renderables use the general matric calculation function

* Make more Renderable use the general matrix function

* Simplify alternative transforms for matrix calculations

* Small clean-up

* Update RenderableModel (again) to use new transform functions

* Make calc all matrix function to return tuple

* Update some more places
2023-09-21 14:22:36 +02:00
Alexander Bock 79ad5776cc CMake cleanup (#2489)
* CMake Cleanup
* Warning suppression with CEF
* Use SGCT tinyxml in skybrowser for now
* Disable warnings about missing field initializers
2023-02-05 23:24:12 +01:00
Alexander Bock 4f4764209f Happy new year 2023-01-02 11:19:33 +01:00
Malin E ac79e4dc07 Start addressing PR comments 2022-09-22 12:01:01 +02:00
Malin E 9667db22c9 Small fixes 2022-09-09 10:27:17 +02:00
Malin E 0d6f4ecac0 Change name from SpeckLabels to LabelsComponent 2022-09-08 10:08:39 +02:00
Malin E 6478f0a92c Adjust asset files to use the new labels 2022-09-05 10:43:55 +02:00
Alexander Bock 9b1143f02f Ubuntu 22.04 and GCC11 fixes (#2163)
* Update CEF version
* Update Ghoul
* Update SGCT
* Update codegen
* Remove warnings happening on Ubuntu 22.04 with GCC 11
* AppleClang warning fixes
* Compile fix for Ubuntu and MacOS
* Add Qt 6.2.3 to the CMAKE_PREFIX_PATH
2022-06-28 00:46:01 +02:00
Alexander Bock 21df9066e1 Make use of the new map feature in codegen (#1801) 2022-01-02 13:36:41 +01:00
Alexander Bock d7d279ea16 Happy new year 2022-01-01 12:32:55 +01:00
Alexander Bock 87da9a27ab Feature/path normalization (#1674)
* Path normalization (making sure there are fewer cases of '"..."'
* Using more std::filesystem::path instead of std::string
* Update Ghoul
2021-07-01 23:46:22 +02:00
Emma Broman 1695937749 Feature/numeric slider updates (#1609)
* Remove Logarithmic ViewOption and instead always use exponent of NumericalProperty + set exponent of some renderables' properties

* Add MinMaxRange ViewOption for Vec2 properties

* Add MinMaxRange viewoption to some existing vec2 properties and combine some other related properties to be able to utilize it. For example Min and Max label sizes, fade in/out distances, inner and outer radius. OBS! Includes renaming several properties (**breaking change**)

* Refactor and document labels code. OBS! Includes renaming several properties (**breaking change**)

* Add comments for some assets that have labels that are not working correctly


Renderables with rename properties: RenderableLabels , GlobeLabelsComponent, RenderableBillboardsCloud, RenderableDUMeshes, RenderableRadialGrid )
2021-05-28 17:00:55 +02:00
Alexander Bock 205d4c9db1 Feature/speck loader (#1585)
* Implement a shared speckfile loader
* Apply new speck loader to RenderableBillboardsCloud, RenderablePlanesCloud, RenderablePoints
2021-05-17 13:59:54 +02:00
Alexander Bock 2aa540a112 Feature/interactionsphere (#1561)
* Add ability to render the bounding sphere as a debug option
* Separate boundingsphere and interactionspheres
* Correctly compute BoundingSpheres for more renderables (RenderablePlanesCloud, RenderableOrbitalKepler)
2021-04-26 13:13:36 +02:00
Alexander Bock 7004c02b86 Happy new year 2021-01-02 15:26:51 +01:00
Emma Broman ef0eef842d Add opacity for text labels and fix constellation label opacity 2020-07-10 11:25:26 +02:00
Emma Broman bdb6e626ba Color values specified with vec3 instead of vec4 2020-07-10 11:25:26 +02:00
Emma Broman b14eba72f8 Change properties and variables to opacity instead of transparency 2020-07-08 15:54:12 +02:00
Alexander Bock d8e9db76a3 Update the copyright header to 2020 2020-02-10 21:51:01 +01:00
Alexander Bock bb3db7ada7 Feature/jenkins fix (#816)
* Cleanup
* CMake cleanups
* Update current year
* Update copyright header
* Use script to return list of all modules
* Update credits, license and ghoul
2019-03-24 11:19:39 +01:00
Alexander Bock c7a96a6b59 Address clang tidy complaints
Update Ghoul repository
Update SGCT repository
2018-11-30 15:34:09 -05:00
Jonathas Costa 06119d0830 Merge branch 'master' into issue/675 2018-08-01 10:42:27 -04:00
Jonathas Costa 4e30d9c3b8 Fixed issue 675. 2018-07-31 14:50:10 -04:00
Alexander Bock f55828198f Adapt to UniformCache changes when updating uniform locations (closes #648) 2018-07-19 17:46:21 -04:00
Alexander Bock 4952f8f977 Code cleanup branch (#618)
* Make height map fallback layer work again
  * Add documentation to joystick button bindings
  * Removed grouped property headers
  * Add new version number constant generated by CMake
  * Make Joystick deadzone work properly
  * Change the startup date on Earth to today
  * Fix key modifier handling
  * Add debugging indices for TreeNodeDebugging
  * Fix script schedule for OsirisRex
  * Do not open Mission schedule automatically
  * Upload default projection texture automatically

  * General code cleanup
  * Fix check_style_guide warnings
  * Remove .clang-format
  * MacOS compile fixes
  * Clang analyzer fixes
2018-06-10 04:47:34 +00:00
Alexander Bock 40dbf875c5 Issue/525 (#593)
* Add initializeGL and deinitializeGL methods to OpenSpaceModule Call releaseAll from ProgramObjectManager in deinitializeGL to guard against errors when deinitializing assets

* Change removeProgramObject function in RenderEngine to take a non-owning pointer instead of a reference to a unique pointer to make it compatible with the ProgramObjectManager
Update Ghoul repository

* Using ProgramObjectManager in more modules to reduce the number of programs compiled at startup
2018-04-10 15:55:52 -04:00
Alexander Bock 9f90c6c39d Reuse the same font renderer program object between DU rendering classes
Working towards #525
2018-02-26 23:13:04 -05:00
Alexander Bock 47233b8e6f Make use of UniformCache in many Renderables and switch from setUniform(const std::string&, ...) to setUniform(GLint, ...) in those cases 2017-12-31 17:31:10 -05:00
Alexander Bock dcfef3557f Update copyright header 2017-12-29 20:11:22 +01:00
Alexander Bock c9a3c68f19 Fix style guide issues
Update Ghoul repository
2017-12-29 19:18:06 +01:00
Alexander Bock db668b5342 Some changes to PR #432 2017-12-18 16:25:02 -05:00
Jonathas Costa 4c0f0333af New Fade-in controlled range for planes cloud. 2017-12-12 16:47:47 -05:00
Jonathas Costa 0d83df09bf Added max text size control for DU objects. 2017-12-11 21:58:33 -05:00
Jonathas Costa 10a60e73ad Improved performance of RenderablePlanesCloud adding min size control. 2017-11-23 20:03:42 -05:00
Jonathas Costa cd1c695944 Improved RendedrablePlanesCloud rendering times. 2017-11-22 11:55:37 -05:00
Jonathas Costa 0264a3026c Merged master into NewAtmosphere. 2017-11-15 18:12:58 -05:00
Jonathas Costa 67033c4583 Tentative fix for billbords alingment problems. 2017-11-15 17:35:00 -05:00
Jonathas Costa 929bd9ae05 Merged. 2017-11-09 15:46:46 -05:00
Alexander Bock acdfefe46d Merge branch 'master' into feature/loadingscreen-refactor
# Conflicts:
#	modules/base/rendering/renderabletrailorbit.h
#	modules/digitaluniverse/rendering/renderablebillboardscloud.cpp
#	modules/digitaluniverse/rendering/renderableplanescloud.cpp
#	modules/digitaluniverse/rendering/renderablepoints.cpp
#	modules/galaxy/rendering/renderablegalaxy.cpp
#	modules/galaxy/rendering/renderablegalaxy.h
#	modules/kameleonvolume/rendering/renderablekameleonvolume.cpp
#	modules/kameleonvolume/rendering/renderablekameleonvolume.h
#	modules/spacecraftinstruments/rendering/renderablefov.h
#	modules/spacecraftinstruments/rendering/renderableplaneprojection.h
#	modules/toyvolume/rendering/renderabletoyvolume.cpp
#	modules/toyvolume/rendering/renderabletoyvolume.h
#	modules/volume/rendering/renderabletimevaryingvolume.cpp
#	modules/volume/rendering/renderabletimevaryingvolume.h
2017-11-08 19:10:59 -06:00
Jonathas Costa 69aa660885 Added fade-in/fade-out transitions for Milkyway/Tully galaxies. 2017-11-08 16:55:31 -05:00
Alexander Bock b50b52d351 Cleanup for coding style
Add strict mode to check_style_guide script
2017-11-08 10:35:39 -06:00
Jonathas Costa 845c867380 Initial fade-in methods for DU objects. 2017-11-07 17:58:38 -05:00
Alexander Bock 78e3320cde Separate Renderable::initialize into initialize and initializeGL functions
Handle initialize in a separate thread and display rudimentary loading screen
2017-11-02 14:27:35 -04:00
Alexander Bock 1c61f56043 Various Mac related fixes 2017-10-18 09:58:12 -04:00
Jonathas Costa a5243cf4d1 Added luminosity/size and slum controls by datavar in plane clouds. 2017-10-11 14:51:26 -04:00
Jonathas Costa d67a89a6ed Fixed alignment problem in AMNH dome. Added dedbug code for testing the fix on the dome. 2017-10-10 15:24:50 -04:00
Jonathas Costa 624d632765 Fixed scale for Tully galaxies textures. 2017-10-09 11:59:20 -04:00
Jonathas Costa 4ab735b883 Adding DU meshes. 2017-10-08 16:42:09 -04:00