Star-ScatteringFunctions Simulate scattering effects at surfaces and in volumes
Star-SF 0.7.2 is available
- Get source code: git
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.
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
- Add the phase function API allowing the user to define, sample and evaluate a phase function.
- Provide built-in implementation of the Henyey & Greenstein, and the Rayleigh phase functions.
Version 0.5
- Add the pillbox microfacet distribution.
- Update the version of the RSys dependency to 0.6: replace the deprecated
[N]CHECK
macros by the new macroCHK
.
Version 0.4
- Fix the Blinn microfacet distribution.
- Change the microfacet distribution API to no longer require the unused outgoing direction parameter.
- Use and require Star-SamPling version 0.5.
Version 0.3
- A BSDF is no more a composition of BxDFs: the caller writes directly the comportment of the BSDF without intermediary abstractions. As a result, built-in BxDFs become built-in BSDFs and the BxDF data structure and functions are removed from the API.
Version 0.2
- Fix the thin-dielectric material to ensure the energy conservation property.
- Add the
ssf_specular_dielectric_dielectric_interface
BxDF. This scattering function could be built by combining thessf_specular_reflection
and thessf_specular_transmission
BxDFs into a BSDF but such combination does not ensure the energy conservation property due to weaknesses into the BSDF interface.
License
Star-ScatteringFunctions is Copyright © 2016-2018, 2021 |Meso|Star>(contact@meso-star.com). 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.