Ejemplo n.º 1
0
 public override void OnEnable()
 {
     et = EffectType.EdgeDetection;
     CreateMaterial();
     oldMode = mode;
     SetCameraFlag();
 }
Ejemplo n.º 2
0
    void OnRenderImage(RenderTexture src, RenderTexture dest)
    {
        if (oldMode != mode)
        {
            SetCameraFlag();
            oldMode = mode;
        }

        if (material != null)
        {
            material.SetTexture("_NoiseTex", noiseTex);
            material.SetFloat("_EdgeOnly", edgesOnly);
            material.SetFloat("_ErrorPeriod", errorPeriod);
            material.SetFloat("_ErrorRange", errorRange);
            material.SetFloat("_NoiseAmount", noiseAmount);
            material.SetColor("_EdgeColor", edgeColor);
            material.SetColor("_BackgroundColor", backgroundColor);
            material.SetFloat("_SampleDistance", sampleDistance);
            material.SetVector("_Sensitivity", new Vector4(sensitivityNormals, sensitivityDepth, 0.0f, 0.0f));

            RenderTexture buffer = RenderTexture.GetTemporary(src.width, src.height, 0);

            Graphics.Blit(src, buffer, material, (int)mode);

            material.SetTexture("_EdgeTex", buffer);
            Graphics.Blit(src, dest, material, 3);

            RenderTexture.ReleaseTemporary(buffer);
        }
        else
        {
            Graphics.Blit(src, dest);
        }
    }
Ejemplo n.º 3
0
        public override void PreProcess(RenderTexture source, RenderTexture destination)
        {
            if (material == null)
            {
                CreateMaterial();
            }
            if (material != null)// && mGlowEnable)
            {
                if (mode != oldMode)
                {
                    SetCameraFlag();
                }
                oldMode = mode;
                if (EarlyOutIfNotSupported(source, destination))
                {
                    return;
                }
                Vector2 sensitivity = new Vector2(sensitivityDepth, sensitivityNormals);
                material.SetVector("_Sensitivity", new Vector4(sensitivity.x, sensitivity.y, 1.0f, sensitivity.y));
                material.SetFloat("_BgFade", edgesOnly);
                material.SetFloat("_SampleDistance", sampleDist);
                material.SetVector("_BgColor", edgesOnlyBgColor);
                material.SetFloat("_Exponent", edgeExp);
                material.SetFloat("_Threshold", lumThreshold);

                Graphics.Blit(source, destination, material, (int)mode);
            }
        }
Ejemplo n.º 4
0
        void SetCameraFlag()
        {
            if (mode == oldMode)
            {
                return;
            }

            if (oldMode == EdgeDetectMode.SobelDepth || oldMode == EdgeDetectMode.SobelDepthThin)
            {
                ImageEffectManager.API_DeAttachCameraRenderFlags(m_Camera, ref flagReference);
            }
            else if (oldMode == EdgeDetectMode.TriangleDepthNormals || oldMode == EdgeDetectMode.RobertsCrossDepthNormals)
            {
                ImageEffectManager.API_DeAttachCameraRenderFlags(m_Camera, ref flagReference);
            }


            if (mode == EdgeDetectMode.SobelDepth || mode == EdgeDetectMode.SobelDepthThin)
            {
                flagReference = ImageEffectManager.API_AttachCameraRenderFlags(m_Camera, DepthTextureMode.Depth);
            }
            else if (mode == EdgeDetectMode.TriangleDepthNormals || mode == EdgeDetectMode.RobertsCrossDepthNormals)
            {
                flagReference = ImageEffectManager.API_AttachCameraRenderFlags(m_Camera, DepthTextureMode.DepthNormals);
            }

            oldMode = mode;
        }
Ejemplo n.º 5
0
	void OnRenderImage (RenderTexture src, RenderTexture dest) {
		if (oldMode != mode) {
			SetCameraFlag();
			oldMode = mode;
		}

		if (material != null) {
			material.SetTexture("_NoiseTex", noiseTex);
			material.SetFloat("_EdgeOnly", edgesOnly);
			material.SetFloat("_ErrorPeriod", errorPeriod);
			material.SetFloat("_ErrorRange", errorRange);
			material.SetFloat("_NoiseAmount", noiseAmount);
			material.SetColor("_EdgeColor", edgeColor);
			material.SetColor("_BackgroundColor", backgroundColor);
			material.SetFloat("_SampleDistance", sampleDistance);
			material.SetVector("_Sensitivity", new Vector4(sensitivityNormals, sensitivityDepth, 0.0f, 0.0f));

			RenderTexture buffer = RenderTexture.GetTemporary(src.width, src.height, 0);

			Graphics.Blit(src, buffer, material, (int)mode);

			material.SetTexture("_EdgeTex", buffer);
			Graphics.Blit(src, dest, material, 3);

			RenderTexture.ReleaseTemporary(buffer);
		} else {
			Graphics.Blit(src, dest);
		}
	}
 public EdgeDetectEffectNormals()
 {
     this.mode               = EdgeDetectMode.SobelDepthThin;
     this.sensitivityDepth   = 1f;
     this.sensitivityNormals = 1f;
     this.lumThreshhold      = 0.2f;
     this.edgeExp            = 1f;
     this.sampleDist         = 1f;
     this.edgesOnlyBgColor   = Color.white;
     this.oldMode            = EdgeDetectMode.SobelDepthThin;
 }
Ejemplo n.º 7
0
	public override bool CheckResources () {
		 CheckSupport (true);
	
		edgeDetectMaterial = CheckShaderAndCreateMaterial (edgeDetectShader,edgeDetectMaterial);
		if (mode != oldMode)
			SetCameraFlag ();

		oldMode = mode;

		if (!isSupported)
			ReportAutoDisable ();
		return isSupported;
	}
Ejemplo n.º 8
0
        public override bool CheckResources()
        {
            this.CheckSupport (true);

            this.edgeDetectMaterial = this.CheckShaderAndCreateMaterial (this.edgeDetectShader, this.edgeDetectMaterial);
            if (this.mode != this.oldMode)
                this.SetCameraFlag ();

            this.oldMode = this.mode;

            if (!this.isSupported)
                this.ReportAutoDisable ();
            return this.isSupported;
        }
Ejemplo n.º 9
0
 public override bool CheckResources()
 {
     base.CheckSupport(true);
     this.edgeDetectMaterial = base.CheckShaderAndCreateMaterial(this.edgeDetectShader, this.edgeDetectMaterial);
     if (this.mode != this.oldMode)
     {
         this.SetCameraFlag();
     }
     this.oldMode = this.mode;
     if (!base.isSupported)
     {
         base.ReportAutoDisable();
     }
     return(base.isSupported);
 }
Ejemplo n.º 10
0
 public bool CheckResources()
 {
     CheckSupport(needDepth: true);
     edgeDetectMaterial = CheckShaderAndCreateMaterial(edgeDetectShader, edgeDetectMaterial);
     if (mode != oldMode)
     {
         SetCameraFlag();
     }
     oldMode = mode;
     if (!isSupported)
     {
         ReportAutoDisable();
     }
     return(isSupported);
 }
Ejemplo n.º 11
0
        public override bool CheckResources()
        {
            CheckSupport(mode != EdgeDetectMode.TriangleLuminance);

            edgeDetectMaterial = CheckShaderAndCreateMaterial(edgeDetectShader, edgeDetectMaterial);
            if (mode != oldMode)
            {
                SetCameraFlag();
            }

            oldMode = mode;

            if (!isSupported)
            {
                ReportAutoDisable();
            }
            return(isSupported);
        }
Ejemplo n.º 12
0
		public override bool CheckResources ()
		{
			CheckSupport (true);

            if (edgeDetectShader == null)
            {
                edgeDetectShader = Shader.Find("Hidden/EdgeDetectColors");
            }

            edgeDetectMaterial = CheckShaderAndCreateMaterial (edgeDetectShader,edgeDetectMaterial);
			if (mode != oldMode)
				SetCameraFlag ();
			
			oldMode = mode;
			
			if (!isSupported)
				ReportAutoDisable ();
			return isSupported;
		}
        public override bool CheckResources()
        {
            CheckSupport(true);

            edgeDetectMaterial = CheckShaderAndCreateMaterial(edgeDetectShader, edgeDetectMaterial);

            // Debug.LogWarning(edgeDetectShader);
            if (mode != oldMode)
            {
                SetCameraFlag();
            }

            oldMode = mode;

            if (!isSupported)
            {
                ReportAutoDisable();
            }
            return(isSupported);
        }
Ejemplo n.º 14
0
    void OnPostRender()
    {
        Vector2 sensitivity = new Vector2(sensitivityDepth, sensitivityNormals);

        PostprocessMaterials[0].SetVector("_Sensitivity", new Vector4(sensitivity.x, sensitivity.y, 1.0f, sensitivity.y));
        PostprocessMaterials[0].SetFloat("_BgFade", edgesOnly);
        PostprocessMaterials[0].SetFloat("_SampleDistance", sampleDist);
        PostprocessMaterials[0].SetVector("_BgColor", edgesOnlyBgColor);
        PostprocessMaterials[0].SetFloat("_Exponent", edgeExp);
        PostprocessMaterials[0].SetFloat("_Threshold", lumThreshold);

        Graphics.SetRenderTarget(Temp.colorBuffer, CameraRT.depthBuffer);
        Graphics.Blit(CameraRT, NormalRender);
        if (pfno != 0)
        {
            mode = 0;
        }
        Graphics.Blit(CameraRT, PostprocessMaterials[(int)pfno], (int)mode);
        RenderTexture.active = null;
        Graphics.Blit(Temp, NormalRender);
    }
Ejemplo n.º 15
0
        public override bool CheckResources()
        {
            CheckSupport(true);



            edgeDetectMaterial = CreateMaterialFromString(edgeDetectMaterial, HiddenShaderText.realCoolEdge);// This is where you'll want to plug the string in.



            if (mode != oldMode)
            {
                SetCameraFlag();
            }

            oldMode = mode;

            if (!isSupported)
            {
                ReportAutoDisable();
            }
            return(isSupported);
        }
Ejemplo n.º 16
0
        public override bool CheckResources()
        {
            CheckSupport(true);

            if (_camera)
            {
                _camera = GetComponent <Camera>();
            }

            edgeDetectMaterial = CheckShaderAndCreateMaterial(edgeDetectShader, edgeDetectMaterial);
            if (mode != oldMode)
            {
                SetCameraFlag();
            }

            oldMode = mode;

            if (!isSupported)
            {
                ReportAutoDisable();
            }
            return(isSupported);
        }
        public override bool CheckResources()
        {
            CheckSupport(true);

            edgeDetectMaterial = CheckShaderAndCreateMaterial(edgeDetectShader, edgeDetectMaterial);

            if (edgeDetectShader == null)
            {
                edgeDetectShader = (Shader)Resources.Load("EdgeDetectNormals.shader");
            }
            if (mode != oldMode)
            {
                SetCameraFlag();
            }

            oldMode = mode;

            if (!isSupported)
            {
                ReportAutoDisable();
            }
            return(isSupported);
        }
Ejemplo n.º 18
0
        public override void ToParam(object[] o)
        {
            if (o[0] != null)
            {
                this.mode = (EdgeDetectMode)(o[0]);
            }

            if (o[1] != null)
            {
                this.sensitivityDepth = Convert.ToSingle(o[1]);
            }

            if (o[2] != null)
            {
                sensitivityNormals = Convert.ToSingle(o[2]);
            }
            if (o[3] != null)
            {
                lumThreshold = Convert.ToSingle(o[3]);
            }
            if (o[4] != null)
            {
                edgeExp = Convert.ToSingle(o[4]);
            }
            if (o[5] != null)
            {
                sampleDist = Convert.ToSingle(o[5]);
            }
            if (o[6] != null)
            {
                edgesOnly = Convert.ToSingle(o[6]);
            }
            if (o[7] != null)
            {
                edgesOnlyBgColor = (Color)o[7];
            }
        }
Ejemplo n.º 19
0
 private new void Start()
 {
     oldMode	= mode;
 }
Ejemplo n.º 20
0
 public override void OnEnable()
 {
     oldMode = mode;
     SetCameraFlag();
 }
Ejemplo n.º 21
0
        new void Start ()
		{
            oldMode	= mode;
        }
Ejemplo n.º 22
0
 private void Start()
 {
     this.oldMode = this.mode;
 }
Ejemplo n.º 23
0
 new void Start()
 {
     this.oldMode	= this.mode;
 }
Ejemplo n.º 24
0
 private new void Start()
 {
     oldMode = mode;
 }
 public override void Start()
 {
     this.oldMode = this.mode;
 }
Ejemplo n.º 26
0
 new void Start()
 {
     oldMode = mode;
 }
Ejemplo n.º 27
0
 public void Start()
 {
     oldMode = mode;
 }