【Shader】游戏屏幕黑白特效
2017-12-17 19:06
267 查看
.cs脚本挂载到MainCamera
.shader脚本附加到上面的属性中
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 } } }
相关文章推荐
- 【unity】【shader】屏幕高斯模糊(Gaussian Blur)后期特效的实现
- 【iOS-Cocos2d游戏开发之三】CCScene切换的所有特效(28种)以及设置屏幕横竖屏!
- 【iOS-Cocos2d游戏开发之三】CCScene切换的所有特效(27种)以及设置屏幕横竖屏!
- 【Shader】扫描网屏幕特效
- Unity3D Shader编程】之九 深入理解Unity5中的Standard Shader (一)&屏幕水幕特效的实现
- Shader学习案例三---屏幕特效之色彩调节
- Unity3D Shader编程】之十一 深入理解Unity5中的Standard Shader(三)&屏幕像素化特效的实现
- 【iOS-Cocos2d游戏开发】CCScene切换的所有特效(28种)以及设置屏幕横竖屏!
- 【iOS-Cocos2d游戏开发之三】CCScene切换的所有特效(28种)以及设置屏幕横竖屏!
- 【iOS-Cocos2d游戏开发之三】CCScene切换的所有特效(28种)以及设置屏幕横竖屏!
- 【iOS-Cocos2d游戏开发之三】CCScene切换的所有特效(28种)以及设置屏幕横竖屏!
- 《着色器和屏幕特效》读书笔记第九章-游戏可玩性和屏幕特效
- 【浅墨Unity3D Shader编程】之八 Unity5新版Shader模板源码解析&运动模糊(径向模糊)屏幕特效的实现
- 【iOS-Cocos2d游戏开发之三】CCScene切换的所有特效(28种)以及设置屏幕横竖屏!
- 【浅墨Unity3D Shader编程】之十 深入理解Unity5中的Standard Shader(二)&屏幕油画特效的实现
- Unity3D ----- 代码控制shader的自发光参数(摄像机黑白特效下)
- Unity3d 屏幕特效实现类似死亡之后的全屏黑白效果
- 【Unity Shader编程】之十五 屏幕高斯模糊(Gaussian Blur)后期特效的实现
- Unity制作游戏在部分手机上显示黑白屏幕
- UnityShader - 屏幕特效 - 高斯模糊(Gaussian Blur)