博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【Shader】游戏屏幕黑白特效
阅读量:4087 次
发布时间:2019-05-25

本文共 2299 字,大约阅读时间需要 7 分钟。

.cs脚本挂载到MainCamera

using System.Collections;using System.Collections.Generic;using UnityEngine;[ExecuteInEditMode]public class TestImage : MonoBehaviour {    #region    public Shader curShader;    private float grayScaleAmount = 1.0f;    private Material curMaterial;    #endregion    #region Properties    Material material    {        get{            if (curMaterial == null)            {                curMaterial = new Material(curShader);                curMaterial.hideFlags = HideFlags.HideAndDontSave;            }            return curMaterial;        }    }    #endregion    // Use this for initialization    void Start () {        if (!SystemInfo.supportsImageEffects)        {            enabled = false;            return;        }        if (!curShader && !curShader.isSupported)        {            enabled = false;        }    } //   // Update is called once per frame //   void Update () {
// grayScaleAmount = Mathf.Clamp(grayScaleAmount, 0.0f, 1.0f); //} private void OnRenderImage(RenderTexture source, RenderTexture destination) { if (curShader != null) { material.SetFloat("_LuminosityAmount",grayScaleAmount); Graphics.Blit(source,destination,material); } else { Graphics.Blit(source,destination); } } private void OnDisable() { if (curMaterial) { DestroyImmediate(curMaterial); } }}

.shader脚本附加到上面的属性中

Shader "Hidden/NewImageEffectShader"{    Properties    {        _MainTex ("Texture", 2D) = "white" {}        _LuminosityAmount("GrayScale Amount",Range(0.0,1)) = 1.0    }    SubShader    {        Pass        {            CGPROGRAM            #pragma vertex vert_img            #pragma fragment frag            #pragma fragmentoption ARB_precision_hint_fastest            #include "UnityCG.cginc"            uniform sampler2D _MainTex;            fixed _LuminosityAmount;            fixed4 frag (v2f_img i) : COLOR            {                fixed4 renderTex = tex2D(_MainTex,i.uv);                float luminosity = 0.299 * renderTex.r + 0.587 * renderTex.g + 0.114 * renderTex.b;                fixed4 finalColor = lerp(renderTex,luminosity,_LuminosityAmount);                return finalColor;            }            ENDCG        }    }}

转载地址:http://mbkii.baihongyu.com/

你可能感兴趣的文章
QT打开项目提示no valid settings file could be found
查看>>
java LinkedList与ArrayList迭代器遍历和for遍历对比
查看>>
所谓的进步和提升,就是完成认知升级
查看>>
如何用好碎片化时间,让思维更有效率?
查看>>
No.182 - LeetCode1325 - C指针的魅力
查看>>
带WiringPi库的交叉笔译如何处理二之软链接概念
查看>>
Java8 HashMap集合解析
查看>>
自定义 select 下拉框 多选插件
查看>>
Linux常用统计命令之wc
查看>>
fastcgi_param 详解
查看>>
搞定Java面试中的数据结构问题
查看>>
React Native(一):搭建开发环境、出Hello World
查看>>
Winform多线程
查看>>
Spring AOP + Redis + 注解实现redis 分布式锁
查看>>
poj 1976 A Mini Locomotive (dp 二维01背包)
查看>>
《计算机网络》第五章 运输层 ——TCP和UDP 可靠传输原理 TCP流量控制 拥塞控制 连接管理
查看>>
《PostgreSQL技术内幕:查询优化深度探索》养成记
查看>>
PostgreSQL查询优化器详解之逻辑优化篇
查看>>
STM32中assert_param的使用
查看>>
剑指_复杂链表的复制
查看>>