Caelum - [WARNING: Screenshot intensive]

A place for users of OGRE to discuss ideas and experiences of utilitising OGRE in their games / demos / applications.
User avatar
Kencho
OGRE Retired Moderator
OGRE Retired Moderator
Posts: 4011
Joined: Fri Sep 19, 2003 6:28 pm
Location: Burgos, Spain
x 2

Caelum - [WARNING: Screenshot intensive]

Post 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
Last edited by Kencho on Wed Dec 05, 2007 8:41 pm, edited 8 times in total.
Image
User avatar
KungFooMasta
OGRE Contributor
OGRE Contributor
Posts: 2087
Joined: Thu Mar 03, 2005 7:11 am
Location: WA, USA
x 16

Post by KungFooMasta »

That sunset part looked really good!

KungFooMasta
User avatar
Kencho
OGRE Retired Moderator
OGRE Retired Moderator
Posts: 4011
Joined: Fri Sep 19, 2003 6:28 pm
Location: Burgos, Spain
x 2

Post by Kencho »

Thanks :) Will look better once I get it to work with compositor postfilters ;)
Image
User avatar
jacmoe
OGRE Retired Moderator
OGRE Retired Moderator
Posts: 20570
Joined: Thu Jan 22, 2004 10:13 am
Location: Denmark
x 179

Post 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. :)
/* Less noise. More signal. */
Ogitor Scenebuilder - powered by Ogre, presented by Qt, fueled by Passion.
OgreAddons - the Ogre code suppository.
User avatar
Falagard
OGRE Retired Moderator
OGRE Retired Moderator
Posts: 2060
Joined: Thu Feb 26, 2004 12:11 am
Location: Toronto, Canada
x 3

Post 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?
User avatar
spookyboo
Silver Sponsor
Silver Sponsor
Posts: 1141
Joined: Tue Jul 06, 2004 5:57 am
x 151

Post by spookyboo »

:shock: Looks great!
Is this a plugin?
User avatar
Jerky
Orc Shaman
Posts: 791
Joined: Wed Mar 02, 2005 4:13 am
Location: Springville, Utah

Post by Jerky »

Looks great Kencho! Very well done. I can't wait to take a look under the hood.
Erik Briggs (Jerky)
My Blog
Project Wish
Image
zonker
Gnoblar
Posts: 8
Joined: Sun Apr 09, 2006 11:25 pm
Location: Canada

Wonderous!

Post by zonker »

Sure beats the hell outta my bgcolor interpolation - cant wait to see how u did that :) good job
(^o^)
User avatar
Kencho
OGRE Retired Moderator
OGRE Retired Moderator
Posts: 4011
Joined: Fri Sep 19, 2003 6:28 pm
Location: Burgos, Spain
x 2

Post 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!
Image
User avatar
Kencho
OGRE Retired Moderator
OGRE Retired Moderator
Posts: 4011
Joined: Fri Sep 19, 2003 6:28 pm
Location: Burgos, Spain
x 2

Post 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).
Image
User avatar
IFASS
Gnome
Posts: 387
Joined: Tue Jan 04, 2005 12:07 pm
Location: Netherlands

Post by IFASS »

awesome work, this is definetly gonna be very useful, thanks! :D
Image
User avatar
BRAINLESS
Goblin
Posts: 282
Joined: Tue Jan 04, 2005 6:56 pm
Location: The Netherlands

Post by BRAINLESS »

wow! just wow! :)
Proud member of the OpenFRAG Game Development community
User avatar
Kencho
OGRE Retired Moderator
OGRE Retired Moderator
Posts: 4011
Joined: Fri Sep 19, 2003 6:28 pm
Location: Burgos, Spain
x 2

Post 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!
Image
xplozyph
Halfling
Posts: 69
Joined: Fri Dec 30, 2005 12:40 pm
Location: Belgium

Post 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:
Humm... A signature, what for? I don't want to see it on other people's, except maybe if I release it under an open-source-like license... :P
xplozyph
Halfling
Posts: 69
Joined: Fri Dec 30, 2005 12:40 pm
Location: Belgium

Post by xplozyph »

Oops, I post a message, then refresh the page and I got squished by the new page length, mouhahahaha :twisted:
Humm... A signature, what for? I don't want to see it on other people's, except maybe if I release it under an open-source-like license... :P
big_o
Goblin
Posts: 279
Joined: Sun Feb 19, 2006 1:08 am

Post by big_o »

Haven't watched the video yet, but this looks very cool. 8)
User avatar
Kencho
OGRE Retired Moderator
OGRE Retired Moderator
Posts: 4011
Joined: Fri Sep 19, 2003 6:28 pm
Location: Burgos, Spain
x 2

Post 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 :)
Image
User avatar
danharibo
Minaton
Posts: 997
Joined: Sat Feb 25, 2006 8:14 pm
Location: Wales, United Kingdom

Post 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?
User avatar
jacmoe
OGRE Retired Moderator
OGRE Retired Moderator
Posts: 20570
Joined: Thu Jan 22, 2004 10:13 am
Location: Denmark
x 179

Post by jacmoe »

danharibo wrote:Use Video LAN?
Online? Nah..

Kencho, this absolutely rocks! :) 8) :)
/* Less noise. More signal. */
Ogitor Scenebuilder - powered by Ogre, presented by Qt, fueled by Passion.
OgreAddons - the Ogre code suppository.
User avatar
Kencho
OGRE Retired Moderator
OGRE Retired Moderator
Posts: 4011
Joined: Fri Sep 19, 2003 6:28 pm
Location: Burgos, Spain
x 2

Post 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 :)
Image
User avatar
Falagard
OGRE Retired Moderator
OGRE Retired Moderator
Posts: 2060
Joined: Thu Feb 26, 2004 12:11 am
Location: Toronto, Canada
x 3

Post 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.
User avatar
Kencho
OGRE Retired Moderator
OGRE Retired Moderator
Posts: 4011
Joined: Fri Sep 19, 2003 6:28 pm
Location: Burgos, Spain
x 2

Post 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 :))
Image
User avatar
jacmoe
OGRE Retired Moderator
OGRE Retired Moderator
Posts: 20570
Joined: Thu Jan 22, 2004 10:13 am
Location: Denmark
x 179

Post 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:
/* Less noise. More signal. */
Ogitor Scenebuilder - powered by Ogre, presented by Qt, fueled by Passion.
OgreAddons - the Ogre code suppository.
User avatar
Kencho
OGRE Retired Moderator
OGRE Retired Moderator
Posts: 4011
Joined: Fri Sep 19, 2003 6:28 pm
Location: Burgos, Spain
x 2

Post 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.
Image
User avatar
Falagard
OGRE Retired Moderator
OGRE Retired Moderator
Posts: 2060
Joined: Thu Feb 26, 2004 12:11 am
Location: Toronto, Canada
x 3

Post 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.