diff options
author | Brecht Van Lommel <brecht@blender.org> | 2022-05-23 21:54:09 +0300 |
---|---|---|
committer | Brecht Van Lommel <brecht@blender.org> | 2022-05-23 23:09:44 +0300 |
commit | bdab538b3019406cfbd53d99bc40c4dbae27393c (patch) | |
tree | b99f06195bdbd647c275e15f72095c8c4af28eae /source/blender/draw/intern/draw_fluid.c | |
parent | a22ad7fbd391acc65b99336eae0df5c2a49553d9 (diff) |
Fix Eevee blackbody wrong with non-default scene linear color space
* Port over new code tables from Cycles
* Convert Rec.709 to scene linear for lookup table.
* Move code for wavelength and blackbody to IMB so they can access the
required transforms, which are not in blenlib.
* Remove clamping from blackbody shader to bypass the texture read.
Since it's variable now easiest to just always read from the texture
than pass additional parameters.
* Fold XYZ to RGB conversion into the wavelength table.
Ref T68926
Diffstat (limited to 'source/blender/draw/intern/draw_fluid.c')
-rw-r--r-- | source/blender/draw/intern/draw_fluid.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/source/blender/draw/intern/draw_fluid.c b/source/blender/draw/intern/draw_fluid.c index d3d4bbf505e..c34025ebe52 100644 --- a/source/blender/draw/intern/draw_fluid.c +++ b/source/blender/draw/intern/draw_fluid.c @@ -20,6 +20,8 @@ #include "BKE_colorband.h" +#include "IMB_colormanagement.h" + #include "GPU_texture.h" #include "draw_manager.h" @@ -52,7 +54,7 @@ static void create_flame_spectrum_texture(float *data) float *spec_pixels = (float *)MEM_mallocN(TFUNC_WIDTH * 4 * 16 * 16 * sizeof(float), "spec_pixels"); - blackbody_temperature_to_rgb_table(data, TFUNC_WIDTH, 1500, 3000); + IMB_colormanagement_blackbody_temperature_to_rgb_table(data, TFUNC_WIDTH, 1500, 3000); for (int i = 0; i < 16; i++) { for (int j = 0; j < 16; j++) { |