Rendering Engine
0.2.9
Modular Graphics Rendering Engine | v0.2.9
Loading...
Searching...
No Matches
Source/color_space.cpp
Go to the documentation of this file.
1
#include "
color_space.hpp
"
2
3
namespace
rendering_engine
4
{
5
6
float
ColorSpace::SRGBToLinear
(
float
c)
7
{
8
if
(c <= 0.04045f)
9
return
c / 12.92f;
10
else
11
return
pow((c + 0.055f) / 1.055f, 2.4f);
12
}
13
14
glm::vec3
ColorSpace::SRGBToLinear
(
const
glm::vec3& color)
15
{
16
return
glm::vec3(
17
SRGBToLinear
(color.r),
18
SRGBToLinear
(color.g),
19
SRGBToLinear
(color.b)
20
);
21
}
22
23
float
ColorSpace::LinearToSRGB
(
float
c)
24
{
25
if
(c <= 0.0031308f)
26
return
12.92f * c;
27
else
28
return
1.055f * std::pow(c, 1.0f / 2.4f) - 0.055f;
29
}
30
31
glm::vec3
ColorSpace::LinearToSRGB
(
const
glm::vec3& color)
32
{
33
return
glm::vec3(
34
LinearToSRGB
(color.r),
35
LinearToSRGB
(color.g),
36
LinearToSRGB
(color.b)
37
);
38
}
39
40
}
// namespace rendering_engine
rendering_engine::ColorSpace::LinearToSRGB
static float LinearToSRGB(float c)
Converts a single linear channel to sRGB space.
Definition
Source/color_space.cpp:23
rendering_engine::ColorSpace::SRGBToLinear
static float SRGBToLinear(float c)
Converts a single sRGB channel to linear space.
Definition
Source/color_space.cpp:6
color_space.hpp
rendering_engine
Definition
actor.hpp:13
RenderingEngine
RenderingLibrary
Source
color_space.cpp
Generated by
1.9.8