Cloud.gen

Published October 24, 2015
Advertisement
'allo


Something I've vowed several times I'd never do again: hand-paint a skybox.

The outdoor cloud-ish type specifically:

cloudmap.png

Painting clouds is all fun and fulfilling, until you need to fill out a full 360 degree view with dozens of them.

I preferred to draw a cloud scene as a spherical environment map; stretch around the outer regions is somewhat easier to deal with than the discontinuities along borders of the six faces in a cube map. (I always do my painting in Painter, so no clever 3D painting across seams for me.) Then you get the obvious issues with lighting (time of day etc.), that often require a complete repaint if you do not plan properly.


Anyway, the interface of the 'cloud tracer'-tool as it is now: smile.pngoptions = [ "mesh" => loadmesh([ "path" => "D:/Temp/Cloud.lxo", "mask" => "Bake" ]), "env" => loadimg([ "path" => "D:/Temp/Cloud_Env_2048.exr", "gamma" => 1.0 ]), "coverage" => loadimg([ "path" => "D:/Temp/Cloud_Coverage.png" ]), "normal" => loadimg([ "path" => "D:/Temp/Cloud_Normal.png", "channelmap" => [ 0, 2, 1 ], "levelmin" => -1.0, "levelmax" => 1.0 ]), "density" => 0.025, "densityhaze" => 0.00025, "tilelevelmin" => 0.4, "tilelevelmax" => 1.0];saveimg([ "textures" => tracer(options) ]);
The "mesh":

cloudrep.png

CREEPY. unsure.png

I skipped the simulation pass I initially planned on implementing, and simply modelled and replicated a series of basic cloud shapes. These cloud parts are all made up of smaller convex elements, which makes ray-testing fast and robust (occlusion tests against translucent convex objects make up the bulk of the work). I've also been meaning to try and run a radiosity solver on a low-resolution proxy mesh and have its results mapped back onto higher detail geometry - these convex bits seemed like a good candidate.

"environment":

cloudprobe.png

Illumination comes from a single light probe for now.

"coverage"/"normal":
cloudslab.png

I got to doodle some more clouds by hand: geometry is expanded using these normal mapped 'depth billboards', which then have results from the lighting pass projected onto them. They're cheaper to render than volumetric textures, as there's no ray-marching involved. Also, 2D textures are far more straightforward to produce. I might come back to volume textures for other reasons later though.

Then there's some stuff about global cloud density and fog values for space in the scene that's not occupied by cloud geometry.



LET'S RENDER AND SEE:

clouds4.png


k.

- Clouds need to be a bit more whispy here and there.
- The in-modeller point cloud replicator I used does a fairly good job at coming up with interesting cloud shapes, but I feel a custom distributor could still do better.
- The radiosity pass finishes pretty quickly as I had hoped, but tracing the final 2048 * 2048 image takes a while running on the cpu - needs more Compute.



Apologies for all the going back-and-forth with the camera.


Lastly, a bit of blatant self-promotion: I've been looking to do some graphics/tools programming for a U.S./European studio. If anyone can think of someone who might be interested, I'd love to hear (doesn't have to be game related per se).
14 likes 8 comments

Comments

riuthamus

Bro, that work for the sky is amazing. You are doing some crazy good stuff

October 24, 2015 09:28 PM
Radikalizm

Absolutely badass! Love to see stuff like this, keep it up!

October 25, 2015 12:07 AM
Aardvajk
Mindblowing. Amazing work.
October 25, 2015 06:41 AM
Migi0027

This is seriously awesome! It's so freaking pretty and sexy!

October 26, 2015 11:00 AM
riuthamus

how much would you charge for somebody to use this? :P

October 26, 2015 11:20 PM
Eck
That is extremely slick sir. If you're using Unity, I recommend you package it up and put it on the Unity Asset Store. smile.png
October 28, 2015 02:45 PM
eppo

Not sure, Riu - up until now I've always created these tools as portfolio demos.

October 30, 2015 12:04 PM
riuthamus

well those tools are epic! you should really look at some form of monitization. Especially since they are for c# enviro's.

October 31, 2015 05:39 AM
You must log in to join the conversation.
Don't have a GameDev.net account? Sign up!
Profile
Author
Advertisement
Advertisement