1/* 2 * Copyright 2011-2019 Branimir Karadzic. All rights reserved. 3 * License: https://github.com/bkaradzic/bgfx#license-bsd-2-clause 4 */ 5 6#include "../common/common.sh" 7 8uniform vec4 u_offset[16]; 9uniform vec4 u_tonemap; 10#define u_time u_tonemap.w 11 12float reinhard(float _x) 13{ 14 return _x / (_x + 1.0); 15} 16 17vec3 reinhard(vec3 _x) 18{ 19 return _x / (_x + 1.0); 20} 21 22float reinhard2(float _x, float _whiteSqr) 23{ 24 return (_x * (1.0 + _x/_whiteSqr) ) / (1.0 + _x); 25} 26 27vec3 reinhard2(vec3 _x, float _whiteSqr) 28{ 29 return (_x * (1.0 + _x/_whiteSqr) ) / (1.0 + _x); 30} 31 32vec4 blur9(sampler2D _sampler, vec2 _uv0, vec4 _uv1, vec4 _uv2, vec4 _uv3, vec4 _uv4) 33{ 34#define _BLUR9_WEIGHT_0 1.0 35#define _BLUR9_WEIGHT_1 0.9 36#define _BLUR9_WEIGHT_2 0.55 37#define _BLUR9_WEIGHT_3 0.18 38#define _BLUR9_WEIGHT_4 0.1 39#define _BLUR9_NORMALIZE (_BLUR9_WEIGHT_0+2.0*(_BLUR9_WEIGHT_1+_BLUR9_WEIGHT_2+_BLUR9_WEIGHT_3+_BLUR9_WEIGHT_4) ) 40#define BLUR9_WEIGHT(_x) (_BLUR9_WEIGHT_##_x/_BLUR9_NORMALIZE) 41 42 vec4 blur; 43 blur = texture2D(_sampler, _uv0)*BLUR9_WEIGHT(0); 44 blur += texture2D(_sampler, _uv1.xy)*BLUR9_WEIGHT(1); 45 blur += texture2D(_sampler, _uv1.zw)*BLUR9_WEIGHT(1); 46 blur += texture2D(_sampler, _uv2.xy)*BLUR9_WEIGHT(2); 47 blur += texture2D(_sampler, _uv2.zw)*BLUR9_WEIGHT(2); 48 blur += texture2D(_sampler, _uv3.xy)*BLUR9_WEIGHT(3); 49 blur += texture2D(_sampler, _uv3.zw)*BLUR9_WEIGHT(3); 50 blur += texture2D(_sampler, _uv4.xy)*BLUR9_WEIGHT(4); 51 blur += texture2D(_sampler, _uv4.zw)*BLUR9_WEIGHT(4); 52 return blur; 53} 54