柔性轮廓在虚幻4中如何实现? VR资源
2017-09-29 18:21:42
自从我第一次写了关于在虚幻引擎4中创建轮廓之后,我想知道是否可以将它们渲染为软的轮廓,而不是苛刻的二进制线,就像在Left 4 Dead或CS:GO的游戏中看到的,如下所示。

最近我做了一个快速实验,使用SpiralBlur的修改版本,这是Unreal Engine 4中提供的一个节点,并且正在使用一些自定义的着色器代码。 这是我得到的结果:



看起来不错 效果比二进制轮廓贵一点,因为我们在SpiralBlur节点中执行了几个步骤以使其看起来非常流畅。 后来在这篇文章中,我将谈论性能。 最终的图像显示了高距离参数的极端设置,从而更清晰地显示淡出。
材质图
不幸的是,我在Spiral Blur节点上找不到任何官方的UE4文档。 内置的实现将场景纹理和多次迭代创建... .螺旋模糊。 默认设置是大约128次迭代,这是非常大的! 我已经使用这个节点作为参考来创建自己的样本自定义深度缓冲区而不是场景颜色。
它的节点图是相当简单的,大多数的逻辑发生在自定义节点内,作为下面的代码示例被添加。


01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
|
float3 CurColor=0; float2 NewUV = UV; int i=0; float StepSize = Distance / ( int ) DistanceSteps; float CurDistance=0; float2 CurOffset=0; float SubOffset = 0; float TwoPi = 6.283185; float accumdist=0; if (DistanceSteps < 1) { return Texture2DSample(CustomDepthTexture,CustomDepthTextureSampler,UV); } else { while (i < ( int ) DistanceSteps) { CurDistance += StepSize; for ( int j = 0; j < ( int ) RadialSteps; j++) { SubOffset +=1; CurOffset.x = cos (TwoPi*(SubOffset / RadialSteps)); CurOffset.y = sin (TwoPi*(SubOffset / RadialSteps)); NewUV.x = UV.x + CurOffset.x * CurDistance; NewUV.y = UV.y + CurOffset.y * CurDistance; float distpow = pow (CurDistance, KernelPower); CurColor += ceil (Texture2DSample(CustomDepthTexture,CustomDepthTextureSampler,NewUV))*distpow; accumdist += distpow; } SubOffset +=RadialOffset; i++; } CurColor = CurColor; CurColor /=accumdist; return CurColor; } |
性能
性能在850M移动GPU上以1280×720(约〜1.5ms)测量,在我的GTX 980 Ti上运行,运行时间为1920×1080,后处理材料为0.8ms。 它在很大程度上取决于螺旋模糊中的迭代量。 您将要保持DistanceSteps和RadialSteps尽可能的低,同时保持平滑的边缘。 在演示中,我决定了4次DistanceSteps和8次RadialSteps,这是32次迭代。

结论
总而言之,答案是肯定的! 完全有可能使这项工作被实现。 我想象,可能会有更有效的方式来模糊自定义深度缓冲区以获得类似的结果,我只是利用可用的着色器代码快速获得概念证明。 重要的是要注意,远离对象的轮廓可以使它看起来略微不光滑,更薄的轮廓有助于柔性轮廓实现并且参数调整是一个问题。

热门推荐
Hot Recommended
Hot Recommended
-
- 开发者福音:谷歌新增VR建模工具Blocks...
早在去年7月份,为了让 VR/AR 应用开发人员更轻松地创建和更直观地看到 3D 虚拟对象,...
-
-
- 使用Unity动画软件生动你的游戏 VR开发...
想知道在Unity中如何将游戏中角色对话的唇型与面部微表情达到次时代的水准吗?想知道...
-
-
- VR设计者不得不看的三点思考:媒介、熟...
近日,RLTY CHK工作室的联合创始人Nick Robinson发布了一篇文章,以媒体天师麦克卢汉...
-
-
- 如何让VR环境及体验更有趣逼真的UI小技...
VR设计师和开发者们开始着手如何让VR环境及体验更加有趣、逼真。以下是一些关于如何为room...
-
-
- 为什么第一人称视角的VR连续镜头普遍不...
笔者在为《幻想装置》和《工作模拟》制作出混合现实的预告片以后,研究了更深层次的VR...
-