How many passes are in this material (Read Only).
This is mostly used in direct drawing code using GL class. For example, Image Effects use materials for implementing screen post-processing. For each pass in the material they activate the pass (see SetPass) and draw a fullscreen quad.
Here is an example of a full image effect that inverts the colors. Add this script to the camera and see it in play mode.private var mat : Material; function Start () { mat = new Material ( "Shader \"Hidden/Invert\" {" + "SubShader {" + " Pass {" + " ZTest Always Cull Off ZWrite Off" + " SetTexture [_RenderTex] { combine one-texture }" + " }" + "}" + "}" ); } function OnRenderImage (source : RenderTexture, dest : RenderTexture) { RenderTexture.active = dest; source.SetGlobalShaderProperty ("_RenderTex"); GL.PushMatrix (); GL.LoadOrtho (); // for each pass in the material (one in this case) for (var i = 0; i < mat.passCount; ++i) { // activate pass mat.SetPass (i); // draw a quad GL.Begin( GL.QUADS ); GL.TexCoord2( 0, 0 ); GL.Vertex3( 0, 0, 0.1 ); GL.TexCoord2( 1, 0 ); GL.Vertex3( 1, 0, 0.1 ); GL.TexCoord2( 1, 1 ); GL.Vertex3( 1, 1, 0.1 ); GL.TexCoord2( 0, 1 ); GL.Vertex3( 0, 1, 0.1 ); GL.End(); } GL.PopMatrix (); }
See Also: SetPass function, GL class, ShaderLab documentation.