7 [RequireComponent (typeof (Camera))]
8 [AddComponentMenu (
"Image Effects/Edge Detection/Edge Detection")]
13 TriangleDepthNormals = 0,
14 RobertsCrossDepthNormals = 1,
17 TriangleLuminance = 4,
22 public float sensitivityDepth = 1.0f;
23 public float sensitivityNormals = 1.0f;
24 public float lumThreshold = 0.2f;
25 public float edgeExp = 1.0f;
26 public float sampleDist = 1.0f;
27 public float edgesOnly = 0.0f;
28 public Color edgesOnlyBgColor = Color.white;
31 private Material edgeDetectMaterial = null;
39 edgeDetectMaterial = CheckShaderAndCreateMaterial (edgeDetectShader,edgeDetectMaterial);
59 GetComponent<Camera>().depthTextureMode |= DepthTextureMode.Depth;
61 GetComponent<Camera>().depthTextureMode |= DepthTextureMode.DepthNormals;
72 if (CheckResources () ==
false)
74 Graphics.Blit (source, destination);
78 Vector2 sensitivity =
new Vector2 (sensitivityDepth, sensitivityNormals);
79 edgeDetectMaterial.SetVector (
"_Sensitivity",
new Vector4 (sensitivity.x, sensitivity.y, 1.0f, sensitivity.y));
80 edgeDetectMaterial.SetFloat (
"_BgFade", edgesOnly);
81 edgeDetectMaterial.SetFloat (
"_SampleDistance", sampleDist);
82 edgeDetectMaterial.SetVector (
"_BgColor", edgesOnlyBgColor);
83 edgeDetectMaterial.SetFloat (
"_Exponent", edgeExp);
84 edgeDetectMaterial.SetFloat (
"_Threshold", lumThreshold);
86 Graphics.Blit (source, destination, edgeDetectMaterial, (
int) mode);
void OnRenderImage(RenderTexture source, RenderTexture destination)
override bool CheckResources()