4 namespace UnityStandardAssets.ImageEffects
7 [RequireComponent (typeof(Camera))]
10 void OnRenderImage (RenderTexture source, RenderTexture destination)
12 Debug.Log(
"OnRenderImage in Helper called ...");
15 static void DrawLowLevelPlaneAlignedWithCamera (
17 RenderTexture source, RenderTexture dest ,
19 Camera cameraForProjectionMatrix )
22 RenderTexture.active = dest;
24 material.SetTexture(
"_MainTex", source);
29 GL.LoadProjectionMatrix(cameraForProjectionMatrix.projectionMatrix);
31 float fovYHalfRad = cameraForProjectionMatrix.fieldOfView * 0.5f * Mathf.Deg2Rad;
32 float cotangent = Mathf.Cos(fovYHalfRad) / Mathf.Sin(fovYHalfRad);
33 float asp = cameraForProjectionMatrix.aspect;
35 float x1 = asp/-cotangent;
36 float x2 = asp/cotangent;
37 float y1 = 1.0f/-cotangent;
38 float y2 = 1.0f/cotangent;
49 for (
int i = 0; i < material.passCount; i++)
57 y1_ = 1.0f; y2_ = 0.0f;
61 y1_ = 0.0f; y2_ = 1.0f;
63 GL.TexCoord2(0.0f, y1_); GL.Vertex3(x1, y1, z1);
64 GL.TexCoord2(1.0f, y1_); GL.Vertex3(x2, y1, z1);
65 GL.TexCoord2(1.0f, y2_); GL.Vertex3(x2, y2, z1);
66 GL.TexCoord2(0.0f, y2_); GL.Vertex3(x1, y2, z1);
73 static void DrawBorder (
82 RenderTexture.active = dest;
88 for (
int i = 0; i < material.passCount; i++)
95 y1_ = 1.0f; y2_ = 0.0f;
99 y1_ = 0.0f; y2_ = 1.0f;
104 x2 = 0.0f + 1.0f/(dest.width*1.0f);
109 GL.TexCoord2(0.0f, y1_); GL.Vertex3(x1, y1, 0.1f);
110 GL.TexCoord2(1.0f, y1_); GL.Vertex3(x2, y1, 0.1f);
111 GL.TexCoord2(1.0f, y2_); GL.Vertex3(x2, y2, 0.1f);
112 GL.TexCoord2(0.0f, y2_); GL.Vertex3(x1, y2, 0.1f);
115 x1 = 1.0f - 1.0f/(dest.width*1.0f);
120 GL.TexCoord2(0.0f, y1_); GL.Vertex3(x1, y1, 0.1f);
121 GL.TexCoord2(1.0f, y1_); GL.Vertex3(x2, y1, 0.1f);
122 GL.TexCoord2(1.0f, y2_); GL.Vertex3(x2, y2, 0.1f);
123 GL.TexCoord2(0.0f, y2_); GL.Vertex3(x1, y2, 0.1f);
129 y2 = 0.0f + 1.0f/(dest.height*1.0f);
131 GL.TexCoord2(0.0f, y1_); GL.Vertex3(x1, y1, 0.1f);
132 GL.TexCoord2(1.0f, y1_); GL.Vertex3(x2, y1, 0.1f);
133 GL.TexCoord2(1.0f, y2_); GL.Vertex3(x2, y2, 0.1f);
134 GL.TexCoord2(0.0f, y2_); GL.Vertex3(x1, y2, 0.1f);
139 y1 = 1.0f - 1.0f/(dest.height*1.0f);
142 GL.TexCoord2(0.0f, y1_); GL.Vertex3(x1, y1, 0.1f);
143 GL.TexCoord2(1.0f, y1_); GL.Vertex3(x2, y1, 0.1f);
144 GL.TexCoord2(1.0f, y2_); GL.Vertex3(x2, y2, 0.1f);
145 GL.TexCoord2(0.0f, y2_); GL.Vertex3(x1, y2, 0.1f);
153 static void DrawLowLevelQuad (
float x1,
float x2,
float y1,
float y2, RenderTexture source, RenderTexture dest, Material material )
156 RenderTexture.active = dest;
158 material.SetTexture(
"_MainTex", source);
164 for (
int i = 0; i < material.passCount; i++)
169 float y1_;
float y2_;
172 y1_ = 1.0f; y2_ = 0.0f;
176 y1_ = 0.0f; y2_ = 1.0f;
178 GL.TexCoord2(0.0f, y1_); GL.Vertex3(x1, y1, 0.1f);
179 GL.TexCoord2(1.0f, y1_); GL.Vertex3(x2, y1, 0.1f);
180 GL.TexCoord2(1.0f, y2_); GL.Vertex3(x2, y2, 0.1f);
181 GL.TexCoord2(0.0f, y2_); GL.Vertex3(x1, y2, 0.1f);