• entries
    232
  • comments
    1462
  • views
    956502

Clouds generation

Sign in to follow this  
Ysaneya

366 views

I'm now working on generating textures for planets, at a global scale level (ie, the textures you see from space).

I just finished a short experimentation with clouds, and i like the result. I am combining two distorted fBm noise functions. A distorted fBm function is like your standard fBm, but instead of using Perlin noise for its basis, it uses distorted Perlin noise. It looks like this:


TFloat CNoise::distNoise(const SVec3D& pos, const TFloat distortion)
{
return(noise(pos + distortion * vecNoise(pos + 0.5f)));
}
SVec3D CNoise::vecNoise(const SVec3D& pos)
{
SVec3D res;
res.x = noise(pos);
res.y = noise(pos + 3.33f);
res.z = noise(pos + 7.77f);
return res;
}


Here is an image of the resulting clouds:

Sign in to follow this  


5 Comments


Recommended Comments

Indeed, but you cannot have volumetric clouds on the whole planet - that'd mean billions of particles to render.

Instead i'll be mixing two techniques: a texture, mapped onto the sphere, when the clouds are seen from high distances/altitudes. When the camera is closer to a cloud, it will switch smoothly to the volumetric rendering.

Here i am speaking of generating the cloud textures at the planet scale.

I will also try to take into account the Coriolis force.

Share this comment


Link to comment
Of course. :)

So, is there any way you can think of, as to how to implement caves and building/starship interiors into your engine? Could each building/starship have a separate internal model that would be loaded and attached to the exterior model if needed, with some sort of portaling for doors/windows? Do you understand what I'm saying? :/ For caves, is there any system you could suggest? Fractal/random spidery 3D line drawing with cave walls at normalized random distances from the centerline?

Do you have any thoughts on this? :\

Share this comment


Link to comment
Implementing indoor areas (sharships, buildings) is pretty simple. My engine is not a pure terrain engine, it's a general engine with a specific plugin to support massive, planetary terrains. Other than that, it supports rendering of 3D meshes with shader effects. All you'd have to do is to make a mesh for the building and place it in the scene.

It doesn't support portals/PVS at the moment, but it's on my todo list, just as lightmapping and LOD (i'll be working on LOD very soo).

As for caves, the standard approach would work fine i think (just like Far Cry). Use a specific mesh for the cave/mountain, and place it over the terrain.

Share this comment


Link to comment

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now