AVBasicVideoOutput/Shaders/Shader.fsh
/* |
Copyright (C) 2015 Apple Inc. All Rights Reserved. |
See LICENSE.txt for this sample’s licensing information |
Abstract: |
Fragment shader that adjusts the luminance value based on the input sliders and renders the input texture. |
*/ |
varying highp vec2 texCoordVarying; |
precision mediump float; |
uniform float lumaThreshold; |
uniform float chromaThreshold; |
uniform sampler2D SamplerY; |
uniform sampler2D SamplerUV; |
uniform mat3 colorConversionMatrix; |
void main() |
{ |
mediump vec3 yuv; |
lowp vec3 rgb; |
// Subtract constants to map the video range start at 0 |
yuv.x = (texture2D(SamplerY, texCoordVarying).r - (16.0/255.0))* lumaThreshold; |
yuv.yz = (texture2D(SamplerUV, texCoordVarying).rg - vec2(0.5, 0.5))* chromaThreshold; |
rgb = colorConversionMatrix * yuv; |
gl_FragColor = vec4(rgb,1); |
} |
Copyright © 2015 Apple Inc. All Rights Reserved. Terms of Use | Privacy Policy | Updated: 2015-10-01