虚幻4渲染编程(灯光篇)【第一卷:各种ShadowMap】

本文深入探讨虚幻4中的灯光渲染,从基础ShadowMap开始,逐步讲解PCF、PCSS和Irregular PCF等阴影软化技术,通过蓝图脚本实现自定义光影效果,提升游戏画面质量。
摘要由CSDN通过智能技术生成

小IVan:专题概述及目录

灯光篇开篇概述:

灯光在游戏里非常重要,游戏画面的整体感觉,游戏运行的效率都和它息息相关。然而虚幻把这些逻辑封得死死地。各种概念和庞大的系统常常令人束手无策。本篇将从灯光光影的原理入手,先自己实现一些灯光再自己动手打光做效果,想必这样会事半功倍。

本小节将在虚幻中用蓝图脚本“手连”各种基础ShadowMap。感谢技术美术图形交流群的小伙伴们的共同探讨@。


最基础的ShadowMap

shadow map的原理网上一搜一大把。总的来说就是:“在灯光方向架一台摄像机,获取深度图,然后再正常渲染自己的场景,再在正常渲染场景的时候把fragment转换到光源空间,把它和之前渲染的Shadowmap中高度深度作比较,看它是否在影子里,如果是就返回0,不是就返回1”。上述就是最原始的shadow map了。下面就在虚幻中实现它吧。

首先创建几个资源

v2-65f6c464c69d24875e33d829cee5e188_b.jpg

在BP_Light中创建一个SceneComponent和一个SceneCapture2D,然后设置它的参数,把RT_DepthMap设置给它。如图所示:

v2-8683bc546485f23f93f596e221a212b5_b.jpg

然后创建一个MaterialParamerterCollection

v2-cadeb0a7ea95a4ac5c225ec898df7790_b.jpg

因为我们在材质里直接“连”我们的shadow map,但是在材质层拿不到视口矩阵和投影矩阵,所以我们自己构建我们的矩阵。矩阵的推导可以去看看龙书d3d11的shadow map那一章

首先在BP_Light的构造函数中,先把灯光的位置传进去

v2-7fdfb01e3f36dc5ca65be92bd7ca69a7_b.jpg

然后构造我们的灯光摄像机视口矩阵

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值