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