Can I ExChange R,G and B channel using Shader?

Hi! I have a special problem in my project, I need to exchange the R,G and B channel of a RenderTexture. Now i achieve this in OnRender{} and exchange R,B and B channel pixel by Pixel. Can I ExChange R,G and B channel using Shader?

Well, a shader can do that.

If you just want to render a texture on an object with different channels, write a shader that does that.

For example you can create a new surface shader and change the line

fixed4 c = tex2D (_MainTex, IN.uv_MainTex) * _Color;

to

fixed4 c = tex2D (_MainTex, IN.uv_MainTex).gbra * _Color;

To swap the order.

Left is original, right is modified. All reds become blue, all greens become red and and blues become green.