halb3 / halb3/colors

Add color grading capabilities

Open
#2 0 comments 0 reactions 0 assignees View on GitHub
enhancement help wanted
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.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.