虚幻4渲染编程(重写渲染管线篇)【第三卷:在虚幻中搭建渲染器】

本文档详细介绍了如何在虚幻4中构建一个自定义渲染器,从定义新的渲染路径开始,到自定义渲染器、初始化渲染参数、渲染剔除、设置渲染目标等步骤,逐步实现一个基础的渲染管线。适合对游戏引擎和渲染技术感兴趣的开发者参考。
摘要由CSDN通过智能技术生成

我的专栏目录:

小IVan:专题概述及目录

有了第一卷的铺垫之后,我们就可以开始写渲染器了(虽然是用虚幻的框架和接口)。下面我们就来一步一步在虚幻中敲一个自己的渲染器。我使用的环境是:4.19源码版引擎,windows10,vs2017社区版。我这里只是举个例子,有兴趣的美术也可以照着这个办法把各种自己常用的离线渲染器搬到引擎里。


【第一步】定义一条新的渲染path

首先第一件事情是我们需要定义一条我们自己的渲染路径,现在引擎有两条渲染路径,一条是Mobile的一条是deferred,并且它是根据渲染质量来决定的

v2-346b238647d063c43cc5fef1dbb71edc_b.jpg

所以我打算使用SM3_1这个等级作为我们渲染器的使用等级,所以我把这个函数改为了下面这个样子,在SceneInterface.h中

v2-f162d54b738239f98ea9679f033b72a6_b.jpg
v2-b24f65d0dac89185959d57bcaf701b03_b.jpg

使用SM4或者SM5的话会多需要考虑可见性剔除的东西。

v2-505c28e4bab1e1b04d44c13f5d5acde1_b.jpg

如果我们写forward但是又用到了上面这部分分支的代码的话,ViewInfo在析构的时候会出发断言。

然后还要在SceneRenderTargets.h里加上自己的渲染路径所对应的RT格式

v2-4e227d927751ff41179d255c2c63dfd2_b.jpg

【第二步】自定义渲染器

然后再到SceneRendering.h中加入声明一个我们的渲染器

v2-487c040c9ee84b63d864eafb05a4ab39_b.jpg

在创建渲染器的地方new它

v2-ffcb9ffc27ed7cd53c01c9fb0c559f4c_b.jpg

【第三步】

我们在引擎的Render模块里新建一个MyRenderer.cpp,然后到工程目录下ReGenerate一下工程,然后你将会看到:

v2-2bd3a27a2c460ed73c31e79366134d7b_b.jpg

然后在MyRenderer中敲入如下代码

v2-669e0859583ca9bde044ba4ed82ce9ee_b.jpg

【第四步】

然后我们就可以点F5起引擎然后去泡杯茶啦。如果你电脑配置不太好,那就可以去泡两杯。

v2-597b27b3664628961fd8939499ededee_b.jpg

推荐澳洲葵花蜜+绿茶。

【第五步】

打开引擎后切换到SM3

v2-46f8ebddcc7c683f18692e2c3dd6ef6e_b.jpg

不出意外的话我们将只能看到上一个渲染器给我们留下的最后一帧画面。

v2-04599bde7dc1dcac89e438b094a26634_b.jpg

打个断点,的确引擎在跑我们的渲染器,不过现在Render函数啥也没干,所以什么也没有,接下来我们来完成Render函数。如果以后有面试官问你引擎的渲染顺序,现在我们可以从容不迫地告诉他,我们想先渲染啥就先渲染啥,因为一切渲染顺序都在我们的掌控之中。

【第六步】完善Render函数

下面我们就来完善这个Render函数,如果你之前有敲过软光栅渲染器或者是光线追踪渲染器的话,对下面的

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值