在网上研究了好长一段时间的高度雾 ,大概的方法分两种,一种是屏幕特效,一种是区域的模拟,都是需要开启相机的深度图,对移动端来说效率还是有一定的影响的,最后都放弃了。用我的野路子方法实现了个物体上的高度雾,远近雾,云海 效果如图:

代码如下:

Shader "scenes/FogSceneObj"
{Properties{_MainTex ("Texture", 2D) = "white" {}_DepthStartFog("StartFog",float) = 0_DepthEndFog("EndFog",float) = 0.2_FogColor("FogColor",Color) = (1,1,1,1)_LineStartFog("LineStartFog",float) = 0_LineEndFog  ("LineEndFog",float) = 50}SubShader{Tags { "RenderType"="Opaque" }LOD 100Pass{CGPROGRAM#pragma vertex vert#pragma fragment frag#include "UnityCG.cginc"#pragma multi_compile LIGHTMAP_OFF LIGHTMAP_ONstruct appdata{float4 vertex : POSITION;float2 uv : TEXCOORD0;float2 uvLM:TEXCOORD1;};struct v2f{float2 uv : TEXCOORD0;float4 vertex : SV_POSITION;#ifdef LIGHTMAP_ONhalf2 uvLM:TEXCOORD1;#endiffloat3 worldPos:TEXCOORD2;fixed LineDistance : TEXCOORD3;};sampler2D _MainTex;float4 _MainTex_ST;fixed _DepthStartFog;fixed _DepthEndFog;fixed4 _FogColor;fixed _LineStartFog;fixed _LineEndFog;v2f vert (appdata v){v2f o;o.vertex = UnityObjectToClipPos(v.vertex);o.worldPos = mul(unity_ObjectToWorld, v.vertex).xyz;o.uv = TRANSFORM_TEX(v.uv, _MainTex);#ifdef LIGHTMAP_ONo.uvLM = v.uvLM.xy*unity_LightmapST.xy + unity_LightmapST.zw;#endifo.LineDistance = distance(o.worldPos.xyz, _WorldSpaceCameraPos.xyz);return o;}fixed4 frag (v2f i) : SV_Target{fixed4 col = tex2D(_MainTex, i.uv);#ifdef LIGHTMAP_ONfixed3 lm = (DecodeLightmap(UNITY_SAMPLE_TEX2D(unity_Lightmap, i.uvLM)));col.rgb *= lm;#endiffixed Depthfog =saturate( (i.worldPos.y - _DepthStartFog) / (_DepthEndFog - _DepthStartFog));col.rgb = lerp(_FogColor.rgb, col.rgb, Depthfog);fixed Linefog = saturate((i.LineDistance - _LineStartFog)/ (_LineEndFog - _LineStartFog));col.rgb = lerp( col.rgb, _FogColor.rgb, Linefog);return col;}ENDCG}}
}

说明:这是个shader,能在搞效率的情况下实现这样的shader,我们的美术比较满意。缺点:需要每个物体都用这样的shader,才能实现,然后每个物体要设置数值。需要给美术写工具 统一调整数值。

Shader之——高效率高度雾 云海相关推荐

  1. Unity URP高度雾效果Shader

    实现原理 见这篇文章Unity Shader-深度相关知识总结与效果实现(LinearDepth,Reverse Z,世界坐标重建,软粒子,高度雾,运动模糊,扫描线效果)_puppet_master的 ...

  2. Unity Shader PostProcessing - 11 - Depth Fog/Height Fog - 雾效/深度雾效/高度雾/深度+高度雾

    文章目录 观察生活中的雾 Scenario 1 - Pure Depth Fog - 纯深度雾 提取有用信息 Scenario 2 - Height Fog - 带高度的雾 提取有用信息 Scenar ...

  3. Unity Shader - Post Processing 15 - Height Fog (Plus) - 后效 高度雾 改进版 (Parallax)、模拟闪电在云层中SSS

    文章目录 环境 问题 Parallax 原理 GGB 效果 模拟闪电在云层中SSS 测试脚本 效果 GIF Project References 环境 Unity : 2018.2.11f1, 201 ...

  4. Unity Shader学习:动态雾

    Unity Shader学习:动态雾 先将相机近裁面四个角向量传给shader,再通过观察空间下的深度值和相机位置算出像素在世界坐标系的位置,通过世界空间高度值来设定雾的范围和浓度,然后通过噪声和uv ...

  5. 【UE4】指数密度高度雾

    https://zhuanlan.zhihu.com/p/76627240 指数密度高度雾总共分为4个板块,完成了其中的两个板块 https://blog.csdn.net/netyeaxi/arti ...

  6. unity urp自定义后处理 雾效 深度雾,高度雾 简版

    1,c#代码 using System.Collections; using System.Collections.Generic; using UnityEngine;public static c ...

  7. 云海麒麟服务器安装linux,性能靠谱可高度扩展 云海麒麟YH-5212S

    云海麒麟YH-5212S 2U双路服务器是一款兼具灵活和高存储密度的服务器.这款服务器在医疗成像.电子邮件等方面有着十分突出的表现. YH-5212S YH-5212S支持Intel最新全系列E5-2 ...

  8. UE4-(雾效)指数级高度雾

    指数高度雾在地图上较低位置处 密度较大,而在较高位置处 密度较小,其过渡十分平滑,随着海拔升高,也不会出现明显切换. 将指数级高度雾拖拽到场景中,它会影响整个场景,但是指数高度雾actor的位置会决定 ...

  9. GIS融合之路(五)给CesiumJS加上体积云(Volumetric Cloud)和高度雾(Height Fog)

    同样在这篇文章开始前重申一下,山海鲸并没有使用ThreeJS引擎.但由于ThreeJS引擎使用广泛,下文中直接用ThreeJS同CesiumJS的整合方案代替山海鲸中3D引擎和CesiumJS整合. ...

最新文章

  1. [置顶]完美简版学生信息管理系统(附有源码)管理系统
  2. PMON failed to acquire latch, see PMON dump
  3. Apache启动报错
  4. WPF中的动画——(二)From/To/By 动画(二)
  5. android 进程间通信数据(一)------parcel的起源
  6. opencv画框返回坐标 python_[python]依靠pynput和pyautogui替换ahk
  7. 09-hibernate单表操作(1)
  8. JDK8新特性(七)之Stream流的count()、filter()、limit()、skip()方法
  9. 使用parseInt转换规范非法输入
  10. 工业机器人电气系统拆装实训平台
  11. 从 MVC 到使用 ASP.NET Core 6.0 的Minimal API
  12. android开发代码实现对Apk签名,如何对apk进行签名
  13. python全局代理_Python3 中代理使用方法总结
  14. android平台获取手机IMSI,IMEI ,序列号,和 手机号的方法
  15. 启动Intel TV-x设置
  16. TextGrabber重大更新,识别文字并实时离线翻译,支持中文
  17. OSChina 周二乱弹 ——快晒晒你们公司的圣诞小姐姐啊!
  18. (复习次数:1)D - Permutation Transformation——Codeforces Round #702 (Div. 3)
  19. 超强配置 索爱A5无线蓝牙耳机重磅来袭
  20. 爬取中关村电脑网惠普电脑各类子品牌报价及相关配置信息

热门文章

  1. python工具方法35 实现SWA,再一次提升模型的性能
  2. C语言:sizeof()和countof()
  3. ACM--DFS--最大碉堡数--HDOJ 1045--Fire Net
  4. Office各个windows版本支持哪些系统呢
  5. Bugly 之热修复学习
  6. Day1 html5
  7. 【RMAN】增量备份学习与实践
  8. ssh报user not allowed because account is locked错误
  9. 胆囊有排毒鸿蒙那,胆生病,别怕!身上有反射区,专“治”胆病,结石、炎症绕道走...
  10. 逸佳君:CCNA之DHCP实验详细配置