А из шейдера это можно сделать побыстрее. Например, как я понял, вот так:
Синтаксис:
Используется glsl
Shader "Hidden/Test Effect" {
Properties {
_MainTex ("Base (RGB)", 2D) = "white" {}
}
SubShader {
Pass {
ZTest Always Cull Off ZWrite Off
Fog { Mode off }
CGPROGRAM
#pragma vertex vert_img
#pragma fragment frag
#pragma fragmentoption ARB_precision_hint_fastest
#include "UnityCG.cginc"
uniform sampler2D _MainTex;
fixed total_r = 0;
fixed total_g = 0;
fixed total_b = 0;
fixed4 frag (v2f_img i): COLOR {
fixed4 orig = tex2D(_MainTex, i.uv);
total_r += orig.rr;
total_g += orig.gg;
total_b += orig.bb;
return orig;
}
ENDCG
}
}
Fallback off
}
Properties {
_MainTex ("Base (RGB)", 2D) = "white" {}
}
SubShader {
Pass {
ZTest Always Cull Off ZWrite Off
Fog { Mode off }
CGPROGRAM
#pragma vertex vert_img
#pragma fragment frag
#pragma fragmentoption ARB_precision_hint_fastest
#include "UnityCG.cginc"
uniform sampler2D _MainTex;
fixed total_r = 0;
fixed total_g = 0;
fixed total_b = 0;
fixed4 frag (v2f_img i): COLOR {
fixed4 orig = tex2D(_MainTex, i.uv);
total_r += orig.rr;
total_g += orig.gg;
total_b += orig.bb;
return orig;
}
ENDCG
}
}
Fallback off
}
Только вот как потом из него извлечь total_r, total_g и total_b?