这不仅仅是美丽的折射水面,焦散效果实际上是由光线投射产生的,而且整个场景互动性极强。更重要的是,这一切都直接在浏览器中运行。
ScottieFox发布了该模拟的两个版本:“精简版”和“万物沙盒版”。第一个版本展示了一个装满水的玻璃缸,水面上漂浮着一只橡皮鸭,阳光或吊灯的光线穿过水体。随着水面波动,光线聚焦在缸底,形成动态焦散效果。它足够轻量,可以在老旧笔记本电脑和手机上运行,同时仍允许你与场景互动。你可以点击水面制造涟漪,点击鸭子附近推动它,并调整湍流参数来观察模拟变化。
第二个版本则是为那些真正想压榨高端GPU性能的用户准备的。它包含了精简版的所有功能,但将模拟推向了更远:你可以试验漂浮或下沉的物体,将墨水和沙子搅入水中,玩转激光和多重光源,并使用不同的质量预设。
每个版本都是一个基于Three.js构建的单一HTML文件,免费且开源。
你可以在这里体验它们。如果你想了解Three.js还能实现什么,可以看看Dan Greenheck的海洋渲染方案,以及Yong Su对Evan Wallace的WebGL演示的移植版本:
