Similar to the Principled BSDF, this should make it easier to set up volume materials. Smoke and fire can be rendererd with just a single principled volume node, the appropriate attributes will be automatically used when available.
- Color: scattering color. Multiplied with "color" attribute if available.
- Density: density of the volume. Multiplied with "density" attribute if available.
- Anisotropy: Henyey-Greenstein scattering anisotropy.
- Absorption Color: extra control over shadow/absorption color, separate from scattering color.
- Emission: emission strength.
- Emission Color: emission color modulation.
- Blackbody: blackbody emission intensity, for rendering fire.
- Blackbody Temperature: temperature in Kelvin. Affected by "flame" attribute if available.
There's still a bunch of TODO's, and no OSL or Eevee implementation, but it works well enough for early testing and feedback.