Star-ScatteringFunctions Simulate scattering effects at surfaces and in volumes

Star-SF 0.7.2 is available

Star-ScatteringFunctions is a C library that provides abstractions to describe scattering effects at a surface through Bidirectional Scattering Distribution Functions (BSDF), microfacet distributions and fresnel terms, and in a volume with phase functions. The main targets of Star-SF are programmers that have to evaluate or sample these scattering effects.

Phase function
2D illustration of a phase function: probability to scatter in any direction

The Star-SF API makes no reference to the implementation of the aforementioned data structures. In addition, it publicly exposes their interfaces. Consequently, users cannot only switch the BSDF, microfacet distribution, fresnel term or phase function without any impact on their application source code, but they can also provide their own implementation of these structures while still relying on Star-SF in their simulation code.

Beyond the legacy specular and lambertion reflections, Star-SF implements several scattering functions, from the ones simulating glossy reflections through microfacet distributions to BSDFs that handle specular effects of an interface between dieliectric media. For volumetric scattering, Star-SF provides built-in implementation of the Henyey & Greenstein and Rayleigh phase functions.

Release notes

Version 0.7.2

Sets the required version of Star-SampPling to 0.12. This version fixes compilation errors with gcc 11 but introduce API breaks.

Version 0.7.1

Fix the evaluation of the RDG-FA phase function: the incident direction was reversed.

Version 0.7

Add a built-in phase function using the RDG-FA model.

Version 0.6

Version 0.5

Version 0.4

Version 0.3

Version 0.2


Star-ScatteringFunctions is Copyright © 2016-2018, 2021 |Meso|Star>( It is a free software released under the GPL v3+ license. You are welcome to redistribute it under certain conditions; refer to the COPYING file for details.