- 1:一、Azure[Sky] Dynamic Skybox
- 2:二、UniStorm - Volumetric Clouds, Sky, Modular Weather, and Cloud Shadows
- 3:三、切换Lightmap
一、Azure[Sky] Dynamic Skybox
天空系统:
天空系统基于物理学方法,提供一个完整真实的日夜交替循环,可以根据需要自由更改所有天空设置,甚至可以复制其他星球如火星的大气层。此天空可以作为天空盒材料,而且该系统让你可以完全控制场景的一天中的任何时候的光照情况。
雾系统:
雾散射效果是本资源最令人惊异的功能之一,此效果给场景增加了真实性并且顺利地模糊了水平线和天空之间的界限。此插件支持全局使用和高空雾,而且此资源包包含关于如何编辑自定义透明着色器以便与雾正确配合使用以及一些最常用透明着色器的备用版本已经经过修改,可以 和雾效果搭配使用的说明。
请参见官方论坛的首页,获取有关如何正确地使雾散射效果与 Lux Water、Aquas Water 等配合使用的指示说明……
时间和日期系统:
Azure[Sky] 提供了一个具有很大选项的完整的时间系统。支持根据时间、日期以及地理位置(经纬度)准确定位太阳和月亮,并根据位置时间自动地准确调整月相。可以更改昼长来使白天的时间长于夜晚,或者反之;天空控制器还直接在 Inspector 里提供了一整套日历,以便更轻松地浏览和选择日期。
事件系统:
Azure[Sky] 附带一个强大的事件系统,它完全集成了 Unity 的事件系统。可以使用此事件系统在运行时创建或删除游戏对象、其他脚本中的调用方法以及无限多个物品。
配置系统:
Azure[Sky] 的配置系统是能找到的最完整的配置系统,可以创建任意多个白天配置文件并且可以修改“ALL”属性来获得不同的白天设置。使用全局和局部天气系统,通过自动从一个配置文件切换到另一个,可以轻松更改天空设置。可以在不同的场景中使用相同的白天配置文件,或者和其他用户和团队成员分享。
天气系统:
在运行时更改天气条件非常简单,可以创建带有多种不同天气设置的白天配置文件列表并且流畅地在列表中的每个配置文件间切换。该天气系统还提供闪电效果和完整的声音特效来模拟下雨、刮风以及雷暴。
局部天气区域:
Azure[Sky] 还支持局部天气区域,可以在地图周围创建各种不同的天气区域,并且随着玩家在场景中的运动,天气会自动根据每个区域发生变化。
云系统:
Azure[Sky] 提供 2 类 2D 云着色器(动态和静态),两种都具有卓越的性能并且完全集成了天气/配置文件系统。你也可以禁用云,以便仅使用背景天空,如果要使用某个第三方云着色器的话。
曲线和渐变系统:
Azure[Sky] 是第一个引入曲线和渐变的频繁使用来拓展资源的定制能力的天空系统。借助这个功能,可以在一天的中任何时间属性设置不同的值,从而提供对天空系统所有属性的总体控制。例如,可以设置雾曲线来增加夜晚/清晨的雾量并减少午后的雾量。借助曲线和渐变系统,使用相同的配置文件在白天的循环中实现不同的天气也是可能的。
输出系统:
输出系统是 Azure[Sky] 引入的又一个创举。需要额外属性来控制游戏中需要根据一天中的时间变化进行更新的东西吗?没有问题,此输出系统允许创建需要的曲线和渐变量来控制各类元素,例如增加森林里的动物在夜晚的声音特效或者控制最喜欢的地形着色器的雪量/湿度。
二、UniStorm - Volumetric Clouds, Sky, Modular Weather, and Cloud Shadows
AAA 体积云
UniStorm 4.0 带来一个完全重新设计的云系统,能够创建 AAA 的程序化、自我投影、PBR、体积云,其帧率优异且仅使用一个绘制调用!UniStorm 的云使用的是最新的渲染以及性能技术,例如时间性重投和 LOD。UniStorm 的云包含 4 个质量设置以及一个体积和 2D 选项,并都可以在运行时或在 UniStorm 编辑器中进行更改。这使其能够支持众多设备和电脑。简单易用的 API 让添加游戏内的质量控制变得简单无阻。其中还包含一个演示操作的示例。
内置 Photon PUN 2 网络的支持
UniStorm 包含了你需要的一切来让 UniStorm 与 PUN 2 一起使用,让 PUN 2 同步 UniStorm 多玩家的天气、时间和日期 。内含了一个示例场景。
大气雾
大气雾考虑到了阳光和月光方向以及颜色对场景、UniStorm 的云和天空盒子的应用。
云阴影
高效的实时屏幕空间云阴影,来将当前的云层和云型匹配,以添加逼真的视觉效果。
具有精确星座排列的 4k 恒星
UniStorm 的夜空包含了 4k 恒星以及精确的星座排列。编辑器内有控制星座紧密度的选项。
程序化极光
UniStorm 让用户按天气类型对极光自定义调整强度、颜色、状况等等!
性能
UniStorm 的体积云的特色是时间性重投和 LOD,都具有 4 个质量设置(低、中、高和超级),经过估算其效率远比以前的设置更高。这使 UniStorm 能够在几乎所有计算机上顺畅运行。多亏了 UniStorm 着色器,摄像头远裁平面距离没有最大限制,因此你可以使用任何距离。
内置轻量级选项
何必为必要的功能多付钱呢?UniStorm 拥有一个内置轻量级 2D 云选项,对低端的移动设备或电脑特别适合。用户可以从编辑器中选择移动端选项,它将自动应用所有优化设置,而无需覆盖颜色等自定义设置。
动态模块化天气
模块化天气能让用户创建自定义天气类型。沙尘暴、极光、冰雹风暴、雷暴等都可以实现。对于多少天气类型 UniStorm 是没有任何限制的,而且最好的是它能让用户对每个天气类型自定义特效、设置和音效。UniStorm 带来 31 种天气类型!其中包括:极光、吹起的叶子、吹起的雪、吹起的草、萤火虫、晴朗、大致晴朗、部分多云、大致多云、多云、阴天、多雾、细雨、小雨、雨、大雨、冰雹、雷暴、小雪、雪、大雪、雷雪、火雨、尘暴以及更多!
云配置
UniStorm 的每个天气类型都具有可自定义的云配置。这可以使你自定义云的外观来为每个天气类型提供大量的变化。使用 UniStorm 的云配置,用户必定会找到适合他们的云类型。晴朗、蓬松、松软、均衡、以及风格化云配置都包含在内。然而你随时可以创建属于你自己的!
VR 和移动端可用
UniStorm 的多合一功能也支持移动和 VR(目前仅是多通道)。里面甚至还有一个易用的选项可以自动将所有优化设置应用于指定平台,同时保持用户的自定义设置!
高级天气生成
UniStorm 的天气是基于 UniStorm 编辑器中设置的降水率生成的。易用的线图可让用户对每个月设置天气类型的降水率, 然后 UniStorm 会生成对应的天气。夏季的降水量可以比冬季的少,反之亦然。UniStorm 有选项来以随机的起始时间和每小时天气来生成日常天气,这些都基于游戏内计时以及降水率为基础。如果用户不想生成天气,也可以选择静态天气。
全局天气着色器和渲染
UniStorm 的全局着色器允许物体在下雨和下雪天气类型中接受雨雪渲染。雨渲染能使表面变得更有光泽,仅用于小于 90 度的表面。大多数表面的内部都会保持干燥,例如建筑物和屋顶的内部。雪的功能相同,但带有积雪渲染效果。雪的纹理、雪泵纹理和雪的高光级别都可以自定义调整。当天气不是下雨或下雪时, UniStorm 会淡化天气渲染。
天气和天气过渡
UniStorm 允许用户创建无限数目的天气类型。每次天气变换时, UniStorm 都会根据全局过渡速度进行无缝的转换。每种天气类型都可以利用其云层、云风格、云高度、粒子特效、阳光强度、月光强度、云阴影强度、音效、风量以及其他各种设置进行自定义,从而实现了真正独特且高自定义性的天气。
程序化闪电和雷击
UniStorm 的程序化闪电系统允许对象能被雷击中。用户可以规定闪电击中地面和物体的概率。当雷击中时,用户可以自定义其产生的特效。利用适合的标签甚至是火特效都可以做到。
白天/夜晚循环和颜色控制
UniStorm 允许你调整每天不同时候的环境和天空的所有颜色,例如日、月颜色、环境光色、阴影和云阴影强度、雾色、天空颜色、环境反射强度等等!每种颜色都具有自己的个体颜色选项来供降水天气类型使用。
时间、日期和内置日历
UniStorm 具有内置时间和日期系统,可帮助你追踪玩家的游戏时间。UniStorm 的日历是精确的,甚至可以使用当前的时间和日期。
可自定义的月相系统
UniStorm 的可自定义月相系统允许用户构建属于他们自己的月相。UniStorm 的月相可用数量没有上限的。用户可以直接在 UniStorm 编辑器上预览他们的月相以及设置起始月相。UniStorm 自动分配所有所需纹理,并每天更新月相。每一个月相也具有自己的月光强度。这可以根据用户需要使新月和镰月月相的亮度低于全月的亮度。
天气类型条件
可选的天气类型条件可以让 UniStorm 的天气生成器根据达到的指定条件来生成天气类型。这些包括的条件例如有:特定季节和温度以及仅在自定义事件或程序化调用某种特定天气类型的能力。
UniStorm 配置文件
从一个 UniStorm 配置文件中导入和导出你的 UniStorm 设置。这可以让用户保存他们的设置并将他们在其他 UniStorm 系统之间转移,而无需手动应用颜色和设置。
每日不同时候的声音和音乐
UniStorm 允许用户自定义每日不同时候播放的音效和/或音乐。每个音效和歌曲之间的延迟时间可被调整。其可用的数量没有上限。
声音管理器
UniStorm 的声音管理员使用 Unity 音频混合器来处理所有 UniStorm 创建出来的音效。这使你对全局、环境、天气和音乐音量具有精确的控制,并可用于用户 UI 或可在 UniStorm 编辑器中控制。
内置事件
UniStorm 的内置事件可以在游戏内的每小时、每天、每月、每年甚至在天气转变过程中被调用,让用户轻松创建游戏功能。
包括示例
UniStorm 包含 6 个示例场景来演示 UniStorm 可以做到的不同功能。另外还包含一个保存示例系统,来让用户可以手动或自动保存他们的游戏时间、日期、天气、温度以及更多。这些数据之后能被加载,用户可以直接跟进上次的进度。
编辑器
UniStorm 的编辑器设计受到其众多用户反馈的影响,因此很直观、强大并提供一个低学习曲线。UniStorm 的编辑器具自我描述性,因此每个组件都在编辑器的工具提示中有解释。
API 和文档
UniStorm 的 API 可以助力其他游戏机制和功能,例如访问其温度、时间、日期、当前天气、预报天气、季节以及更多。内含教程视频和外部文档来帮助用户充分利用 UniStorm。
支持 CTS 天气管理器
UniStorm 包含一个外部系统来过渡到 CTS 的天气渲染器,让你的地形在下雪或下雨时具有积雪和湿度的渲染。(不包括 CTS)
三、切换Lightmap
在unity中烘焙两种效果,通过切换光照贴图的方式实现两种效果,缺点是不能实现过渡效果。
如果使用上面的插件实现昼夜循环的话,也是只能实现自然光的变化,对于灯光还是需要进行额外设置,然后进行烘焙。
public void SwitchLightingMap(LightingMapType type) { if (DayData == null) DayData = LightmapSettings.lightmaps; switch (type) { case LightingMapType.Day: LightmapSettings.lightmaps = DayData; RenderSettings.fog = true; RenderSettings.fogColor = DayFogColor; mainLight.SetActive(true); uSky.SetActive(true); RenderSettings.skybox = daySkyMaterial; break; case LightingMapType.Night: LightmapSettings.lightmaps = NightData; RenderSettings.fog = true; RenderSettings.fogColor = NightFogColor; mainLight.SetActive(false); uSky.SetActive(false); RenderSettings.skybox = nightSkyMaterial; break; case LightingMapType.Null: LightmapSettings.lightmaps = null; RenderSettings.fog = false; mainLight.SetActive(true); break; } }