shader编程学习(3)溶解
来源:互联网 发布:php 运费设置源码 编辑:程序博客网 时间:2024/05/16 23:57
shader代码
Shader "Custom/zxtest"{ Properties { _MainTex ("Base (RGB)", 2D) = "white" {} _NoiseTex ("NoiseTex (R)",2D) = "white"{} //辅助图片 _DissolveSpeed ("DissolveSpeed (Second)",Float) = 1//溶解时间 _EdgeWidth("EdgeWidth",Range(0,0.5)) = 0.1//溶解边缘的宽度,比如纸片燃烧时边缘变黑 _EdgeColor("EdgeColor",Color) = (1,1,1,1)//边缘的颜色 } SubShader { Tags { "RenderType"="Opaque" } Pass { CGPROGRAM #pragma vertex vert_img//顶点着色器 它会自动把结果返回到一个v2f_img结构体中 #pragma fragment frag #include "UnityCG.cginc" uniform sampler2D _MainTex; uniform sampler2D _NoiseTex; uniform float _DissolveSpeed; uniform float _EdgeWidth; uniform float4 _EdgeColor; //v2f_img 自带的结构体 包含顶点坐标,和uv坐标 float4 frag(v2f_img i):COLOR {//时间比例 0-1//unity给我们提供了几个不同的时间参数都保存在_Time中,其中_Time.y是标准的时间,单位(s) float DissolveFactor = saturate(_Time.y / _DissolveSpeed);//取得r值 float noiseValue = tex2D(_NoiseTex,i.uv).r; //如果r值小于时间比例 if(noiseValue <= DissolveFactor) {//discard,是由CG提供的,若出现在fragmentShader中表示立即放弃当前处理的片元。//也就是说当我们判定当前片元需要溶解的时候我们就使用discard命令 discard; } float4 texColor = tex2D(_MainTex,i.uv);//EdgeFactor(0-1)越小表示越快要溶解,即越接近边缘 float EdgeFactor = saturate((noiseValue - DissolveFactor)/(_EdgeWidth*DissolveFactor)); float4 BlendColor = texColor * _EdgeColor; //lerp(x,y,a) = x*(1-a) + y*a; 越靠近边缘,颜色越接近定义的边缘颜色 return lerp(texColor,BlendColor,1 - EdgeFactor); } ENDCG } } FallBack Off}
效果
0 0
- shader编程学习(3)溶解
- 【UE4 shader】溶解shader
- shader溶解特效
- [Unity Shader]溶解效果
- Shader简单例子之溶解
- Unity Shader Example 7 (溶解)
- shader实例溶解,燃烧效果
- 模型分解(瓦解、溶解...)Shader
- Unity Shader-死亡溶解效果
- Unity Shader-死亡溶解效果
- Shader forge 屏幕效果、溶解
- Unity Shader-遮挡处理(X-Ray,遮挡描边,遮挡半透,遮挡溶解)
- Unity Shader-非主流纹理采样研究(流光,溶解,隐身效果)
- Unity Shader-遮挡处理(X-Ray,遮挡描边,遮挡半透,遮挡溶解)
- Shader 做mesh简单的溶解效果
- 【UE4 shader】溶解后更换材质
- shader编程学习(1)第一个shader
- shader学习(3)
- String、StringBuffer和StringBuilder的区别
- Qwt 折线图 波形图 柱状图示例效果
- Android界面背景图片不显示---三星手机
- unity3d 小心Instantiate的名字非你所要
- java中接口的作用是什么?
- shader编程学习(3)溶解
- SAP HANA分布式系统及高可用性(一)
- elasticsearch-2.0.0 搭建集群的最简易配置
- 在CSDN开通博客专栏后如何发布文章及改进建议(图文)
- binary_search函数用法
- JSP介绍,文件结构及执行过程
- 可自动关闭的JS消息提示框
- JProfiler远程监控
- T-code:SE01,SE93,SE43 经常使用的几个事务码