Als «performance» getaggte Fragen

3
Wann ist ein Compute-Shader effizienter als ein Pixel-Shader für die Bildfilterung?
Bildfilterungsoperationen wie Unschärfen, SSAO, Blühen usw. werden normalerweise unter Verwendung von Pixel-Shadern und "Sammeln" -Operationen durchgeführt, wobei jeder Pixel-Shader-Aufruf eine Anzahl von Texturabrufen ausgibt, um auf die benachbarten Pixelwerte zuzugreifen, und den Wert eines einzelnen Pixels berechnet das Ergebnis. Dieser Ansatz hat eine theoretische Ineffizienz dahingehend, dass viele redundante Abfragen …

2
Was kostet der Zustandswechsel?
Programmierer sollten eine ziemlich gute Vorstellung von den Kosten bestimmter Operationen haben: zum Beispiel die Kosten eines Befehls auf der CPU, die Kosten eines L1-, L2- oder L3-Cache-Fehlschlags, die Kosten eines LHS. Wenn es um Grafiken geht, ist mir klar, dass ich kaum eine Ahnung habe, was sie sind. Ich …


1
Warum ist diese Bedingung in meinem Fragment-Shader so langsam?
Ich habe einen FPS-Messcode in WebGL eingerichtet (basierend auf dieser SO-Antwort ) und einige Merkwürdigkeiten mit der Leistung meines Fragment-Shaders entdeckt. Der Code gibt nur ein einzelnes Quad (oder besser gesagt zwei Dreiecke) auf einer Leinwand von 1024 x 1024 wieder, sodass die ganze Magie im Fragment-Shader geschieht. Betrachten Sie …


3
Warum gibt es Grafik-Frameworks wie OpenGL und DirectX, wenn Spiele Pixel direkt zeichnen könnten?
Spiele und andere grafikintensive Anwendungen verwenden Frameworks wie OpenGL und DirectX. Außerdem benötigen sie Funktionen wie Pixel Shader und DX12. Aber warum brauchen wir all diese Frameworks und GPU-Funktionen, wenn wir einfach alles Pixel für Pixel zeichnen können? Erstens müsste das Spiel so kompiliert werden, dass es pixelweise gezeichnet wird. …

1
Ist eine konstante Bedingung teurer als das Wechseln von Shadern?
Im Allgemeinen ist das Verzweigen in Shader keine gute Idee. Aber jetzt habe ich einen Shader mit einer Bedingung, die in Bezug auf den gesamten Draw-Aufruf konstant ist. Die ausgeführte Verzweigung ist also für einen Draw-Aufruf immer dieselbe. Ist eine solche Verzweigung immer noch teurer als die Verwendung mehrerer Shader …

1
Wann die perspektivisch korrekte Interpolation deaktiviert werden soll (keine Perspektive)
In GLSL ist die perspektivisch korrekte Interpolation von Scheitelpunktattributen die Standardeinstellung. Sie kann sie für bestimmte Scheitelpunktattribute mithilfe des nicht- perspektivischen Qualifikationsmerkmals deaktivieren . Abgesehen von Nachbearbeitungs-Shadern habe ich die perspektivisch korrekte Interpolation noch nie deaktiviert gesehen - gibt es andere Anwendungsfälle? Macht es überhaupt einen Unterschied in Bezug auf …

1
Loop-Leistung in einem Shader
Ich frage mich, wie ich eine dynamische Schleifenfunktion am besten in einen Shader integrieren kann. Erstens scheinen dynamische Arrays nicht möglich zu sein. Ist es also besser, ein Array mit maximaler Größe zu erstellen und nur einen Teil davon zu füllen oder Arrays mit vordefinierten Größen zu definieren? Was ist …

1
Warum ist der Zugriff auf Texturen bei der Berechnung der Texturkoordinate im Fragment-Shader viel langsamer?
Wenn Sie Texturen in GLSL verwenden, berechnen Sie am besten die endgültigen Texturkoordinaten im Vertex-Shader und übergeben Sie sie mit varyings an den Fragment-Shader . Beispiel mit einem einfachen Umdrehen der y-Koordinate: // Vertex shader attribute vec2 texture; varying highp vec2 texCoord; // ... void main() { texCoord = vec2(texture.x, …


2
Ist Okklusions-Culling bei modernen Füllraten und verzögertem Rendern immer noch relevant?
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 …



1
Was ist der Performance-Kompromiss zwischen Forward- und Deferred-Rendering?
Beim Forward-Rendering wird ein Strahlungswert für ein Oberflächenfragment direkt aus der Eingabegeometrie und den Beleuchtungsinformationen berechnet. Das verzögerte Rendern teilt diesen Prozess in zwei Schritte auf: erstens einen Bildschirmraumpuffer mit Materialeigenschaften (einen Geometriepuffer oder G-Puffer), der durch Rastern der Eingabegeometrie erstellt wurde, und zweitens einen Strahlungswert für jedes Pixel durch …

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.