虚幻4 简单的自定义光照

[复制链接]
查看5604 | 回复8 | 2017-5-12 12:29:00 | 显示全部楼层 |阅读模式
虚幻的大部分材质模型使用的是DeferredRendering。所以没办法直接获取光源的位置。但是gbuffer里面会储存fragment的normal,position等信息。这里就拿最简单的一个兰伯特光照模型作为例子。
首先我们建一个材质然后做如下操作
1.PNG

在这里面的 2.PNG 这个节点会从gbuffer中返回每个fragment的法线信息


3.PNG 这个是返回gbuffer里每个fragment的位置信息,虚幻4材质编辑器高度傻瓜化,sampler操作都帮我们做了。

4.PNG 最后这个是自己定义的光源位置。我这里把光源定义在(10000,10000,10000)的位置。这个值可以暴露出来,然后把这个材质做成dynamic的供给蓝图或者c++。这样就可以间接获取光源位置了。

最后就可以看到我们学DX或者Gl时光照第一课的简单的兰伯特光照啦。虽然没什么用不过对理解虚幻4的渲染有点帮助吧。
这也为在虚幻4里实现卡通光照提供了方法。

5.PNG
十二 | 2017-5-12 13:41:52 | 显示全部楼层
大神厉害,小萌新我是一句都没看懂...
回复 支持 反对

使用道具 举报

spdkir | 2017-5-12 23:31:38 来自手机 | 显示全部楼层
没懂。。。。
回复

使用道具 举报

QQ3217142879 | 2017-5-13 17:01:35 | 显示全部楼层
请问这材质拿来做什么的
回复 支持 反对

使用道具 举报

光影之间 | 2017-5-15 10:43:43 | 显示全部楼层
同问有啥用?
回复 支持 反对

使用道具 举报

我是狼 | 2017-5-15 16:44:16 | 显示全部楼层
看不懂  
回复 支持 反对

使用道具 举报

jie13523306 | 2017-5-26 17:23:48 | 显示全部楼层
看看有什么用
回复 支持 反对

使用道具 举报

zorn8496 | 2017-5-27 14:39:40 | 显示全部楼层
可以用 AtmosphericLightVector 代替LightVector,当然场景里需要摆放一个AtmosphericFog,做主光源的DirectionalLight上勾选AtmosphereSunLight,
lv.jpg
回复 支持 反对

使用道具 举报

堕落的牧羊人 | 2017-5-31 00:08:36 | 显示全部楼层
谢谢分享
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

7

主题

21

回帖

23

积分

初始化成员

积分
23