Shader "Glass Refraction" {
Properties {
_MainTex ("Main Tex", 2D) = "white" {}
_BumpMap ("Normal Map", 2D) = "bump" {}
_Cubemap ("Environment Cubemap", Cube) = "_Skybox" {}
_Distortion ("Distortion", Range(0, 100)) = 10
_RefractAmount ("Refract Amount", Range(0.0, 1.0)) = 1.0
}
SubShader {
// 1.队列设置成透明的可以保证渲染该物体的时候,其他所有不透明的物体都已经被渲染到屏幕上了
// 这样GrabPass保存屏幕图像的时候才能完整
// 2.渲染类型设置为不透明是为了使用着色器替换的时候,物体可以在被需要时正确的渲染
Tags { "Queue"="Transparent" "RenderType"="Opaque" }
// 抓取屏幕图像并保存到纹理 _RefractionTex 中
GrabPass { "_RefractionTex" }
Pass {
CGPROGRAM
#pragma vertex vert
#pragma fragment frag
#include "UnityCG.cginc"
sampler2D _MainTex;
float4 _MainTex_ST;
sampler2D _BumpMap;
float4 _BumpMap_ST
【Shader】模拟玻璃效果
最新推荐文章于 2025-07-24 15:18:15 发布
