star-sf

Set of surface and volume scattering functions
git clone git://git.meso-star.fr/star-sf.git
Log | Files | Refs | README | LICENSE

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.