UDN
Search public documentation:

ScreenSpaceSubsurfaceScatteringCH
English Translation
日本語訳
한국어

Interested in the Unreal Engine?
Visit the Unreal Technology site.

Looking for jobs and company info?
Check out the Epic games site.

Questions about support via UDN?
Contact the UDN Staff

虚幻引擎3主页 > 虚幻引擎3中的DirectX 11 >屏幕空间次表面散射
UE3 主页 > 材质 & 贴图 > 屏幕空间次表面散射

屏幕空间次表面散射


概述


本文介绍了如何使用虚幻引擎3中的次表面散射。"次表面散射"是指光线透过物体表面,从物体内部散射出来,从不同的位置射出。

SSSFace.jpg

UE3实现的次表面散射是一种屏幕空间特效,它把入射到物体表面的光线模糊到表面附近其它点上。模糊基于入射点到出射点之间的世界空间距离衰减光照,从而模拟物体内部吸收光线的效果。

该模拟足以使我们把材质看成皮肤,但是并没有处理光线从不可见表面完全散射穿过物体的现象。

SSSBreakdown.jpg

启用SSS


要想使用次表面散射,您必须在DirectX11模式下运行UE3。

另外,您必须在您游戏的engine INI文件中启用次表面散射功能。在 [SystemSettings] 部分找到AllowSubsurfaceScattering项,并设置它为True。

SSS材质参数


要想向材质添加次表面散射,您需要设置它的EnableSubsurfaceScattering属性为True:

EnableSubsurfaceScatteringProperty.png

另外,您需要提供SubsurfaceInscatteringColor、SubsurfaceAbsorptionColor和SubsurfaceScatteringRadius材质参数的值:

MaterialParameters.png

SubsurfaceInscatteringColor(次表面内散射颜色)

内散射颜色是用于在光线入射到物体处调制该光线的颜色。这对于控制次表面散射的总量和颜色是有用的。

内散射颜色由绿变红的示例:

VaryingInscatteringColor.png

SubsurfaceAbsorptionColor(次表面吸收色)

吸收颜色是光线已经到达散射半径后仍然保留的颜色。从入射点到散射半径处,光线颜色按照指数型衰减由白色变为吸收色。

和内散射颜色不同,吸收色在光线射出物体处进行计算。

吸收色由绿变红的示例:

VaryingAbsorptionColor.png

SubsurfaceScatteringRadius(次表面散射半径)

散射半径定义了光线在完全被吸收前可以穿越物体的最大距离,按世界单位计算。

和吸收色一样,它是在光线射出物体的地方进行计算。

在水平方向变化的散射半径的示例:

VaryingScatteringRadius.png

内容示例

以下图片是创建角色皮肤材质所使用的次表面散射的基本示例。您将注意到有一个漫反射贴图,它用于phong漫反射且该漫发射贴图经过颜色调制,以便创建内散射颜色。有一个独立的贴图用于吸收颜色。创建漂亮的皮肤效果的技巧是平衡phong和次表面的光照分布多少。太多的次表面效果将会产生闪光的或胶状物的外观效果,而太多的phong光照将会导致角色呈现出过于干枯、锐化的外观效果。

SSS_Content.jpg