Giter Site home page Giter Site logo

Comments (6)

smcameron avatar smcameron commented on May 26, 2024

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.

gghuge

from gaseous-giganticus.

brendangully avatar brendangully commented on May 26, 2024

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.

smcameron avatar smcameron commented on May 26, 2024

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.

smcameron avatar smcameron commented on May 26, 2024

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.

brendangully avatar brendangully commented on May 26, 2024

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.

23export

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.

smcameron avatar smcameron commented on May 26, 2024

Beautiful!

from gaseous-giganticus.

Related Issues (10)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.