前面
有时很想自己做一些很酷炫的image effect,但又不知道要从何开始,不妨先学习学习官方的Image effect是怎么实现的。这一篇主要探究鱼眼效果是如何实现的。下附两幅图看看效果是啥样的:
主要
我们现在正式看看它是怎么实现的,一个完整的屏幕特效分为两部分,一是cpu部分,它负责决定何时执行,并把rendertexture和相关参数传递给gpu,二是gpu部分,也就是处理rendertexture的shader,它负责处理当前rendertexture并输出。
先附上C#代码:
using System;
using UnityEngine;
namespace UnityStandardAssets.ImageEffects
{
[ExecuteInEditMode]
[RequireComponent (typeof(Camera))]
[AddComponentMenu ("Image Effects/Displacement/Fisheye")]
class Fisheye : PostEffectsBase
{
public float strengthX = 0.05f;
public float strengthY = 0.05f;
public Shader fishEyeShader = null;
private Material fisheyeMaterial = null;
public override bool CheckResources ()
{
CheckSupport (false);
fisheye