11"Fork" of Troy Sobotka's AgX https://github.com/sobotka/AgX with implementation
22in various languages/software.
33
4- ![ agx comparison with aces and filmic] ( comparison.jpg )
5-
6- > extreme example rendered with pure ACEScg primaries
4+ ![ AgXc comparison with ACES and filmic using a cg render] ( ./doc/images/dragon.full.combined.jpg )
75
86AgX is a [ display rendering transform] ( https://github.com/jedypod/open-display-transform/wiki/doc-introduction )
97(DRT) with the goal of improving image formation.
@@ -16,26 +14,38 @@ smooth color transitions and pleasing exposure handling.
1614If you find that there was too much scary-looking words until now, just
1715consider AgX as a "LUT".
1816
17+ ![ AgXc exposure stripe test] ( ./doc/images/dragon.exposure-stripes.AgXc.jpg )
18+
19+ Exposure stripes increment (in stops units) tests:
20+
21+ | [ AgXc] ( ./doc/images/dragon.exposure-stripes.AgXc.jpg ) | [ ACES] ( ./doc/images/dragon.exposure-stripes.ACES1.3-GM.jpg ) | [ Filmic] ( ./doc/images/dragon.exposure-stripes.filmic.jpg ) | [ TCAM] ( ./doc/images/dragon.exposure-stripes.TCAMv2.jpg ) | [ Native] ( ./doc/images/dragon.exposure-stripes.native.jpg ) |
22+ | -------------------------------------------------------| -------------------------------------------------------------| -----------------------------------------------------------| ---------------------------------------------------------| -----------------------------------------------------------|
23+
1924# Background
2025
21- The AgX formula used is based on the original Troy's implementation which is not the same as what is currently being implemented in Blender-4+.
26+ The AgX formula used is based on the original Troy's implementation which is
27+ not the same as what is currently being implemented in Blender-4+ (which could
28+ be considered better).
29+
2230- assume sRGB working space
2331- clip everything outside
32+ - apply traditional log2 encoding
2433- apply "inset" (gamut reshaping)
2534- apply tonescale (1D curve)
35+ - display EOTF
2636
27- It is possible the various implementations are not at the same level of progress.
28- For example the LUT implementation is already using a BT.2020 workspace approach
37+ It is possible the various implementations in this repository are not at the same level
38+ of progress. For example the LUT implementation is already using a BT.2020 workspace approach
2939(like the Blender version).
3040
3141# Content
3242
33- The simplicity of AgX allowed to port it to various languages and softwares :
43+ The simplicity of AgX allowed to port it to various languages and software :
3444
35- - [ OpenColorIO] ( ocio ) : v1 compatible
45+ - [ OpenColorIO] ( ocio ) : compatible with v1 API
3646- [ ReShade] ( reshade ) : for in-game use.
37- - [ OBS] ( obs ) : to apply on live camera feed
38- - [ Python] ( python ) : numpy-only script and a more advanced library for manipulation
47+ - [ OBS] ( obs ) : to apply on live camera feed.
48+ - [ Python] ( python ) : numpy-only script and a more advanced library for manipulation.
3949- [ nuke] ( nuke ) : partial implementation for [ Foundry's Nuke] ( https://www.foundry.com/products/nuke-family/nuke )
4050- [ luts] ( luts ) : LUTs file for preview in various systems
4151
@@ -45,4 +55,12 @@ The simplicity of AgX allowed to port it to various languages and softwares :
4555
4656![ OBS interface screenshot with webcam feed] ( obs/doc/img/obs-main.png )
4757
48- > Screenshot of the OBS interface while streaming 8Bit VLog from a Panasonic camera.
58+ > Screenshot of the OBS interface while streaming 8Bit VLog from a Panasonic camera.
59+
60+ # Usage
61+
62+ Consider each directory in this repository to be its own independent software.
63+ Usually each have its own versioning, changelog and documentation.
64+
65+ When any of the implementation has a new version I bump the global version
66+ of this repo in the [ pyproject.toml] ( pyproject.toml ) and make a new GitHub release.
0 commit comments