noouch Posted March 28, 2014 Share Posted March 28, 2014 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: Rebuilt from scratch: 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? Quote Link to comment Share on other sites More sharing options...
Zach Posted March 28, 2014 Share Posted March 28, 2014 I think you forgot to attach that scene...? Quote Link to comment Share on other sites More sharing options...
noouch Posted March 28, 2014 Author Share Posted March 28, 2014 I think you forgot to attach that scene...? Whoops, had it chosen but not attached. Here it is. volumeiso.hipnc Quote Link to comment Share on other sites More sharing options...
Zach Posted March 28, 2014 Share Posted March 28, 2014 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) Quote Link to comment Share on other sites More sharing options...
noouch Posted March 30, 2014 Author Share Posted March 30, 2014 Yeah that did the trick. I had created them manually as float and toggle parameters and given them names. Quote Link to comment Share on other sites More sharing options...
noouch Posted April 10, 2014 Author Share Posted April 10, 2014 (edited) 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 April 10, 2014 by noouch Quote Link to comment Share on other sites More sharing options...
Recommended Posts
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.