Unity Shader·屏幕破碎效果

前言

最近在做一个新的MMD(用Unity来实现),其中用到了一些好看的渲染技术在这里分享一下。

视频链接

https://www.bilibili.com/video/av86302041

效果截图

Shader

Shader "Custom/RenderImage/ScreenBroken" {Properties {_MainTex ("Main Tex", 2D) = "white" {}_BrokenNormalMap("BrokenNormal Map",2D)="bump"{}_BrokenScale("BrokenScale",Range(0,1))=1.0}SubShader {Pass{Tags { "LightMode"="ForwardBase" }CGPROGRAM#include "UnityCG.cginc"#include "Lighting.cginc"#pragma vertex vert#pragma fragment frag//这一部分参数的定义要根据Propertiesfixed4 _Color;sampler2D _MainTex;float4 _MainTex_ST;sampler2D _BrokenNormalMap;float4 _BrokenNormalMap_ST;float _BrokenScale;struct a2v{float4 vertex : POSITION;float4 texcoord : TEXCOORD0;};//输出部分要和输入部分对应起来,而输出部分又要由片元着色器里的计算模型来确定struct v2f{float4 pos : SV_POSITION;float4 uv : TEXCOORD0;};v2f vert(a2v v){v2f o;o.pos=UnityObjectToClipPos(v.vertex);o.uv.xy=TRANSFORM_TEX(v.texcoord,_MainTex);o.uv.zw=TRANSFORM_TEX(v.texcoord, _BrokenNormalMap);return o;}fixed4 frag(v2f i) : SV_Target{fixed4 packedNormal = tex2D(_BrokenNormalMap,i.uv.zw);fixed3 tangentNormal;tangentNormal=UnpackNormal(packedNormal);tangentNormal.xy*=_BrokenScale;float2 offset = tangentNormal.xy;fixed3 lightColor = fixed3(1,1,1);fixed3 col=tex2D(_MainTex,i.uv.xy+offset).rgb;fixed luminance = (col.r + col.g + col.b) / 3;fixed3 finalCol = lerp(fixed3(luminance,luminance,luminance),col,0.25);return fixed4(col,1.0f);}ENDCG}}FallBack "Diffuse"
}

C#脚本

using System.Collections;
using System.Collections.Generic;
using UnityEngine;[ExecuteInEditMode]
public class ScreenBroken : MonoBehaviour
{public Material mat;public float NormalScale = 0;private void OnRenderImage(RenderTexture source, RenderTexture destination){RenderTexture src0 = RenderTexture.GetTemporary(source.width, source.height);mat.SetTexture("_MainTex", source);mat.SetFloat("_BrokenScale", NormalScale);Graphics.Blit(source, src0, mat, 0);Graphics.Blit(src0, destination);RenderTexture.ReleaseTemporary(src0);}
}

Unity Shader·屏幕破碎效果相关推荐

  1. Unity Shader 屏幕后效果——高斯模糊

    高斯模糊是图像模糊处理中非常经典和常见的一种算法,也是Bloom屏幕效果的基础. 实现高斯模糊同样用到了卷积的概念,关于卷积的概念和原理详见我的另一篇博客: https://www.cnblogs.c ...

  2. Unity Shader 屏幕后效果——Bloom外发光

    Bloom的原理很简单,主要是提取渲染图像中的亮部区域,并对亮部区域进行模糊处理,再与原始图像混合而成. 一般对亮部进行模糊处理的部分采用高斯模糊,关于高斯模糊,详见之前的另一篇博客: https:/ ...

  3. Unity Shader·屏幕抖音效果

    Unity Shader·屏幕抖音效果 前言 最近在做一个新的MMD(用Unity来实现),其中用到了一些好看的渲染技术在这里分享一下. 视频链接 https://www.bilibili.com/v ...

  4. Unity 实现物体破碎效果(转)

    感谢网友分享,原文地址(How to Make an Object Shatter Into Smaller Fragments in Unity),中文翻译地址(Unity实现物体破碎效果) In ...

  5. Unity Shader 窗前雨滴效果衍生(表面水滴附着)

    Unity Shader 窗前雨滴效果衍生(表面水滴附着) 霓虹中国视频截图 现实中的水珠附着效果 实现思路 1.首先创建一个Cube来作为实现效果的物体 2.创建一个Shader开始着色器的编写 实 ...

  6. Unity 实现物体破碎效果(转)

    感谢网友分享,原文地址(How to Make an Object Shatter Into Smaller Fragments in Unity),中文翻译地址(Unity实现物体破碎效果) In ...

  7. unity 给图片边缘_Unity Shader 屏幕后效果——边缘检测

    关于屏幕后效果的控制类详细见之前写的另一篇博客: 这篇主要是基于之前的控制类,实现另一种常见的屏幕后效果--边缘检测. 概念和原理部分: 首先,我们需要知道在图形学中经常处理像素的一种操作--卷积. ...

  8. Unity Shader 之 透明效果

    本文引用 Unity Shader入门精要 开启透明混合后,一个物体被渲染到屏幕上时,每个片元除了颜色值和深度值外,还有--透明度.透明度为1,则完全不透明,透明度为0,则完全不会显示. 在Unity ...

  9. unity 实现物体破碎效果的一些方法 - 细雨淅淅

    游戏越来越接近现实的感觉,如果有一个真是的 虚拟现实设备,可能我们真的会感觉是在真实世界.场景的逼真是在渲染效果.角色AI.游戏逻辑.物理效果等等一起导致的结果.现在游戏越来越大,除了渲染,物理估计是 ...

最新文章

  1. ExecuteNonQuery返回值问题
  2. 管理员端API——任仲行
  3. Django (auth模块、User对象、用户认证、线上-用户认证)
  4. C++是类型安全的吗?
  5. 深度学习之眼睛状态识别混淆矩阵的绘制
  6. nosql的数据服务_使用NoSQL实现实体服务–第3部分:CouchDB
  7. TCL微型计算机如何投屏,TCL电视怎么投屏?3个办法帮助你完美解决
  8. Oracle expdp和impdp
  9. 为什么不能生成accde_原来“转换生成语言学”就是这么回事
  10. [Python] itertools.islice(iterable, start, stop[, step]) 创建迭代器并返回所选元素
  11. kaggle谷歌商店预测竞赛
  12. 微信公众号推送天气预报Python
  13. linux隔离磁盘坏道,Repartion Bad Drive(硬盘坏道隔离工具
  14. 分享两款雪花特效代码
  15. 电影:少年派的奇幻漂流(Life of Pi)
  16. 找准盈利模式,博客网站赚钱也轻松
  17. Qlist+QMap+QVariant使用
  18. 统计一TXT文档中单词出现频率,输出频率最高的10个单词
  19. 操作系统核心知识与重难点
  20. mPEG-SS 甲氧基PEG琥珀酰亚胺丁二酸酯

热门文章

  1. 前端系列19集-vue3引入高德地图,响应式,自适应
  2. 小米2s回退出厂版本_小米8青春版官方出厂rom系统刷机包_降级包回退包V10.0.8.0...
  3. 微软VSTO功能如何放到WPS中用
  4. 服务器稳定性规划,《梦幻西游2》第三十六次服务器合并规划
  5. 职业观的形成和提高职业素养
  6. html手机自动放大缩小,手机端缩放.html
  7. 小明对类似于 hello 这种单词非常感兴趣,这种单词可以正好分为四段,第一段由一个或多个辅音字母组成,第二段由一个或多个元音字母组成,第三段由一个或多个辅音字母组成,第四段由一个或多个元音字母组成。
  8. [BZOJ 1038][ZJOI 2008]瞭望塔(半平面交)
  9. 20155224 聂小益 《基于Arm实验箱的接口测试和应用》 课程设计报告
  10. apifox设置获取token