Unity shader学习之Grab Pass实现玻璃效果
生活随笔
收集整理的這篇文章主要介紹了
Unity shader学习之Grab Pass实现玻璃效果
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
GrabPass可將當前屏幕的圖像繪制在一張紋理中,可用來實現玻璃效果。
轉載請注明出處:http://www.cnblogs.com/jietian331/p/7201324.html
shader如下:
// Upgrade NOTE: replaced 'mul(UNITY_MATRIX_MVP,*)' with 'UnityObjectToClipPos(*)' Shader "Custom/Glass" {Properties{_NormalMap("Normal Map", 2D) = "bump" {}_Distortion("Distortion", Range(0, 100)) = 50}SubShader{Tags{"Queue" = "Transparent""RenderType" = "Transparent"}GrabPass { "_GrabTex" }Pass{CGPROGRAM#pragma vertex vert#pragma fragment frag#include "UnityCG.cginc"sampler2D _GrabTex;float4 _GrabTex_TexelSize;sampler2D _NormalMap;float _Distortion;struct appdata{float4 vertex : POSITION;float2 uv : TEXCOORD0;};struct v2f{float4 pos : SV_POSITION;float2 uv : TEXCOORD0;float4 scrPos : TEXCOORD1;};v2f vert(appdata v){v2f o;o.pos = UnityObjectToClipPos(v.vertex);o.uv = v.uv;o.scrPos = ComputeGrabScreenPos(o.pos);return o;}fixed4 frag(v2f i) : SV_TARGET{float3 bump = UnpackNormal(tex2D(_NormalMap, i.uv));float2 offset = bump.xy * _GrabTex_TexelSize.xy * _Distortion;fixed4 albedo = tex2D(_GrabTex, (i.scrPos.xy + offset) / i.scrPos.w);return albedo;}ENDCG}} }效果如下:
?
轉載于:https://www.cnblogs.com/jietian331/p/7201324.html
總結
以上是生活随笔為你收集整理的Unity shader学习之Grab Pass实现玻璃效果的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 微信小程序开发实战基础二、wxml模板,
- 下一篇: 根据IP地址查询物理位置(IP地址定位库