private static void Render4TapQuad(RenderTexture dest, float offsetX, float offsetY) { GL.Begin(7); Vector2 vector = Vector2.get_zero(); if (dest != null) { vector = dest.GetTexelOffset() * 0.75f; } FunkyGlowingThingsEffect.Set4TexCoords(vector.x, vector.y, offsetX, offsetY); GL.Vertex3((float)0, (float)0, 0.1f); FunkyGlowingThingsEffect.Set4TexCoords(1f + vector.x, vector.y, offsetX, offsetY); GL.Vertex3((float)1, (float)0, 0.1f); FunkyGlowingThingsEffect.Set4TexCoords(1f + vector.x, 1f + vector.y, offsetX, offsetY); GL.Vertex3((float)1, (float)1, 0.1f); FunkyGlowingThingsEffect.Set4TexCoords(vector.x, 1f + vector.y, offsetX, offsetY); GL.Vertex3((float)0, (float)1, 0.1f); GL.End(); }
private void DownSample4x(RenderTexture source, RenderTexture dest) { RenderTexture.set_active(dest); source.SetGlobalShaderProperty("__RenderTex"); float offsetX = 1f / (float)source.get_width(); float offsetY = 1f / (float)source.get_height(); GL.PushMatrix(); GL.LoadOrtho(); Material material = this.GetMaterial(); checked { for (int i = 0; i < material.get_passCount(); i++) { material.SetPass(i); FunkyGlowingThingsEffect.Render4TapQuad(dest, offsetX, offsetY); } GL.PopMatrix(); } }
private void FourTapCone(RenderTexture source, RenderTexture dest, int iteration) { RenderTexture.set_active(dest); source.SetGlobalShaderProperty("__RenderTex"); float offsetX = (0.5f + (float)iteration * this.blurSpread) / (float)source.get_width(); float offsetY = (0.5f + (float)iteration * this.blurSpread) / (float)source.get_height(); GL.PushMatrix(); GL.LoadOrtho(); Material material = this.GetMaterial(); checked { for (int i = 0; i < material.get_passCount(); i++) { material.SetPass(i); FunkyGlowingThingsEffect.Render4TapQuad(dest, offsetX, offsetY); } GL.PopMatrix(); } }