/** * Kepler - Core * Copyright (c) 2010 kaj dijkstra STUDIOS * All rights reserved. */ /** * Author: Kaj Dijksta */ attribute vec3 position; attribute vec2 uv; uniform mat4 viewProjection; varying vec2 v_textureCoord; void main(void) { v_textureCoord = uv; gl_Position = viewProjection * vec4(position, 1.0); } // #keplerEngine - Split precision highp float; uniform sampler2D colorSampler; uniform float exposure; varying vec2 v_textureCoord; vec3 HDR_ACES(const vec3 x) { // Narkowicz 2015, "ACES Filmic Tone Mapping Curve" const float a = 2.51; const float b = 0.03; const float c = 2.43; const float d = 0.59; const float e = 0.14; return (x * (a * x + b)) / (x * (c * x + d) + e); } vec3 tonemap(const vec3 x) { return HDR_ACES(x); } float linearToSRGB(float c) { return (c <= 0.0031308) ? c * 12.92 : (pow(abs(c), 1.0 / 2.4) * 1.055) - 0.055; } vec3 linearToSRGB(vec3 c) { return vec3(linearToSRGB(c.r), linearToSRGB(c.g), linearToSRGB(c.b)); } void main() { vec3 pbr = texture2D( colorSampler, v_textureCoord ).rgb; gl_FragColor = vec4( pbr , 1.0 ); //pbr.rgb *= exposure; //if(v_textureCoord.x < 0.5) { // gl_FragColor = vec4( linearToSRGB( tonemap(pbr) ), 1.0 ); //} else { // gl_FragColor = vec4( //} }