Shader "Color Space/YCrCbtoRGB Add" { Properties { _YTex ("Y (RGB)", 2D) = "white" {} _CbTex ("Cb (RGB)", 2D) = "white" {} _CrTex ("Cr (RGB)", 2D) = "white" {} } SubShader { Tags { "QUEUE"="Overlay" "RenderType"="Opaque" } Pass { Tags { "QUEUE"="Overlay" "RenderType"="Opaque" } Fog { Color (0,0,0,0) } Blend One One ColorMask RGB Program "vp" { SubProgram "gles " { "!!GLES #ifdef VERTEX varying highp vec2 xlv_TEXCOORD0; uniform highp vec4 _YTex_ST; uniform highp mat4 glstate_matrix_mvp; attribute vec4 _glesMultiTexCoord0; attribute vec4 _glesVertex; void main () { gl_Position = (glstate_matrix_mvp * _glesVertex); xlv_TEXCOORD0 = ((_glesMultiTexCoord0.xy * _YTex_ST.xy) + _YTex_ST.zw); } #endif #ifdef FRAGMENT varying highp vec2 xlv_TEXCOORD0; uniform sampler2D _CrTex; uniform sampler2D _CbTex; uniform sampler2D _YTex; void main () { mediump vec4 rgbVec_1; mediump vec4 yuvVec_2; lowp vec4 tmpvar_3; tmpvar_3.w = 1.0; tmpvar_3.x = texture2D (_YTex, xlv_TEXCOORD0).x; tmpvar_3.y = texture2D (_CbTex, xlv_TEXCOORD0).y; tmpvar_3.z = texture2D (_CrTex, xlv_TEXCOORD0).z; yuvVec_2 = tmpvar_3; rgbVec_1.x = dot (vec4(1.16438, 0.0, 1.59603, -0.870785), yuvVec_2); rgbVec_1.y = dot (vec4(1.16438, -0.391762, -0.812969, 0.529594), yuvVec_2); rgbVec_1.z = dot (vec4(1.16438, 2.01723, 0.0, -1.08139), yuvVec_2); rgbVec_1.w = 0.3; gl_FragData[0] = rgbVec_1; } #endif" } } Program "fp" { SubProgram "gles " { "!!GLES" } } } } Fallback "VertexLit" }