Files
UltimateFishing/Assets/Scripts/Assembly-CSharp/uNature/Demo/UnityStandardAssets/StandardAssets_PostEffectsHelper.cs
2026-02-21 16:45:37 +08:00

177 lines
4.0 KiB
C#

using System;
using UnityEngine;
namespace uNature.Demo.UnityStandardAssets
{
[RequireComponent(typeof(Camera))]
[ExecuteInEditMode]
internal class StandardAssets_PostEffectsHelper : MonoBehaviour
{
private void OnRenderImage(RenderTexture source, RenderTexture destination)
{
Debug.Log("OnRenderImage in Helper called ...");
}
private static void DrawLowLevelPlaneAlignedWithCamera(float dist, RenderTexture source, RenderTexture dest, Material material, Camera cameraForProjectionMatrix)
{
RenderTexture.active = dest;
material.SetTexture("_MainTex", source);
bool flag = true;
GL.PushMatrix();
GL.LoadIdentity();
GL.LoadProjectionMatrix(cameraForProjectionMatrix.projectionMatrix);
float f = cameraForProjectionMatrix.fieldOfView * 0.5f * ((float)Math.PI / 180f);
float num = Mathf.Cos(f) / Mathf.Sin(f);
float aspect = cameraForProjectionMatrix.aspect;
float num2 = aspect / (0f - num);
float num3 = aspect / num;
float num4 = 1f / (0f - num);
float num5 = 1f / num;
float num6 = 1f;
num2 *= dist * num6;
num3 *= dist * num6;
num4 *= dist * num6;
num5 *= dist * num6;
float z = 0f - dist;
for (int i = 0; i < material.passCount; i++)
{
material.SetPass(i);
GL.Begin(7);
float y;
float y2;
if (flag)
{
y = 1f;
y2 = 0f;
}
else
{
y = 0f;
y2 = 1f;
}
GL.TexCoord2(0f, y);
GL.Vertex3(num2, num4, z);
GL.TexCoord2(1f, y);
GL.Vertex3(num3, num4, z);
GL.TexCoord2(1f, y2);
GL.Vertex3(num3, num5, z);
GL.TexCoord2(0f, y2);
GL.Vertex3(num2, num5, z);
GL.End();
}
GL.PopMatrix();
}
private static void DrawBorder(RenderTexture dest, Material material)
{
RenderTexture.active = dest;
bool flag = true;
GL.PushMatrix();
GL.LoadOrtho();
for (int i = 0; i < material.passCount; i++)
{
material.SetPass(i);
float y;
float y2;
if (flag)
{
y = 1f;
y2 = 0f;
}
else
{
y = 0f;
y2 = 1f;
}
float x = 0f;
float x2 = 1f / ((float)dest.width * 1f);
float y3 = 0f;
float y4 = 1f;
GL.Begin(7);
GL.TexCoord2(0f, y);
GL.Vertex3(x, y3, 0.1f);
GL.TexCoord2(1f, y);
GL.Vertex3(x2, y3, 0.1f);
GL.TexCoord2(1f, y2);
GL.Vertex3(x2, y4, 0.1f);
GL.TexCoord2(0f, y2);
GL.Vertex3(x, y4, 0.1f);
x = 1f - 1f / ((float)dest.width * 1f);
x2 = 1f;
y3 = 0f;
y4 = 1f;
GL.TexCoord2(0f, y);
GL.Vertex3(x, y3, 0.1f);
GL.TexCoord2(1f, y);
GL.Vertex3(x2, y3, 0.1f);
GL.TexCoord2(1f, y2);
GL.Vertex3(x2, y4, 0.1f);
GL.TexCoord2(0f, y2);
GL.Vertex3(x, y4, 0.1f);
x = 0f;
x2 = 1f;
y3 = 0f;
y4 = 1f / ((float)dest.height * 1f);
GL.TexCoord2(0f, y);
GL.Vertex3(x, y3, 0.1f);
GL.TexCoord2(1f, y);
GL.Vertex3(x2, y3, 0.1f);
GL.TexCoord2(1f, y2);
GL.Vertex3(x2, y4, 0.1f);
GL.TexCoord2(0f, y2);
GL.Vertex3(x, y4, 0.1f);
x = 0f;
x2 = 1f;
y3 = 1f - 1f / ((float)dest.height * 1f);
y4 = 1f;
GL.TexCoord2(0f, y);
GL.Vertex3(x, y3, 0.1f);
GL.TexCoord2(1f, y);
GL.Vertex3(x2, y3, 0.1f);
GL.TexCoord2(1f, y2);
GL.Vertex3(x2, y4, 0.1f);
GL.TexCoord2(0f, y2);
GL.Vertex3(x, y4, 0.1f);
GL.End();
}
GL.PopMatrix();
}
private static void DrawLowLevelQuad(float x1, float x2, float y1, float y2, RenderTexture source, RenderTexture dest, Material material)
{
RenderTexture.active = dest;
material.SetTexture("_MainTex", source);
bool flag = true;
GL.PushMatrix();
GL.LoadOrtho();
for (int i = 0; i < material.passCount; i++)
{
material.SetPass(i);
GL.Begin(7);
float y3;
float y4;
if (flag)
{
y3 = 1f;
y4 = 0f;
}
else
{
y3 = 0f;
y4 = 1f;
}
GL.TexCoord2(0f, y3);
GL.Vertex3(x1, y1, 0.1f);
GL.TexCoord2(1f, y3);
GL.Vertex3(x2, y1, 0.1f);
GL.TexCoord2(1f, y4);
GL.Vertex3(x2, y2, 0.1f);
GL.TexCoord2(0f, y4);
GL.Vertex3(x1, y2, 0.1f);
GL.End();
}
GL.PopMatrix();
}
}
}