【游戏开发】GPU驱动的渲染管道

2021-03-12
5757
0

==overview==

随着硬件的发展,我们可以看到GPU的计算能力远远的把CPU抛在后面,因此可以说业界一直在努力把更多的CPU计算放到GPU方面。

长期以来,draw调用的删除和提交都是由CPU完成的。一方面,CPU的计算能力差只能做非常粗糙的。另一方面,消费量相当高,这导致国内游戏行业在性能方面谈抽签次数。

这部分离GPU很近,所以当然要先下手了。

其实早在PS3时代,强劲的spu,一定程度上我们可以理解为是一个更通用的GPGPU,就承担了这个任务,更激进的剔除和替代cpu进行drawcall提交,都让性能在cpu有质的飞跃,gpu也同时受益。

 

从dx11开始,都支持渲染的对象的部分参数由GPU来生成,可以说GPGPU来做这个事情的条件就也成熟了。

整体上在性能上的收获是非常大的:

- <刺客信条>,应该说几个paper里面受益最少的,但也非常的可观,标题图里的海量建筑

- cpu 比前一座,10x的obj,但是cpu却快了25%

- gpu也少渲染了20%到80%的triangle

  • <farcry5>的地形

- gpu把quadtree traverse到lod map以及各种cull,0.1ms搞定。。。比cpu真是绝对优势

 

从15年的siggraph开始,ubi和EA都相继做了不少的分享,到了今年(2018)继续有新的游戏和引擎把这块用的更加成熟:

- siggraph15, < GPU-Driven Rendering Pipelines> @ ubisoft

- gdc16, < Optimizing the Graphics Pipeline With Compute> @ EA

- gdc18, TerrainRenderingFarCry5 @ ubisoft

- ...

 

总的看来,GPU driven pipeline是有两个部分:

 

- 剔除--不只是offload了cpu的工作,进一步在gpu上做更aggressive的cull

- 提交--目标是一个drawcall结束战斗,根据实际情况进行折中了

 

==剔除==

这部分是通过gpgpu来先对要渲染的object进行剔除,这里ubi和ea都分成两个level来做,cluster和triangle

=cluster level cull=

把mesh分成固定的一些cluster,比如6400 vertices就分成100个cluster,每个cluster 64vertices,然后进行bound和orientation的cull。

=triangle level cull=

这里的backface,small area triangle都是老生常谈。

depth buffer这个,可以

- 在pc上使用cpu software rasterizer

- depth prepass, 然后downsample

- 使用上一帧的depth buffer做一个reprojection

使用其中的1个或几个组合。

==提交==

项目旧代码有一些常见的问题,如果是dx12或一个真正的基于纹理的项目,那么这样做更容易。

简言之,如果要绑定的资源非常不同,那么仍然很难将它们放在一起呈现。

这里< assassin''s creed:unity >就是没法改的彻底,所以还是依据material来batch,那么可以说gpu driven的就相当不彻底。

而redlynx,pipeline是有比较重的virtual texture,farcry5的地形有virtual texture,那么资源就不需要改变绑定,那么就可以一个drawcall搞定一切,达到一个更彻底的gpu driven的程度。

dx12对此有更好的支持,可以更彻底的gpu driven了。

==效率对比==

- 刺客信条,应该说几个paper里面受益最少的,但也非常的可观

- cpu 比前一座,10x的obj,但是cpu却快了25%

- gpu也少渲染了20%到80%的triangle

farcry5

  • gpu把quadtree traverse到lod map以及各种cull,0.1ms搞定。。。比cpu真是绝对优势

 

 

转载声明:本文来源于网络,不作任何商业用途

免责声明:本文内部分内容来自网络,所涉绘画作品及文字版权与著作权归原作者,若有侵权或异议请联系我们处理。
收藏

全部评论

您还没登录

暂无留言,赶紧抢占沙发
王氏教育是国内专业的CG数字艺术设计线上线下学习平台,在王氏教育,有原画、插画、漫画、影视、3D模型等培训课程,也有学习资源下载、行业社区交流。CG数字艺术学习,来王氏教育。
绘学霸iOS端二维码

IOS下载

绘学霸安卓端二维码

安卓下载

绘学霸微信小程序二维码

小程序

版权声明
本网站所有产品设计、功能及展示形式,均已受版权或产权保护,任何公司及个人不得以任何方式复制部分或全部,违者将依法追究责任,特此声明。
热线电话
17688437870
咨询时间:9:00~21:00
在线客服
联系网站客服
客服微信:17688437870
公司地址
中国·广州
广州市海珠区晓港中马路130号之19
绘学霸客户端(权限暂无,用于CG资源与教程交流分享)
王氏教育 王氏教育