Jump to content

Can't get VEX Volume Procedural to work properly


noouch

Recommended Posts

Currently I've started to get into procedural rendering of iso surfaces, and the best way to render them pixel-perfect seems to be the VEX Volume Procedural geometry shader. There's a nice example (VolumeNoiseIso) that demonstrates its usage quite well, but when I rebuild it cargo cult style, the result isn't what it should be.

 

The example shader:

XsFIOAa.jpg

 

Rebuilt from scratch:

Bu9Kpj2.jpg

 

I have attached a scene with both the example and rebuilt shaders; I can reference the CVEX shader from material 2 in the volume procedural of material1 and that works fine, so what am I missing?

Link to comment
Share on other sites

Very peculiar... I couldn't find anything wrong with your setup.

 

To get it working, I had to go into the Properties SHOP parameter interface, remove the vm_volumeiso toggle, and add it back again, from the "For Rendering" tab. Literally the exact same parameter - you can see it greyed out in the "For Rendering" tab when it's already a part of the parameter interface. Pressing the little sideways arrows to remove it from the interface, and then add it back again does the trick.

 

Why? Beats me. But it works (in Houdini 13.0.343)

Link to comment
Share on other sites

  • 2 weeks later...

Another question while I'm heading down this path. This is probably simple, but I can't for the life of me figure out how to feed the shader a volume or VDB. Ideally I would assign the shader to the object containing the volume data and the shader will just use that as density, but I can't find anything about the proper procedure for getting the volume into the shader in a way that the CVEX shader returns the density in a way that the VolumeIso will produce an isosurface. Since this seems to be a little-used feature, documentation is fairly sparse. Essentially I am trying to take voxel volumes and trace their isosurface at render time, while being able to modify the density on a per-sample level and implementing custom filtering functions. What is the (a?) proper way to do this?

Edited by noouch
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...