nutzername schrieb:
@ZeroZerp
Vielleicht die Anzahl an DrawCalls - aber ist es nicht so dass mit geringerer Auflösung gewisse Shader und Sampling Methoden überhaupt nicht mehr angewendet werden können?
Genau- Aber die Shader und Sampling- Methoden (inkll. culling) laufen inzwischen ausnahmslos auf der GPU.
Daher beispielsweise Effekte wie "Fireflies" hervorbringen da die sampling Area garnicht groß genug ist um überhaupt physically based sauber rendern zu können?
Auch richtig, aber allein die Existenz von Fireflies zeigt ja gerade, dass auch bei neidriger Auflösung der ganze Kram der Szene berücksichtigt wird.
Und dabei rede ich nicht nur von Geometrie - es gibt eine ganze Reihe von negativen Effekten die man meist in die Gruppe von "shading alias" Packt.
Siehe bspw. auch:
https://casual-effects.com/research/Marrs2018Antialias/Marrs2018Antialias.pdf
http://advances.realtimerendering.com/s2016/AGAA_UE4_SG2016_6.pdf
Siehe oben- Die Shader werden kompiliert und dann vollständig auf der GPU ausgeführt.
Gerade bei solchen Auflösungen wie 1080, 720 etc. hat die Engine oft probleme überhaupt zu wissen WELCHER pixel gesupersampled werden muss. Die Unterschiede sind einfach zu massiv zwischen großen Flächen und, wie du sagst, einem weit entferntem Baum.
Genau - Und je niedriger die Auflösung umso öfter muss der Pixel kontrolliert/gemittelt werden, was aber wiederum im Normalfall nicht von der Engine ausgeht, sondern über die GPU erledigt wird.
Das ist ja unter anderem der Grund warum viele Spiele Supersamplen oder AA Methoden wie
Temporal AA verwenden
Siehe bspw. hier:
https://de45xmedrsdbp.cloudfront.net/Resources/files/TemporalAA_small-59732822.pdf
Welches auch über die Shader der GPU und nicht über die CPU läuft.
Ich halte es für faktisch absolut irrelevant in derartigen Auflösungen und Detailstufen zu testen - der Grund ist simpel: die Angezeigte Grafik ist einfach nicht erträglich und de fakto nicht nur unspielbar sondern damit auch unvergleichbar.
Du willst ja nicht testen, wie sich das Gesamtsystem bei einem Spiel XY verhält (das sehen wir in den 08/15 gaming Benchmarks immer wieder), sondern was passieren würde, wenn man einer CPU in Zukunft eine stärkere GPU spendiert.
Angenommen Du hast mit einer x- beliebeigen Grafikkarte bei einer 720P Auflösung und in 1080p Auflösung bei einem Spiel 60FPS, dann kannst Du Dir sicher sein dass selbst wenn Du nun die Titan RTX in die Kiste steckst das Spiel nicht schneller wird.
Das deshalb, weil Du dadurch nicht getestet hast, was die Grafikkarte leistet, sondern nur feststellst, was der Prozessor mit dieser Software an FPS zu leisten im Stande ist. In diesem Fall wohl 60FPS.
Diese Art von Test ist also ein Ausblick darauf, ob die CPU mit stärkeren Grafikkarten eine höhere FPS Zahl erreichen kann.
Selbst einfach geshadete Spiele, welche für Massen-PCs optimiert sind, wie z.B. Blizzards Overwatch defaulten bereits per Baseline zu 140% Supersampling um derartige Effekte zu kompensieren.
Und das selbst dann wenn dieses ein gehöriges Maß an FPS kostet.
Du schreibst ja jeweils immer schon dazu "shader, geshadet". Ein Shader ist ein Programm, was auf der GPU abläuft, nicht auf der CPU.
es sei denn man "spielt" die Spiele nur zum benchmarken - in der Praxis hat man bei derartigen Auflösungen und Details NUR Nachteile und höhere Auflösungen und Details skalieren NICHT linear.
Nein- Es kann ja sein (siehe oben), ob Du ermitteln willst, ob Deine CPU mehr FPS ermöglicht, wenn Du Dir eine neue Grafikkarte kaufst.
In Sachen Auflösung skaliert es aus der Perspektive CPU Richtung GPU eben schon. Wenn ich bei der Engine an den Details rumschraube, dann gilt das ganze natürlich nicht mehr.
Dann befehle ich ja über die Engine der CPU z.B. zusätzliche oder weniger Objekte an die API zu übergeben.
Es ist Augenwischerei und nur für extrem alte Spiele mit veralteten Engines relevant. Das klassische "Quake FPS" benchmarking halt.
Siehe oben meine Erklärungen. Wie würdest Du denn feststellen wollen, ob es sich für den Titel XY lohnt eine neue Grafikkarte für höhere FPS anzuschaffen?
Du nimmst mit niedrigeren Auflösungen die Grafikkarte als bremsenden Faktor aus der Gleichung raus.
Ich würde mir daher auch wünschen das man hier Praxisrelevante Benchmarks anbietet. Wie bereits mehrfach von Postern erwähnt Komprimierung, Ver- / entschlüsselung, Rendern (CPU based) etc. - ggf. auch bandbreitenrelevante Multithreading-Szenarios.
Die, wie Du sie nennst, praxisrelevanten Benchmarks führen ja bereits alle, die auf Tests spezialisiert sind durch.
Somit bist Du ja bereits wunschlos glücklich.
Aber wie gesagt- Diese praxisrelevanten tests nützen Dir halt nichts, wenn Du wissen willst, wie viele FPS die Engine mit Deiner Plattform maximal an die GPU drücken könnte, wenn die Grafikkarte das ganze eben nicht begrenzen würde.
Noch ein Beispiel. Du hast Dir voller Stolz einen 144 Hz Monitor gegönnt. Jetzt ist es nur so, dass Deine Spiele nicht in diese FPS- Regionen vorstoßen.
Jetzt musst Du herausfinden, woran das liegt und was Du aufrüsten musst, um da hinzukommen.
Wenn Du nun unter 720p und 1080p siehst, dass hier gleichbleibend 80FPS aus dem System herauskommen, dann drängt sich der Verdacht auf, dass hier nicht die Grafikkarte limitiert, sondern dass die eigene Basis nicht mehr liefert.
Anders ausgedrückt - Leistet Dein System bei 720p 150FPS und in 4K noch 50FPS, dann kannst Du Dir sicher sein, dass wenn Du in 4K höhere FPS zahlen haben willst, nur die Grafikkarte aufzurüsten ist, um höhere FPS zu erreichen. Du kannst Dir aber auch sicher sein, dass wenn Du Deine Plattform nicht wechselst, Du egal mit welcher zukünftigen Grafikkarte nicht über die 150FPS des 720p Test kommen wirst.
LG
Zero