-
-
Notifications
You must be signed in to change notification settings - Fork 865
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add Custom Nebula Textures Plug-in #4003
base: master
Are you sure you want to change the base?
Conversation
Great PR! Please pay attention to the following items before merging: Files matching
Files matching
This is an automatically generated QA checklist based on modified files. |
@10110111 @alex-w @gzotti Do you have any suggestions for conflicts between custom texture rendering and original texture rendering? Should we let users choose to turn off the original texture and then display the custom texture, or use some algorithm to detect and compare the texture area and then turn off the conflicting texture? Should it add a json for custom configuration? Or can it directly modify the original texture json and add a key to distinguish between the original and customized ones? |
Please fix compilation of the code |
I am not sure: Can we handle user catalogs independently? There is probably infrastructure for more, but just one "default" nebula catalog. Maybe users could make (manually) a copy of default and then replace whatever they want to replace. Or they just want to use this welcome plugin to then contribute their own images of so far not included DSOs. Given the very latest developments, you need this plugin to platesolve/fit the image with stars, and then apply some de-starring filter to extract the nebula alone. (Unless image is of a cluster of course.) |
I think it would be cool for astronomical photographers to be able to map their images in the software without having to deal with complex file editing. Rather than just giving developers predefined tools It would be better to have separate user-defined json and image storage and management, and allow users to choose to hide conflicting original textures (by algorithm). Another question is that the following formula still has a slight position deviation when calculating the four corners based on wcs fits. Does it also involve the calculation of parameters such as A_0_0, B_0_0, AP_0_0, BP_0_0? Maybe it is related to field of view distortion? I just started to get started, so it would be great if you could help me take a look.
|
Sorry, will be of no help here. Not my field. For fitting, you may want to disable aberration (to show mean positions). Small-angle (telescope) images should usually be OK, for large images it is not enough to have the corner coords, but need to take lens distortion into account. |
Perhaps another use is to allow users to analyze their own images and then locate the position in Stellarium, which would be a very practical function
This can of course be explained to the user in advance, my plan is that most of the image (within 2-3 degrees) can be displayed accurately |
From the log:
Compilation the qt5-based edition is broken |
wcslib works well for converting pixel to RA/Dec. Stellarsolver is also good for it. New: |
Hello @ultrapre! Thank you for proposing of the feature. |
I fully agree this is hard to read and follow. To me it appears even more features were planned but then not completed. |
Anyone know how to disable rendering a selected image in the default texture? |
Alexander invented some trick to hide M1 before 1054. Maybe you can go a similar way based on other conditions? Or you will have to add a scriptable function setVisible(QString imgName_or_JSONkey, bool visible). Sorry, I am not enough familiar in this section and would have to study the code again myself. |
It is best to have a UI that can manage turning each texture on or off. |
The display of M1 is not related to the method of manipulating the display separately, as this also uses the filtering criteria in the data stellarium/nebulae/default/textures.json Line 14 in 3c8d3c4
|
If there is no built-in way and you need it, you may need to add a key "visible" which should default to true. Then add the setVisible() command as outlined above. While you are exploring, everything about minResolution and probably other fields need better documentation IMO. |
Please review the code changes in core. |
Yes, it's enough |
Could we consider adding an option in the future that is turned off by default, but can be turned on after consulting with the user, giving the image to Stellarium, using CC BY 3.0 or CC BY 4.0 copyright, and then the official can use these images as materials. It is even possible to develop a community in the future, similar to the Creative Workshop in Steam games, where users can freely choose mods provided by others. |
This requires server storage and a multimedia community, although uploading to a designated interface is easy to achieve. Anyway, such functionality can be envisioned in the future, as it is not currently required for this standalone software and the first version of the plugin. |
NebulaTextures Plugin Test Report Outline1. Functional Testing
2. Negative & Boundary Testing2.1 Invalid Operation Steps2.2 Empty Input & Length Limits
2.3 File-related Issues
2.4 Network Response Errors
3. Performance Testing3.1 Frequent Uploads
3.2 UI Responsiveness
4. Compatibility Testing4.1 Cross-Platform Testing
4.2 Installation Testing
5. Security Testing
6. Regression Testing
|
The minResolution at the top of textures.json controls the visibility and FOV relationship of all textures (equivalent to sub textures) within it. Therefore, the minResolution value of each image does not work because each texture has no sub-images. |
I adjusted the minResolution values using two adjacent images on the celestial sphere, both textures being 1024x1024. TextureA.png was set to 0.02 and textureB.png to 1.0. When zooming in on the screen, textureB.png would appear first. If we swap the minResolution values - setting textureA.png to 1.0 and textureB.png to 0.02 - then textureA.png would appear first instead. |
Impressive work! A few usage points:
Ah- this is active only after restart of Stellarium! Also the option so the second tab. You could add tooltips or a label to tell the user that newly added images need a program restart to become fully usable. Does the brightness control set the maxBrightness entry in the json? |
For Showing only?
Good advise, all fixed.
Yes. |
Yes. Most plugin dialogs can be called up via bottom-menu button. Click once to activate, another time to hide. Usually these plugin draw some extras. A separate dialog (usually the respective PluginConfig dialog) can be called via right-clicking. Your plugin also has a drawing aspect and a GUI aspect. Actually, the menu button could toggle "show my own images" while right-clicking could toggle the editor dialog.
While I was testing, the underlying (existing) image could not be switched off, so images visually merged but I saw "dark" added some resolution. After restart I could toggle visibilities of the default and my own image, however I had set it to "dark", and all by itself it was too dim now. You could add a section to the User Guide about the created JSON file in modules/NebulaTextures, where the maxBrightness value (or others, minResolution, ...) could be manually adjusted to peoples' needs. At this point you may know more about these numbers than the current maintainers. Documenting helps not forgetting! It is not necessary (but would be just awesome...:) to manipulate the displayed brightness interactively in the GUI. I know, there are always more ideas than time, but some grim ugly rainy winter days can be also spent in useful ways... :-) |
The existing underlying texture makes it difficult for users to accurately judge brightness, so I plan to set "Disable Default Texture" as checked by default. The three values in the brightness dropdown are set based on my experience, and they should be sufficient for most texture scenarios. Would allowing users to freely adjust an empirically determined value—one that is inherently difficult to fine-tune—actually make the results less reliable? Of course, providing a description in the user manual is necessary. |
Change:
Added an "Enter" button used signal mechanisms to refresh the texture drawing during the operation to control region conflicts completed the disabling of the default texture option during texture testing |
Tried another photo.
Of course I filled the API key as copied from astrometry.net. |
The subid should not be "0". This is because you did not set a valid API key. |
OK, this works again, thanks. Now, the result was not perfect, and I tried to tweak the corner coordinates.
|
@ultrapre is it possible to fix Georg's suggestions up to end of current week? |
Okay I'll find time to finish it as soon, sorry for a little bit busy lately = = |
No problem, it just need planning the version of Stellarium to including of the plugin - 25.1 or 25.2 |
For amateur astronomers to parse their own nebula images and use them as textures.
By inputting photos and Astrometry.net's API to Plate-solve images online, and calculating the four corner coordinates, finally rendering textures of custom nebula images.
The project is work-in-progress, welcome guiding and joining.
Plan:
Initial functional points: