Page 1 of 45

Caelum - [WARNING: Screenshot intensive]

Posted: Fri Oct 06, 2006 9:33 pm
by Kencho
Okay, here is a demo video of the new, built-from-the-ground-up version of Caelum.

Video
Video

Features:
  • Dynamic sky colour (through images, but can be extended with other models)
    Direct scattering
    Atmosphere light absorption
    Dynamic fog/haze colour and density (same as sky colour: through images, but with extension points)
    Sun
    Time scales, daytime settings
    Starfield
    Listener interface
Screenshots:
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image
Image

General info
Besides this thread, there's a (quiet obsolete) wiki page here.

Getting it
The current only advisable way to get Caelum is through the SVN repository:

Code: Select all

svn checkout https://caelum.svn.sourceforge.net/svnroot/caelum caelum

Posted: Fri Oct 06, 2006 9:41 pm
by KungFooMasta
That sunset part looked really good!

KungFooMasta

Posted: Fri Oct 06, 2006 9:44 pm
by Kencho
Thanks :) Will look better once I get it to work with compositor postfilters ;)

Posted: Fri Oct 06, 2006 9:46 pm
by jacmoe
Woo-Hoo Caleum 2! I have been looking forward to this moment! :D

The video looks promising, but really doesn't do it the justice it deserves.
Can't wait to see it in real-time in my own application. :)

Posted: Fri Oct 06, 2006 10:16 pm
by Falagard
Nice nice nice!

Some simple questions:

1. Is it possible to have a starry night?
2. Is it possible (with some additional code on my part) to transition between two different textures for the sky (to go from clear to cloudy colours for example) perhaps with blending the two textures?

Luckily I haven't gone too deep into my environmental game systems and my initial sky tests using transitioning skyboxes only took a couple nights of work. I had some problems with transitioning across weather conditions with skyboxes that I think would be solved with Caelum.

Why do you mean that you support scattering and absortion, aren't the colours completely dependant on texture lookup?

What do you mean by dynamic fog/haze colour - same thing, isn't that dependent on texture lookup?

What do you mean by time scales and daytime settings?

Do you have any plans for clouds?

Posted: Sat Oct 07, 2006 12:01 am
by spookyboo
:shock: Looks great!
Is this a plugin?

Posted: Sat Oct 07, 2006 12:44 am
by Jerky
Looks great Kencho! Very well done. I can't wait to take a look under the hood.

Wonderous!

Posted: Sat Oct 07, 2006 4:10 am
by zonker
Sure beats the hell outta my bgcolor interpolation - cant wait to see how u did that :) good job

Posted: Sat Oct 07, 2006 11:27 am
by Kencho
Falagard wrote:1. Is it possible to have a starry night?
I'm currently working on that. I'm having problems with Ogre built-in skyboxes/domes as well as compositors. Though the textures can have an alpha channel and the dome is rendered as any other object, as soon as I enable one of those, they completely pain on my dome.
As the starfields rotate the same way the sun does, and can have a pitched rotation axis, I'm currently adding a starfield dome as another Caelum element, so yes, it will be possible soon.
Falagard wrote:2. Is it possible (with some additional code on my part) to transition between two different textures for the sky (to go from clear to cloudy colours for example) perhaps with blending the two textures?
Yes and no. The lookup image contains a series of gradients for a clear sky. You can always edit this sky (no-one forbids you to use a dynamic texture and fill it with any numerical model you want) so that it's overcast, but completely overcast, as it's only height and time-dependant, not height, direction and time dependant. I'll work on some clouds elements later, through billboardsets for the low clouds (cumulus...) and planes for the high ones (altostratus, stratocumulus...)
Falagard wrote:Why do you mean that you support scattering and absortion, aren't the colours completely dependant on texture lookup?
Not completely, as the scattering and absorption depend strongly on the sun direction. Once you take a look to the method and specially to the sky gradients texture, you'll understand why ;)
Falagard wrote:What do you mean by dynamic fog/haze colour - same thing, isn't that dependent on texture lookup?
Yes, in this case it's completely managed (for now) by the sky colour model and in the implementation I provide, through a lookup texture, the same as the sky. I plan to add some additional modifiers to this, like the clouds that overcast the sky ;)
Falagard wrote:What do you mean by time scales and daytime settings?
My current implementation have a sun that rises at sidereal 6am and sets at 6pm. You can adjust, for instance, the total day time (defaults to 23h59m56s), the current day time to set which exact day time you want to display, and set a time scale, for instance, one second in reality to be 60 seconds in Caelum (same time scale as GTA)
On a more ambitious side, I would like to make all the clouds generation and other parameters done through exact formulas, so that there's nothing random, but function of the time. This means you could infinitely move forward or even backward in time and have consistent results (if there's a cloud and you move backwards until it isn't, if you move forward it will appear again)
Falagard wrote:Do you have any plans for clouds?
*nods*
spookyboo wrote:Is this a plugin?
Not now, a DLL for now. Though I plan to add some plugin support for the extensible points later (much later). This would mean adding your very own sky colour models, for instance :)

Thanks you all for your comments!

Posted: Sun Oct 08, 2006 1:45 pm
by Kencho
Update!

Finally added the starfield support (caelum starfields, not ogre's skyboxes/domes). See the first post for a new video.

I'm preparing some screenshots to post them and the source sometime this night (in about 8 - 10 hours from now).

Posted: Sun Oct 08, 2006 2:09 pm
by IFASS
awesome work, this is definetly gonna be very useful, thanks! :D

Posted: Sun Oct 08, 2006 2:27 pm
by BRAINLESS
wow! just wow! :)

Posted: Sun Oct 08, 2006 3:57 pm
by Kencho
Source code and basic resources uploaded, and screenshots posted (see first post)

This is still in a very early development phase, so the source might be messy and undebugged. If you want to contribute, you're free to do it (released under the LGPL license ;))

Enjoy!

Posted: Sun Oct 08, 2006 4:28 pm
by xplozyph
Hello Kencho,

I would like to have an opportunity to see that stunning stuff that seems to be so awesome (according to the previous posters' reactions :D) but unfortunately Flash's Linux version is a retard and is stayed on its 7th version for the moment which prevent me from seeing your videos from the site you uploaded them... :? :oops:

Any chance you would post them on youtube or something like that that would not cause such troubles for "poor" users like me? :P :wink:

Posted: Sun Oct 08, 2006 4:29 pm
by xplozyph
Oops, I post a message, then refresh the page and I got squished by the new page length, mouhahahaha :twisted:

Posted: Sun Oct 08, 2006 6:17 pm
by big_o
Haven't watched the video yet, but this looks very cool. 8)

Posted: Sun Oct 08, 2006 9:28 pm
by Kencho
@xplozyph, I'm having the same trouble in Linux (which I'm eventually forced to use, by the way). Unfortunately, photobucket, youtube and the like convert the videos to the flv (flash video) format, which exist only since version 8, so you wouldn't be able to watch it :(

@big_o, thanks :)

Posted: Mon Oct 09, 2006 7:12 pm
by danharibo
Kencho wrote:@xplozyph, I'm having the same trouble in Linux (which I'm eventually forced to use, by the way). Unfortunately, photobucket, youtube and the like convert the videos to the flv (flash video) format, which exist only since version 8, so you wouldn't be able to watch it :(
Use Video LAN?

Posted: Mon Oct 09, 2006 7:13 pm
by jacmoe
danharibo wrote:Use Video LAN?
Online? Nah..

Kencho, this absolutely rocks! :) 8) :)

Posted: Mon Oct 09, 2006 7:38 pm
by Kencho
@danharibo, both are flv movies loaded from a flash application. If you can see one at youtube with vlc, you can see it also in photobucket. The problem is that the flash player detects your plugin version and doesn't download the movie at all, so you're with the empty hands

@jacmoe, thanks mate :)

By the way, has someone already tried it? I would love to see some screenshots and stuff :)

Posted: Mon Oct 09, 2006 7:48 pm
by Falagard
Yes and no. The lookup image contains a series of gradients for a clear sky. You can always edit this sky (no-one forbids you to use a dynamic texture and fill it with any numerical model you want) so that it's overcast, but completely overcast, as it's only height and time-dependant, not height, direction and time dependant. I'll work on some clouds elements later, through billboardsets for the low clouds (cumulus...) and planes for the high ones (altostratus, stratocumulus...)
What I'm talking about is quite simple. Let's say you have a clear sky lookup image, and an overcast sky lookup image. I've looked at your source code and what it appears you're doing is scrolling the U coordinates based on time of day.

Now imagine you wanted to support going from different sky types at any time of day, so for example clear to slightly cloudy over a transition period of X number of minutes. What you could easily do in both fixed function and vertex/pixel shader versions is using linear interpolation between between the two lookup textures. The final result of the two blended textures ends up being rendered to the screen, for both colour and alpha. You can control the blending factor, so this would allow the sky to transition.

Example material for the fixed function version that blends 50% between two textures. You can change the blend amount in code.

Code: Select all

material SkyTransition
{
	technique
	{
		pass
		{
			lighting off
			depth_write off

			texture_unit
			{
				texture EarthClearSky.png
				tex_address_mode clamp
			}
			texture_unit
			{
				texture EarthCloudySky.png
				colour_op_ex blend_manual src_texture src_current 0.5
				alpha_op_ex blend_manual src_texture src_current 0.5
				tex_address_mode clamp
			}
		}
	}
}
The VP and FP versions would just have to use the lerp() function in the shader to do the same thing.

I realize you are doing other things such as having fog colour etc, but I think it'd be possible to do all of these different effects by blending between the two sets of data.

If you want I'd be happy to help out here because Caelum looks great and I need a good sky system in GOOF. I was doing a lot of the same things as you are anyhow, with fog, sun direction, sun colour, etc.

Posted: Mon Oct 09, 2006 7:57 pm
by Kencho
Hmm... I see what you meant... simply a clear-to-overcast transition, but choosing when you want the transition (not everyday at the same time ;)). Well, as you can see it's not really a hard task to do that for the fixed function pipeline. About the shaders, things would change, as the overcast sky absorbs light, and if it's because of a thin cloud layer (see altostratus -link-), it also affects the sun glow because of low outscattering in the cloud.

My plans include adding at least layered-type clouds such as altostratus or stratocumulus. You are of course free to play with the source code of Caelum as much as you want; it's free :) I am doing some investigation here on paper, and will work on it probably soon in any case :)

By the way, thanks (for at least taking a look inside the source :))

Posted: Mon Oct 09, 2006 8:00 pm
by jacmoe
Kencho wrote:By the way, thanks (for at least taking a look inside the source :))
I am sorry, but I have had no time to try this at home. :oops:
But I will! :)

You are just too impatient! :P

Don't waste your energy here - you should be coding! :twisted:

Posted: Mon Oct 09, 2006 8:04 pm
by Kencho
jacmoe wrote:Don't waste your energy here - you should be coding! :twisted:
Haha I can't right now! WinXP is broken right now (you know, my dual core amd64 and my motherboard doesn't like each other... :roll: But I'm definitely brainstorming (trust me, I shouldn't sit near the window during the "database design" class :lol:)
As soon as I can, you'll see some nice clouds, hehehe.

Posted: Mon Oct 09, 2006 8:05 pm
by Falagard
About the shaders, things would change, as the overcast sky absorbs light, and if it's because of a thin cloud layer (see altostratus -link-), it also affects the sun glow because of low outscattering in the cloud.

My plans include adding at least layered-type clouds such as altostratus or stratocumulus. You are of course free to play with the source code of Caelum as much as you want; it's free Smile I am doing some investigation here on paper, and will work on it probably soon in any case Smile
Right, but you'll be passing parameters to the shaders correct? You'll always be able to interpolate any of the parameters between two different values between clear and overcast, or whatever sky types.