Oct
29

We want volumetric clouds in Blender!!

Posted in Development, Production by Enrico

Heya guys! So this is my first post on the Peach blog, gh!

cloudsex1.jpg

We are working hard to define the last version of the story by the animatic now, while the coders are refining great new features to be used in the movie.
Btw, Brecht, Ton and Campbell are too busy with a lot of new stuff at the moment and they have a priority list to work on, and because we could need volumetric clouds and realistic sky generation for a few shots, this post is meant as a call for help by external coders who can offer a good code for this.
Keep in mind that this is not a priority for Peach, we could easily (and probably better) do beautiful sky and clouds by matte painting; but since in this moment we have the occasion to add new features to Blender, why don’t have a try?
Here are a few images of the “MakeCloud macros” for Pov-Ray made by Gilles Tran, released under a Creative Commons License; they make a very good example of what we are looking for in terms of the visual quality:

Volumetric clouds would be nice, of course, but every other code that can give such good results is welcome. And, besides the clouds, we are expecially looking for sky color gradients simulating light at different moment of the day.

So, come on! You could have the opportunity to be in the movie credit list as coder for amazing stuff, and also to have the eternal gratitude of all the blenderheads around the world. If this is your case, just post here and someone will get in touch with you. Gh!

The grey-haired guy

47 Responses

  1. LoMac Writes:

    Yes, Volumetric clouds would be nice.

  2. BB Writes:

    Wasn’t it a GSOC project last year?

  3. Oxben Writes:

    Yes, what happened to the GSoC project?

    http://wiki.blender.org/index.php/User:Sionix/SummerOfCode2006

  4. harkyman Writes:

    Did you guys even check out the paper on how MS Flight Simulator does it’s REAL TIME clouds that look better than anything anyone’s ever done with Blender’s sky textures, etc.?

    Here’s the page:
    http://ofb.net/~niniane/clouds/

    Here’s the paper:
    http://ofb.net/~niniane/clouds-jgt.pdf

    I’ve read it. Seriously, I think would be very easy to implement in Blender. In fact, it could be done with Python right now, and made even better if it were popped into the sources. So now, no one has an excuse not to this other than “no time!” which is already taken by me, so you’ll have to get your own excuse.

  5. campbell barton Writes:

    Hey BB, The GSOC sky didn’t get to a state where it would be usable for us.
    http://www.blendernation.com/2006/08/22/google-soc-progress-report-skygen/

  6. Felix_Kütt Writes:

    good luck on finding a coder for that, would be awesome to have it in blender! :)

  7. joeedh Writes:

    Hrm. QDune has volumetric support, I thought. It could do it. Of course this is just added reasons for me to figure out the EVIL DSM bugs that plague my life. . . *sigh*. . .since only deep shadow maps can do proper volumetric shadows (without extreme render times due to ray tracing). Bleh.

    Joe

  8. Will Writes:

    I’m not going to comment on the choice of filename for your cloud screenshot ;)

    Now that immature outburst is out of me I’d just like to add that the media gallery is showing some brilliant characterisation and is certainly proving my fears wrong. Keep up the good work!

  9. Alexander Ewering Writes:

    So, did the money get revoked from the GSoC guy? :D

  10. Auria Writes:

    The GSoc project didn’t look photorealistic, granted, but didn’t it support “simulating light at different moment of the day”?

  11. harkyman Writes:

    Hm. What happened to my comment with links to the paper on doing great looking clouds? I don’t think I was cussing or anything. Oh well.

  12. Digikiller Writes:

    Volumetrics when it comes to rendering clouds really has to do with how particles are grouped and rendered so as to seem to have density width and height.The way it’s rendered adds to it’s “volume”.

    Writing an advanced “halo” particle render engine in which halo’s are enabled to be view clipped and able to give and recieve shadows and render with a realistic simulation of density (which to be sble to create a group of halo with a simulated x,y,z dimention rendering with an improved alpha or transparency (which is needed to render realistic smoke and fire as an illustration) algorythm is basically what is needed.A tweek in the rendering of Blender’s existing “sky” rendering engine would just top it off. Even Blender’s internal renderer could do it if the existing halo and sky systems were tweaked and somewhat overhauled. I don’t know what the GSoC guy was doing
    or what other ideas he had.

  13. Höhrer Writes:

    Nice to see that peach may lead to volumetric clouds in Blender :)

    Ona related note:
    Whatever happend to THIS type of volumentrics? http://wiki.blender.org/index.php/BlenderDev/SundayMeetingAgenda/March_19th_2006
    Test images and code by timmeh according to the wiki page – kinda old already though. This would be really cool – especially when the sub-pisel stuff is finsihed :)

    Werner

  14. Höhrer Writes:

    Nice to see that peach may lead to volumetric clouds in Blender :)

    On a related note:
    Whatever happened to THIS type of volumetrics? http://wiki.blender.org/index.php/BlenderDev/SundayMeetingAgenda/March_19th_2006
    Test images and code by timmeh according to the wiki page – kinda old already though. This would be really cool – especially when the sub-pixel stuff is finished :)

    Werner

  15. Vassilios Writes:

    Volumetric Clouds-Sky….something like this ..!????
    http://cobweb.ecn.purdue.edu/~ebertd/
    http://cobweb.ecn.purdue.edu/~ebertd/cloud/
    http://www.ecn.purdue.edu/purpl/projects/fastclouds/frames.html

  16. Hamed Zaghaghi Writes:

    Do you need clouds have volume?
    i.e you don’t need an cloud image generator that use on sky sphere?

  17. harkyman Writes:

    Well, my first try was lost, so here it is again:

    Link to a great site with examples of beautiful clouds that render in REAL TIME:
    http://ofb.net/~niniane/clouds/

    And the paper that explains it all:
    http://ofb.net/~niniane/clouds-jgt.pdf

    I’ve read it. It’s simple. It’s quite do-able, even with Python. I’ve just never done it, because I prefer to matte paint mine.

  18. Vassilios Boucer Writes:

    a interessting article here:
    http://www.purdue.edu/UNS/html3month/2005/050413.Ebert.Valiant.html

  19. MediaMonkey Writes:

    This might help in finding coder:
    http://www.blender.org/forum/viewtopic.php?t=11189

    But why just stop at clouds? Why not make something similar to Lightwave’s voxel system that can be used for clouds, smoke, and fire?

    Here is an demonstration of what voxels can do:
    http://graphics.stanford.edu/papers/vortex_particle-sig05/

  20. epat Writes:

    I dunno about sky generation, but I second MediaMonkey on the cloud rendering business! I’d definately aim for a voxel system rather than a particle/halo based one for cloud rendering. It would be extremely useful in other areas of blender! Plus, I dunno if other people have the same complaint, but particle/halo based clouds, tend to look 3D-ized, and don’t feature the correct light scattering (though I’ve no doulbt they could – but it almost certainly wouldn’t work with the current SSS system from what I understand, so would have to be considered as well)!

    Actually, I’ve long wanted to code a voxel renderer into blender myself. I’m just not experienced enough with the C syntax in general – or common data structures (e.g. octrees and the likes), :( although the voxel stuff itself wouldn’t be too bad…

    ~epat. :)

  21. epat Writes:

    Addendum – voxel based clouds would also be very interesting to implement, as there are virtually no papers on it already…

    ~epat :D

  22. epat Writes:

    (Sorry for the triple post)

    OR: Maybe, by far the best method… You could adapt the method from the (very new) eikonal rendering paper: http://www.mpi-inf.mpg.de/resources/EikonalRendering/index.html to render clouds and other volumetric effects such as smoke/fire. The method used can render some VERY nice volumetrics, with the addition of refraction and other elements that would give it just that little bit more power and in the end, photorealistic results. If the refraction index of the light was varying (i.e. like in real life), you could even reproduce rainbow effects. But I’m not sure how this would work in context – I’m sure it could be done though! The way I see it working is either as point clouds converted to voxels, (by interpolation based on desity) or as clouds generated as a voxelized liquid from the start and the whole thing rendered volumetrically. (much like current smoke generation methods)

    I can see this method working really well, and, as a bonus, providing some amazing features directly useable by the rest of blender, with POWERFUL user control at that (once the interface was worked out)!! E.g. User varies the refraction index, material parameters, etc etc in 3D space at his/her will!!!…

    ~epat. :)

  23. epat Writes:

    (And another post!)

    OR – Go here:

    http://nis-lab.is.s.u-tokyo.ac.jp/~nis/abs_sig.html
    http://nis-ei.eng.hokudai.ac.jp/~doba/papers/EGshort02_cloud.pdf

    This one looks pretty good as it does shafts of light as well. The images online are pretty poor quality though, and I can’t see any self-shadowing. No doulbt it would be easy enough to implement though…

    Or maybe the generation could be used, but the rendering be different. (e.g. eikonal…) Since the clouds are already voxelized, this would be dead easy providing you had an implementation of the eikonal renderer! (Which traces wavefronts through voxels in 3D space)

    ~epat. :P

  24. Anthoni_C Writes:

    I just use a Halo Mat with a cloud texture and the halo has the textures alpha. I’d say it works pretty good. I’ll make an example then post again.

  25. Anthoni_C Writes:

    http://www.box.net/shared/rxk9h7e62s

    That is a very, very quick version, but if the Peach Team get a hold of it I’m sure they could do some really nice things.

  26. Lamoot Writes:

    This is one more idea for interested developers. As far as I understood, this method is rather easy to implent.

    http://www.inframez.com/events_volclouds_slide01.htm

  27. Markus Writes:

    Terragen 2 has nice skys! But I have no idea how they do it???

    Markus

  28. MediaMonkey Writes:

    Great links Epat and Lamoot! I know that smoke and fire (possibly clouds) behave similar to fluid. Would it be possible to modify the current fluid simulator to do gas based things? What I hope for in the future is something similar to Maya’s fluid dynamics or Lightwave’s Hyper Voxels, if that is not to much to ask.

  29. epat Writes:

    @Anthoni_C:
    I’ve tried this before, it looks alright, but lacks the intricate detail unless you use a **lot** of halos. That means ultra-slow… It’s also not very artist friendly.

    @Lamoot:
    Looks cool, but basically is just a method for rendering. In fact, the rendering is a lot simpler than it sounds anyway. It would be just as simple to implement ray-casting, metaballs, or basically any other rendering method (although eikonal rendering of realistic clouds would probably require further reasearch as I haven’t seen it done yet so would possibly be harder). The most interesting thing would be the generation, rendering could be based on user preference anyway!

    @Markus:
    It has some **amazing** clouds and skys, I’m not sure whether they are true 3D or not, though I don’t suppose it would matter anyway. Unfortunately, I don’t think they document their method – and it’s closed source :(…

    @MediaMonkey:
    The current fluid simulator could do it if it was modified slightly, albeit using a stupid amount of memory (e.g. 100GB+ for very realistic skys). The thing it lacks at the moment, AFAIK, though I’m not completely sure of its internal state, is the thermal term; meaning it can’t be used for realistic cloud generation… I’ve never used Maya or Lightwave (I’m a Blender chap, though I have once used a very old, dodgy copy of 3DSMax), however, Lightwave’s hyper-voxels stuff (which I have heard of before somewhere – possibly from a paper) sounds a bit similar to what I was thinking of when I talked about particles being converted into voxels, though I may be wrong.

    In the end, I think that cloud generation would have to be done with CFD (Computational Fluid Dynamics) so it could take into acount the landscape and underlying 3D geometry… (i.e. it could form clouds over mountains and that sort of thing automatically). Probably, a TLBM would be best (Thermal Lattice-Boltzmann Model), and as the existing fluid simulator is based on the LBM, with the addition of a thermal term, it might prove very useful. Some extra things might have to be added to make good clouds rather than fluids however (such as vorticity confinement/vorticity particles – see Ron Fedkiw’s papers for example – maybe the cellular patterns paper would be interesting to implement too…). Then the output of this would have to be either converted to a particle point cloud and rendered (e.g. textured halos, the method that Lamoot mentioned, etc etc) or rendered direcly using methods that deal with voxels. (e.g. metaballs in voxel centers, ray-casting, eikonal rendering etc etc)

    The alternative is to start with generating particles, based on some thermal advection terms, and convert them to voxels/render them directly. Problem with this method is the limited amount of research material available + the inability of particles to accurately generate details, and having lots and lots of particles, although generally using less memory than voxel based methods, scales **very** badly in terms of calculation time!!

    That’s how it stands! I’m pretty sure, that if I sat down and learnt C (and additionally, learnt how to use image data structures properly, especially the blender ones!), I could write the code to render clouds nicely; but I’m not experienced enough in computational simulation (though I have read a lot of papers about it) to get the formulas and the likes for generating clouds *formulated* into some kind of practical method. I suppose I could have a look at elbeem’s source, that might give me an idea, but I’m not very good at working out what programs do by their source code :/…

    I dunno why I’m so interested really, I love to volunteer – or even twiddle with some code on my own – but I can’t :( as I’m really busy with college! (6th form) Oh well…

    ~epat. :/

  30. Anthoni_C Writes:

    Yes I know it is slow all to well… ha ha.
    I’m going to keep playing with things until
    I find something good. The other thing you could use is just a billboarded plane with detailed cloud textures.

  31. Anthoni_C Writes:

    I looked at what Lamoot posted and combined that technique with mine and had great results.

    I use Halos with a cloud texture and particles. Then I used nodes to blur the scene Horizontally and Vertically.
    For the peach film it would work best if you separate the clouds in another render layer and blur that layer instead of the whole scene. Here is a .blend file of my results. Feel free to use it.

    http://www.box.net/shared/g3kzoyg88e

  32. Micah Fitch Writes:

    Hey, I sculpted clouds and then shaded them with SSS, and that worked OK, but it’s very cartoony, not very good looking and slow:

    http://blenderartists.org/forum/showthread.php?t=96448&highlight=clouds+sss

    I would say that fake volumetrics can be OK but they are very finicky and blender could use some nice hard-coded volumetrics that are well integrated with lighting and shading!

  33. MediaMonkey Writes:

    I think Voxels must be the best option then at this point in time. Simulation of smoke, fire, and clouds is the *only* way blender really lags behind commercial programs today.

    The only other idea I had was to create animatable volumetric shaders that have control over all the different aspects of simulating smoke, clouds, and fire. One more thing while I’m on the topic of shaders, is to add glow shaders to blender shader options, which is another thing that most other commercial programs have that blender lacks. Though you could create it with nodes, glow shaders would simplify different things, such as lamps, and should not be to hard to implement.

    P.S.: I am not complaining about blender at all. I am just trying to give the developers of blender ideas. :)

  34. ton Writes:

    Just as a note; there’s now a forum on blender.org for open movie/game projects. We encourage people to use this for discussions and feedback as well. It works better than a blog in some cases!

    http://www.blender.org/forum/viewforum.php?f=20

  35. Digikiller Writes:

    I think that volumetrics will be an asset to Blender’s arsenal of tools.Go ahead and code it.There’s a million and one ways to “fake” clouds,fire,and smoke in 3D.But, I thought this was about finding a coder to actually code the volumetrics feature.As far as the sky renderer is concerned,if a coder looks at how Blender renders it’s present “sky”, if he’s a coder worth his salt,he should be able to bridge features into it’s UI pending his understanding of the codebase even if he has to ask for help.

    The particle engine has to be involved with volumetrics because particles are the base of 3D volumetrics(voxels are based in particle mechanics).

    Between coding my layers UI, I’m going to poke around in the codebase to see what I can see as it were.

    Whoever is going to step up to the plate,sit down in front of your favorite compiler and make it hot!Get to coding!
    Much love.

    Render times has a lot to do with how well the graphics code is optimized for
    speed (which should be the concern of all graphics coders).Render times should be looked at as a challenge not an obstacle.

  36. J Writes:

    I can’t find out who to contact about this, but I wanted to mention something that could drastically improve the film. My suggestion is to use shape keys in combination with phonemes for the mouth and facial animation. One great fault with Elephants Dream was the horrible lip sync, which was made with bones. Anyway, hopefully someone who is part of the team will see this and take that into consideration. The shape keys make animation so much easier for the mouth.

  37. Paul Writes:

    Some additional information on Joshua Schpok and David Ebert’s real time cloud renderer, “Swell.”
    Includes a working download of the software.

    http://www.ecn.purdue.edu/purpl/projects/fastclouds/frames.html

  38. Some Person Writes:

    J: Afaik they don’t need phoneme stuff, as there won’t be any spoken words…

  39. AkhIL Writes:

    I have some expirience with cloud rendering. This is my clouds rendered in pixie:
    http://akhil.nightmail.ru/path/skydome_composed.jpg
    http://akhil.nightmail.ru/path/skydome_composed-1024.ogg
    Rendering time up to 5 minutes on Athlon 2500+.
    Hope you guys will make something better and faster.

  40. Micah Writes:

    I was frustrated by the lack of interesting details in Vassilios’ article, so I found the actual paper!

    http://portal.acm.org/citation.cfm?id=1073381

  41. Vassilios Boucer Writes:

    hey Micah! …my Infos never Lacks!
    this was only the link for the article.
    i posted the Links bevor here:
    http://blenderartists.org/forum/showthread.php?t=108570

  42. Roofoo Writes:

    Here is a method for faking volumetric clouds, the tutorial is for 3dsmax, but maybe the principles could be applied to Blender? It involves using gradients & distance based lighting.
    http://www.duck.dk/

    and check out this cool animation with this method:
    http://www.duck.dk/gallery/f117.html

  43. DramaKing Writes:

    In reply to harkyman’s comment, the clouds in MS Flight Simulator (2004) are the pits. They’re real-time only because they are simple mattes.

  44. =X= Writes:

    Well, I am no a Pro in Blender -I just started using it this summer. I have been trying nice-looking cloud but, like most people, I still haven’t achieved a satisfactory result. In fact my best result to date is:
    http://www.mediafire.com/?61x1d1k13xm

    I am reallyin need for a volumetric effect due to my animation needs a lot of clouds. I’ve read
    http://www.blender.org/forum/viewtopic.php?t=12409&postdays=0&postorder=asc&start=0
    and I think Zaghaghi’s idea of a vol shader is a nice idea, and I’m interested in helping with my tiny ideas, yet for the shader or the particle system -Im not a coder,. Can we discuss this?
    [email protected]

  45. young_inexperienced_animator Writes:

    I found http://www.tutorialized.com/tutorial/Making-Clouds-in-Blender-3D/30422 which might work