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

扫一扫,访问微社区

蛮牛译馆

关注:595

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

查看: 1652|回复: 17

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

[复制链接]  [移动端链接]
排名
8191
昨日变化
7

263

主题

301

帖子

1534

积分

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

UID
159865
好友
9
蛮牛币
3979
威望
0
注册时间
2016-8-1
在线时间
626 小时
最后登录
2017-11-19

蛮牛译员

发表于 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


回复

使用道具 举报

6蛮牛粉丝
1492/1500
排名
5674
昨日变化
31

2

主题

1095

帖子

1492

积分

Rank: 6Rank: 6Rank: 6

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

回复

使用道具 举报

7日久生情
1779/5000
排名
593
昨日变化
3

4

主题

113

帖子

1779

积分

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

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

回复 支持 反对

使用道具 举报

8常驻蛮牛
6293/10000
排名
240
昨日变化

0

主题

3273

帖子

6293

积分

Rank: 8Rank: 8

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

回复 支持 反对

使用道具 举报

7日久生情
3215/5000
排名
4970
昨日变化
29

4

主题

2685

帖子

3215

积分

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

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

回复

使用道具 举报

4四处流浪
461/500
排名
7697
昨日变化
9

0

主题

239

帖子

461

积分

Rank: 4

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

回复 支持 反对

使用道具 举报

4四处流浪
352/500
排名
24262
昨日变化
15

0

主题

149

帖子

352

积分

Rank: 4

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

回复

使用道具 举报

排名
53713
昨日变化
58

0

主题

14

帖子

25

积分

Rank: 1

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

回复

使用道具 举报

3偶尔光临
155/300
排名
13123
昨日变化
11

0

主题

78

帖子

155

积分

Rank: 3Rank: 3Rank: 3

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

回复

使用道具 举报

4四处流浪
474/500
排名
6412
昨日变化
59

5

主题

135

帖子

474

积分

Rank: 4

UID
241851
好友
0
蛮牛币
2219
威望
0
注册时间
2017-9-6
在线时间
178 小时
最后登录
2017-12-11
发表于 2017-10-16 19:46:43 | 显示全部楼层
感谢分享

回复

使用道具 举报

3偶尔光临
152/300
排名
10694
昨日变化
166

0

主题

47

帖子

152

积分

Rank: 3Rank: 3Rank: 3

UID
251292
好友
0
蛮牛币
84
威望
0
注册时间
2017-10-28
在线时间
35 小时
最后登录
2017-12-11
发表于 2017-10-31 08:09:37 | 显示全部楼层

回复

使用道具 举报

排名
53713
昨日变化
58

0

主题

9

帖子

12

积分

Rank: 1

UID
146305
好友
0
蛮牛币
14
威望
0
注册时间
2016-4-21
在线时间
1 小时
最后登录
2017-11-5
发表于 2017-11-5 21:03:15 | 显示全部楼层
谢谢楼主分享!

回复

使用道具 举报

5熟悉之中
854/1000
排名
4677
昨日变化
30

1

主题

395

帖子

854

积分

Rank: 5Rank: 5

UID
216583
好友
1
蛮牛币
1282
威望
0
注册时间
2017-4-7
在线时间
214 小时
最后登录
2017-12-11
发表于 2017-11-6 19:08:47 | 显示全部楼层
感谢分享

回复

使用道具 举报

排名
53713
昨日变化
58

1

主题

23

帖子

60

积分

Rank: 2Rank: 2

UID
162813
好友
0
蛮牛币
42
威望
0
注册时间
2016-8-17
在线时间
24 小时
最后登录
2017-12-7
发表于 2017-11-7 09:55:16 | 显示全部楼层
不错,改天试试

回复

使用道具 举报

排名
29305
昨日变化
33

0

主题

12

帖子

24

积分

Rank: 1

UID
196822
好友
0
蛮牛币
23
威望
0
注册时间
2016-12-28
在线时间
4 小时
最后登录
2017-11-8
发表于 2017-11-8 09:49:56 | 显示全部楼层
感谢翻译

回复

使用道具 举报

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

本版积分规则

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