章程

Evil3D次世代角色头部演示


Evil3D引擎次世代角色Demo正式发布。本Demo演示的是应用了大量前沿图形渲染技术的次世代角色头部模型,充分展示了Evil3D引擎强大的图形表现能力。
demo传送门

image

本Demo中值得关注的技术点主要体现在皮肤、眼睛,以及毛发的渲染上。下面将依次为大家介绍。

皮肤的表现

皮肤的表现是整个Demo中最为复杂的。它分为SSS(Sub-Surface Scattering,次表面散射)及Specular两个部分。

SSS部分,我们使用了基于Texture Space Diffusion(TSD)的方法。与常规的TSD方法不同,我们对皮肤的模糊处理并非实时进行的,而是离线预计算的。这样便大大减轻了GPU的计算负担。
image

但在离线处理的方式中,我们无法得到皮肤在光照下的明暗变化信息。针对这一问题,我们引入了Pre-Integrated Skin Shading这个方法,模拟了光在明暗交界处的渗透。两者结合,我们成功得到了“有血有肉”的皮肤。此方法还有一个很大的好处,就是同时能以较低的开销把透光效果也一并实现。
image

高光部分,我们使用了基于Kelemen/Szirmay-Kalos BRDF的高光。在具体实现中,我们使用两组定制的矢量模拟了曝光曲线,用于取代原算法中的Beckmann texture,既节省了资源,也提升了效率。

眼睛的表现

眼睛是表现角色气魄和精神的重要元素。本Demo中,眼球的渲染整体上遵循解剖学原理,尽可能地还原了真实的眼睛。

眼球大致可被分解成两个部分:虹膜下陷层及晶状体凸起层。虹膜层以漫反射现象为主,而晶状体层以高光反射为主。
image

分别根据两者对光的反射特性为其着色:
image

将两者的渲染结果根据mask按比例混合,便得到了本Demo中的眼球。
image

毛发的表现

毛发高光部分的渲染采用了Kajiya-Kay Shading Model——一种主流的各向异性光照模型。为加强毛发的层次感,本Demo中使用了两层各向异性高光。
image

其中一层是范围较大较柔和的高光,另一层则是较聚集、较锐利的高光。

此外,为了更好地表现毛发末梢的半透明效果,我们还使用了特殊的透明材质渲染方案。在对半透明材质作处理时,传统的做法有两种:Alpha Test及Alpha Blend。Alpha test 可以滤掉透明区域,但是由于是像素剪切形式,效果非常粗糙。Alpha blend可以实现柔顺的半透明效果,但是容易出现前后排序问题。在此我们采用的方案是,分别以两种方式渲染一遍,然后根据贴图的Alpha通道将两者混合起来,使得靠近末梢的地方混合更多Alpha Blend的成分,而其他地方混合更多Alpha Test的成分。
image

以上为大家带来的是Evil3D引擎次世代角色渲染技术简介。感谢大家支持。