虚幻4渲染编程(Shader篇)【第十二卷:MeshDrawPipline】

本文详细介绍了虚幻4引擎在4.22版本中引入的MeshDrawPipeline,替代了原有的DrawList和DrawPolicy。主要内容包括FPrimitiveSceneProxy、InitViews、FMeshPassProcessor、FMeshDrawCommand和ShaderBindings的使用,以及GPUScene、CustomDepthPass和ParallelMeshDrawCommandPasses的工作流程。通过对渲染过程中的主要类和步骤的解析,展示了新渲染管线的灵活性和紧凑性。
摘要由CSDN通过智能技术生成

我的专栏目录:

小IVan:专题概述及目录

简介:

Unreal engine的渲染模块是越来越复杂,最开始只有延迟管线,随后加入了mobile,现在又加了很多实时光线追踪的东西,各种DX12,VK新的RHI也纷纷加入。

虚幻4的4.22版本对渲染模块进行了较大重构,废弃了之前的DrawList&&Draw Policy,取而代之的是MeshDrawPipline。与之前的DrawPolicy相比,MeshDraw更为简洁,灵活。新旧Pipline对比图如下:

4.22

v2-4741d01b86c2a0838f69f62994217103_b.jpg

<=4.22

v2-6842757d6cdbbe664bf881c9cc7e3eb0_b.jpg

我之前有写老的drawingpolicy的文章:小IVan:虚幻4渲染编程(Shader篇)【第十卷:绘制策略】。如有错误还请巨佬们斧正。

因为涉及到的细枝末节的东西很多,所以这篇文章我会在一个月内持续更新修改。


首先先过一下渲染过程中主要的类和步骤。

【1】FPrimitiveSceneProxy

这个类的功能没有什么改变,依然在通过GetDynamicMeshElements等函数从每个primitivecomponent中收集渲染资源

v2-080a2aeb3ed579f31529be4e4e34c893_b.jpg

【2】InitViews

FPrimitiveComponent的GetDynamicElements这个收集操作通过渲染器的InitViews在可见性剔除之后发起

v2-d6dabdcae9c1cf6622c7c99ba7db08ce_b.jpg
v2-189412e0445d583e8feead60ea730d3f_b.png

FMeshElementCollector会把场景里的渲染数据收集起来

v2-cd4cee4741e940730114974215da5e0a_b.jpg

最后会调用SetupMeshPass来创建MeshPassProcessor

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值