Jump to content

vex volume procedural cvex and image planes


Recommended Posts

I am using a vex volume procedural shader, connected to a new cvex operator to generate a volume starting from points at render time.

In the cvex op, I use pcopen to open a point cloud, then I process those points and export "density" and "Cd".

Everything works great (even if the render time is insane ..).

Now I'd like to export additional image planes.

For instance I added an "export float nage ..." (normalized age of the points) and added a new float image plane to the Mantra rop, but the render of that image plane always comes out black.

I tried to set nage = 1 by default to make sure it really doesn't work.

 

My questions are:

 

1 - I noticed that I can successfully export "density" and "Cd" from the cvex operator to the vex volume procedural. Are there additional Mantra parameters vex volume procedural accepts from the cvex op ?

 

2 - what is the proper way to render new image planes using the previous setup ? For instance exporting Ce connected to a remapped density to simulate heat.

 

Please let me know if the question is not clear enough and I'll setup a small hip file to illustrate the issue.

Edited by mrWolf
Link to comment
Share on other sites

i think the issue you're bumping into is that the cvex shader is generating what is, essentially, geometric data.  it's not up geometric data to push itself into mantra image planes.  that is a task for a surface shader.  your surface shader must export whatever parms you want to end up in your image planes.  so the solution here is to add "nage" to your surface shader as a parm and set it to always export (not sure you need to set to export, but it won't hurt).  your surface shader will then bind to the data coming out of the vex shader and push it along to mantra.

 

Cd and density worked not because the cvex shader exported to the procedural, but because the surface shader you have on your object defined them as parameters.

Link to comment
Share on other sites

Amazing !
It works great, thank you for the clarification Fathom !
Now I understand why exporting Ce was not just lighting my smoke ! :)
I didn't have any surface shader assigned to the geometry. I only had a geometry shader.
I created a Mantra shader builder, dropped a Volume Model and connected density to density, Cd to Smoke Clr and Emit Clr.
In the cvex shader I calculated and exported nage using the particle age.
I created a nage parameter in the surface shader as  well (set it to export) and used it to modulate the density and fed the result into Emit Int, plus I exported it as a separate image plane.
I rendered a simple test to show you the result.

 

post-1409-0-03336500-1419415167_thumb.jp

 

post-1409-0-07541200-1419415850_thumb.jp
 
In you opinion what is the most effective way to use the bright core of the smoke to illuminate the surrounding environment ?

 

In this example i'm using the following parameters:

- pbr render

- one directional light

- clay shader assigned to the ground

- volume geometry procedural + surface shader to generate the smoke starting from a point cloud.

 

 

Link to comment
Share on other sites

you could generate a low-rez proxy object of the bright area in sops and then use that for a geometry light, perhaps.  maybe even generate it as a volume.

 

for life of pi, i wrote a point cloud light shader for the biolouminescent whale.  in h13, they added a point cloud light shader as an option for volume geometry lights.  you might be able to plug into theirs and get something working.

Link to comment
Share on other sites

you could generate a low-rez proxy object of the bright area in sops and then use that for a geometry light, perhaps.  maybe even generate it as a volume.

 

for life of pi, i wrote a point cloud light shader for the biolouminescent whale.  in h13, they added a point cloud light shader as an option for volume geometry lights.  you might be able to plug into theirs and get something working.

 

Thank you for your reply Fathom,

 

I'd like to stay away from the low res proxy object since all the geometry (volume) is generated at render time by the volume procedural.

 

The new h13 point cloud light shader solution that you mention is very interesting ! I've never written a light shader. 

Can you point me to the h13 new point cloud shader function or any light shader example ? I've searched a bit in the help and I couldn't find any example.

Link to comment
Share on other sites

the proxy would not be for direct rendering.  it would be geometry solely to act as a geometry light source.  but if you've got a pc already, i'm thinking you can just create a volume light and then massage your pc to fit the data that the volume light is expecting.  try generating a pc using the volume light shelf tool and mimic it's contents with your own pc.

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...