开启辅助访问
 找回密码
 注册帐号

扫一扫,访问微社区

蛮牛译馆

关注:579

当前位置:游戏蛮牛 技术专区 蛮牛译馆

查看: 630|回复: 10

[Unreal教程] 虚幻引擎4中的柔性轮廓

[复制链接]  [移动端链接]
排名
7936
昨日变化
3

260

主题

298

帖子

1511

积分

Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15

UID
159865
好友
9
蛮牛币
3908
威望
0
注册时间
2016-8-1
在线时间
623 小时
最后登录
2017-10-15

蛮牛译员

发表于 2017-9-28 15:14:21 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?注册帐号

x

虚幻引擎4中的柔性轮廓


自从我第一次写了关于在虚幻引擎4中创建轮廓之后,我想知道是否可以将它们渲染为软的轮廓,而不是苛刻的二进制线,就像在Left 4 Dead或CS:GO的游戏中看到的,如下所示。
1.png




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

3.jpg

4.jpg



看起来不错 效果比二进制轮廓贵一点,因为我们在SpiralBlur节点中执行了几个步骤以使其看起来非常流畅。 后来在这篇文章中,我将谈论性能。 最终的图像显示了高距离参数的极端设置,从而更清晰地显示淡出。



材质图


不幸的是,我在Spiral Blur节点上找不到任何官方的UE4文档。 内置的实现将场景纹理和多次迭代创建... .螺旋模糊。 默认设置是大约128次迭代,这是非常大的! 我已经使用这个节点作为参考来创建自己的样本自定义深度缓冲区而不是场景颜色。


它的节点图是相当简单的,大多数的逻辑发生在自定义节点内,作为下面的代码示例被添加。

5.jpg

6.jpg





[C++] 纯文本查看 复制代码
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次迭代。
7.jpg


结论

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







原文标题:Soft outlines in Unreal Engine 4


回复

使用道具 举报

5熟悉之中
717/1000
排名
9234
昨日变化
110

2

主题

523

帖子

717

积分

Rank: 5Rank: 5

UID
241666
好友
0
蛮牛币
2747
威望
0
注册时间
2017-9-6
在线时间
102 小时
最后登录
2017-10-21
发表于 2017-9-29 10:29:30 来自Mobile--- | 显示全部楼层
感谢分享了

回复

使用道具 举报

7日久生情
1656/5000
排名
672
昨日变化
5

4

主题

113

帖子

1656

积分

Rank: 7Rank: 7Rank: 7Rank: 7

UID
122711
好友
0
蛮牛币
4644
威望
0
注册时间
2015-9-15
在线时间
461 小时
最后登录
2017-10-21
发表于 2017-9-29 11:19:46 | 显示全部楼层
看起来效果很不错啊,感谢
[发帖际遇]: 墨家教徒 在论坛发帖时没有注意,被小偷偷去了 1 蛮牛币. 幸运榜 / 衰神榜

回复 支持 反对

使用道具 举报

8常驻蛮牛
5697/10000
排名
245
昨日变化

0

主题

2831

帖子

5697

积分

Rank: 8Rank: 8

UID
3215
好友
0
蛮牛币
303
威望
0
注册时间
2013-9-4
在线时间
1282 小时
最后登录
2017-10-20
发表于 2017-9-29 11:30:32 | 显示全部楼层
的顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶
[发帖际遇]: 一个袋子砸在了 zhaoXH 头上,zhaoXH 赚了 1 蛮牛币. 幸运榜 / 衰神榜

回复 支持 反对

使用道具 举报

7日久生情
1928/5000
排名
6375
昨日变化
67

4

主题

1579

帖子

1928

积分

Rank: 7Rank: 7Rank: 7Rank: 7

UID
209186
好友
2
蛮牛币
2531
威望
0
注册时间
2017-3-1
在线时间
189 小时
最后登录
2017-10-20
发表于 2017-9-29 13:06:03 | 显示全部楼层
不错,收藏了
[发帖际遇]: luastudy 在论坛发帖时没有注意,被小偷偷去了 1 蛮牛币. 幸运榜 / 衰神榜

回复

使用道具 举报

3偶尔光临
239/300
排名
10816
昨日变化
162

0

主题

124

帖子

239

积分

Rank: 3Rank: 3Rank: 3

UID
182268
好友
0
蛮牛币
268
威望
0
注册时间
2016-11-9
在线时间
49 小时
最后登录
2017-10-20
发表于 2017-9-29 15:50:26 | 显示全部楼层
的顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶顶

回复 支持 反对

使用道具 举报

3偶尔光临
264/300
排名
23402
昨日变化
23

0

主题

140

帖子

264

积分

Rank: 3Rank: 3Rank: 3

UID
221429
好友
0
蛮牛币
121
威望
0
注册时间
2017-5-9
在线时间
112 小时
最后登录
2017-10-21
发表于 2017-9-29 18:13:37 | 显示全部楼层
thank you sir

回复

使用道具 举报

排名
51807
昨日变化
16

0

主题

14

帖子

24

积分

Rank: 1

UID
151000
好友
0
蛮牛币
52
威望
0
注册时间
2016-6-6
在线时间
8 小时
最后登录
2017-9-30
发表于 2017-9-30 09:54:54 | 显示全部楼层
感谢分享
[发帖际遇]: gforcex 乐于助人,奖励 2 蛮牛币. 幸运榜 / 衰神榜

回复

使用道具 举报

2初来乍到
137/150
排名
14889
昨日变化
16

0

主题

77

帖子

137

积分

Rank: 2Rank: 2

UID
243160
好友
0
蛮牛币
224
威望
0
注册时间
2017-9-13
在线时间
26 小时
最后登录
2017-10-19
发表于 2017-9-30 11:06:21 | 显示全部楼层
感谢分享

回复

使用道具 举报

3偶尔光临
176/300
排名
11160
昨日变化
12

1

主题

56

帖子

176

积分

Rank: 3Rank: 3Rank: 3

UID
241851
好友
0
蛮牛币
408
威望
0
注册时间
2017-9-6
在线时间
55 小时
最后登录
2017-10-21
发表于 5 天前 | 显示全部楼层
感谢分享

回复

使用道具 举报

5熟悉之中
556/1000
排名
6155
昨日变化
55

0

主题

181

帖子

556

积分

Rank: 5Rank: 5

UID
25562
好友
0
蛮牛币
7
威望
0
注册时间
2014-5-18
在线时间
213 小时
最后登录
2017-10-20
发表于 3 天前 | 显示全部楼层
可以的可以的

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册帐号

本版积分规则

快速回复 返回顶部 返回列表