|
|
Thanks for your comments everybody :)
Ogotay: actually, in the screenshots, a clouds dome is already used, but i haven't make it very curved. To give you an idea, the curved surface ranges from -100 to +100 for the XZ axis, but only -5 to +10 for the Y (vertical) axis, 0 being the horizon. Fortunately, as everything can be set, you can change the values in a second.
Manilius: yes, it uses Perlin Noise :) I have more or less applied the algorithm found at http://freespace.virgin.net/hugo.elias/models/m_clouds.htm
to generate the "base texture" (cf. screenshot).
Yes, it is possible to set the position of the sun to change the lighting and shadows on the clouds. I'm projecting the sun onto the clouds surface, then i calculate a normal map from the clouds texture (tip: something like Dot-3 bumpmapping, see Nvidia demos) and find the angle with the sun, which gives me an illumination parameter for each pixel :)
Another problem was to generate the alpha map. I didn't want to use additive blending, since the clouds in reality are not "added" to the sky :) Hence i use alpha-blending. The contours of the clouds are transparent, while the center of the clouds are more opaque..
Kevin: i began work on the implementation something like a week ago; but i had done some research before. I have definately seen the work from Hugo Elias, but another paper was helpful:
http://developer.intel.com/software/idap/games/clouds/index.htm
Though i did not use this implementation, i found it quite interesting.
Unfortunately there is no demo. Not that i do not want, but the sky is part of the engine, which in itself isn't ready to run on any other machine than mine.. i still have many compatibilities issues to work. But for another IOTD (once the terrain engine is working), why not.. :)
About lens-flare: actually it is implemented, but i must "link" it to the sky..
Spalter: really, nothing special. I have not implemented a scripting language & stuff, because i do not intend to use the sky for anything except my MMORPG. Everything is done through callbacks. You can then modify the position of the vertices of the clouds surface, box surfaces, etc.. if you have seen the sky in "Sacrifice", it is typically the sort of things that i could implement in a couple of minutes..
Brebion flavien
|