SkyX 0.4 [0.4 version released - Over-cloud rendering!]

A place to show off your latest screenshots and for people to comment on them. Only start a new thread here if you have some nice images to show off!
Post Reply
User avatar
amigoface
Greenskin
Posts: 132
Joined: Mon Oct 13, 2008 3:01 pm

Re: SkyX 0.2 [v0.2 Funded!]

Post by amigoface »

you're right ,


i love it :)
maylivios
Gnoblar
Posts: 18
Joined: Tue Jun 29, 2010 4:28 pm
x 5

Re: SkyX 0.2 [v0.2 Funded!]

Post by maylivios »

just WOW...
User avatar
spacegaier
OGRE Team Member
OGRE Team Member
Posts: 4304
Joined: Mon Feb 04, 2008 2:02 pm
Location: Germany
x 135
Contact:

Re: SkyX 0.2 [v0.2 Funded!]

Post by spacegaier »

I am no expert, but I think the moon billboard needs a bit of rotation to be totally realistic, as the moon (or I even think moons in general) perform what is called "Libration": http://en.wikipedia.org/wiki/Libration

But from a visual stand-point the results already look amazing :) !
Ogre Admin [Admin, Dev, PR, Finance, Wiki, etc.] | BasicOgreFramework | AdvancedOgreFramework
Don't know what to do in your spare time? Help the Ogre wiki grow! Or squash a bug...
Nodrev
Gremlin
Posts: 193
Joined: Fri Jan 25, 2008 6:55 pm
Location: Nantes / France
x 17

Re: SkyX 0.2 [v0.2 Funded!]

Post by Nodrev »

Nice, your moon shader is better than mine :)
About libration, yes it's true, but it's more an "expert detail" that almost nobody will notice... Moon phase is in contrary a visual phenomenon that everybody knows.
User avatar
Xavyiy
OGRE Expert User
OGRE Expert User
Posts: 847
Joined: Tue Apr 12, 2005 2:35 pm
Location: Albacete - Spain
x 87

Re: SkyX 0.2 [v0.2 Funded!]

Post by Xavyiy »

@amigoface @maylivios
Thanks =)

@spacegaier
Yes.. as Nodrev has said, it's true, but it's something too advanced and with minor visual consequences for a general-purpose Sky system. =)

@Nodrev
Glad to see you like the result! :)

-----------

Well, as promised yesterday, here's a little video:
[youtube]OJTNg_KzrOA[/youtube]

Hope you like it!

Xavier
User avatar
DavlexDesign
Orc
Posts: 400
Joined: Thu Apr 23, 2009 7:23 am
Location: Australia
x 19
Contact:

Re: SkyX 0.2 [Moon phase feature video added!]

Post by DavlexDesign »

G'day Xavyiy,

Very nice indeed, I really like where you are going with this system, with all your experience with sky shaders and volumetric rendering,

have you thought about doing a spherical simulation system ?

The reason I ask, is because of my limited (Hit and Miss) approach to shader writing, something like that would be really excellent for the simulation I'm working on. The big one is clouds for me, I can get a nice 2D effect globally, but the volumetric, well, they are proving to be an interesting problem. I'm going to start toying around with RTT shortly, I think it's the only way to solve a few issues I have.

I would imagine this volumetric cloud system uses RTTs extensively, would I be right in assuming that ?

Alex
User avatar
Xavyiy
OGRE Expert User
OGRE Expert User
Posts: 847
Joined: Tue Apr 12, 2005 2:35 pm
Location: Albacete - Spain
x 87

Re: SkyX 0.2 [Moon phase feature video added!]

Post by Xavyiy »

@DavlexDesign
Hi!
First of all, I've to said that I've been following your work in your Planet simulator for a long time and it's really great!

Well, from my point of view, it will be almost impossible to achieve a good/pretty volumetric cloud system for a planetary system using the technique I'm using in SkyX.

I'll try to quickly explain how the SkyX volumetric cloud system works:
A volumetric texture(3d) is used to store the volumetric clouds data(density, CPU-calculated light intensity, etc), how this volumetric texture is made is secondary(In SkyX I've used that paper: http://nis-lab.is.s.u-tokyo.ac.jp/~nis/ ... _cloud.pdf, but I'm not very happy with the result and in a future I want to write my own simulation system).
Then, this volumetric texture it's rendered by using a lot of "more or less" camera-perpendicular quads. (Check this video: http://www.youtube.com/watch?v=YAOSqIUwqVg)
(So I'm not using RTTs for it ;) )

Well... seems easy, so where's the problem for a spherical/planet system? Mainly there are three problems:
1. Cloud motion and associated geometry displacement: In this system, the geometry must change depending of the camera position and the wind direction/velocity in order to ensure that we're rendering the same "slice" of the volumetric texture during the larger possible time. That's very important to get a consistent look.
2. Noise texture uv projection: To get beautiful clouds, we need to project a noise texture from the camera to the whole geometry. That works well if we can aproximate the geometry with a plane and using that plane to build the projected UV coords. In an spherical system that will be very hard to do, and I'm not sure if even that concept can work with a native spherical geometry.
Why I say "a native spherical geometry" ? because another option is to do all this like we're using a plane-based geometry(like SkyX), and one time all is calculated, deforming the resultant geometry to a spheric shape... (but this way you'll get not camera-perpendicular geometry at horizon so it'll not look good...)
3. How to correctly making the transition from the outer space to the atmosphere? In this point, I haven't any idea... for me that will be the most difficult part, to achieve a continous and smooth transition from when you're using the volumetric system and when not(in my opinion you can't use a volumetric system in each planet at the same time... it's very camera-position/view dependent and also computationally expensive)

I think there are too many problems to solve here, and that other volumetric approaches can give a decent look with less headaches... =)

If I were you, I'll look into some kind of billboard-based system: http://www.flipcode.com/articles/clouds.jpg, that will be definitvely much easier and loable! Also you'll be able to easily implement LOD and smooth transitions between the space and the atmoshpere! (Also, the data simulatino part here is missed since you must use prerendered 2d cloud textures, then you can add some shaders on it to enhance the final result!)

Hope that will help you!

Xavier
User avatar
jacmoe
OGRE Retired Moderator
OGRE Retired Moderator
Posts: 20570
Joined: Thu Jan 22, 2004 10:13 am
Location: Denmark
x 179
Contact:

Re: SkyX 0.2 [v0.2 Funded!]

Post by jacmoe »

Xavyiy wrote:Well, as promised yesterday, here's a little video
That video is way too short. :cry:

I especially like the sequence from 9 to 11 seconds - really awesome. :)
/* Less noise. More signal. */
Ogitor Scenebuilder - powered by Ogre, presented by Qt, fueled by Passion.
OgreAddons - the Ogre code suppository.
User avatar
DavlexDesign
Orc
Posts: 400
Joined: Thu Apr 23, 2009 7:23 am
Location: Australia
x 19
Contact:

Re: SkyX 0.2 [Moon phase feature video added!]

Post by DavlexDesign »

G'day again Xavyiy,

Thank's for the great reply, much appreciated.
Xavyiy wrote:(In SkyX I've used that paper: http://nis-lab.is.s.u-tokyo.ac.jp/~nis/ ... _cloud.pdf, but I'm not very happy with the result and in a future I want to write my own simulation system).
Xavyiy wrote:Then, this volumetric texture it's rendered by using a lot of "more or less" camera-perpendicular quads.


That's the first time I have seen that paper, interesting concept they use, and you use.

Maybe this might give you an idea on how t solve some issues for a spherical system.

My idea was similar, but also different (if that makes sense), I will use pseudo meta balls, but at a much grander scale, I'm looking at cloud formations going into the 4 - 8 kms high range.
Xavyiy wrote:1. Cloud motion and associated geometry displacement:
Cloud Layer is split into 4 layers, 1 rgba8 texture where I can do a flow simulation with variations in each channel of the texture, taking into account the wind factors affected by the underlying terrain and climate zones. These layers are then used to work out the layers / slices that you will need to render, as this data is pretty lo res.
Xavyiy wrote:2. Noise texture uv projection:
This is where the pseudo Metaballs come into play, joining the layers horizontally and vertically for a smooth almost bezier looking cage, (this cage has no geometry, it is all formula based, then the noise comes into play, and the noise will roughen the whole thing up.
Xavyiy wrote:3. How to correctly making the transition from the outer space to the atmosphere?
With the 4 channels of the global rgba8 texture, you can just render one layer (the base layer) from extremely far out in space, when on approach, you can add in layers as you get closer, faking shadows caused by the taller layers as we go, until we get to a point where the detail needs to kick in (just outside the atmosphere), all four layers come into play, and only in the closer stuff do we worry about the bezier formula, the stuff in the distance and horizon can be billboard faked where needed (like fur fins) or maybe even cache the partial bezier data, so all the relevant data is built over a series of frames while you are flying around, before you get close enough to actually see it in all it's splendor.

I don't know if this makes any sense to you, but that is sort of what I'm working on. You might have some better ideas seing you've been working with this stuff for so long.

Alex
User avatar
Xavyiy
OGRE Expert User
OGRE Expert User
Posts: 847
Joined: Tue Apr 12, 2005 2:35 pm
Location: Albacete - Spain
x 87

Re: SkyX 0.2 [Moon phase feature video added!]

Post by Xavyiy »

@jacmoe
Hehe, yes.. it's a little short :P
Anyway, it's going to be released soon :)

@DavlexDesign
Hi again :)
DavlexDesign wrote:That's the first time I have seen that paper, interesting concept they use, and you use.
Just to clarify, I'm just using the simulation through cellular automaton from this paper, the geometry/rendering part is not based on any paper. =)
DavlexDesign wrote:Cloud Layer is split into 4 layers, 1 rgba8 texture where I can do a flow simulation with variations in each channel of the texture, taking into account the wind factors affected by the underlying terrain and climate zones. These layers are then used to work out the layers / slices that you will need to render, as this data is pretty lo res.
So each layer is going to represent 1km of cloud field altitude, right?

Correct me if I'm wrong about your idea:
-From a close/middle-distance, you'll be rendering the cloud field using (for example) one concentric with the planet sphere with a shader that reads the volumetric data from your texture and simulates a volumetric effect depending of the camera-to-pixel vector.
-From the outer space you'll be just rendering one layer, this way you'll be able to use a very simple shader and you'll only have to update that one layer instead of 4.

My opinion is that if you're just going to use 4 layers for your volumetric data, it's all ok and it might work pretty well because of you can simulate in a shader the "volumetric effect" by intersecting the camera-to-pixel ray over the four layers, and just use a sphere as geometry.
But that will only work with a low res data(which for a planet system makes a lot of sense, otherwise it'll be too computationally expensive).
For example, in SkyX with its "high res" data (it's configurable, but the default is a volumetric data of 128x128x20, so it's like 20 layers instead of 4), it will be not possible to write a shader which handles that amount of data, so I need truly volumetric geometry)

So, go ahead and surprise all us in some weeks with some cool volumetric cloud pictures! =)

Xavier
User avatar
DavlexDesign
Orc
Posts: 400
Joined: Thu Apr 23, 2009 7:23 am
Location: Australia
x 19
Contact:

Re: SkyX 0.2 [Moon phase feature video added!]

Post by DavlexDesign »

G'day again,
Xavyiy wrote:So each layer is going to represent 1km of cloud field altitude, right?
Yes, In a sense, that is what it will boil down to, but the in between layers is where all the trickery will come into play, 1/2 to 1 km of detailed proceduraly driven data, using the 4 channel RGBA8 layered bitmap as the bulk heads, and making the in between fit those layers, but in a nice way.
Xavyiy wrote:So, go ahead and surprise all us in some weeks with some cool volumetric cloud pictures! =)
I'll try =)

Alex
DiThi
Gnoblar
Posts: 8
Joined: Wed Oct 12, 2011 3:24 pm
Location: Ciudad Real, Spain

Re: SkyX 0.2 [Moon phase feature video added!]

Post by DiThi »

Xavy, superb work!!

Those shots look and video looks fantastic, but I think there's something wrong. Take a look at this for example: http://500px.com/photo/336280

The halo should surround all the moon shape, not only the outer side. The atmosphere that scatters the light is in the earth, not on the moon. I've made a quick edit to illustrate it: http://i.imgur.com/7XMz8.png

Keep on creating such a great piece of virtual dreams :)
User avatar
Xavyiy
OGRE Expert User
OGRE Expert User
Posts: 847
Joined: Tue Apr 12, 2005 2:35 pm
Location: Albacete - Spain
x 87

Re: SkyX 0.2 [Moon phase feature video added!]

Post by Xavyiy »

@DiThi
Hi!

Yes, you're completely right. Unfortunately realtime glow is something very expensive (in GPU terms) and that usually is done trough post-processing effects. Without post-processing effects(indispensable for the SkyX Moon), I've been doing some tests and, any glow larger than 3 pixels starts to became not very pretty.

So, that leaves me with two options:
1) Avoid any kind of glow and let the user creating the moon halo with a glow compositor. That's the best option for an advanced project, but not very useful for the whole public.
2) Try to create a fake-halo effect using a complex shader and the pre-rendered halo included in the original SkyX moon texture, even if that will force me to only glow the "external" part of the Moon. But that even that it'll give a cool look to the Moon.

Well, I've selected the second option, but allowing the first one: there is a parameter SkyX::MoonManager::setMoonHaloIntensity(...) that you can set to 0 and then let your post-processing effects doing the hard work :P

Xavier
DiThi
Gnoblar
Posts: 8
Joined: Wed Oct 12, 2011 3:24 pm
Location: Ciudad Real, Spain

Re: SkyX 0.2 [Moon phase feature video added!]

Post by DiThi »

Try rendering over the moon a couple of frames of this texture I just did, with a size 2.1 times the moon, with a value interpolated from the two chosen frames. http://universodegoma.net/tmp/moonglow.png

Here's a couple of test .gifs, one with the "moon" I rendered, and another one with interpolated frames (64 frames, using only the 8 frames above).
http://universodegoma.net/tmp/pru1.gif
http://universodegoma.net/tmp/pru2.gif
User avatar
Xavyiy
OGRE Expert User
OGRE Expert User
Posts: 847
Joined: Tue Apr 12, 2005 2:35 pm
Location: Albacete - Spain
x 87

Re: SkyX 0.2 [Moon phase feature video added!]

Post by Xavyiy »

@DiThi
Wow, thanks a lot =)
That might work! I'll be testing it tonight =)

As soon as I'll have something to show, I'll post it!

Xavier
User avatar
Xavyiy
OGRE Expert User
OGRE Expert User
Posts: 847
Joined: Tue Apr 12, 2005 2:35 pm
Location: Albacete - Spain
x 87

Re: SkyX 0.2 [Moon phase feature video added!]

Post by Xavyiy »

After 5 hours of shader coding(lots of aliasing problems at edges related to the alpha channel and how the final image is calculated..., not so simple at the end!), I've a nice pic to share with you: (Click to enlarge)
Image
=)

Hope you like it!

@DiThi, thanks a lot for the idea and the texture!

Xavier
DiThi
Gnoblar
Posts: 8
Joined: Wed Oct 12, 2011 3:24 pm
Location: Ciudad Real, Spain

Re: SkyX 0.2 [Moon phase feature video added!]

Post by DiThi »

Oops, I forgot blender outputs premul alpha by default instead of key (straight) alpha, the default for png (or maybe the opposite, can't remember right now). There's an option somewhere I should check when making textures out of renders.

Tell me if you want a bigger halo :)
User avatar
EricB
Bronze Sponsor
Bronze Sponsor
Posts: 360
Joined: Fri Apr 09, 2010 5:28 am
Location: Florida
x 213
Contact:

Re: SkyX 0.2 [Moon phase feature video added!]

Post by EricB »

[s]If I may make a suggestion, the contrast of the moon changes during the crescent and gibbous phases. The moons you show are bright all the time, that only happens during full moon because the sun directly reflects off of it.

Here's an example image[/s]

Never mind someone else already mentioned it.
You should really read the entire thread bronzebeard :evil:


Any case keep up the good work!~ I'll throw a few bones to you after I finish my current project :D
Image
User avatar
Xavyiy
OGRE Expert User
OGRE Expert User
Posts: 847
Joined: Tue Apr 12, 2005 2:35 pm
Location: Albacete - Spain
x 87

Re: SkyX 0.2 [Moon phase feature video added!]

Post by Xavyiy »

@DiThi
Don't worry about the alpha issue, it's not your fault :P
It's related with the how the whole shading is done, which is a little complex and since it's expects and alpha value of 0 or 1 from the original moon texture, I've had some issues to make it looks great at edges

I think the glow size it's more than okey now, even I can control the "strength"(glow fading more linear or more exponential) and the "intensity"(glow multiplier) with the texture you provide me :)

@bronzebeard
Hehe, no problem, it's always good to receive feedback! =)
Thanks!

----------------------

I still have to make the glsl version and add these two (strength, intensity) parameters to SkyX itself, so it'll take me a couple of days since I'm a little busy at the moment. After that I'll do the remaining work on the volumetric cloud system and finally I'll work on the sample demos =)

Xavier
User avatar
Xavyiy
OGRE Expert User
OGRE Expert User
Posts: 847
Joined: Tue Apr 12, 2005 2:35 pm
Location: Albacete - Spain
x 87

Re: SkyX 0.2 [Moon phase feature video added!]

Post by Xavyiy »

Hi all!
Here's a little video of the new and enhanced Moon phase halo!

[youtube]aUlYHHhP-XI[/youtube]

Hope you like it!

P.D.: SkyX 0.2 is almost ready now, it'll be out in 7/10 days!
User avatar
amigoface
Greenskin
Posts: 132
Joined: Mon Oct 13, 2008 3:01 pm

Re: SkyX 0.2 [*New* Moon phase feature video added!]

Post by amigoface »

beautifull
User avatar
DavlexDesign
Orc
Posts: 400
Joined: Thu Apr 23, 2009 7:23 am
Location: Australia
x 19
Contact:

Re: SkyX 0.2 [*New* Moon phase feature video added!]

Post by DavlexDesign »

G'day Xavyiy,

That looks great, well done on the moon phasing.

Just one question, in the video you have the full moon showing and have the cloud layer in front of it,

1. Have you thought of adding in moon illumination to the clouds ?

The reason I ask, is, (seeing you are going for such a realism look to this amazing piece of work) I was looking up at the moon the other night (I do this allot lately, looking at the sky and atmospherics), and it was a sparse but cloud covered sky, and you could see the halo of the moon and a halo of illumination on the clouds in between you and the moon. The cloud illumination halo spanned nearly the entire sky, fading out to the distances, granted, it was one of those nights where the moon casts shadows, but I have noticed, even at half to one third phases, the moon still illuminates the clouds some what.

Alex
Stinkfist
Gnoblar
Posts: 10
Joined: Tue Aug 03, 2010 1:22 pm

Re: SkyX 0.2 [*New* Moon phase feature video added!]

Post by Stinkfist »

Hi Xavyiy,

Would it be possible for you to implement the following setCamera functionality to SkyX? In the application I'm developing we have multiple cameras and it would be great to be able to switch between different cameras without regenerating the SkyX object each time the camera changes.

Also this functionality would be desired for Hydrax too. I can post the code I have for that in Hydrax thread some time.

Code: Select all

void SkyX::setCamera(Ogre::Camera *camera)
{
    if (!camera)
        return;

    mCamera = camera;
    mLastCameraPosition = mCamera->getDerivedPosition();
    mLastCameraFarClipDistance = mCamera->getFarClipDistance();

    mVCloudsManager->setCamera(camera);
}

void VCloudsManager::setCamera(Ogre::Camera *camera)
{
    if (!mCreated)
        return;
    mVClouds->setCamera(camera);
}

void VClouds::setCamera(Ogre::Camera *camera)
{
    if (!mCreated)
        return;
    mCamera = camera;
}
User avatar
Xavyiy
OGRE Expert User
OGRE Expert User
Posts: 847
Joined: Tue Apr 12, 2005 2:35 pm
Location: Albacete - Spain
x 87

Re: SkyX 0.2 [*New* Moon phase feature video added!]

Post by Xavyiy »

@DavlexDesign
Hi!

Yes, you're totally right. On half-full Moon nights and with a partial covered sky, you can see a kind of lenticular halo on the clouds around the Moon. It's something I want to recreate on SkyX but I think it'll require physically-based lighting or a specialised solution(hard-code that effect on shaders).
Since soon I'll be working on physically-based lighting for the Paradise Engine and I don't want to delay the SkyX 0.2 release date(it's not a fixed date, but in ~1 week), I'll leave that for a future and try to apply on it all adquired knowledge from my work on the Paradise Engine =)

@Stinkfist
Hi,
Multi-camera support is a SkyX 0.2 feature =)

Btw, I've to warn you about your code. It will only work if you're using only one camera at a time(per frame, and only if you're invoking SkyX::update(...) after setting the new camera). If you have two viewports using SkyX and you invoke SkyX::setCamera(...) then you'll have to invoke SkyX::update(...) which will lead to update twice all the simulation data.

Anyway, don't worry about it, SkyX 0.2 has a robust and optimized multi-camera system that has been largely tested on the Paradise Editor =)

If your solution works for your needs, just keep with it until SkyX 0.2 =)

Xavier
Stinkfist
Gnoblar
Posts: 10
Joined: Tue Aug 03, 2010 1:22 pm

Re: SkyX 0.2 [*New* Moon phase feature video added!]

Post by Stinkfist »

Xavyiy,

Great! Yes, for now only one camera and viewport have been in use.
Post Reply