예제 #1
0
        protected void OnEnable()
        {
            this.mat          = this.mat ?? new DisposableMaterial(this.renderToDepth);
            this.renderCamera = this.renderCamera ?? this.GetComponent <Camera>();

            this.OnSettingChanged();
        }
예제 #2
0
        public void Init(params object[] parameters)
        {
            if (Inited)
            {
                return;
            }
            if (parameters.Length < 1)
            {
                return;
            }

            if (parameters[0] is Shader shader)
            {
                shader        = shader != null ? shader : Shader.Find("Unlit/Texture");
                this.material = new DisposableMaterial(shader);
                var render = this.gameObject.FindOrAddTypeInComponentsAndChildren <MeshRenderer>();
                render.sharedMaterial = this.material;
            }

            this.inited = true;
        }
예제 #3
0
        public static void ApplyPostEffectTo(Texture2D source, Shader shader)
        {
            Assert.IsNotNull(source);
            Assert.IsNotNull(shader);

            var width  = source.width;
            var height = source.height;

            using (var rt = new RenderTextureTool.RenderTextureTemp(source))
            {
                using (new RenderTextureTool.RenderTextureActive(rt))
                {
                    //apple post effect
                    var mat = new DisposableMaterial(shader);
                    Graphics.Blit(source, rt, mat);
                    mat.Dispose();

                    //read data back
                    source.ReadPixels(new Rect(0, 0, width, height), 0, 0);
                    source.Apply();
                }
            }
        }
예제 #4
0
 protected virtual void OnEnable()
 {
     this.combineMat = new DisposableMaterial(this.shader);
 }
예제 #5
0
 protected virtual void OnEnable()
 {
     Assert.IsNotNull(this.shader);
     this.mat = new DisposableMaterial(this.shader);
 }
예제 #6
0
 protected void OnEnable()
 {
     this.material = new DisposableMaterial(this.mat);
 }