Repository navigation
star trails - #1888
star trails#1888
Conversation
dim whole framebuffer to 90%, else we are overexposed much too fast.stellarium/src/core/StelCore.cpp Lines 499 to 504 in 4f0cab6 This comment was generated by todo based on a
|
I am still unsure about how to use this. When I want to have a scene fading to black (effect of a light echo or showing star trails),stellarium/src/core/StelViewportEffect.cpp Lines 352 to 357 in 4f0cab6 This comment was generated by todo based on a
|
|
Great PR! Please pay attention to the following items before merging: Files matching
This is an automatically generated QA checklist based on modified files |
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
4f0cab6 to
cda1261
Compare
This comment has been minimized.
This comment has been minimized.
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as off-topic.
This comment was marked as off-topic.
77d1f1c to
a4ae4b4
Compare
This comment was marked as outdated.
This comment was marked as outdated.
|
Some modules are auto-inhibited now: gridlines, labels, planet and DSO hints, planet halos, Milky Way, Zodiacal light. Now it depends on what users expect. I would like to see landscape being replotted and NOT run into white-out, however I am unable to see an easy solution. Also, changing view direction or fov changes should re-initialize (clear) the view. This would need a few new signals. Is the overhead worth it? I cannot get @guillaumechereau 's solution to show again. :-( |
|
Why not just draw all the cosmic items into a separate FBO for accumulation, and blit on each frame into the main render target after rendering into this FBO? |
|
Sounds like a plan :-) The net view effect I envision in this mode should be "interactive foreground" (i.e. landscape should redraw well), stars should not run over the landscape (I tried several blending options, all but current looked bad), and on change of view direction, this "sky buffer" should reset to black (or background color). Dithering should be applied only to the final view (Currently it of course accumulates and looks bad as well). An extension could be that the buffer is dimmed instead of blanked, so that the star trails fade away after e.g. 10...60 seconds. If possible, gridlines or DSO markers, or even the MilkyWay/ZL could be made visible again without streaking. (I.e., not put into that "celestial" FBO. (But another FBO for MW/ZL/DSO textures/DSS/HiPS is yet another indirection, may be overkill, so IMHO it's OK to just switch them off). This all is meant to be for stronger systems. The "low graphics mode" running on memory limited systems should not be further encumbered with yet another FBO. |
Well, it's still gonna change when I split the rendering between layers to make labels etc. separate from physical objects and tone mapping.
This must always be true, since it's a conversion from full color depth to the monitor space.
What would a star streak represent if the Milky Way remains at one position? Sounds unphysical. If you want to simulate a long-exposure photo, all celestial objects should move and be smeared. Otherwise you could just as well draw the stars as lines (similar to orbits).
The low graphics mode shouldn't receive any new graphical features IMO. Only fix the existing bugs (except the ones requiring a serious rework). |
|
Actually I think this can be squashed into one new minor feature. |
|
Somehow I don't find the decisive difference in the shader code between decor and bottom parts. What works for the sides does not work at the bottom panel! I can only make it work in lowGL mode which also looks OK for me. |
- preliminary fix! something is weird with the landscape ground not blocking satellites and subhorizon sun. - current solution switches to drawLowGL which works.
|
@10110111 Are you OK with switching to lowGL, or can you identify the problem? |
This reverts commit f152e8e.
This fixes growing exposure of the ground (when we remove the early return) as well as its being transparent to Sun and Moon.
|
So I have fixed the ground issue now. There are some glitches when panning around during daytime with star trails enabled: the atmosphere flickers, getting sometimes overexposed, other times completely absent. On disabling star trails the atmosphere doesn't immediately reappear for some reason. (I'm using ShowMySky with Generally, the current implementation is hard to follow. Not least because of the confusing name of the flag, but also because it's hard to even tell which objects are supposed to be smeared over the screen. (Is it only stars, planets, and satellites?) Maybe a better way would be to do as follows:
Of course, the accumulation buffer doesn't have to be created and managed until the user enabled star trails. This way only the handful of smeared modules will have to deal with the star-trail mode (disabling their labels), the rest will work just as usual (except maybe for the atmosphere that we may want to suppress in this mode). As a bonus, we'll get back screenshots (except those with a custom size), and avoid the GUI artifacts (currently the bottom panel with the time rate button leaves trails too). |
Many thanks. I don't know where blindness struck me.
Yes, admittedly it's not perfect, just good enough for some effects. I do not understand why the atmosphere sometimes accumulates 2-3 frames (running into white-out) before being silenced, and why it then sometimes remains off.
The name just describes what happens technically, not why. I hope the documentation string is complete enough for understanding. Everything that causes large-area brightening must be disabled or the screen turns white within seconds. In 2021-23 my idea was to dim down the accumulated image to limit brightness, which would have also meant limited trail length. Guillaume's filter effect went into this direction but also blurred the view. In the end only stars (and other star-like extras: Novae, Supernovae), planets, satellites remained. But the other modules should be visible at the onset of the drawing, and the landscape must still cover the ground (if enabled).
I can roughly follow this in theory, but it vastly exceeds my OpenGL proficiency, sorry. I wanted to have this feature finally available showing something not the least for satellite annoyance awareness.
As said, the other modules including atmosphere (awesome twilight composites!) should draw one initial snapshot. E.g., constellations can show stick figures from which star lines grow. Of course, with your mode it would mix "current" view and recorded trails, that's another mode that promises to look interesting. Can we think of this as future version 2 of this feature?
I keep the menus visible or switch them off entirely (Ctrl-T). Pressing Ctrl resets the scene. |
|
I don't quite get the logic of sky clearing. Why is there this magic number 3? Why not any other? Besides, And, I think |
|
The naming grew historically. I thought a second flag would do for resetting, but it showed I need a 3-2-1-0 countdown to handle the initial 1-shot drawing completely. So, the counter could be renamed, ok. How does |
|
But still, can you explain the idea behind this 3-2-1-0 sequence? Why can't this be done in only two stages (everything once, then accumulation of the few items)? |
|
Reducing (Starting) the counter back to 2 causes overly frequent white-out with the daylight sky when pressing Ctrl to reset the trails. |
|
Sorry, conference week. It is as described in the User Guide a hackish approach, but it works usually. It will probably only be found by users that stumble over it while reading the advanced options in the SUG. Separating that into several buffers may be the technically cleaner way, but is beyond my knowledge. I would like this showpiece effect "in", obviously accepting improvements if e.g. @10110111 finds time. I could also add yet another manually modified config option to hide the feature for beginners. |
|
If I don't find time to add any improvements here by the end of the next week, I guess this can then go in as is. Otherwise it'll have too small time to be tested before release. |
|
The occasional atmo white-out or absence may be caused by the overall brightness estimator getting confused. Must have another look. Weekend, hopefully... |
- renamed counter - clearer docs - SUG amendments Signed-off-by: Georg Zotti <Georg.Zotti@univie.ac.at>
|
This crashes unconditionally in debug mode with assertion failure "singleton" in |
Fixed by 14c74c4. |
|
Thanks! |
|
Hello @gzotti! Please check the fresh version (development snapshot) of Stellarium: |
|
Hello @gzotti! Please check the latest stable version of Stellarium: |
Description
This little branch adds an interesting "wow" effect by not blanking frames. You can configure a keyboard shortcut to toggle this, and then render star trails.
This is a bit "hacky"! One problem are extended objects: Zodiacal light, Milky Way, atmosphere, DSO images need to be switched off first. This is handled automatically and easy to solve.
The worst problem is that the scene becomes too bright too quickly when any extended objects would be plotted. A solution would be to not just "forget" blanking, but add a slight dimming of the scene. This should then result in an afterglow effect where star trails don't get infinitely long. Maybe the dimming can be made configurable.
Due to the nature of this method, screenshots have to be made with operating system tools, not Stellarium's own screenshot renderer.
OpenGL/Qt experts please continue on this. Change StelCore::preDraw() and implement the methods in the StelViewportFaderEffect class, or maybe directly in StelCore::preDraw().
Screenshots (if appropriate):
Type of change
How Has This Been Tested?
Test Configuration:
Checklist: