18 #ifndef PIC_COLORS_COLOR_HPP 19 #define PIC_COLORS_COLOR_HPP 21 #include "../base.hpp" 23 #include "../util/math.hpp" 24 #include "../util/vec.hpp" 36 for (
int i = 0; i < N; i++) {
50 for (
int i = 0; i < N; i++) {
64 for (
int i = 0; i < N; i++) {
65 in.
data[i] *= expf(-sigma_t.
data[i] * t);
77 return 0.213f * in.
data[0] +
89 for (
int i = 0; i < N; i++) {
90 in.
data[i] = in.
data[i] * 0.5f + 0.5f;
105 for(
uint i = 0; i < N; i++) {
111 CDF[0] = in.
data[0] / sum;
112 for(
uint i = 1; i < (N - 1); i++) {
113 CDF[i] = (CDF[i - 1] + in.
data[i]) / sum;
117 for(
uint i = 0; i < N; i++) {
120 pdf = in.
data[i] / sum;
124 channel = int(e *
float(N - 1));
125 pdf = 1.0f / float(N);
145 ret.
clamp(0.0f, maxVal);
void importanceSampling(Vec< N, float > &in, float e, int &channel, float &pdf)
importanceSampling
Definition: color.hpp:102
void vecGamma(Vec< N, float > &ret, float g)
Definition: vec.hpp:777
unsigned int uint
Definition: base.hpp:23
float colorLuminance(Vec< N, float > &in)
colorLuminance
Definition: color.hpp:75
T data[N]
Definition: vec.hpp:38
void scaleTau(Vec< N, float > &in, const Vec< N, float > &tau)
scaleTau
Definition: color.hpp:34
void clamp(T min, T max)
clamp
Definition: vec.hpp:324
Vec< N, T > clone()
Definition: vec.hpp:171
Definition: bilateral_separation.hpp:25
Vec< N, float > convertToLDR(Vec< N, float > &in, float exposure=1.0f, float gammaCor=2.2f, float maxVal=255.0f)
convertToLDR
Definition: color.hpp:138
The Vec class.
Definition: vec.hpp:35
void colorSaturate(Vec< N, float > &in)
colorSaturate
Definition: color.hpp:87