can a osl volume shader be made glossy ?

can an osl based volume shader (a cloud alike shader) have a glossy surface ?.

No… :frowning:

Volume shaders don’t have a Normal option at each point in the volume… You need to polygonize your volume data in some other way (i.e. cubesurfer)

couldnt it be done with some math node to say if density > 0.0123 then bounce off light ?

the problem is the normal direction… you would need to sample the volume data, find the derivatives of the density, calculate the Normal based on the deivatives, and do it for every volume step, in every ray…

ATM that is not possible… So making it a mesh is the only way.

Also, in OSL or in Cycles alone, Volumes are only suposed to be rendered with Scattering, Absorbing and Emission shaders.

okay, i hoped otherwise

Render time isosurface generation would be an awesome option to have. It would open up a whole new world of materials.

It cant be too dificult to implement, molecular modellers have been using such techniques to display volumetric atomic and molecular orbital data for many years.

Another option which appears to be able to generate glossy surfaces from volume data is something called ‘volume ray casting’.

Whether we’ll ever see these things for Cycles is another question. It’s probably not very high on the list.

1 Like