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.