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
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions