Commit Graph

1012 Commits

Author SHA1 Message Date
Emma Broman
8fddd55851 Fix a couple of point cloud related problems
* crash that occurs when loading an empty dataset
* trying to access outside of range when sampling color or size values
2024-02-20 08:40:00 +01:00
Alexander Bock
5e9af1bc13 Revent point overflow when viewing the solar system position far in the future (closes #3021) 2024-02-10 09:05:28 +01:00
Alexander Bock
d67cabf578 Coding style update 2024-02-06 16:34:12 +01:00
Alexander Bock
6e29d898cf Update copyright header 2024-02-06 15:53:24 +01:00
Emma Broman
2323a8ce50 Issue/2985 - Add asset with default cmaps (#3004)
* Allow changing color map during runtime

* Stary building asset with colormaps (currently using local files)

* Add option to invert the color maps

* Remove final use of local viridis file in example and fix broken cmap update

* Use synced resource for colormap files

* Update advanced colormapping example

* Apply suggestions from code review

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

* Update data/assets/util/default_colormaps.asset

* Capitalize first letter of exported keys, to be more consistent with rest of code base

---------

Co-authored-by: Alexander Bock <alexander.bock@liu.se>
2024-02-05 15:47:25 +01:00
Emma Broman
2406a886ec Interpolating points (#3002)
* Add a class for rendering an interpolated point cloud (WIP)

* Make sure that we render the correct number of points

* Group interpolation properties into a property owner

* Update interpolation stuff (which was broken :) )

* Prevent interpolation from breaking with only one step or invalid interpolation values

* Add trigger properties for controlling interpolation

* Allow setting start interpolation value from asset

* Implement spline-based interpolation

* Cleanup, and interpolate to start and end

* And asset type documentation

* Add example asset

* Handle missing data values in interpolation

* Always show values at the knots, if there is one

* Experiment with more dynamic rendering (batching)

* Speed up interpolation by doing it on GPU instead of CPU

* Bring back spline interpolation (this time on GPU)

* Refactor initial data buffering

* Add a helper function to compute transformed positions

* Use vec3 positions instead of vec4 (less data to transfer)

* Update interpolation value documentation

* Apply suggestions from code review

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

* Increase interpolation speed max value

* Fix faulty indentation

* I banish thee, redundant empty line

---------

Co-authored-by: Alexander Bock <alexander.bock@liu.se>
2024-01-30 09:43:11 +01:00
Emma Broman
54cf26755c Feature/point cloud scaling (#2994)
* Try using angular max size rather than max pixel size

* Update property name and use for shader

* Add docs and remove mention of angle from user's perspective

* People will wonder, so add some details as to what the value represents

* Fix inconsistent punctuation in property texts with multiple sentences

* Slight clarification of transformation matrix usage

* Add values to asset files

* Increase max size of example points a bit

* Remove/Update comment

* Add TODO comment about potential optimization

* Reduce max size of SDSS and quasars a bit

* Address review comment

* Decrease 6df and increase globular clusters size as per review comment

* Remove any mention of pixel size in the example asset

* Remove some more mentions of pixel size

* Write view space position to G-buffer  to prevent atm. from shining through points
2024-01-18 13:23:22 +01:00
Alexander Bock
27608634b2 Remove warnings (#2999)
* Remove warnings for MSVC, GCC, and Clang 17
2024-01-18 09:58:20 +01:00
Emma Broman
640ca3ed49 Feature/point cloud labels from csv (#2989)
* Add ability to load labels directly from CSV/SPECK for PointClouds

* Provide some more docs

* Update the example asset for point clouds

* Make both examples visible

* Some cleanup

* Apply suggestions from code review

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

---------

Co-authored-by: Alexander Bock <alexander.bock@liu.se>
2024-01-17 13:46:49 +01:00
Emma Broman
6fb4b89a12 Prevent setting ScaleExponent to an invalid value
May happen if no dataset was read or if the dataset only incudes (0,0,0)
2024-01-15 16:38:56 +01:00
Emma Broman
385d23303d Prevent point cloud from never getting ready if no dataset was added
Fixes issue that Voids were not begin rendered
2024-01-15 16:32:19 +01:00
Emma Broman
6dd497d38c Feature/add some docs (#2961)
* Add docs for PathInstruction

* Add docs for renderablecartesianaxes and navigationstate

* Write docs for ExoplanetDataPreparationTask

* Add some kind of documentation for the task base class

Was already showing in the list, but the property or decription was not included

* Apply suggestions from code review

* Address review comments

* Clarify confusing sentence

* Slight rephrasing
2024-01-04 13:55:21 +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
Alexander Bock
3dadf9c5fa Only create RingComponents and ShadowComponents when they are actually needed 2023-12-01 09:35:38 +01:00
Alexander Bock
3a9716a535 No need to use the .set method of properties directly 2023-11-28 21:37:52 +01:00
Emma Broman
c525565e84 Utilize new functions for converting strings to upper/lower case (#2956)
* Utilize new functions for converting strings to upper/lower case

* Adapt to updated file name

* Use new function signature

* Update ghoul
2023-11-28 14:57:01 +01:00
Alexander Bock
7db7c40841 Doxygen style overhaul (#2954)
Reformatting the existing Doxygen comments to be unified
2023-11-20 23:39:17 +01:00
Alexander Bock
4ee078502b Doxygen (#2953)
* Update Doxygen and add new CSS file
* Remove Doxygen warnings
2023-11-19 16:35:14 +01:00
Alexander Bock
3c35d23062 Verifier cleanup (#2952)
* Add a description to structs
* Cleanup
2023-11-19 11:51:19 +01:00
Alexander Bock
870850db07 Enable warnings for missing case labels and subsequent cleanup. Updated ghoul, sgct, and codegen repository for same 2023-11-05 22:16:06 +01:00
Alexander Bock
06a7c692c5 Add special handling for a number of properties in the DashboardItemPropertyValue (closes #2899) 2023-10-19 11:21:28 +02: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
7483b912e0 Update submodules to fix compilation error on newer Clang and GCC (#2890)
* Update submodules

* Update Ghoul
2023-09-13 09:51:30 +02:00
Emma Broman
d77836d910 Feature/arrow renderable (#2219)
* Create a RenderableNodeLine example asset

* First version of node direction hint renderable (arrow)

* Add possibility to set length as a multiplier of the bounding sphere

* Draw arrow cylinder using index array

* Update exponents and min max values for lengths

* Draw arrow head

* Only update arrow geometry when positions change

* Add some properties to control visuals of arrow

* Implement invert option

* Add normals and shading

* Set arrow head size by length percentage instead of angle

* Add bottom circle to cone

* Cleanup and update examples

* Remove non-existing property from example asset

* Fix vertices not updating if anchor node was changed

And some missing updates on property change

* Start cleaning up some shape rendering helper functions

* Cleanup code and move cylinder function to helper class

* Refactor cylinder creation code (fewer loops over same vector)

* Update transformations to correctly scale and place arrow

* Add the cone to make the arrowhead

* Update faulty triangle normals

* Add property visibilities

* Rename NodeDirectionHint to NodeArrow

* Apply suggestions from code review

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


---------

Co-authored-by: Alexander Bock <alexander.bock@liu.se>
2023-09-11 11:04:46 +02:00
Ylva Selling
c3ae39da62 Change name of line fade in RenderableTrail from Fade to LineFade (#2857)
* Change name of line fade in RenderableTrail from Fade to LineFade

* Adress review comments

---------

Co-authored-by: Emma Broman <emma.broman@liu.se>
2023-09-01 14:10:10 +02:00
Alexander Bock
455ee9335a Add a proper blackout to the ScreenSpaceRenderables and a property and codegen option to toggle that behavior (#2868) 2023-08-31 18:19:37 +02:00
Alexander Bock
e7cad060c2 Adapt to coding style 2023-08-11 20:58:41 +02:00
Malin E
54ad5bfdd5 Add pivot property for Models to move model origin 2023-08-09 16:04:20 +02:00
Malin E
786c2887da Sphere maintenance (#2800)
* Split RenderableSphere class into a local and online sphere

* Make the video sphere derive from the regular sphere

* Make RenderableTimeVaryingSphere derive from RenderableSphere

* Some clean up

* Address PR comments
2023-08-07 11:47:32 +02:00
Ylva Selling
d317c287eb Update modules/base/shaders/screenspace_fs.glsl
Co-authored-by: Alexander Bock <alexander.bock@liu.se>
2023-06-28 17:14:14 -04:00
Ylva Selling
0b20affc5d Add border to screenspace renderables 2023-06-15 15:42:32 -04:00
Adam Rohdin
71827c2f1e Fix for minor trail issue 2023-06-10 12:58:08 +02:00
Adam Rohdin
f732702680 Readability fix
Co-authored-by: Alexander Bock <alexander.bock@liu.se>
2023-06-08 09:02:07 +02:00
Adam Rohdin
8629ee6330 Added extra spacing
Co-authored-by: Alexander Bock <alexander.bock@liu.se>
2023-06-08 09:00:53 +02:00
Adam Rohdin
7bf6b1d00f Merged two if-statements 2023-06-07 17:14:08 +02:00
Adam Rohdin
f1d838da77 Fixes bugs when some variables equals 0 2023-06-07 16:59:39 +02:00
Adam Rohdin
959efddc51 Fixes #2540 by correctly showing all points, including the proper end point 2023-06-07 16:20:19 +02:00
Alexander Bock
25292cef76 Disable too agressive culling of renderabletrails for now (closes #2653) 2023-06-03 13:42:13 +02:00
Alexander Bock
9d5e50d930 Ensure that the geometry has the animation enabled (closes #2731) 2023-06-03 02:50:39 +02:00
Adam Rohdin
781b114d29 Moved bounding sphere calculations for better performance 2023-05-31 15:45:00 +02:00
Malin E
ff805d334f Fix issue with atmosphere rendering on top of spheres 2023-05-26 16:34:38 +02:00
Malin E
6f8245d9cb Fix issue with atmosphere rendered on top of video plane
* Issue still persists with video sphere and regular sphere
2023-05-26 11:23:09 +02:00
Malin E
6054a817d8 Move model loading code to initialiseGL, fixes #1838 2023-05-24 16:40:17 +02:00
Emma Broman
c949a9892c Issue/2227 - Option to just specify a scene graph node in profile editor camera dialog (#2699)
* Add profile edit to start camera at a given scene graph node

* Restructure some navigation code to allow computing camera pose from node

* Delay computation of camera pose for node spec as well... And give NodeInfo a more extensive name (The objects may move during the frame, making the computed pose invalid)

* Update to make scene graph node first option in editor

* Add some description to each tab in the camera dialog

* Add operator== for CameraGoToNode struct to make the unit tests compile

* Add version handling for new profile version

* Add option to specify an optional height

* Update current version constant, for old test cases to go through successfully

* Add some test files

Note that apparently, the profile loading does not check the values of the individual fields, just existence, and type. So added two test cases that are not currently checked.

---------

Co-authored-by: Alexander Bock <mail@alexanderbock.eu>
2023-05-24 11:22:41 +02:00
Malin E
4d9d4717d3 Set clear color for transparent models, fixes #2683 2023-05-23 11:25:48 +02:00
Malin E
9081a4db66 Make the numeric value of the model scale a property in the gui 2023-05-22 17:46:31 +02:00
Emma Broman
12d37d92a6 Fix faulty type for RenderableModel ModelTransform property input
from asset dictionary
2023-05-22 17:07:28 +02:00
Malin E
0490e94350 Fix modelshader example in Debug mode 2023-05-22 11:37:28 +02:00
Alexander Bock
bde840ad03 Remove a bunch of compiler warnings
* Remove compile warnings
* Coding style fix
2023-05-16 11:59:28 +02:00
Micah Acinapura
4731e8e0a8 MacOS build fixes (#2622)
Co-authored-by: Alexander Bock <alexander.bock@liu.se>
Co-authored-by: Joakim Kilby <jockekilby@gmail.com>
2023-05-12 09:35:59 +02:00