uniform sampler2D m_Texture; | |
varying vec2 texCoord; | |
uniform int m_NumColors; | |
uniform float m_Gamma; | |
uniform float m_Strength; | |
void main() { | |
vec4 texVal = texture2D(m_Texture, texCoord); | |
texVal = pow(texVal, vec4(m_Gamma)); | |
texVal = texVal * vec4(m_NumColors); | |
texVal = floor(texVal); | |
texVal = texVal / vec4(m_NumColors); | |
texVal = pow(texVal, vec4(1.0/m_Gamma)); | |
gl_FragColor = mix(texture2D(m_Texture, texCoord), texVal, m_Strength); | |
} |