Jump to content
Hazoc

"Pyroclastic noise" demystified

Recommended Posts

Many (me included) have been wondering what is this pyroclastic noise all the big boys are talking about since google knows very little about this. The following paper gave the answer: http://tessendorf.org/papers_files/RIV.pdf

It's basicly just about displacing a surface with a summed set of noise layers on different scales like any fractal texture. The only special thing is that the absolute value of the noise is used and the "valley" areas of the displaced surface/volume are left smooth by scaling down the displacement power of the noise layers with previous layers.

pyroclastic_noise01.jpg

Here's an extremely simple VOP SOP setup demonstrating the basic idea.

pyroclastic_noise.hip

  • Like 2

Share this post


Link to post
Share on other sites

Hey Hazoc

Thanks for sharing. As far as I know the smoothing in the valleys is a recent addition for clouds. Traditional pyroclastic doesn't even have that :). But yeah, that volumetrics paper is an amazing resource.

And this is going to be a must have when it's released: http://magnuswrenninge.com/visualeffects/book-in-the-works

M

Share this post


Link to post
Share on other sites

Hey Hazoc

Thanks for sharing. As far as I know the smoothing in the valleys is a recent addition for clouds. Traditional pyroclastic doesn't even have that :). But yeah, that volumetrics paper is an amazing resource.

And this is going to be a must have when it's released: http://magnuswrenninge.com/visualeffects/book-in-the-works

Aah, I see:) My hip file does pretty ugly job at valley smoothing but the general idea is very neat and very important element when chasing natural looking cumulus clouds.

That book is intriguing! Must buy.

Share this post


Link to post
Share on other sites

hi, the ateam clouds look fantastic! the pyroclastic style looks much better then all the noise in volume stuff. but I thought that the volume displacement happens at rendertime. I made a quick example in cvex to demonstrate ( sorry for the hickerystyle, had no coffee, yet). even so it is on soplevel it should be easy to translate to shop and get extradetail in rendering through the volumesamples,

pyroclastic_cvex.hip

but displacing spheres is easy, the real cool stuff happens with the bunny again. can somebody explain how this levelset stuff works, or how to implement that in houdini? Creating displacment on displaced geometry is straight forward, but doing this on volumes, huh??

Share this post


Link to post
Share on other sites

hi, the ateam clouds look fantastic! the pyroclastic style looks much better then all the noise in volume stuff. but I thought that the volume displacement happens at rendertime.

Yes it does but as I've just started learning volume displacement shading, I could not provide a proper example:) Nice file, thanks!

Share this post


Link to post
Share on other sites

but it just a start, I wonder how Your setup with several displacements works on a pure volumesetup, cause in Your setup You can use any geometry and any number of displacement layers.

Share this post


Link to post
Share on other sites

What comes to maintaining the right displacement direction or "normal" when operating with bunny -type geometry, their "Felt" language explained in the paper allows handy looping. I believe you can only determine normal directions to iso surface from a SDF gradient field which you in this case rebuild after each noise layer addition and use as a guide for the next layer of noise.

Share this post


Link to post
Share on other sites

I believe you can only determine normal directions to iso surface from a SDF gradient field which you in this case rebuild after each noise layer addition and use as a guide for the next layer of noise.

would be cool if this would happen at renderstage

Share this post


Link to post
Share on other sites

Awesome, thanks for sharing guys !

Here is my volume version of Hazoc's noise. I tried to get the normals with a volume gradient

but it doesn't give me enough controls. Also, it would need to be blurred to avoid some artifacts...

The VolumeVop part can be all done at rendertime in a volume shader :D

pyroclastic_noise_bunker_01.hip

  • Like 1

Share this post


Link to post
Share on other sites

Nicely done!

I'm still trying to understand some parts conserning the iterative layering process and levelset described in the paper.

(page 19)

"The crucial property here is that the each fractal layer represents a range of spatial scales that is higher frequency that the previous layers. Conversely, an early layer has relatively

large scale features. This implies that sampling the levelset into a grid that has

sucient resolution to capture the spatial features of one layer still allows sub-

sequent layers to apply higher spatial detail displacements."

What ?? Since voxel grid of some resolution is able to store details of some frequency, it is therefore able to store higher frequencies as well ? Can't I just read or what is really being said here ?

Share this post


Link to post
Share on other sites

@ bunker: cool file, wicked to just look deeper into the volume with displacement. still i think the paper tries to explain a way to layer displacements one after the other wiht that levelsets. in your solution you get the normal to displace by at the beginning but what about adding a displacement on the resulting shape?

Share this post


Link to post
Share on other sites

Hi guys,

I've been working on this for the last few days and just thought I'd share some results. Any comments are more than welcome.

I've pretty much followed the A-Team paper to the letter. I haven't added the gridless advection to this one but think I've

got a nice way to do that. If I get a chance I'll see if I can post an example with that in to see the difference.

Share this post


Link to post
Share on other sites

very nice ! :D how are you guys getting the normals for displacement?

geometry ? volume gradient ? or volume converted to geometry ?

@martin : Yes, I should use the normals from a previous displacement.

Edited by bunker

Share this post


Link to post
Share on other sites

Hi Julien,

I'm actually using a volume gradient.

I'm fairly happy with it but I just can't seem to get the definition in the lower level noises as they are in the paper. Maybe it's just a case of playing with the noise functions a little.

I might try and give it a go with the method you used in your example file.

Share this post


Link to post
Share on other sites

would be cool if this would happen at renderstage

Yes agree. One could build formidable landscapes with overhanging cliffs etc.

Like what you could do with pandromeda

Image 1

Image 2

or with terragen 2

Image 3

Edited by kgoossens
  • Like 1

Share this post


Link to post
Share on other sites

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

×