Leonard Saalfrank(又名OMYOG)展示了一款自定义C++海岸渲染器,该渲染器作为一周渲染挑战的成果,探索了实时海岸线渲染、浅水模拟及GPU驱动的视觉效果。
该项目基于他此前为《Ferocious》开发的水体渲染工作,并扩展了浅水波浪、GPU驱动的破碎波浪以及支持多达30万GPU粒子的粒子泡沫系统。
上图展示了在RTX 4090笔记本GPU上开启GPU分析时,所有渲染通道处理超过600万个三角形、使用8K纹理以2K分辨率运行,帧率约250 FPS。若关闭捕获和分析开销,性能可提升至约300 FPS。
据开发者介绍,光照采用朗伯漫反射和Cook-Torrance微表面镜面着色,水面通过平面反射与屏幕空间折射组合渲染。阴影结合了阴影贴图和屏幕空间接触阴影。此外还集成了Dear ImGui调试界面,用于检查各渲染和模拟通道及性能分析。
随后,Leonard添加了粒子模拟泡沫,取代了此前通过速度场纹理平流模拟泡沫的方法:
“新版本将泡沫模拟为在水面移动的众多独立粒子。这些粒子被渲染成密度图,并用于最终渲染。这显著改变了行为:泡沫现在可以聚集形成斑块,被水流拉伸撕裂,在波浪周围破碎,并产生更精细的表面细节。
我最喜欢的效果之一是,泡沫现在能在破碎波浪末端形成可见的‘浪唇’,这更接近真实海浪的形态。”
您可以在LinkedIn上关注Leonard Saalfrank获取更新,并关注我们的Twitter、LinkedIn、Telegram和Instagram,我们会在这些平台分享技术解析、最新资讯和精彩作品。


