Thanks for updating anyway. Although I don’t use it anymore anywhere, for now, it was one of the things I first tried and got hooked on JME because I could seemingly accomplish all kinds of cool stuff fast Important library!
I downloaded and am running the TestSkyControl from github.
it seems quite heavy, I am trying to disable somethings here and there like bloom etc (I disabled all least the sky btw), but it is still quite heavy. Any tip on tihs?
can the cloudiness be customized for different cloud layers?
each individual real life cloud have a darker side that is not direcly hit by the sun, do you believe we could do some trick directly on the skybox texture? or may be some shader?
EDIT: oh btw,
our end work, the final work, will require to be CC-By-SA as I read on the textures licenses.
this basically means, if we want to release the project in other license, we have to use other textures right?
If by “heavy” you mean the load SkyControl puts on the cpu/gpu, yes, there are many ways to reduce that. TestSkyControl exists to show off all the features of the software, so disabling features you don’t need (like bloom or night sky or multiple cloud layers) is a good place to start. Perhaps for your application it’s not necessary to update the sky materials on every frame. (I imagine most apps don’t need sky updates at all. In that case, one could simply apply SkyMaterial to a DomeMesh and never modify it.)
The opacity of each cloud layer can be adjusted independently. That’s one feature of SkyControl that TestSkyControl doesn’t demonstrate.
I’d love to make the clouds darken realistically in response to the direction of the main light. However I don’t see any practical way to do this. If you have ideas, I’d like to discuss them.
Most of the textures are procedurally generated and can be reused freely. The t0neg0d textures come with a BSD license; I can’t help you there. The moon textures and the cyclone texture are CC-By-SA; if you want to distribute them under a different license, I’m open to discussing it.
Initially I thought about volumetric (geometry) clouds, but I am quite sure some fast cool trick can be used directly on textures, even by painting them dinamically in some way, but these are my wild guesses. @shamanDevel 's tips may sound more interesting
Mainly GPL and CC-By-SA are viral: Viral license - Wikipedia
So, indie devs that have no other option (to break free from employment) than create their projects from zero, are pushed away (EDIT: I mean self push away) from many free cool projects and media assets out there.
On the other hand, if we succeed, we are not forced to contribute back (neither with code, neither with improved assets, neither with money), so I guess that is the main reason ppl opt to use viral free licenses what is quite cool too (being viral) IMO.
@shamanDevel these docs sound quite interesting, they have rendering results too! realistic precision looks higly cool!
@sgold but, I just thought…
a cheap trick would be to have the cloud texture (only grey levels, so the other colors could be dynamic),
repainted like 12 times (or the many hours the sun is lighting them),
and for each sun position, a different clould texture would be loaded representing the current sun/cloud-self-shadow,
but to not look messy, it would only be loaded when the player is not looking at them ha!
With respect to CC-By-SA… this is the critical clause:
"ShareAlike — If you remix, transform, or build upon the material, you must distribute your contributions under the same license as the original. "
The key here is “build upon the material”. It can be interpreted many ways but it’s unclear if “including it in my game” counts as “build upon” in a legal sense. Say, versus adding your own brush strokes to the image, for example. A lot of times the author using such a license will make it clear which they mean. “You can only use this bundled in CC-By-SA licensed anything” or “If you make changes to my image then they must also be released CC-By-SA.”
yes! thats it for sure!
I am browsing the code trying to determine where it is updated so I could make it update only like 10 times per second or less (I would have to test to see what frequency will keep it cool), but as you said, if such update is required at all, may be just b4 a storm would show more of the clouds and so on, and this weather changing would actually fit on that good looking frequency I would have to test.
I saw you put quite accuracy on the angular position of the sun, moon etc (I dont even knew these stuff), thx for that too!
SkyControl.updateAll() updates the light intensities and colors, which change gradually except around twilight or if a cloud passes in front of the sun/moon
SkyControl.updateAll() updates the positions of the sun, moon, and stars, which should change very gradually
SkyControlCore.controlUpdate() updates the dome positions/sizes to compensate for camera motion and frustrum changes, which might occur rapidly in some games
SkyControlCore.updateClouds() updates the cloud positions, which should change gradually
GlobeRenderer.update() updates the shape of the moon, which should change very gradually if at all
Once we figure out what update rates it makes sense to control, I can add APIs to throttle them. I imagine one or two rate parameters will be sufficient.
I was once passionate about astronomy, so I pay attention to details few people care about (like constellations, seasons, and the appearance of the moon) and perhaps not enough attention to things that many care about (like realistic clouds).
I realize the viral licensing of those seven (7) texture files may be awkward for some people. It isn’t because the files are special or precious, nor have I put great effort into them. Here’s the story: when I created SkyControl, it was GPL’d. In December 2013, I was talked into changing the license to BSD (see Seeking alpha testers for SkyControl - #6 by abies ) a decision I occasionally regret . I’ve stuck with BSD licensing for code, but for new non-procedural assets I prefer CC-BY-SA.
I include my name and e-mail in every source file for a reason: so users can contact me if they need to. If a developer seeks a less restrictive license and they play nice, they won’t be “pushed away”.
Pursuing my idea of less frequent updates, I created a speed test app, with SkyControl in an otherwise empty scene, using static moon textures and a separate cloud dome and star cube. At 800x600 resolution with 16x AA, that test ran about 240 fps on my 2012-vintage gaming desktop. 4 ms per frame doesn’t seem heavy to me, so I’d like to understand what you saw that gave you that impression.
but it remained quite heavy:
my mouse gets slowed/sluggish,
my cpu is used a lot (the fps limiter should have prevented that, I am a bit puzzled now),
I am on linux,
using GeForce GTS 250, 500MB
and I can run many 3D applications and games without these problems,
does it do something special that could be a gfx card minimum requirement, therefore a limitation? or something else?
Are you using OpenJDK or Oracle’s?. I had a problem some time ago where if I activated something (I don’t remember what), it went from any-good-fps to 7fps (and it stuck there). I can’t remember what was the problem but maybe it was because of the jre eversion.