Create color grading 3D LUTs for Smash Ultimate. Learn more about how these textures work and the effects that can be achieved on the color grading lut page of the Smash Ultimate Material Research website. A windows executable is available in Releases.
smush_lut.exe
to create a nutexb. Rename this file to color_grading_lut.nutexb
. The colors stored in the new file will change slightly to account for the effect of post processing in game.
color_grading_lut.nutexb
with the one generated by smush_lut.exe
and check the results in game. The results may not match exactly due to the limited resolution of the LUT or errors in the color compensation step. Note how the shadows on Kirby are slightly softer than intended due to unavoidable interpolation with a 16x16x16 LUT.
Convert the LUT to a 16x16x16 .cube file using the executable.
Example: smush_lut.exe sepia.png sepia.cube
or smush_lut.exe sepia.nutexb sepia.cube
.
Cube files can be opened in many video editing and image editing software. Photoshop and Affinity Photo support important and exporting LUTs as .cube files. Other image editing software may have plugins that support .cube files.
Create a new color lookup adjustment layer by clicking the adjustment layer icon on the layers panel and selecting "Color Lookup". Click the "Load 3D LUT" dropdown and then click "Load 3D LUT" again to open a file dialog to select the .cube file exported earlier. Leave the color channel settings at default.
Similar to Photoshop, create a new LUT adjustment layer by clicking the adjustment layer icon and selecting "LUT". Click "Load LUT" and select the .cube file exported earlier.
The color grading LUT is not the last step applied to the rendered image. Editing the LUT colors directly will result in unexpected colors in game. The color correction step accounts for the post processing passes in game and adjusts the final LUT values to produce the desired output colors as closely as possible. See color_correction for a mathematical explanation for how this works. Pass the --raw
flag to read and write LUT values directly without any modifications.