我是靠谱客的博主 刻苦蛋挞,最近开发中收集的这篇文章主要介绍unityShader模拟星空效果和雾效,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

unityShader模拟星空效果,不使用透明模式,只使用一张纹理

_Speed1("_Speed1",Range(0,0.2))=0.05
_Speed2("_Speed2",Range(0,15))=5
_Speed3("_Speed3",Range(0,5))=1
fixed frag(v2f IN):COLOR{
float2 uv=IN.uv;
//使用sin函数控制偏移的范围
float offset_uv=_Speed1*sin(IN.uv*_Speed2+_Time.x*_Speed3);
uv+=offset_uv;
fixed col_1=tex2D(_MainTex,uv);
//这张图片加UV
uv=IN.uv;
uv-=offset_uv;
fixed col_2=tex2D(_MainTex,uv);
//这张图片减UV
return (col_1+col_2)/2;
//模拟星空
}
_Speed1("_Speed1",Range(0,0.2))=0.05
_Speed2("_Speed2",Range(0,15))=5
_Speed3("_Speed3",Range(0,5))=1
fixed frag(v2f IN):COLOR{
fixed col_1=tex2D(_MainTex,IN.uv);
//背景图不动
float2 uv=IN.uv;
//使用sin函数控制偏移的范围
float offset_uv=_Speed1*sin(IN.uv*_Speed2+_Time.x*_Speed3);
uv+=offset_uv;
fixed col_2=tex2D(_MainTex,uv);
//这张图片减UV
return col_1+col_2;
}

模拟雾效

	fixed4 col_1=tex2D(_MainTex,uv);
//采样背景纹理
float offset=0.04 * sin(uv * _F + _Time.y);
//雾效移动
float2 uv2=uv+offset;
uv.y+=0.3;
fixed4 col_2=tex2D(_SecTex,uv2);
//采样雾效纹理
col_1.rgb*=col_2.rgb;
// 相乘, 图像会变暗的, 这样不好吧
col_1.rgb *=4;
// 调整亮度
return col_1;

最后

以上就是刻苦蛋挞为你收集整理的unityShader模拟星空效果和雾效的全部内容,希望文章能够帮你解决unityShader模拟星空效果和雾效所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(46)

评论列表共有 0 条评论

立即
投稿
返回
顶部