Yocto Gl Versions Save

Yocto/GL: Tiny C++ Libraries for Data-Driven Physically-based Graphics

v4.4.0

1 year ago

This release adds an experimental CUDA path tracer and refactors some internal data structures to better match the library goals, together with including many bug fixes.

This release will be the last in the 4.x line. This upcoming release will introduce many code breaking changes that are necessary to further expand the library. Differently than what was done solar, the next release will be backward incompatible and deprecated methods will be removed.

What's Changed

  • Cuda/Optix renderer (#1339, #1340, #1341, #1343, #1344, #1345, #1347, #1349, #1350, #1360, #1363)
  • Simpler example apps (#1352, #1365, #1367)
  • Split IO sources (#1321, $1323, #1359, #1378, #1381)
  • Split Embree Bvh from Yocto/Bvh (#1324)
  • Function renaming (#1325, #1382)
  • Yocto/Math simplification (#1333, #1338, #1368, #1326)
  • Better CLI (#1319)
  • Fix OpenGL color space (#1383)
  • Bug fixes and build (#1304, #1316, #1317, #1318, #1330, #1335, #1398, #1409)

v4.3.0

2 years ago

This release is mostly a big fix release and introduces a new file format for the scene that is easier than the previous. All previous files will still load.

What's Changed

  • Added Python scene validator
  • Moldeio does not use math
  • Merge gui in yocto
  • Deprecate Yocto/Parallel
  • Remove less used external libs
  • Remove Json implementations
  • Simpler BVH implementation
  • Shorter CLI implementation

v4.2.0

2 years ago

This release is mostly a refactoring of the IO functionality, to make it simpler, and the introduction of a simpler Json format. All changes should be backward compatible, beside the removal of exceptions from the APIs.

  • Updated docs (#1280)
  • Removing all IO exceptions (#1278)
  • Remove exceptions from CLI (#1277)
  • Remove exception from IO implementation (#1276)
  • Merge IO functionality in Yocto/SceneIO. (#1275)
  • Remove PFM support (#1274)
  • Switch JSON implementation (#1273)
  • Simpler Json Format (#1272)

v4.1.0

2 years ago

This release improves mostly upon utilities and IO functionality in preparation for a 5.0 release with more graphics features. The release should be mostly backward compliant besides one change listed below.

  • Backward incompatible change: Rename metallic to reflective in material_type enum (#1266)
  • Better code layout: IO functionality split into image io, shape io, and scene io (#1258)
  • Microfacet bug fixes (#1264)
  • Furnace test (#1259)
  • Bug fixes (#1256, #1252, #1250, and smaller commits)
  • Update docs (#1268)
  • Update ImGui and STB dependencies. (#1267)
  • Cleanup to possibly support better point and line intersection (#1257)
  • UI keys consistent with Blender (#1255)
  • Faster and simpler IO (#1253, #1251, #1246)
  • File format 4.1, with full backward compatibility. (#1248, #1249)
  • Simpler apps (#1247)
  • Json representation (#1244, #1245, #1243, #1239, #1223)
  • Tone mapping, batch rendering, and denoising in CLI scene rendering (#1242, #1230)
  • Better names for scene elements: camera_data, texture_data, etc, with old names supported via typedefs. (#1240)
  • Eyelight rendering with ambient occlusion (#1221)

v4.0.0

3 years ago

This marks a major new release of Yocto/GL which is not backward compatible with the previous release. Major changes were introduced to reduce the amount of code, as well as simplify library usage. Please see the docs for an overview of the release.

v3.3.0

3 years ago

This release marks the last release of the v3 line. It contains a few additions, mostly related to support libraries, as well as more example apps. Starting from the next commit, incompatible changes will land in the main branch to begin working on the v4 line. The list of changes are:

  • implemented command line apps with commands to reduce the number of demo apps (#1135, #1132, #1124, #1122, #1121)
  • added a simple image viewer as a library component (#1134, #1133, #1123)
  • added support for Json storage and IO in the new library Yocto/Json (#1131, #1130, #1129, #1128, #1127, #1126, #1116, #1112, #1111, #1110, #1109, #1108, #1107, #1105, #1102, #1098, #1102)
  • mesh processing utilities (#1103, #1097, #1094, #1093, #1084, #1103, #1097)
  • added STL and glTF IO (#1125, #1113, #1092, #1091)
  • command-line parsing with JSON schemas (#1120, #1119, #1083)
  • bug fixes (#1096, #1089)
  • example sculpting app (#1087)
  • city generation example (#1082)

v3.2.0

3 years ago

This release is mostly a bug fix and cleanup release with some improvements made to the interactive renderers. This release marks the last release in the 3.X line. This is a list of the major changes.

  • Image
    • Simplified image IO and textures in scene (#1022, #1023, #1048, #1071)
    • Image support for width() and height() (#1028)
  • Path tracing
    • Define trace scene (#1025, #1024)
    • External bvh in trace (#1067, #1068, #1069, #1070)
    • Lights outside the scene for path tracing (#1065, #1066)
  • SceneIO
    • Removal of scene creation APIs (#1076, #1031)
    • Removed references from modelio (#1072)
  • Cli
    • Simpler cli implementation (#1037, #1038, #1015, #1014, #1026)
  • General
    • Move rays and bounding boxes to Yocto/Geometry (#1073)
    • Documentation update
    • Bug fix (#1027)
    • Applying linter fixes and general cleanup (#1043, #1042, #1044, #1046, #1039, #1030, #1029, #1020, #1017, #1036, #1042)
    • Update library versions (#1033)
    • Common utils are shared between files (#1019, #1021)
  • Gui
    • Glfw compiled as external library (#1078)
    • Image-based-lighting for real-time viewers (#1034, #1051, #1053, #1035, #1040, #1050, #1045, #1046, #1047, #1050, #1053, #1054, #1056, #1057, #1058, #1059, #1060, #1061, #1062)

v3.1.0

3 years ago

This release contains several bug fixes and also a change in the build to use std::filesystem. Summary if changes:

  • Using std::filesystem instead of ghc::filesystem (#1008, #1011)
    • This may require a later compiler than before, but brings stability especially on Windows
  • Improvements to yocto_gui
    • Split yocto_gui into two libraries (#1012)
    • Update yocto_gui for better rendering support (#1009)
    • Removed unused ImGui helpers (#1007)
    • Simple mesh viewer with thick points and lines (#1006)
    • Bugfix in gui dialog (#1013)
  • Generate tests internally (#1004)
  • More general command-line parser (#1000)
  • Removed Git Submodules
  • Applying cpplint (#999)
  • Buig fixes (#1005, #1003, #1002, #998)

v3.0.0

3 years ago

This release makes a few major changes in the Yocto/GL repository from feedback gained by others.

  • Functionality is split into multiple libraries to make it easier to extend Yocto in the future and make code navigation easier
  • Significantly better documentation that move from the header files to Markdown compiled with mkdocs
  • A shared, and simplified scene, scene model for both IO and path tracing
  • Bug fixes throughout most of the library
  • Addition of new facilities in an experimental form

v2.0.0

4 years ago

This is a major update for Yocto/GL that incorporates changes for both significant efficiency and usability of the APIs when including Yocto/GL libraries in external projects. Some of the main changes are listed here.

  • added separate namespaces to all libraries
  • remove Yocto/Bvh library that is now merged into Yocto/Shape
  • split Yocto/ModelIO into separate Yocto/Ply, Yocto/Obj, Yocto/Pbrt for more modularity
    • remove support for YAML parsing since it was hard to maintain
    • use of pointers for references instead of indices for efficiency, pointer-stability and type safety of references
  • changes to scene representation in Yocto/SceneIO
    • explicit instancing for efficiency
    • renamed instance to object
    • use of pointers instead of indices to ensure pointer stability and for efficiency
    • use of JSON as the main file format instead of YAML
    • names are not explicit paths any longer, but just filenames without extensions
  • changes to scene representation in Yocto/Trace
    • explicit instancing for efficiency
    • renamed instance to object
  • move more common functionality from other libraries into Yocto/Math
  • several new APIs across all libraries
    • explicit scene element creation
    • pointer-based references
  • code cleanup in all libraries at least in the non-API code
  • change build system and library location to make the code more modular