PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Wieso werden dynamische Schatten auf der CPU gerechnet?


Zephyroth
2006-04-24, 23:55:21
Ich habe gerade NFSMW gespielt und habe mich jetzt von den dynamischen Schatten getrennt. Folge davon war ein sprunghafter Anstieg in der Framerate und ein Ansteigen der GPU-Temperatur.

Daraus schließe ich, das die GPU nun mehr zu rechnen hat, sprich mehr Frames pro Sekunde vom Prozessor her übermittelt werden. Das legt den Schluß nahe, das Schatten auf der CPU gerendert werden und NFSMW somit im CPU-Limit war.

Warum ist das so?
Sind Schatten nicht eigentlich eine Aufgabe der GPU?

Abgesehen davon ist es interressant wie die GPU-Auslastung (zeigt sich eben in der Temperatur) auf verschiedene Einstellungen reagiert:

Double Buffering 30fps: 78°C
Triple Buffering, Shadows: 82°C
Triple Buffering, no Shadows: 88°C

Somit komme ich der idealen GPU-Auslastung von 100% näher, mit dem ATI-Tool ist das ja zu erreichen (92°C).

Das System mit dem ich das ermittelt habe: Athlon 64 3200+ Venice mit einer Radeon X850XT

Grüße,
Zeph

Quasar
2006-04-25, 00:17:24
NFSMW verwendet Shadow-Maps, die als Texturen sehr wohl Aufgabe der GPU sind. Vermutlich nimmt das Verrechnen der Shadowmap-Samples für die höchste Schattenqualität ziemlich viel Zeit in Anspruch, in denen andere Teile deiner GPU leer laufen und sich so die Temperaturunterschiede erklären.

Neomi
2006-04-25, 00:37:56
Das heißt nicht, daß die Schatten von der CPU berechnet werden, sondern nur, daß nicht alle Teile der GPU bei der Berechnung ausgelastet werden.

Was ist denn bei der Schattenberechnung zu machen? Im Grunde werden da nur Tiefeninformationen in Texturen gerendert. Es gibt zwar viele Möglichkeiten, aber bei Shadowmaps läuft es meist darauf hinaus. Keine Beleuchtung, nichts. Solange kein Alphatest verwendet wird (Alphablending-Schatten sind problematisch, da man schlecht mehrere Tiefeninfos in einem Kanal unterbringen kann), wird nur ein Z-Wert rausgehauen. Die Pixelshader haben also kaum was zu tun. Da keine Texturen gesampelt werden müssen (außer bei den Alphatest-Dinger natürlich), liegen noch ein paar Einheiten mehr brach. Da wird dann logischerweise auch nicht mehr so viel Hitze erzeugt.

gnomi
2006-04-25, 09:49:28
Mich würde mal interessieren, warum aktuell bei einigen Spielen auch in hohen Detailstufen verpixelte Schatten angezeigt werden. (Spellforce 2, Act of War- High Treason oder so wie ich gehört habe auch Schlacht um Mittelerde 2)
Hat da jemand eine technische Erklärung dafür. :confused: (Shadowmap Auflösung? Mangel an Rechenpower?)

Zephyroth
2006-04-25, 09:49:37
Das heißt also das ich doch nicht am CPU-Limit war mit den Schatten? Es wäre mal interressant eine GPU-Auslastung a'la Taskmanager zu sehen, derzeit hat man ja wirklich nur die Temperatur als Indikator....

Beim Double-Buffering war mir klar, die GPU muß auf den Bildschirm warten, daher ist sie kühler. Anders beim Triple-Buffering, da rendert sie einfach vor sich hin, daher mehr Temperatur. Als ich dann eben die Schatten deaktiviert habe, wurde das Spiel noch schneller und die GPU besser ausgelastet. Daher habe ich eben angenommen, das die CPU der limitierende Faktor ist. Ich wußte ja nicht das die Pixelshader Däumchen drehen während Schatten berechnet werden.

Grüße,
Zeph

Gast
2006-04-25, 10:25:10
Mich würde mal interessieren, warum aktuell bei einigen Spielen auch in hohen Detailstufen verpixelte Schatten angezeigt werden. (Spellforce 2, Act of War- High Treason oder so wie ich gehört habe auch Schlacht um Mittelerde 2)
Hat da jemand eine technische Erklärung dafür. :confused: (Shadowmap Auflösung? Mangel an Rechenpower?)
Das liegt daran, dass "Soft-Shadows" momentan der Hype neben "HDR" sind. Shadowmaps haben feste Grenzen und um da weiche Kanten hinzubekommen werden mehrere Samples genommen. Nvidia-Hardware verfügt seit der GF3 (lt. Demirug) über die Möglichkeit, bilinear gefilterte Shadowmap-Samples in der TMU aufzubereiten - damit sehen die Kanten dann etwas softer aus. Andere HW muss diese Funktion entweder im Pixelshader nachbilden, was Leistung kostet, oder die Samples ungefiltert übernehmen, was dann in der Pixeligkeit resultiert (BF2, NFSMW, 3DMark05 u.a.). SUM2 filtert auf keiner Hardware die Shadowmaps, daher sieht's dort immer grob aus (vor Urzeiten habe ich dazu mal einen Thread im Technologie-Forum gestartet, inkl. Screenshots).


Das Flackern resultiert meist auf zu geringer Genauigkeit, sprich Auflösung. Ein klassisches Aliasing-Artefakt.


Q

gnomi
2006-04-25, 11:05:40
Schade ist, wenn die Spiele nicht die passenden Einstelloptionen anbieten.
Bei Spellforce 2 hätte ich gerne schöne Softshadows, aber halt nicht auf allen Objekten.

Auf Bäumen und in Cutscenes sehen diese verpixelten Schatten bei "Hoch" sehr schlecht aus.
Das einzige, was man da machen kann, ist nun, die Einstellung auf "Sehr hoch" zu erhöhen.
Da gibt meine Grafikkarte aber dann endgültig auf. (reduziert davon abgesehen auch nur das Problem)
Bei "Mittel" werfen zwar weniger Objekte dynamische Schatten, aber die Schatten selber sind dann wiederum extrem unschön. (verpixeln dann auch bei Einheiten und Objekten)

Fazit: Man hätte einfach nur mehrere Schalter im Videomenü anbieten müssen. Einmal, was genau und wie Schatten wirft, und einmal, in welcher Qualität dies geschieht.
Sehr unverständlich muß ich sagen.
Alles bis "Mittel" sieht jetzt mies aus, und alles ab "Hoch" kostet extrem Leistung und hat trotzdem Schönheitsfehler.
Generell ist die techn. Implemtierung super, aber so kann man es dann in Sachen Nutzbarkeit denke ich auch versauen.

RLZ
2006-04-25, 12:49:11
Man sollte den CPU-Overhead für die Shadowmaps nicht unterschätzen.
Das wird sich mit Vista und dann nochmal mit D3D10 verbessern.
Momentane GPU sind ja vorallem auf Belastungen im Pixelshaderbereich ausgelegt, die allerdings bei Z-Only Passes (Shadowmaps, Z-First, etc) brach liegen. Mit Unified Shader bessert sich dort die Situation auch.
Mich würde mal interessieren, warum aktuell bei einigen Spielen auch in hohen Detailstufen verpixelte Schatten angezeigt werden. (Spellforce 2, Act of War- High Treason oder so wie ich gehört habe auch Schlacht um Mittelerde 2)
Hat da jemand eine technische Erklärung dafür. :confused: (Shadowmap Auflösung? Mangel an Rechenpower?)
Gegen die verpixelten Schatten fallen mir 4 Gegenmaßnahmen ein:
- höhere Shadowmapauflösung: kostet Speicher und Z-Füllrate
- bessere Ausnutzung der Shadowmaps (Lispm, Tsm,...): nicht immer ganz problemlos, aufwendig zu implementieren und man muss aufpassen, dass man nicht Softwarepatente verletzt
- SoftShadows (PCF,VSM,...): teuer
- Shadowvolumes: kennt ja jeder aus Doom3

Kabeldrachen
2006-05-05, 12:44:34
ja das wird woll stimmen trozdem verstehe ich es nicht :confused: :confused: :confused: