Jump to content

Volumes as lights


Macha

Recommended Posts

I have a kind of energy-aura effect done with volumes.

I'd like this volume to be a source of light as well.

I thought that I could use a point-cloud generated from the volume but there is too much internal shader-generated structure in the volume for this to work accurately (I would only get the volume as a big blob of light source).

I have a little part of the image attached.

I have used the default pyro shader for my volume.

Is there a way to get brightness data out of the shader somehow and send it to another shader, or otherwise turn it into a source of light or brightness modifier? Shall I ditch the default shader and make my own?

post-4013-130164330707.jpg

Edited by Macha
Link to comment
Share on other sites

Is there a way to get brightness data out of the shader somehow and send it to another shader, or otherwise turn it into a source of light or brightness modifier? Shall I ditch the default shader and make my own?

How about using volume SOP to extract some intensive areas of the volume, then buildig an iso surface from it and use that as an object area light ?

Getting intensities produced by the shader, I've no idea:)

Edited by Hazoc
Link to comment
Share on other sites

Hey Macha!

Just a quick idea: what about creating points from volume, attribute transfer the density to the points and use that to drive the lighting?

Copy spheres/metaballs to the points with emission driven by fitted density? Or use as geometry light with density driving light intensity?

Did something vaguely similar a while back - will try and find the file and see if it will help at all.

Matt.

Edited by Matt_K
Link to comment
Share on other sites

The problem is that all structure is generated at rendertime, it is not present on the sop level, so there is nothing to scatter points or spheres to.

Perhaps I should rewrite the shader on cvex and use procedural shaders (that volume shader-in-viewport-trick).

But isn't there also a way to export variables from a shader? I read something like that somwhere.

Link to comment
Share on other sites

Maybe I miss something, but why don't you use Ce variable in a smoke shader? This way volume will emit light to your scene, that is, only in PBR mode...

But isn't there also a way to export variables from a shader? I read something like that somwhere.

yes, there is, depending on from which shader to what place I suppose... Generally surface shaders can freely communicate thanks to sending rays. There is a whole gather() / rayimport() /simport() factory for that purpose. I'm not sure how this works with volume though, but it should as usual. Keeping volumes on a disk would greatly simplify the process though since, as you know, you can always open it from a shader.

Link to comment
Share on other sites

Hey guys,

If you can use the billowysmoke shader, then it's as simple as using the Emission parameter with PBR - which can be driven by temperature / density / heat etc.

Though getting your noise to acceptable levels may be an issue.

billowysmoke_emission.png

Edited by Matt_K
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...