Comments (6)
Alright, so I believe the problem here is that with 4096x4096x6 pixels to fill, but with only 8000000 particles by default, only about 8% of the surface area is covered, and with the "cache aware particle placement", (see -K option), these relatively few particles compared to the area to be covered become concentrated, leaving much of the surface uncovered.
If you use "-K 0.0" option (0% "cache-aware particle placement" and 100% random particle placement), things look more "normal" though the default number of particles is too low with such large textures. (See -p option to set number of particles.)
I think, with -K 0.0 and with sufficiently large number of particles (and sufficient RAM to hold them all), it should be workable to produce 4096x4096 images, though I haven't verified it myself.
There may still be a bug here though, as the "cache aware particle placement" does try to spread the particles around, but perhaps in situations where the total number of particles is small compared to the area to be covered, something breaks down there.
In any case, to produce acceptable images of this size, a lot more than the default number of particles will be required.
Here is a picture of a planet with 4096x4096x6 textures generated by "./gaseous-giganticus -K 0.0 -i i0.png -o testbig2 --noise-scale 2.5 --velocity-factor 1300 --bands 10", with 8000000 particles with "-K 0.0" option.
The noise scale probably needs to be adjusted for such large textures as well.
from gaseous-giganticus.
Brilliant, thanks Stephen. I produce similar results with the default particle count, velocity factor and noise scale, but will definitely have a play around with the different settings and report back. Personally not so worried about compute time - I am assuming computation is via CPU?
from gaseous-giganticus.
Yeah, it's all done on the CPU. Doing this on the GPU is too difficult for me to wrap my head around, so far. I did notice this not too long ago: https://www.wedesoft.de/software/2023/03/20/procedural-global-cloud-cover/ which uses a similar method, but done on the GPU, though I think it's more for cloud cover on terrestrial planets than gas giant texture generation, it might be adaptable, by someone smart enough (which is to say, probably not me.)
from gaseous-giganticus.
BTW, if you do make something cool, please do post a pic or two here, if you can, I'm always curious to see what people make with help from my little program, sometimes they make some pretty cool stuff.
from gaseous-giganticus.
Success. I was able to produce great results with essentially the default values, but with a K of 0.0 and particle count of 96m. This was sufficient to mostly remove the dimming at the tile seams. I also ran it at -c 200 as higher values were wiping out some of the nicer swirls.
Render times were not too bad, mostly less than 10 mins on my 3900x.
Unfortunately my Virtual Ubuntu session (running in Win 10) has crashed so I can't go back through and document my findings, but from memory:
- Increasing K to 0.2 and then to 0.5 did not produce any detrimental results, at this particle count
- Increasing and decreasing noise scale from the default produced worse results to my eye (less defined large structures)
Thanks for your help and when I get another chance I will do some more testing! I would like to try one of your techniques where you generate small swirls, then feed the result back through to generate the larger swirls
from gaseous-giganticus.
Beautiful!
from gaseous-giganticus.
Related Issues (10)
- Windows patches HOT 1
- Would be nice if this did real fluid dynamics
- [Enhancement] Output velocity field as a flow map HOT 33
- Crash if no --dump-flowmap is not used. HOT 2
- Color mixing is done with floats, and is a bottleneck
- Enchanced output methods HOT 12
- Possible to export images in spherical format HOT 3
- Possibility to vary band sizes HOT 3
- --output does not respect the user provided output_file_prefix HOT 5
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from gaseous-giganticus.