《《毁灭战士:黑暗时代》中的可见性缓冲区和延迟渲染.pdf》由会员分享,可在线阅读,更多相关《《毁灭战士:黑暗时代》中的可见性缓冲区和延迟渲染.pdf(55页珍藏版)》请在三个皮匠报告上搜索。
1、1VISIBILITY BUFFER AND DEFERRED RENDERINGin DOOM:The Dark AgesDominik LazarekPrincipal Engine ProgrammerPhilip HammerPrincipal Engine Programmer2 2https:/youtu.be/4tk8lkmYGWQ?t=213 3idTech:Driving the iconic FPS games at id Software4 4Mission-Statement for idTech 8 and DOOM:The Dark AgesHigher-fidel
2、ity geometry and material layering“More of everything”:Triangles,NPCs,Map-sizes,.60 FPS+low latency across all targets5 5Fast-Forward:September 2024(Release:May 2025)8 Months before ship dateMain content and design doneNowhere near our performance targetsOptimizations desperately neededEngine depart
3、ment entered optimization phase across the boardSome of us focused on opaque geometry rendering6 6Dissecting Opaque Geometry BottlenecksOpaque geometry rendering contributes to 40%of total frametimeWhere do we lose performance?Observations:Opaque rendering pipeline:Clustered Forward+Two full geometr
4、y-passes neededComplex texturing&lighting shaderAdded features(POM,Material-blending,)Large code-size,high VGPR countMain slowdowns on views with high triangle density7 7Dissecting Opaque Geometry BottlenecksProfiling showed:Very bad quad utilization efficiencyWhat is quad utilization anyway?Lets lo
5、ok at a quick example of a rasterized triangle somewhere on screenActive threadsHelper threads14 active threads+18 helper threads=32 pixel shader threads overallQuad utilization:14 active/32 overall=43%of threads utilized“8 8Dissecting Opaque Geometry BottlenecksQuad utilization efficiency becomes w
6、orse with smaller triangles(at constant resolution)14 active/32 overall=43%utilization2 active/8 overall=25%utilization9 9Dissecting Opaque Geometry BottlenecksHow to deal with bad quad utilization efficiency?Cant avoid quad-shading in HW rasterizationSoftware rasterization for sufficiently small tr