I’m trying to approximate a Rayleigh scattering volume. I’ve made a very simple shader that combines three different volumes, one for R, G, and B. The densities work as expected, but I can’t figure out why the different Anisotropy values don’t seem to affect the color. Anyone have an explanation? Thanks in advance.
#include "stdosl.h"
shader RGBvol(
color Color = color(0.8, 0.8, 0.8),
float DensityR = 1.0,
float DensityG = 1.0,
float DensityB = 1.0,
float AnisotropyR = 0.0,
float AnisotropyG = 0.0,
float AnisotropyB = 0.0,
output closure color Volume = 0)
{
closure color VolumeR = (color(Color[0], 0, 0) * DensityR) * henyey_greenstein(AnisotropyR);
closure color VolumeG = (color(0, Color[1], 0) * DensityG) * henyey_greenstein(AnisotropyG);
closure color VolumeB = (color(0, 0, Color[2]) * DensityB) * henyey_greenstein(AnisotropyB);
Volume = VolumeR + VolumeG + VolumeB;
}
Also, I’m not sure if this is the best way to use volumes. If there’s a better way, I’d love to know.