Skip to content

Add color grading capabilities #2

@cgcostume

Description

@cgcostume

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or requesthelp wantedExtra attention is needed

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions