TexTools / FFXIV_TexTools_UI

GNU General Public License v3.0
381 stars 64 forks source link

Approx. conversion from linear RGB to sRGB color space #273

Closed trollham closed 11 months ago

trollham commented 11 months ago

FF14 interprets material files in the sRGB color space. TexTools uses linear RGB, which lead to colors appearing washed out when opened in FF14. This implements an approximate conversion from linear RGB to sRGB, making models in the 3D viewer and colors in the Colorset editor appear more accurate to their in-game representation.

Squall-Leonhart commented 11 months ago

Any source for this discrepency? the textools viewer is known to be highly inaccurate and trying to make the game side match it by altering the imported resource would be wrong.

trollham commented 11 months ago

Here's a comparison of the methods against the in-game render against a vanilla chest piece: the original TexTools is on the left, this PR on the right.

Vanilla - Difference between old and new TT methods

Row 16, the row selected on both open TexTools, is the cloth section on the chest. The original TT lists the RGB value for that colorset row as #191306. The TT in this PR lists it as #504528. Using a color picker tool on the model in-game, while not entirely accurate because of lighting and all the other factors that can influence the rendered color, shows around #41321c. Even factoring in everything that goes into the rendered result, it's not just that the TT model viewer is inaccurate, the color the game renders is a lighter color than the one picked in the colorset editor.

Note: this doesn't alter any imported values from TTMPs or the raw file import, it just changes how TT interprets the values contained in the material file.

Squall-Leonhart commented 11 months ago

Ah, I misread what you were doing here and thought you were applying conversion on import when its just making the Previewer render properly.