源战役客户端
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 

69 lines
1.8 KiB

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
[RequireComponent(typeof(Camera))]
public class RadiusBlur : MonoBehaviour
{
static int radius_blur_dataId = Shader.PropertyToID("_RadiusData") ;
static int radius_blur_iterationId = Shader.PropertyToID("_RadiusIterationData") ;
[SerializeField]
public Material radius_material;
[SerializeField]
public int iteration{
get{
if(radius_material != null)
{
return (int)radius_material.GetVector(radius_blur_iterationId).x;
}
return 1;
}
set{
if(radius_material != null)
{
float invIteration = 1.0f / value;
radius_material.SetVector(radius_blur_iterationId, new Vector2(value, invIteration));
}
}
}
[SerializeField]
public Vector3 radius_data{
get{
if(radius_material != null)
{
return radius_material.GetVector(radius_blur_dataId);
}
return new Vector3(0.5f, 0.5f, 0.01f);
}
set{
if(radius_material != null)
{
radius_material.SetVector(radius_blur_dataId, value);
}
}
}
static int RADIUS_BLUR_PASS = 0;
private void Awake() {
if(radius_material != null)
{
radius_data = radius_material.GetVector(radius_blur_dataId);
iteration = (int)radius_material.GetVector(radius_blur_iterationId).x;
}
}
private void OnRenderImage(RenderTexture src, RenderTexture dest) {
if(radius_material)
{
Graphics.Blit(src, dest, radius_material, RADIUS_BLUR_PASS);
}
else
{
Graphics.Blit(src, dest);
}
}
}