水体渲染:如何实现 3D 世界的江河湖海?


水覆盖了地球超过 70% 的表面,与人类的日常活动息息相关。映射到虚拟世界,水也是重要的存在:

电影《阿凡达2:水之道》,展示了以水构筑的奇幻家园;

游戏《神秘海域4》则让玩家沉浸式感受清澈的海岛浅滩;

在虚拟仿真实验教学中,海洋作业、海洋动物研究等,都需要对海洋水体进行仿真模拟。

我们之所以能真实地“扎进”各种 3D 虚拟场景中,归功于水体渲染技术。出于不同的应用场景和氛围营造,对水体渲染的方法和技术要求不同,所以水体渲染一直都是“高要求,高挑战”。

松应 Orca Studio 3D 引擎内置不同的水体渲染方法,可以灵活创作平静或汹涌的水满足水体的多应用场景。

松应自研引擎 渲染效果

水之道:水体渲染技术

水体渲染是指模拟江河湖海等不同水体的特性,做出“看起来很像水”的效果。一直都是计算机图形学和游戏开发领域的核心难点之一。

水体渲染,一般包括波形模拟和水体着色两部分。

1. 波形模拟:

在水体渲染中,最核心的部分为波形的模拟技术,即如何模拟出逼真的水面波浪的流动变化。波形模拟,根据效果大致分为两种:

第一种:基于凹凸纹理贴图的“假波纹”

扰动参与光照计算的法向量,通过凹凸纹理贴图的连续移动,来模拟海浪的随机运动。几乎是实时水体渲染的必备贴图之一。

第二种:基于顶点动画在网格构成“真波浪”

“真波浪”方法众多,比如线性波形叠加、统计学模拟、物理模拟等。本文重点展示使用起来简单易行的线性波形叠加。即:累加不同的线性波形函数以构造波浪表面。

可以将其理解为波动现象在深水中引起水颗粒运动的一种解析解。

2. 水体着色:

水体着色的模拟方案,需要实现的效果比较复杂,包括:到达水面的光线除了在水体表面发生反射之外,还有部分光线进入水体内部,经过吸收和散射后再次从水体表面射出,即水体的次表面散射现象(Sub-Surface Scattering, SSS)。

这个过程涉及到了漫反射,镜面反射,法线贴图,折射等比较常见的技术,以及水体的通透感(Translucency),白沫(Foam/WhiteCap)等的渲染。

松应自研引擎方案:创造灵动的水

在攻克水体渲染的难题上,松应 Orca Studio 3D 引擎可以根据应用场景,以及性能要求的不同,提供不同的技术解决方案。

终实现真实性、性能优越和创作便利三者的平衡。通过不同技术的选择或叠加,不仅呈现出真实的水体,还要释放性能,并且兼顾创作者能够直观便捷地调整渲染参数。

在创作相对平静的水面时,松应 Orca Studio 3D 引擎采用着色渲染和凹凸纹理贴图,在平面体现“假波纹”。

比如平静湖面或不太湍急的河流。因为波纹起伏不大,相对角色尺度较小,不易看到水体侧面穿帮,是一个极高性价比的方案。

需要创作波涛起伏的水面时,松应 Orca Studio 3D 引擎则采用线性波形叠加方法,模拟“真波浪”。主要采用的是业界主流的波形函数,包括正弦波(Sinusoids Wave)和 Gerstner 波 (Gerstner Wave)。

正弦波的特点是平滑,圆润,适合表达广阔的水域。Gerstner 波的特点是波峰尖锐,波谷宽阔,适合模拟海洋等较粗犷的水面。

松应 Orca Studio 3D 引擎,还可以将两种线性波形叠加混用,进行水体的仿真模拟:

 松应自研引擎–水体渲染技术:线性波形叠加

在水体着色的方面,松应 Orca Studio 3D 引擎具备反射、折射、焦散、透明等特性,达到真实、细腻的水体效果。

反射采用了透明表面的光线追踪反射,增强水面的倒影真实感。

  松应自研引擎–水体渲染技术:着色效果

最后,松应 Orca Studio 3D 引擎进行的水体渲染,在保证水体效果真实的同时,实现实时的动态渲染——动态呈现水面反射、水底焦散、起伏海波和透明度渐变等。

关于松应

松应 Orca Studio 3D 引擎+智能协作平台,正在帮助个人或团队高效建模、实时渲染和协作,保证高帧率以实现流畅的创作体验。

如有任何疑问或需要进一步了解,请随时联系我们的客服团队,我们将竭诚为您服务。

《 “水体渲染:如何实现 3D 世界的江河湖海?” 》 有 3 条评论

  1. I would like to thank you for the efforts you’ve put in writing this blog.
    I’m hoping to see the same high-grade content from you in the
    future as well. In truth, your creative writing abilities has
    encouraged me to get my own site now 😉

  2. Hey tһere! I’vе beеn reading your website for some time now
    and fіnally g᧐t the courage to go ahead andd give you a shout outt fr᧐m Porter Tx!
    Just wanteԀ to mention кeep up thе gooԁ work!

  3. Hello, і think tһat i ѕaw yⲟu visited mʏ weblog thus i came tto “return tһe favor”.I am trying to find things to improve mү web site!Ι suppose its okk tߋ use some ߋf
    yⲟur ideas!!

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注