Während es sich beispielsweise um die aktuelle GPU der Spitzenklasse handelt, verfügt die GTX 980 über eine erstaunliche Füllrate von 72,1 Gigapixeln / Sekunde, die mit Back-to-Front-Rendering und / oder Z-Pufferprüfungen fast lächerlich groß erscheint, möglicherweise sogar bei 4k Auflösungen. In Bezug auf die Anzahl der Polygone können moderne GPUs problemlos zehn bis Hunderte Millionen strukturierter Dreiecke ausführen, wenn Sie sie ordnungsgemäß stapeln und / oder instanziieren.
Beim Forward-Rendering kann die Anzahl der Fragmente, auf denen Shader ausgeführt werden, schnell überwältigend werden. Beim verzögerten Rendern sind die Kosten jedoch je nach Auflösung in der Regel mehr oder weniger konstant, und wir haben längst einen Punkt überschritten, an dem die meisten Schattierungen oder Nachbearbeitungseffekte können in 1080p in Echtzeit ausgeführt werden.
In beiden Fällen sind die einschränkenden Faktoren heutzutage am häufigsten die Anzahl der Ziehungsanrufe und die Schattierungskosten, die beide durch ordnungsgemäßes verzögertes Rendern und Geometrie-Batching relativ niedrig gehalten werden. In diesem Sinne werden also mehr als nur Backfaces und Out-of- Frustrum-Polygone von erheblichem Nutzen? Würden die Kosten (CPU- / GPU-Zeit, Programmiererzeit) die Vorteile nicht oft übersteigen?
quelle
Antworten:
Ja, Okklusions-Culling lohnt sich immer noch.
Zumindest ist ein Draw-Aufruf, den Sie aufgrund von Culling übersprungen haben, ein Draw-Aufruf, bei dem der Vertex-Shader nicht ausgeführt werden muss. Die Anzahl der Dreiecke steigt so schnell, wie GPUs mehr Dreiecke unterstützen. Warum nicht? Mit Unified - Architekturen verwendet Vertexshader genau die gleiche Hardware , die Pixel - Shadern tun, also jede Ecke , dass Sie überspringen wegen Culling mehr Rechenzeit für das Material ist , dass man kann sehen. Ganz zu schweigen von all den anderen Dingen, die Sie überspringen (Verarbeitung von CPU-Draw-Anrufen und weit genug durch die Pipeline werfen, damit der Rasterizer erkennt, dass er sie nicht schattieren muss).
Auf der SIGGRAPH 2015 gab es eine großartige Präsentation von zwei Ubisoft-Studios über GPU-gesteuerte Rendering-Pipelines. An der Oberfläche geht es um einige der Dinge, die Sie erwähnt haben: Stapeln und Instanziieren, Reduzieren der Anzahl der Draw Calls. Einer der Hauptvorteile einer GPU-gesteuerten Pipeline ist jedoch das unglaublich feinkörnige Okklusions-Culling: Besseres Culling als normalerweise auf Draw-Call-Ebene. Es ist alles im Dienst der asymptotischen Annäherung an das Ziel: Nur das zu verarbeiten, was Sie sehen können, was bedeutet, dass das, was Sie sehen können, besser aussieht.
(Außerdem: Betrachten Sie Konsole, Handy, VR und Desktop ohne die neueste und beste GPU, die man für Geld kaufen kann. Auch wenn alle Ihre Tris im klaffenden Schlund Ihres Top-of-the verschwinden -line GPU, Sie sind möglicherweise nicht das primäre Ziel.)
quelle
Es hängt vom Spielstil ab, wie viel Keulen benötigt wird. Zum Beispiel profitieren Ego-Shooter sehr davon, da sie zu jeder Zeit eine Menge Dinge im Frustrum haben, während dies bei einer Overhead-Ansicht von RTS nicht der Fall ist, da Sie effektiv ein Flugzeug mit Dingen in diesem Flugzeug betrachten. Selbst in einem RTS ist es immer noch nützlich, ein "Tiefen-Rendering" durchzuführen, um ein Überziehen zu vermeiden.
quelle