Basic VDB Shading

Can anyone help with explaining a basic shader setup for VDB files with a density attribute?
As far as I can tell, the docs on the chaos group website are out of date; they describe a workflow using a VrayVolumeGrid to load a VDB, but this node actually error’s saying it can only read .aur files.
I have read on this forum that you can simply use a Houdini ‘File’ SOP to read a VDB, which i have done, but then I’m not sure about the shading model which needs to be applied. Can anyone provide any tips? At this point, I’m just trying to get some basic fog using a simple VDB to work.
Thanks for any pointers.

Hello @sv , did you assign VolumeGrid Shader to your volume object ?
In order to render a volume/vdb object V-Ray needs a shader on it. In Volume Grid shader tabs you could find parameters for reassigning fields or remapping them. Unfortunately the docs page is really out of date but the coleagues are working on it and will be updated soon.
I am uploading a simple example of how to shade volumes.

Is this works for you?
BasicVDBShading.zip (4.59 MB)

Hi Georgy,

Thanks for the scene - super helpful.
I discovered the issue this morning.
Yes; I had a VrayVolumeGrid shader applied to my volume, but the difference was in how this was being applied -

> In my setup, I was applying the shader through a ‘Material’ node, within the Geometry node itself.

> In your example, you are assigning the shader via the ‘Render’ Tab’s ‘shop_materialpath’ parameter.

I feel like either should work (especially as the Material node works for assigning standard VRay Materials to geometry), so is this a bug?

I feel like either should work (especially as the Material node works for assigning standard VRay Materials to geometry), so is this a bug?
No, it’s not a bug per se. Each ‘volume/field’ (e.g. ‘density’, ‘heat’, etc) is a separate primitive which means, in theory, you could assign separate shaders to them. If you do that, there’s no way for us to figure out what the expected output is.
Material SOP is supported, provided you first use a Pack SOP.

Hope that helps!

Hi sv,

The V-Ray Volumetric Grid and V-Ray Volume Grid Shader docs have been updated.
You can check them here: V-Ray for Houdini and V-Ray for Houdini

Best Regards,
Gergana Lilkova

Technical Writer
www.chaosgroup.com

Just a simple q - phys based - how it works ? Using max or maya - defaulted to 1. In H = 0. It is not working or what ?

edit

found it. sadly it is not presented in docs…

Hey, Paul,

it works but the Physically Based option expects the volume channel chosen for fire to be in … well … physically correct values. So you need to remap it to 400-3000 in a Volume Wrangle SOP. For example:

f@heat = 400 + fit(@heat, 0, 2, 0, 2600);

I’ve added it to the docs page too.

Hope that helps!

Yeah, that is great. I wonder, default post process node works like vray expect or how? I 'm really noob here, just was quite frustrated with all the bell and whistles :slight_smile:

Sparse solver by default creates flame/temp/smoke and where should they connect ? (h18 here)

As I understand, h creates temp field with values mapped within 0..1 with 300K..3000K values. I’m quite unsure - it feels to me like real world values, no ? And where is that mapping thing comes from ? Or maybe you can create a scene as an example plz (sparse fireball) :slight_smile:

I wonder, default post process node works like vray expect or how?
Unfortunately, no, it does not. I sets up a viewport preview that’s pretty close to how Mantra would render the volume, and hooks up the settings to the Mantra Pyro shader.

The Post Process node is a digital asset - you can go inside and check what’s going on.
Those “Temperature At …” parameters are used to say:

Temperature at 0 (K) - if the “temperature” field is at 0, this is 0 Kelvin
Temperature at 1 (K) - if the “temperature” field is at 1, this is 3000 Kelvin

Basically it’s doing the re-mapping I mentioned above, except it happens at render time.

The actual values of the “density”, “flame”, “temperature” and “vel” can be seen in the Geometry Spreadsheet - those values are what V-Ray gets to work with.

I’ve (1) removed the material assignment, (2) scaled the “flame” field in a Volume Wrangle and (3) assigned a Volume Grid shader and specified Flame under Fields → Emission.
You can find the example file here: https://drive.google.com/file/d/1NOy…ew?usp=sharing

If you really like the Physically Based option, I think it would be best to make your own asset for updating the range of the volumes and adding a nice visualization. The only reason we have not done this so far is because it’ll be just more clutter for something that is probably best left to the individual artists and their preferences.

Hope that helps!

Hm, I did quite the same, but shader didin’t see fire ranges :frowning:

Thx a lot!