scripts
This commit is contained in:
@@ -0,0 +1,168 @@
|
||||
using System;
|
||||
using UnityEngine;
|
||||
|
||||
namespace UnityStandardAssets.ImageEffects
|
||||
{
|
||||
// Token: 0x0200008B RID: 139
|
||||
[ExecuteInEditMode]
|
||||
[RequireComponent(typeof(Camera))]
|
||||
[AddComponentMenu("Image Effects/Rendering/Sun Shafts")]
|
||||
public class SunShafts : PostEffectsBase
|
||||
{
|
||||
// Token: 0x06000193 RID: 403 RVA: 0x00011DCC File Offset: 0x000101CC
|
||||
public override bool CheckResources()
|
||||
{
|
||||
base.CheckSupport(this.useDepthTexture);
|
||||
this.sunShaftsMaterial = base.CheckShaderAndCreateMaterial(this.sunShaftsShader, this.sunShaftsMaterial);
|
||||
this.simpleClearMaterial = base.CheckShaderAndCreateMaterial(this.simpleClearShader, this.simpleClearMaterial);
|
||||
if (!this.isSupported)
|
||||
{
|
||||
base.ReportAutoDisable();
|
||||
}
|
||||
return this.isSupported;
|
||||
}
|
||||
|
||||
// Token: 0x06000194 RID: 404 RVA: 0x00011E30 File Offset: 0x00010230
|
||||
private void OnRenderImage(RenderTexture source, RenderTexture destination)
|
||||
{
|
||||
if (!this.CheckResources())
|
||||
{
|
||||
Graphics.Blit(source, destination);
|
||||
return;
|
||||
}
|
||||
if (this.useDepthTexture)
|
||||
{
|
||||
base.GetComponent<Camera>().depthTextureMode |= DepthTextureMode.Depth;
|
||||
}
|
||||
int num = 4;
|
||||
if (this.resolution == SunShafts.SunShaftsResolution.Normal)
|
||||
{
|
||||
num = 2;
|
||||
}
|
||||
else if (this.resolution == SunShafts.SunShaftsResolution.High)
|
||||
{
|
||||
num = 1;
|
||||
}
|
||||
Vector3 vector = Vector3.one * 0.5f;
|
||||
if (this.sunTransform)
|
||||
{
|
||||
vector = base.GetComponent<Camera>().WorldToViewportPoint(this.sunTransform.position);
|
||||
}
|
||||
else
|
||||
{
|
||||
vector = new Vector3(0.5f, 0.5f, 0f);
|
||||
}
|
||||
int num2 = source.width / num;
|
||||
int num3 = source.height / num;
|
||||
RenderTexture renderTexture = RenderTexture.GetTemporary(num2, num3, 0);
|
||||
this.sunShaftsMaterial.SetVector("_BlurRadius4", new Vector4(1f, 1f, 0f, 0f) * this.sunShaftBlurRadius);
|
||||
this.sunShaftsMaterial.SetVector("_SunPosition", new Vector4(vector.x, vector.y, vector.z, this.maxRadius));
|
||||
this.sunShaftsMaterial.SetVector("_SunThreshold", this.sunThreshold);
|
||||
if (!this.useDepthTexture)
|
||||
{
|
||||
RenderTextureFormat renderTextureFormat = ((!base.GetComponent<Camera>().allowHDR) ? RenderTextureFormat.Default : RenderTextureFormat.DefaultHDR);
|
||||
RenderTexture temporary = RenderTexture.GetTemporary(source.width, source.height, 0, renderTextureFormat);
|
||||
RenderTexture.active = temporary;
|
||||
GL.ClearWithSkybox(false, base.GetComponent<Camera>());
|
||||
this.sunShaftsMaterial.SetTexture("_Skybox", temporary);
|
||||
Graphics.Blit(source, renderTexture, this.sunShaftsMaterial, 3);
|
||||
RenderTexture.ReleaseTemporary(temporary);
|
||||
}
|
||||
else
|
||||
{
|
||||
Graphics.Blit(source, renderTexture, this.sunShaftsMaterial, 2);
|
||||
}
|
||||
base.DrawBorder(renderTexture, this.simpleClearMaterial);
|
||||
this.radialBlurIterations = Mathf.Clamp(this.radialBlurIterations, 1, 4);
|
||||
float num4 = this.sunShaftBlurRadius * 0.0013020834f;
|
||||
this.sunShaftsMaterial.SetVector("_BlurRadius4", new Vector4(num4, num4, 0f, 0f));
|
||||
this.sunShaftsMaterial.SetVector("_SunPosition", new Vector4(vector.x, vector.y, vector.z, this.maxRadius));
|
||||
for (int i = 0; i < this.radialBlurIterations; i++)
|
||||
{
|
||||
RenderTexture temporary2 = RenderTexture.GetTemporary(num2, num3, 0);
|
||||
Graphics.Blit(renderTexture, temporary2, this.sunShaftsMaterial, 1);
|
||||
RenderTexture.ReleaseTemporary(renderTexture);
|
||||
num4 = this.sunShaftBlurRadius * (((float)i * 2f + 1f) * 6f) / 768f;
|
||||
this.sunShaftsMaterial.SetVector("_BlurRadius4", new Vector4(num4, num4, 0f, 0f));
|
||||
renderTexture = RenderTexture.GetTemporary(num2, num3, 0);
|
||||
Graphics.Blit(temporary2, renderTexture, this.sunShaftsMaterial, 1);
|
||||
RenderTexture.ReleaseTemporary(temporary2);
|
||||
num4 = this.sunShaftBlurRadius * (((float)i * 2f + 2f) * 6f) / 768f;
|
||||
this.sunShaftsMaterial.SetVector("_BlurRadius4", new Vector4(num4, num4, 0f, 0f));
|
||||
}
|
||||
if (vector.z >= 0f)
|
||||
{
|
||||
this.sunShaftsMaterial.SetVector("_SunColor", new Vector4(this.sunColor.r, this.sunColor.g, this.sunColor.b, this.sunColor.a) * this.sunShaftIntensity);
|
||||
}
|
||||
else
|
||||
{
|
||||
this.sunShaftsMaterial.SetVector("_SunColor", Vector4.zero);
|
||||
}
|
||||
this.sunShaftsMaterial.SetTexture("_ColorBuffer", renderTexture);
|
||||
Graphics.Blit(source, destination, this.sunShaftsMaterial, (this.screenBlendMode != SunShafts.ShaftsScreenBlendMode.Screen) ? 4 : 0);
|
||||
RenderTexture.ReleaseTemporary(renderTexture);
|
||||
}
|
||||
|
||||
// Token: 0x04000379 RID: 889
|
||||
public SunShafts.SunShaftsResolution resolution = SunShafts.SunShaftsResolution.Normal;
|
||||
|
||||
// Token: 0x0400037A RID: 890
|
||||
public SunShafts.ShaftsScreenBlendMode screenBlendMode;
|
||||
|
||||
// Token: 0x0400037B RID: 891
|
||||
public Transform sunTransform;
|
||||
|
||||
// Token: 0x0400037C RID: 892
|
||||
public int radialBlurIterations = 2;
|
||||
|
||||
// Token: 0x0400037D RID: 893
|
||||
public Color sunColor = Color.white;
|
||||
|
||||
// Token: 0x0400037E RID: 894
|
||||
public Color sunThreshold = new Color(0.87f, 0.74f, 0.65f);
|
||||
|
||||
// Token: 0x0400037F RID: 895
|
||||
public float sunShaftBlurRadius = 2.5f;
|
||||
|
||||
// Token: 0x04000380 RID: 896
|
||||
public float sunShaftIntensity = 1.15f;
|
||||
|
||||
// Token: 0x04000381 RID: 897
|
||||
public float maxRadius = 0.75f;
|
||||
|
||||
// Token: 0x04000382 RID: 898
|
||||
public bool useDepthTexture = true;
|
||||
|
||||
// Token: 0x04000383 RID: 899
|
||||
public Shader sunShaftsShader;
|
||||
|
||||
// Token: 0x04000384 RID: 900
|
||||
private Material sunShaftsMaterial;
|
||||
|
||||
// Token: 0x04000385 RID: 901
|
||||
public Shader simpleClearShader;
|
||||
|
||||
// Token: 0x04000386 RID: 902
|
||||
private Material simpleClearMaterial;
|
||||
|
||||
// Token: 0x0200008C RID: 140
|
||||
public enum SunShaftsResolution
|
||||
{
|
||||
// Token: 0x04000388 RID: 904
|
||||
Low,
|
||||
// Token: 0x04000389 RID: 905
|
||||
Normal,
|
||||
// Token: 0x0400038A RID: 906
|
||||
High
|
||||
}
|
||||
|
||||
// Token: 0x0200008D RID: 141
|
||||
public enum ShaftsScreenBlendMode
|
||||
{
|
||||
// Token: 0x0400038C RID: 908
|
||||
Screen,
|
||||
// Token: 0x0400038D RID: 909
|
||||
Add
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user