Add color grading capabilities
- Dominant language
- TypeScript
- Stars
- 0
- Forks
- 0
- PR merge metrics
- No merged PRs in 30d
Description
This feature is based on unity article https://docs.unity3d.com/Manual/PostProcessing-UserLut.html and http://www.adriancourreges.com/blog/2017/12/15/mgs-v-graphics-study/
Color Grading Requirements - A `ColorGrading` class that provides the following features:
- [ ] create RGB cube slices on CPU (with adjustable resolution, e.g., 8³, 16³, 24³, ...), this is intended for image export of the base LUT (look-up-texture)
- [ ] a function should allow to layout the slices in a rectangular image based on a user-defined number of rows and columns of slices
- [ ] a demo on the dev index.html that showcases this feature
- [ ] it should be possible to download the RGB slices as an uncompressed image in a simple format (perhaps without the need of additional libraries)...
- [ ] create RGB cube slices on the fly within the shader (use rect, tex-coords, ...) - this can be used for overlaying the base LUT over any rendering - this can be provided as a "fragment shader snippet" (source code that is made available...)
**Move to haeley-webgl**, when the above features are implemented:
- [ ] create a rendering function that disables the depth and stencil test and renders the base LUT to a certain position, e.g., render 16³ at 0, 0, should result in a 16x256px overlay on the bottom left of the screen ... - this is intended to be used for screenshots.
- [ ] allow the specification of a target LUT that is then used for grading (workflow would be (1) show baseLUT on screen, (2) take a screenshot, (3) color grade using, e.g., Photoshop, then (4) save the resulting LUT from the graded screenshot as targetLUT, (5) pass it to the color grading render-pass, (6) convert it from 2D texture to a 3D texture (e.g., 16 slices of 16²) - this is important in order to have linear interpolation for all three color channels - and, finally, (7) color grade, i.e., use every pixel's color for looking up its mapped value in the LUT (see next checkbox)
- [ ] provide shader fragment as well as full post-processing pass for color grading
Contributor guide
No contributing guide indexed for this repository
Assessment
This issue has not been assessed yet.