ue4场景没阴影_UE4渲染框架解析之结尾

本文继续探讨UE4的渲染框架,重点讲解CustomDepth渲染、BasePass、半透明物体处理及后处理阶段。在CustomDepth后,执行BasePass并处理Occlusion Query。最后,进行后处理和RenderFinish,结束帧的渲染。后续文章将深入讲解材质、UniformBuffer和Shader管理等细节。
摘要由CSDN通过智能技术生成

f515e35b7e61c43da6ecd82abea80830.png

在上一篇文章中我们介绍了UE4阴影渲染的框架,本篇文章主要介绍剩下的部分的渲染,不过有些在上一篇介绍过的这里就不在重复介绍了,上一篇文章的地址如下:

Mage Anti:UE4渲染框架解析之阴影渲染​zhuanlan.zhihu.com
38047ca08c2651808697aabf4f0bb706.png

在渲染完阴影之后,首先渲染CustomDepth。首先判断是否需要执行CustomDepth,如果需要执行CustomDepth的话,首先会分配DepthStencil Target,设置RenderTarget的Action;然后设置Uniform Buffer,之后调用CustomDepth的DispatchDraw函数执行CustomDepth操作;最后Resolve渲染得到CustomDepth贴图,至此该Pass的任务就结束了。

4f26f5531f135e4cbd729cbbccd54876.png

92cbc19e912e0203e48ded691c0befd6.png

在CustomDepth执行完成之后,就要准备渲染BasePass的RenderPass了,如下图所示,主要包括设置SceneColor、SceneDepth、是否需要Resolve等信息。里面比较重要的一点是ColorTargetAction,比如Clear_Resolve表示的就是Pass开始之前先清空RenderTarget,这个Pass结束的时候需要Resolve,其他的类似。

6cf03fed2c52395a7d93d5eb8f40157e.png

cf114a6bef185e72334e05f66f940128.png

上面的操作结束之后,就开始执行RenderMobileBasePass了,这个函数比较简单,主要就是设置Pass相关的UniformBuffer和之前的RenderPass中得到的Custom Scene Depth&Stencil以及SceneColorAlpha等纹理,之后就是调用BasePass的Dispatch函数执行绘制操作即可。

ad5f972c16e2e663852cceac01e1d7e4.png

渲染完BasePass之后就需要绘制Occlusion Query了,这里也比较简单,一般游戏中使用到的情况也不多,这里就不多介绍。

39127f83d08749cb92024c3b394bba16.png

完成上面的操作之后会根据需要决定是否EndRenderPass。如果使用了MSAA并且调用了EndRenderPass,上面的Pass绘制的物体会Resolve,当然这个也是根据需要决定的。这里就不详细的介绍什么时候需要EndRenderPass,主要还是根据需求。BasePass完成之后就需要渲染半透明的物体了。

e4c10300ee71a31e460a983a1642ca10.png

从上面的代码来看,半透明物体的渲染的执行过程和BasePass的没什么区别,这就就不多说了。半透明的物体处理完成之后需要执行EndRenderPass,可能需要Resolve RenderTarget。

7a90a1b1124c32b55830d6a9a4b9d21d.png

等上面的处理完之后就进行最后的一步:后处理。

726e0e9dcadba7f5bb63724091979047.png

后处理结束之后,执行RenderFinish,这里主要就是通知RHI,该帧已经结束了。

9ff34797a5d7f4877b281a43ac0d2021.png

到这里,所有的渲染任务就结束了。当然,到这里可能依然不知道怎么修改引擎完成自己的任务,毕竟这个只是渲染的总体框架,里面的很多细节还没有涉及,不过也不可能在一篇文章中讲到所有的方面,之后有空会尽可能的结合实际应用场景讲解其中的一些部分,比如材质的管理、UniformBuffer的管理、Shader的管理等等。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值