README.md (3096B)
1 # Star Scattering Functions 2 3 This library provides a set of data structures to describe how light is 4 scattered on the surface or in volume. From these interfaces, it 5 implements several Bidirectional Scattering Distribution Functions, 6 microfacet distributions, Fresnel terms or even phase functions. See the 7 `ssf.h` header file for a full list of proposed implementations 8 9 ## Requirements 10 11 - C compiler 12 - POSIX make 13 - pkg-config 14 - [RSys](https://gitlab.com/vaplv/rsys) 15 - [Star-SP](https://gitlab.com/meso-star/star-sp) 16 - [RSIMD](https://gitlab.com/vaplv/rsimd) (optional) 17 18 ## Installation 19 20 Edit config.mk as needed, then run 21 22 make clean install 23 24 ## Release notes 25 26 ### Version 0.10 27 28 - Fix parallel execution of the Makefile for some versions of GNU make. 29 - Rewrite the Makefile to make it simpler. 30 31 ### Version 0.9 32 33 - Replace CMake by Makefile as build system. 34 - Update compiler and linker flags to increase the security and 35 robustness of generated binaries. 36 - Provide a pkg-config file to link the library as an external 37 dependency. 38 39 ### Version 0.8 40 41 Added support for discrete phase functions, i.e. phase functions whose 42 values are only defined for a set of angles. 43 44 ### Version 0.7.2 45 46 Sets the required version of Star-SampPling to 0.12. This version fixes 47 compilation errors with gcc 11 but introduces API breaks. 48 49 ### Version 0.7.1 50 51 Fix the evaluation of the RDG-FA phase function: the incident direction 52 was reversed. 53 54 ### Version 0.7 55 56 Add a built-in phase function using the 57 [RDG-FA](https://doi.org/10.1016/j.jqsrt.2013.08.022) model. 58 59 ### Version 0.6 60 61 - Add the phase function API allowing the user to define, sample and 62 evaluate a phase function. 63 - Provide built-in implementation of the Henyey & Greenstein, and the 64 Rayleigh phase functions. 65 66 ### Version 0.5 67 68 - Add the pillbox microfacet distribution. 69 - Update the version of the RSys dependency to 0.6: replace the 70 deprecated `[N]CHECK` macros by the new macro `CHK`. 71 72 ### Version 0.4 73 74 - Fix the Blinn microfacet distribution. 75 - Change the microfacet distribution API to no longer require the unused 76 outgoing direction parameter. 77 - Use and require Star-SamPling version 0.5. 78 79 ### Version 0.3 80 81 - A BSDF is no more a composition of BxDFs: the caller writes directly 82 the comportment of the BSDF without intermediary abstractions. As a 83 result, built-in BxDFs become built-in BSDFs and the BxDF data 84 structure and functions are removed from the API. 85 86 ### Version 0.2 87 88 - Fix the thin-dielectric material to ensure the energy conservation 89 property. 90 - Add the `ssf_specular_dielectric_dielectric_interface` BxDF. This 91 scattering function could be built by combining the 92 `ssf_specular_reflection` and the `ssf_specular_transmission` BxDFs 93 into a BSDF but such combination does not ensure the energy 94 conservation property due to weaknesses into the BSDF interface. 95 96 ## License 97 98 Copyright (C) 2016-2018, 2021-2025 |Méso|Star> (contact@meso-star.com) 99 100 Star-SF is free software released under the GPL v3+ license. You are 101 welcome to redistribute it under certain conditions; refer to the 102 COPYING file for details.