克雷斯特水5(海洋、河流、湖泊)
Unity · 插件
更新前,请先删除 water shaders/scripts 文件夹。 KWS2 是专为 Unity 打造的高级水体系统,围绕基于物理的实时模拟构建。 与许多静态或纯视觉方案不同,KWS2 模拟真实的波浪式水流、与动态对象的交互以及地形驱动的行为。 通过分区完全自定义,并在技术允许的范围内为大规模水体环境进行优化,支持平静至中等海洋、小瀑布和逼真河流等自然场景。 适合需要逼真、性能友好的水体项目,从开阔海域到山间溪流,但不追求夸张的极端效果 :) 与第一版 KWS Water System 相比,一些过时的功能已被移除,而其他功能则得到了显著改进和从零重做。 KWS2 是完全独立的资源,不需要 KWS1 即可运行。 KWS1 老用户可享受升级折扣(约 40%)。 支持的管线:Built-in、URP、HDRP、Unity 6+,包括现代 RenderGraph 版本 由于计算着色器限制和繁重的实时渲染特性,不支持移动平台。在未来更新中,计划提供更轻量的烘焙替代方案(如预计算模拟或海洋数据),这应该能使移动硬件、webGPU 等获得有限支持。 其他平台(VR、Metal、PlayStation、Xbox 等)可能可用,但未获官方支持或保证。 您可以在在线 README 中找到更多持续更新和扩展的技术信息。 您还可以在此找到交互式 PC DEMO 主要特性 动态水体模拟 使用浅水方程和 FFT 海洋渲染的实时动态水体模拟 动态波浪传播和水体质量运动 与地形、障碍物、岸线和动态对象的自动交互 水源、排水口、力、流向重定向和可配置的分区效应器 持久的水体积聚、洪水、水洼和蒸发 可调的流速、湍流、波浪响应和稳定性 单个模拟分区的质量和性能控制 支持静水、河流、岸线、水池、洪水等场景 可选的缓存模拟,实现更快、更可预测的启动 障碍物或水源变化时的动态改道 河流与瀑布 免样条线的河流创建(无需手动放置河流路径) 水流自动跟随地形 使用分区、水源、力和障碍物创建流动的河流 绕过岩石和其他几何体的自然流向重定向 支持由多个模拟分区构建的长河 连接分区之间的入流水传递 带水流、泡沫、飞溅、粒子和湿润效果的瀑布渲染 雨、水洼与洪水 雨可以物理地向模拟分区加水 基于地形深度的自然水洼形成 持久的水体积聚和洪水 可配置的蒸发 不同水域的独立雨量控制 水面上的同心雨滴涟漪 洪水或雨天区域周围的湿润效果 对象交互 与移动和旋转对象的交互 来自海浪的岸线响应 绕过障碍物的水流重定向 由对象产生的动态波浪 水位移和局部流向变化 可配置的水源、力和排水效应器 自定义水源颜色(血、油等) 表面冲击产生的水花/泡沫粒子 抛射物和子弹冲击效果 浮力 内置浮力系统 水位高度、流向和速度采样 适用于船只、碎片、角色和其他漂浮物 用于自定义浮力和玩法系统的公共 API 同时支持海浪和局部模拟水体 渲染与光照 基于物理的水体渲染 基于物理的光照,含吸收、次表面散射、焦散、水下光柱和 PBR 着色 水面上下的体积光 + 水下太阳光柱 反射栈:超快的屏幕空间反射、平面反射、天空盒和各向异性反射 物理折射(屏幕空间近似)带色散和水 IOR 水下内部反射(Snell 窗)带完整沉浸支持 各向异性高光和基于菲涅尔的闪烁 动态水下焦散(由海洋和模拟波浪生成) 由波浪和水体运动生成的动态泡沫(碎浪泡沫、岸线泡沫、海洋泡沫、随水流输运的泡沫、泡沫尾迹) 基于计算的粒子渲染 泡沫粒子使用计算着色器而非传统公告板几何体渲染。 这带来了: 相比之前的公告板实现,粒子渲染速度大约快三倍,在测试场景中比同等 VFX Graph 设置快数倍 带遮挡剔除的基于距离的粒子 LOD 可配置的粒子密度和质量 大模拟分区的高效渲染 粒子生成和渲染使用时间切片分布到多帧,减少帧时间尖峰并提高整体性能 粒子的渲染使用插值,允许粒子仅以 15 FPS 而非每帧更新 视觉特效与环境 动态泡沫、飞溅粒子、湿润和雨滴 可覆盖水色、风、水位等的自定义局部区域 生物发光泡沫/浮游生物风格 带深度感知的持久水洼和洪水 相机特效:水下过渡、镜头沾水、模糊、水滴、半水线 水面上的自定义贴花,如泡沫尾迹、浮萍、血等 水下气泡和子弹曳光。水下气泡使用无限投影技术,仅渲染几千个粒子却能呈现大得多的粒子场外观 使用 shuriken 粒子的自定义瀑布喷雾和飞溅效果 基于网格与模板裁剪遮罩 裁剪遮罩允许网格在水体内部定义体积区域。 可用于移除或隔离洞穴、潜艇内部、水下窗户等复杂形状内的水 大型世界与运行时控制 KWS2 包含面向大型世界项目和自定义渲染工作流的工具与 API。 可用功能包括: 基于四叉树的网格渲染带无限投影 运行时水体原点偏移 全局水体缩放 手动水体渲染控制 优化 KWS2 以性能为核心优先事项设计,其模拟和渲染系统持续优化。 优化功能包括: GPU 驱动的网格生成 基于四叉树的海洋 LOD 程序化网格实例化 基于计算的粒子光栅化 自动模拟 LOD 基于距离的粒子数量缩减 模拟更新频率缩放 距离和遮挡剔除 帧分布的粒子生成和渲染 模拟级联优化 缓存的模拟初始化 可配置的质量设置 逐功能渲染控制 支持 Unity 全局质量级别 大水面和模拟分区的高效渲染 激进的着色器变体剥离,显著减少着色器编译和构建体积 质量设置可直接连接到 Unity 的全局质量级别,使水质在不同硬件配置上自动缩放。 集成: 全面支持 Built-in、URP 和 HDRP 管线 写入深度缓冲(用于 DoF、第三方雾、体积雾) 一键雾支持:Enviro、Azure、Aura2、COZY 等 每个参数的编辑器内视频提示和文档 质量设置与 Unity 全局质量级别关联,实现无缝缩放 公共运行时 API 包含交互式示例场景,涵盖海洋环境、河流、瀑布、动态模拟、岸线波浪、洪水、水洼、雨水积聚、水池、洞穴、水下渲染和射击、局部区域和裁剪遮罩、抛射物冲击、飞溅效果、泡沫尾迹、浮动原点工作流、动态对象交互、浮力、湿润和贴花。 限制: 虽然 KWS2 提供了强大且基于物理的模拟系统,但仍有一些重要限制需要注意: 不适合极端波浪——浅水算法最适合低到中等的波高。使用超过约 20 米的波高可能导致不自然的模拟行为、伪影或不稳定。对于大规模海洋涌浪,请使用 FFT 海洋渲染系统,而不是试图通过动态模拟分区生成整个波浪。 模拟分区是平的——水不会下落,只在表面上扩散。瀑布等斜面通过视觉和流向重定向处理,但无法模拟真正的 3D 流体体积或压力。 区域相机之外的对象——每个模拟分区使用正交相机检测地形和对象交叉。这意味着只有该相机可见的对象才会影响水体。如果对象的部分(如岩石或地形悬垂)被其他对象或墙壁遮挡,例如在洞穴内或陡峭几何体后面——它对区域相机不可见,也不会影响模拟。因此,水流可能看起来不正确地流过或穿过它 非平坦或陡峭表面——如下切、悬崖或倾斜岩石——可能无法被模拟正确识别。系统假设表面大多水平或缓坡,因此垂直或倒置的几何体可能导致不准确的水体行为(例如水流穿过表面或忽略表面)。 您可以在以下位置获取所有新的 beta 更改/修复/功能并获得支持