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

扫一扫,访问微社区

蛮牛译馆

关注:553

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

查看: 884|回复: 6

[Unreal教程] 使用蓝图来定制对象阴影地图

[复制链接]  [移动端链接]
排名
7719
昨日变化
8

213

主题

250

帖子

1362

积分

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

UID
159865
好友
9
蛮牛币
3259
威望
0
注册时间
2016-8-1
在线时间
597 小时
最后登录
2017-8-17

蛮牛译员

发表于 2017-7-19 13:43:53 | 显示全部楼层 |阅读模式

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

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

x
本帖最后由 manew_JR 于 2017-7-19 13:45 编辑

使用蓝图来定制每个对象阴影地图

01.png


对于某些高级材料,能够渲染每个对象阴影的自定义是有用的。 对于移动项目,这可以让您渲染与Epic“Zen Demo”类似的叶子的烘烤阴影贴图。 在UE4内部灵活地执行此操作意味着也可以捕获特定的物质效果,这可能难以转化为其他程序。 您还可以对更先进的光线跟踪技术进行原型制作,包括制作自定义光照渲染器。
02.jpg


由于使用了自定义的材料技巧,UE4内部的静态照明并不能很好地照亮树。也许可以用第三方程序烘烤一个定制的lightmap,但是这样做意味着光映射必须为特定的视图方向进行烘烤,而且它们看起来完全是静态的。
为了解决这些问题,为树提供了一个规范化深度映射,并在材料中使用自定义自阴影。这个深度地图被存储到一个静态纹理中,然后从光线的角度动态投射到树上。这使得阴影看起来更有活力,因为从光线中精确捕捉到深度,任何应用到树的顶点动画看起来都在移动动态阴影,因为几何图形会移动“过去”的阴影。尽管阴影本身是静止的,但这种运动使它看起来是动态的。也可以用可变大小的比较因子来近似下表面光。

03.gif


本文要求:
一个渲染目标
一个actor的蓝图
一个场景捕获组件2D

影子预览材料
首先,使用内容浏览器创建新的呈现目标。把你想要用到的东西定好。


蓝图的设置
04.PNG
组件
创建一个新的Actor蓝图,并添加一个场景捕获组件2D到它。选择场景捕获并将投影模式设置为正射,并将捕获的每帧捕获为False。分配渲染目标到场景捕获。

变量
在blueprint中添加一个新的类型静态网格参与者的变量。它SMeshActor名称。通过点击旁边的眼球图标来设置可编辑的变量。使用actor变量将允许该蓝图与已经存在于级别中的任意网格进行工作。您还可以设置蓝图来产生它自己的静态网格,并进行一些细微的修改。

创建一个动态类型的变量。命名为阴影预览中。
创建一个类型向量的变量,并将其命名为LightVector。将其设置为可编辑。
最后,创建一个布尔类型的变量,并命名它显示预览材料。现在我们已经完成了设置变量的工作。

功能
在blueprint中添加一个新函数,并将其命名为Light Transform。选择函数输入或输出节点,确保纯为真。添加名为X、Y和Z的向量输出,并将它们连接起来。
05.gif


构建脚本
blueprint脚本的其余部分将作为节点添加到构建脚本中。为了使图像清晰,我把它分解成小图像。您可以按顺序将它们连接为节点,也可以为各个部分创建函数。首先,我们创建一个中点并分配我们的中间变量来包含对它的引用:
06.gif

接下来,我们使用光转换函数的结果来设置场景捕获组件的位置和旋转:
07.gif
接下来,我们使用静态网格像素的Sphere Radius设置场景捕获组件的正交宽度:

08.gif
接下来,我们再次使用光转换函数在中间变量中设置三个向量参数值:

09.gif
蓝图脚本的最后一部分是可以选择将Shadow Preview MID应用于指定的Static Mesh Actor上的所有材质元素:

10.gif

可选步骤
也可以创建可编辑的“定向光”类型的变量。 然后通过将以下节点添加到构造脚本中,您可以编辑光矢量并更新定位灯,以在级别中匹配:

11.gif


材质
在材质中,网格的世界位置将被转换成我们使用蓝图所构建的光转换。偏差参数控制阴影比较。更大的除数值可以创建一个更表面的外观。


12.gif

13.gif
现在,我们可以将蓝图放入世界,并指定它指向任何静态网格。 选中“显示预览材料”选项后,阴影预览比较将显示在世界地图上:


改变阴影偏移量抵消阴影开始的地方:

14.gif


改变阴影除数,改变整个阴影所需要的距离:

15.gif

回到上一篇关于UV扩张的帖子,可以将另一个渲染目标链接在一起,并在阴影贴图比较上执行阴影半影模糊,并将该值存储为归一化光图,而不是基于深度的阴影贴图。

您可能会注意到这是基于“渲染到纹理蓝图”工具集中包含的功能。 我想以一种可以以交互预览的方式重新创建该系统,而不是要求将屏幕截图作为单独步骤进行烘焙。 未来的计划是最终从“UE4”的Engine \ Content目录中删除“Render to Texture”蓝图,并将其作为内容插件重新发布,现在我们可以在项目之间共享内容插件。





原文标题:Custom Per Object Shadowmaps using Blueprints
原文链接:http://shaderbits.com/blog/custom-per-object-shadowmaps-using-blueprints











回复

使用道具 举报

排名
12909
昨日变化
9

0

主题

16

帖子

76

积分

Rank: 2Rank: 2

UID
226304
好友
0
蛮牛币
129
威望
0
注册时间
2017-6-12
在线时间
18 小时
最后登录
2017-8-16
发表于 2017-7-19 17:42:56 | 显示全部楼层
厉害了eeeeeeeeeeeeee

回复 支持 反对

使用道具 举报

7日久生情
1680/5000
排名
16568
昨日变化
15

2

主题

1424

帖子

1680

积分

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

UID
185807
好友
0
蛮牛币
2166
威望
0
注册时间
2016-11-22
在线时间
230 小时
最后登录
2017-8-16
发表于 2017-8-2 14:42:40 | 显示全部楼层
赞,学习了,谢谢分享

回复 支持 反对

使用道具 举报

6蛮牛粉丝
1054/1500
排名
3801
昨日变化
18

6

主题

499

帖子

1054

积分

Rank: 6Rank: 6Rank: 6

UID
83438
好友
2
蛮牛币
1463
威望
0
注册时间
2015-3-23
在线时间
259 小时
最后登录
2017-8-17
发表于 2017-8-2 14:49:55 | 显示全部楼层
UE4蓝图太牛叉 也太复杂了

回复 支持 反对

使用道具 举报

排名
14640
昨日变化
7

0

主题

23

帖子

75

积分

Rank: 2Rank: 2

UID
232137
好友
0
蛮牛币
158
威望
0
注册时间
2017-7-14
在线时间
22 小时
最后登录
2017-8-14
发表于 2017-8-2 17:11:22 | 显示全部楼层
我智能说 蓝图太强大了

回复 支持 反对

使用道具 举报

排名
13522
昨日变化
331

1

主题

43

帖子

99

积分

Rank: 2Rank: 2

UID
233944
好友
0
蛮牛币
226
威望
0
注册时间
2017-7-24
在线时间
22 小时
最后登录
2017-8-17
发表于 2017-8-3 09:26:22 | 显示全部楼层
66666666666的飞起

回复 支持 反对

使用道具 举报

3偶尔光临
249/300
排名
8379
昨日变化
81

0

主题

90

帖子

249

积分

Rank: 3Rank: 3Rank: 3

UID
135463
好友
0
蛮牛币
3
威望
0
注册时间
2016-1-23
在线时间
61 小时
最后登录
2017-8-17
发表于 2017-8-3 16:40:25 | 显示全部楼层
不能看美国和苦闷和顾客买

回复 支持 反对

使用道具 举报

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

本版积分规则

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