How to render level set surfaces?

   11586   11   4
User Avatar
Member
2 posts
Joined: Sept. 2013
Offline
Hi all,

I'm trying to render an animation sequence from VBD files, but I can not find the right material for it.

This is what I have in the scene view:


Without any material it renders like this:


But when I assign a “basicliquid” material to it, this is what I get:


Basically, I just want to render the surface, and I don't even mind if it's opaque for now. The one in the scene view is the closest to this.
Who can I get a similar (but hopefully better) render of my level sets?
User Avatar
Member
37 posts
Joined: Oct. 2009
Offline
convert your vdb to polygons using the vdb convert node, then apply the your material.
User Avatar
Member
2 posts
Joined: Sept. 2013
Offline
Awesome! Thanks!
User Avatar
Member
120 posts
Joined: Feb. 2008
Offline
are there any plans for direct mantra rendering of vdb as isosurface (without vdb convert)? PRMAN apparently has it now…

“The plugin supports rendering of OpenVDB data both as a surface (using RiBlobby) and a volume (either RiBlobby or RiVolume). ”

https://renderman.pixar.com/resources/current/rps/includedImplicitPlugins.html [renderman.pixar.com]
User Avatar
Member
8531 posts
Joined: July 2007
Online
mantra can render SDFs directly since Houdini 10.5.220 which is almost 4 years back

you just need add vm_volumeiso and vm_volumedensity properties to the object (or material)
works only with raytrace and PBR

vm_volumeiso at 1 tells mantra to render volumes as iso surfaces
vm_volumedensity defines the value threshold for the iso surface usually 0

vm_volumequality should be at 1 for such objects
Tomas Slancik
FX Supervisor
Method Studios, NY
User Avatar
Member
120 posts
Joined: Feb. 2008
Offline
I'm trying to render a volume as isosurface, and I'm getting a faceted looking surface, like the normals are not being smooth shaded. I tried to use “shading normal” vop in the shader and still can't get away from the faceted look. I saw the following entry in the journal:

Wednesday, November 20, 2013
Houdini 13.0.240: When vm_volumeiso is enabled, normals for SDF volumes are now initialized to the gradient rather than the negative gradient for consistency with surfacing.

But I'm using 13.0.288 and still having the same issue. I tried both vdb and native volumes. Any suggestions for how to get smooth shaded normals on volume isosurface renders?
User Avatar
Member
8531 posts
Joined: July 2007
Online
it's working correctly for me 13.0.260

here is simple example, VDB sdf volume rendered directly with Volime Isosurface property so no conversion to polygons necessary
it works with standard volumes as well of course

do you have file showing your problem?
btw is your volume SDF or just fog volume?

Attachments:
sdf_render_volume_isosurface.hip (227.0 KB)

Tomas Slancik
FX Supervisor
Method Studios, NY
User Avatar
Member
120 posts
Joined: Feb. 2008
Offline
I see, its working now. The problem was that I applied the volumeiso properties to the geometry object instead of to a properties node in the shader. Thanks very much!
User Avatar
Member
8531 posts
Joined: July 2007
Online
that shouldn't be a problem
but your problem could be that you didn't apply vm_volumedensity and vm_volumequality properties and set to correct values as both have wrong defaults for isosurface rendering
Tomas Slancik
FX Supervisor
Method Studios, NY
User Avatar
Member
120 posts
Joined: Feb. 2008
Offline
Okay, so after further exploration…

The volume iso setup works fine now with object or shader properties. But “volumesample from file” in a cvex shader, read by a volume procedural, shows the faceted look. Attached is an image and file + volume/vdb bgeos showing the setups and problems. (Created in 13.0.288, but lower versions should work)

Attachments:
isotests.zip (68.6 KB)
isotest.jpg (80.2 KB)

User Avatar
Member
120 posts
Joined: Feb. 2008
Offline
Ive been trying to troubleshoot this all day, I'm beginning to wonder if this faceting is a limitation/bug of the volume procedural not really sending proper normal information when creating an isosurface when sampling a volume from file.

I can't seem to recreate the normal myself and get it into the surface shader either, in attempts to work around the problem. I have an idea I'd like to explore with combining iso volumes from disk at render time, but this faceting is really making me reconsider if it's possible at the moment…
User Avatar
Member
1390 posts
Joined: July 2005
Offline
josh3light
Ive been trying to troubleshoot this all day, I'm beginning to wonder if this faceting is a limitation/bug of the volume procedural not really sending proper normal information when creating an isosurface when sampling a volume from file.

The reason for faceting is low resolution of the volume, which is not filtered during sampling with volumesample() call (unlike Mantra which filters volumes used as a main geometry). You would have to roll your own sampling in cvex or upres volumes I suppose.
  • Quick Links