Ist Okklusions-Culling bei modernen Füllraten und verzögertem Rendern immer noch relevant?


10

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?


1080p ist die neue Pixelkunst.
Jessy

Antworten:


9

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.)


Was ist, wenn Vertex-Shader zum Verformen von Netzen verwendet werden? (was ich für möglich
halte

Haben Sie auch Artikel zum GPU-gestützten Okklusions-Culling? Ist es eine integrierte Funktion moderner GPUs oder ..?
Llamageddon

@Llamageddon Bei modernen GPU-Architekturen wird der Vertex-Shader immer ausgeführt und kann Netze perfekt deformieren - das bedeutet nur, dass Scheitelpunkte nicht starr transformiert werden. Ein teurerer Vertex-Shader, der mehr Arbeit erledigt, ist natürlich mehr Arbeit, die durch Keulen übersprungen wird. Ich habe keine Artikel über GPU-Okklusions-Culling, die Wissenschaft scheint nicht sehr begeistert davon zu sein. Es ist keine integrierte Funktion von GPUs, sondern nur eine kreative Verwendung von Computing.
John Calsbeek

Oh, ich meinte, was ist mit Keulungsnetzen, die deformiert werden? Keulen Sie sie aus, nachdem Sie die Vertex-Shader ausgeführt haben? Das klingt verworren.
Llamageddon

@Llamageddon Im Allgemeinen werden sie nur gegen ein konservatives Volumen ausgesucht. Oder mehrere kleinere Volumina, die Sie mit dem Netz verformen (zum Beispiel können Sie beim Enthäuten Keulungsvolumina an Gelenken anbringen).
John Calsbeek

2

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.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.