Yocto/GL is a collection of small C++17 libraries for building physically-based graphics algorithms released under the MIT license. Yocto/GL is written in a deliberately data-oriented style for ease of development and use. Yocto/GL is split into small libraries to make code navigation easier. See each header file for documentation. Simple shape data structure, utilities for manipulating triangle meshes, quads meshes and line sets, computation of normals and tangents, linear and Catmull-Clark subdivision, procedural shapes generation, ray intersection and closest point queries. Ray intersection and closest point queries of triangle meshes, quads meshes, line sets and shape instances using a two-level bounding volume hierarchy. Path tracing of surfaces and hairs supporting area and environment illumination, microfacet GGX and subsurface scattering, multiple importance sampling.
Features
- Fixed-size vectors, matrices, rigid frames, transforms
- Color conversion, color adjustment, tone mapping functions, color grading, color maps, color spaces
- Rays, bounding boxes, geometry functions, ray-primitive intersection, point-primitive overlap
- Perlin noise
- Random number generation, generation of points and directions, Monte Carlo utilities
- Evaluation and sampling of fresnel functions, bsdf lobes, transmittance lobes, phase functions