Feature Request: Add support for 3DLUT color grading
See original GitHub issueI see that there’s been some work done in the past in #15360 and @greggman has put together a nice article on the topic here. It’s not entirely clear to me why the previous PR was closed but I wanted to bring this up as a nice addition to three.js. The utility has been better explained in the two links above but 3DLUTs are great for controlling the look and feel of a scene.
3DLUTs are supported in a variety of 3d engines and video editing software include Unity, Unreal Engine, and Babylonjs. There are also a couple existing file formats for them including .cube and .3dl (though 3dl looks relatively undocumented).
These formats are available online and can also be created in tools like Photoshop and would enable more artistic control over the look of the final scene.
I figure that just like gamma correction there could be a postprocessing effect and WebGLRenderer support that adds the LUT application to the end of the built in shaders:
const lut = new LUTLoader().load( '../path/to/lut.3dl' );
renderer.colorLUT3D = lut;
Issue Analytics
- State:
- Created 3 years ago
- Reactions:4
- Comments:7 (1 by maintainers)
Top GitHub Comments
If you were going to add this to three.js I’d expect you’d add
LUTLoader.js
to examples/jsm/loaders and otherwise it’s just a post processing effect so you’d addLUTPass.js
to examples/jsm/postprocessingAh, by the way, I’d like to note that not all LUTs are in weird formats, some are just images. For example, see HALD CLUTs. The beauty of these formats is that you can apply any color operation on identity luts using the software of your choice.
obs-studio
is using this format, which is more “readable” than HALD CLUTs, but I still cannot figure out where it originates and what it actually is.