1 using System;
2 using
UnityEngine;
3
4 namespace
UnityStandardAssets.ImageEffects
5 {
6     
[ExecuteInEditMode]
7     
[RequireComponent (typeof(Camera))]
8     
[AddComponentMenu ("Image Effects/Displacement/Fisheye")]
9     
class Fisheye : PostEffectsBase
10     {
11         
public float strengthX = 0.05f;
12         
public float strengthY = 0.05f;
13
14         
public Shader fishEyeShader = null;
15         
private Material fisheyeMaterial = null;
16
17
18         
public override bool CheckResources ()
19         {
20             CheckSupport (
false);
21             fisheyeMaterial = CheckShaderAndCreateMaterial(fishEyeShader,fisheyeMaterial);
22
23             
if (!isSupported)
24                 ReportAutoDisable ();
25             
return isSupported;
26         }
27
28         
void OnRenderImage (RenderTexture source, RenderTexture destination)
29         {
30             
if (CheckResources()==false)
31             {
32                 Graphics.Blit (source, destination);
33                 
return;
34             }
35
36             
float oneOverBaseSize = 80.0f / 512.0f; // to keep values more like in the old version of fisheye
37
38             
float ar = (source.width * 1.0f) / (source.height * 1.0f);
39
40             fisheyeMaterial.SetVector (
"intensity", new Vector4 (strengthX * ar * oneOverBaseSize, strengthY * oneOverBaseSize, strengthX * ar * oneOverBaseSize, strengthY * oneOverBaseSize));
41             Graphics.Blit (source, destination, fisheyeMaterial);
42         }
43     }
44 }


float oneOverBaseSize = 80.0f 512.0f; to keep values more like in the old version of fisheye



Gõ tìm kiếm nhanh...