5.2 毛發(fā)和皮毛渲染
5.2 毛發(fā)和皮毛渲染
:
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 023-09-04? 09:00 ? 發(fā)表于上海 ? ? ? ? ? ? ? ? ? ? ?

概述
在實(shí)時(shí)游戲引擎中,毛發(fā)和Groom的渲染往往存在很多特殊的困難。本教程將介紹關(guān)于使用虛幻引擎中的MRQ來(lái)渲染高質(zhì)量毛發(fā)和Groom渲染的一些基本提示和技巧以及問題。
下方鏈接提供了有關(guān)UE中的毛發(fā)和Groom主題的一些額外信息:
https://docs.unrealengine.com/5.2/en-US/hair-rendering-and-simulation-in-unreal-engine/
基本設(shè)置
陰影
默認(rèn)情況下,陰影由體素體積投射。此體積的大小與物理資產(chǎn)相關(guān),將隨Groom的綁定幾何體發(fā)生變化。
1) 你可以按如下方式提高分辨率(介于0.1 - 0.05之間的值比較合適,默認(rèn)為0.3):?
r.HairStrands.Voxelization.Virtual.VoxelWorldSize 0

(此控制臺(tái)變量也可以添加到MRQ中的控制臺(tái)變量)
另一種方法:?
2) 你也可以切換光源以使用深陰影。(此選項(xiàng)在光源本身上)
注意:UE4中Groom的毛發(fā)還會(huì)通過反射捕獲來(lái)接收間接光照,如果你在場(chǎng)景中沒有設(shè)置反射捕獲,毛發(fā)可能會(huì)更暗一些。?

一些推薦的設(shè)置
(確保視口設(shè)置為“實(shí)時(shí)”)?
要潛在改進(jìn)毛發(fā)的纖細(xì)程度,?
請(qǐng)?jiān)黾尤訑?shù)量:
r.HairStrands.Visibility.MSAA.SamplePerPixel 8
更改光柵化方法(這實(shí)際上成本更高,會(huì)拖慢系統(tǒng)):
r.HairStrands.Visibility.PPLL 1
減小光柵比例:
r.HairStrands.RasterizationScale 0.3
對(duì)于環(huán)境光照,如下更改環(huán)境集成:?
r.HairStrands.SkyLighting.IntegrationType 1
要使用體素改進(jìn)陰影和投射精度:
r.HairStrands.Voxelization.Raymarching.SteppingScale 1
其他推薦的設(shè)置
MRQ設(shè)置

不像稻草的纖細(xì)發(fā)束的一些額外設(shè)置
調(diào)試
問題:“毛發(fā)看起來(lái)太像稻草”
對(duì)于實(shí)時(shí)版本:
r.HairStrands.Visibility.MSAA.SamplePerPixel 8
r.HairStrands.Voxelization.Raymarching.SteppingScale 1.15
對(duì)于離線版本(你仍可以在視口在運(yùn)行該功能,但前兩個(gè)選項(xiàng)可能調(diào)整快慢):
r.HairStrands.Visibility.PPLL 1
r.HairStrands.SkyLighting.IntegrationType 1
r.HairStrands.Voxelization.Raymarching.SteppingScale 1
r.HairStrands.DeepShadow.SuperSampling 1
在這兩種情況下,建議設(shè)置以下變量:
r.HairStrands.Voxelization.Virtual.VoxelWorlSize 0.1
r.HairStrands.VelocityRasterizationScale 0.5
對(duì)于光照也進(jìn)行以下操作:?
在邊沿光源上啟用深陰影,因?yàn)檫@有助于減少噪點(diǎn)
更改毛發(fā)著色器,以增加一點(diǎn)隨機(jī)性,打破常規(guī),因?yàn)槟壳八雌饋?lái)太平坦
更改毛發(fā)寬度。為此,打開Groom資產(chǎn),并轉(zhuǎn)至“發(fā)束(Strands)”選項(xiàng)卡。在其中,你可以將發(fā)束寬度從0.01增加到0.015/0.02,避免“看起來(lái)太透明”

深度問題增加每個(gè)像素的取樣數(shù):?r.HairStrands.Visibility.MSAA.SamplePerPixel 8或切換到PPLL渲染:r.HairStrands.Visibility.PPLL 1(使用此功能會(huì)對(duì)性能造成很大的影響,但可帶來(lái)最美觀的結(jié)果。)?
如果這是深度精度問題,你可以嘗試增加近Z值,看看是否有幫助。?例如:r.SetNearClipPlane 0.1?
你可以設(shè)置或調(diào)整的其他控制臺(tái)變量是:
r.HairStrands.DeepShadow.Resolution 2048r.HairStrands.DeepShadow.DepthBiasScale 10r.HairStrands.DeepShadow.InjectVoxelDepth .5
渲染設(shè)置案例研究:此簡(jiǎn)短示例來(lái)自真實(shí)客戶的真實(shí)案例研究,毛發(fā)中有多余的噪點(diǎn)和陰影變暗。在此例中,不論是否使用TAA,毛發(fā)在渲染后都留下了過多的噪點(diǎn)。在調(diào)試問題時(shí),我們懷疑多余噪點(diǎn)來(lái)自當(dāng)前的一組控制臺(tái)變量。尤其是:

將這兩個(gè)變量降至1以下會(huì)造成多余噪點(diǎn),這通??捎蒚AA解決。陰影變暗可通過資產(chǎn)或組件上的陰影密度來(lái)解決或調(diào)整,對(duì)其產(chǎn)生影響。還有一個(gè)全局變量用于這一用途:r.HairStrands.Voxelization.DensityScale
技巧提示深黑色或純黑色提示在r.HairStrands.Visibility.PPLL = 1時(shí),減小毛發(fā)末端比例參數(shù)會(huì)造成一些奇怪的瑕疵(基本上末端會(huì)變?yōu)榧兒谏?br>更清晰的陰影要實(shí)現(xiàn)更清晰的陰影,請(qǐng)?jiān)诠庠瓷洗蜷_“深陰影(Deep Shadows)”
Groom渲染中的瑕疵要幫助解決Groom渲染中的瑕疵,請(qǐng)調(diào)整以下值:r.HairStrands.SkyLighting.SampleCount
控制臺(tái)變量 - 可視化和調(diào)試r.HairStrands.StrandsMode(發(fā)束的渲染調(diào)試模式。0:關(guān)閉,1:模擬發(fā)束,2:使用彩色模擬發(fā)束影響來(lái)渲染發(fā)束;3:毛發(fā)UV,4:毛發(fā)根部UV,5:毛發(fā)種子,6:尺寸)r.HairStrands.DebugMode將顯示大量有用的渲染屬性。r.HairStrands.DebugMode 12將聚焦毛發(fā)附著物。選取后,你可以選擇可視化大量信息:
r.HairStrands.MeshProjection.DebugInUVsSpace,
r.HairStrands.MeshProjection.DebugSkinCache
r.HairStrands.MeshProjection.Render.Rest.Triangles
r.HairStrands.MeshProjection.Render.Rest.Frames
r.HairStrands.MeshProjection.Render.Deformed.Triangles
r.HairStrands.MeshProjection.Render.Deformed.Frames
r.HairStrands.MeshProjection.Sim.Rest.Triangles
r.HairStrands.MeshProjection.Sim.Rest.Frames
r.HairStrands.MeshProjection.Sim.Deformed.Triangles
r.HairStrands.MeshProjection.Sim.Deformed.Frames
如果你想渲染調(diào)試信息,這些信息也有很多,可用于模擬調(diào)試、顯示Groom物理資產(chǎn)圖元 + (r.HairStrands.StrandsMode 1?+?r.HairStrands.StrandWidth 0.5)
半透明(Translucency)
要確保在半透明對(duì)象前面渲染發(fā)束,就需要另一個(gè)控制臺(tái)變量設(shè)置:
r.HairStrands.ComposeAfterTranslucency
下面是r.HairStrands.ComposeAfter半透明度的后續(xù)選項(xiàng):
? 0:在半透明對(duì)象之前合成毛發(fā)。
? 1:在半透明對(duì)象之后,但在單獨(dú)的半透明對(duì)象之前合成毛發(fā)。
? 2:在所有/單獨(dú)的半透明對(duì)象之后合成毛發(fā)
? 3:在半透明對(duì)象之后,但在景深之后的半透明渲染之前合成毛發(fā)(這允許針對(duì)毛發(fā)深度進(jìn)行深度測(cè)試)
