【巨人的肩膀上制造世界】——7——Unity3D实用插件之Dynamic Fog Mist,快速简洁的制作高质量的动态迷雾效果

      Unity3D实用插件之Dynamic Fog Mist,快速简洁的制作高质量的动态迷雾效果


目录

1、博客介绍

2、内容

(1)导入插件准备地形

(2)核心脚本Dynamic Fog

(3)调节雾效类型

(4)调节雾效模式

(5)调节迷雾参数

(6)生成配置文件

3、推送

4、结语


1、博客介绍

       本篇作为插件学习的第七篇,给大家介绍一款制作动态迷雾效果的插件【Dynamic Fog Mist】该插件可以快速的构建Unity中的迷雾效果,可视化的调节迷雾的相关属性,本篇仅做入门级介绍,有需要的同学可以深入了解。


2、内容

(1)导入插件准备地形

         首先我们需要导入我们的插件,并构造一个用来演示效果的地形,如下图所示:

 

(2)核心脚本Dynamic Fog

         我们给场景内的主相机添加核心脚本Dynamic Fog

(3)调节雾效类型

         我们可以通过调节Effect Type属性来设置雾效的类型,适用于移动端,低质量的等等

 

(4)调节雾效模式

         我们可以通过设置Legacy Preset属性来设置,雾效的模式,有薄雾,浓雾,沙尘等的效果

 

(5)调节迷雾参数

         我们可以直接通过面板上的属性设置来调节迷雾的效果,可视距离,透明度,颜色,动态雾的移动速度等等

 

(6)生成配置文件

         除了直接在面板上修改参数,我们还可以生成配置文件来保存我们调节好的参数,便于以后使用


3、推送

博主Github: https://github.com/KingSun5


4、结语

       若是觉得博主的文章写的不错,不妨关注一下博主,点赞一下博文,另博主能力有限,若文中有出现什么错误的地方,欢迎各位评论指摘。

       QQ交流群:806091680(Chinar)

       该群为CSDN博主Chinar所创,推荐一下!我也在群里!

       本文属于原创文章,转载请著名作者出处并置顶!!!!

  • 3
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
制作迷雾效果的 Shader 可以使用 Unity Standard Shader,并在其基础上进行修改。以下是迷雾效果的 Shader 实现方式: 1. 创建一个新的材质并为其指定 Standard Shader。 2. 在 Shader 中添加一个新的 Pass 并设置其渲染顺序,以便将迷雾效果渲染在场景的最后面。 3. 在新的 Pass 中添加一个新的 SubShader,并将其设置为最后一个 SubShader。这是因为 SubShader 的渲染顺序是从上到下的,因此需要将迷雾效果放在最后一个 SubShader 中。 4. 在 SubShader 中添加一个新的 Surface Shader,以便在表面上渲染迷雾效果。 5. 在 Surface Shader 中添加一个新的 Function,用于计算迷雾效果的颜色。该函数需要接收表面颜色和表面法线作为输入,并返回修改后的颜色。 6. 在 Surface Shader 中的函数中,根据表面到摄像机的距离计算出迷雾效果的强度,然后使用该强度调整表面颜色和透明度。 以下是示例代码: ``` Shader "Custom/FogShader" { Properties { _FogColor ("Fog Color", Color) = (1,1,1,1) _FogStart ("Fog Start", Range(0,1)) = 0.2 _FogEnd ("Fog End", Range(0,1)) = 1.0 } SubShader { Tags {"Queue"="Transparent" "RenderType"="Transparent"} Pass { CGPROGRAM #pragma vertex vert #pragma fragment frag struct appdata { float4 vertex : POSITION; float3 normal : NORMAL; }; struct v2f { float4 vertex : SV_POSITION; float3 worldPos : TEXCOORD0; float3 worldNormal : TEXCOORD1; }; float4 _FogColor; float _FogStart; float _FogEnd; v2f vert (appdata v) { v2f o; o.vertex = UnityObjectToClipPos(v.vertex); o.worldPos = mul(unity_ObjectToWorld, v.vertex).xyz; o.worldNormal = UnityObjectToWorldNormal(v.normal); return o; } float4 frag (v2f i) : COLOR { float fog = saturate((i.worldPos.z - _FogStart) / (_FogEnd - _FogStart)); float4 fogColor = lerp(_FogColor, i.color.rgb, fog); return fogColor; } ENDCG } } FallBack "Diffuse" } ``` 在这个示例代码中,我们使用了一个名为 `_FogColor` 的属性来指定迷雾的颜色,使用 `_FogStart` 和 `_FogEnd` 属性来指定迷雾的起始和结束位置。在 Surface Shader 的 `frag` 函数中,我们计算出了表面到摄像机的距离,并使用该距离来计算迷雾的强度。最后将修改后的颜色返回。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值