mirror of
https://github.com/overte-org/overte.git
synced 2025-04-08 02:14:26 +02:00
FIxing the gamma correction for Quest, intoducing simple gpu lib conversion shaders
This commit is contained in:
parent
26ad42b965
commit
4ee2b43229
3 changed files with 6 additions and 26 deletions
|
@ -1,23 +0,0 @@
|
|||
// OpenGLDisplayPlugin_present.frag
|
||||
|
||||
LAYOUT(binding=0) uniform sampler2D colorMap;
|
||||
|
||||
layout(location=0) in vec2 varTexCoord0;
|
||||
|
||||
layout(location=0) out vec4 outFragColor;
|
||||
|
||||
float sRGBFloatToLinear(float value) {
|
||||
const float SRGB_ELBOW = 0.04045;
|
||||
|
||||
return mix(pow((value + 0.055) / 1.055, 2.4), value / 12.92, float(value <= SRGB_ELBOW));
|
||||
}
|
||||
|
||||
vec3 colorToLinearRGB(vec3 srgb) {
|
||||
return vec3(sRGBFloatToLinear(srgb.r), sRGBFloatToLinear(srgb.g), sRGBFloatToLinear(srgb.b));
|
||||
}
|
||||
|
||||
void main(void) {
|
||||
outFragColor.a = 1.0;
|
||||
// outFragColor.rgb = colorToLinearRGB(texture(colorMap, varTexCoord0).rgb);
|
||||
outFragColor.rgb = pow(texture(colorMap, varTexCoord0).rgb, vec3(1.0 / 2.2));
|
||||
}
|
|
@ -1 +0,0 @@
|
|||
VERTEX gpu::vertex::DrawUnitQuadTexcoord
|
|
@ -23,7 +23,10 @@ float color_scalar_sRGBToLinear(float value) {
|
|||
}
|
||||
|
||||
vec3 color_sRGBToLinear(vec3 srgb) {
|
||||
return vec3(color_scalar_sRGBToLinear(srgb.r), color_scalar_sRGBToLinear(srgb.g), color_scalar_sRGBToLinear(srgb.b));
|
||||
// return vec3(color_scalar_sRGBToLinear(srgb.r), color_scalar_sRGBToLinear(srgb.g), color_scalar_sRGBToLinear(srgb.b));
|
||||
// Same as pow(value, 2.2)
|
||||
return mix(pow((srgb + vec3(0.055)) / vec3(1.055), vec3(2.4)), srgb / vec3(12.92), vec3(lessThanEqual(srgb, vec3(0.04045))));
|
||||
|
||||
}
|
||||
|
||||
vec4 color_sRGBAToLinear(vec4 srgba) {
|
||||
|
@ -38,7 +41,8 @@ float color_scalar_LinearTosRGB(float value) {
|
|||
|
||||
vec3 color_LinearTosRGB(vec3 lrgb) {
|
||||
// Same as return pow(lrgb, 1/2.2)
|
||||
return vec3(color_scalar_LinearTosRGB(lrgb.r), color_scalar_LinearTosRGB(lrgb.g), color_scalar_LinearTosRGB(lrgb.b));
|
||||
// return vec3(color_scalar_LinearTosRGB(lrgb.r), color_scalar_LinearTosRGB(lrgb.g), color_scalar_LinearTosRGB(lrgb.b));
|
||||
return mix(vec3(1.055) * pow(vec3(lrgb), vec3(0.41666)) - vec3(0.055), vec3(lrgb) * vec3(12.92), vec3(lessThan(lrgb, vec3(0.0031308))));
|
||||
}
|
||||
|
||||
vec4 color_LinearTosRGBA(vec4 lrgba) {
|
||||
|
|
Loading…
Reference in a new issue