Gschwenni schrieb:
Was es nachzuweisen gilt. Man sollte den Aluhut nicht immer aufsetzen.
Viel eher liegt es an der immernoch relativ schwachen Tesselationsleistung auf Seiten AMD´s die hin und wieder mal limitiert.
ich erzähl dir jetzt mal ein offenes geheimnis: nvidia karten sind von der hardware her darauf ausgelegt lächerlich hohe polygonzahlen durch tessellation berechnen zu können.
GeForce GTX 400 Grafikprozessoren verfügen über bis zu fünfzehn Tesselationseinheiten mit jeweils eigener Hardware für Vertex Fetch, Tesselation und Koordinatentransformation. Außerdem verfügen sie über vier parallel Raster-Engines, die die neu tesselierten Dreiecke in Pixel für das Pixelshading verwandeln. Das Ergebnis ist ein Durchbruch in der Tesselationsleistung — über 1,6 Milliarden Dreiecke pro Sekunde bei gleichbleibender Leistung. Zum Vergleich: Bei Tests der unabhängigen Webseite Bjorn3D hat sich die GeForce GTX 480 als bis zu 7,8x schneller als das beste Konkurrenzprodukt erwiesen.
http://www.nvidia.de/object/tessellation_de.html
als ehem. spieleentwickler, der sich mit der gesamten pipeline in der source engine auskennt und vorallem im bereich model / textur / shadersetup, kann ich dir sagen, dass es aufgabe nr.1 ist, den polycount von meshes so niedrig wie möglich und so hoch wie nötig anzusetzen. um polys zu sparen werden shader und texturen eingesetz (normal / bumpmapping, parallax mapping) die die plastizität und komplexität vom modell künstlich (ohne einsatz von geometrie) erhöhen.
ab einem gewissen punkt macht es KEINEN sinn mehr den polycount zu erhöhen, weil das modell ab menge X schon nahezu perfekt dargestellt wird.
bevor ein modell in eine spiele-engine importiert wird, sollte das modell auf den einsatz hin optimiert werden:
oben: ursprungsmodell, hauptsächlich in quads (polygone) mit insg. 105,549 dreiecken.
unten: triangulierte, optimierte version des selben modells in fast identischer "qualität" mit insg. 16,625 dreiecken.
das ist eine ersparnis um den faktor 6,5 für "die selbe" optik ingame.
http://polycount.com/discussion/153481/weapon-optimization
und jetzt kommt nvidia mit tessellation ins spiel: tessellation erhöht dynamisch den polycount nach einem vorher festgelegten muster. ansich eine gute technik - hatte amd ursprünglich auch als "trueform" als eigene technologie - das problem ist die umsetzung. die bläst nämlich auch gerne mal komplett irrelevante meshes auf.
das prominenteste beispiel ist crysis 2:
links mit tessellation, rechts ohne:
rechts sieht das mesh etwa so aus - grob geschätzt vielleicht 300-600 dreiecke:
und das ist das tatsächliche mesh der barriere mit tessellation:
geschätzt mehrere millionen dreiecke vs weit unter 1000 für minimalste optische unterschiede. die "high poly" barrikade hätte sich übrigens auf regulärem weg auch locker mit unter 2000 dreiecken bauen lassen.
wir haben hier eine verschwendung von rechenleistung der allerersten güte - hier wird der polycount um das tausendfache aufgeblasen - für NICHTS.
und wieso wird das so im spiel gelassen? weil nvidia karten von der hardware her dafür ausgelegt sind, das zu berechnen und daher weit weniger einbrechen als radeon karten.
hier noch etwas mehr tessellation zum kopfschütteln:
https://www.youtube.com/watch?v=IYL07c74Jr4
man sieht, wie der rechner ins schlucken gerät, wenn durch annähren der kamera an die geometrie durch gameworks tessellation der polycount aufgeblasen wird.
aber weil man anscheinend nägel mit köpfen machen wollte, hat man sich dazu entschieden, unter die gesamte map von crysis 2 tesselliertes wasser zu platzieren - das ist unter dem asphalt und verbraucht einfach nur rechenleistung, während man NIX davon sieht:
ABER es ist gut möglich, dass das bei nvidia nichtmal in die renderpilepine geht, sondern direkt verworfen wird, da nicht sichtbar:
After back-face and depth culling, not all triangles may need pixels on the screen. The screen size of a triangle can mean it requires millions of pixels or none at all.
https://developer.nvidia.com/content/life-triangle-nvidias-logical-pipeline
d.h. es wäre durchaus möglich, dass nvidia karten (ab fermi) das wasser nichtmals mehr berechnen, während amd karten erst ab vega gpu culling (backface culling) beherrschen und daher sämtliche geometrie in der szene berechnen.
nochmal zurück zur ursprungsfage - wieso ist bei crysis 2 wasser unter dem asphalt?
das einzige, was das wasser da macht, ist im prinzip rechenleistung kosten, und das vornehmlich auf amd karten. zufall? schlamperei? oder absicht? gegenfrage - hat schonmal jemand aus versehen einen schrank gebaut oder ein brot aufgeschnitten? genau so ist unter der map "aus versehen" wasser.
was sagt eigentlich CB zu tessellation? mass effect andromeda:
Tessellation kostet Leistung, auch wenn man es nicht sieht
[...] In der zweiten Testszene (ohne Berge) spielt es bezüglich der Bildqualität keine Rolle, ob Tessellation wie vom Spiel vorgeschrieben genutzt oder völlig deaktiviert wird. Die Performance reagiert auf der Radeon RX 480 jedoch deutlich darauf. Zwischen abgeschalteter und maximaler Tessellation-Stufe liegen 15 Prozent Unterschied.
Trotzdem führt an Tessellation in dem Spiel kein Weg vorbei. Als Radeon-Nutzer kann man ohne Bauchschmerzen die Einstellung AMD Optimiert aktiv lassen, wodurch die Framerate etwas ansteigt. Einen (sichtbaren) optischen Verlust gibt es bei dieser Einstellung nicht.
kurioserweise hat man sich aber dazu entschlossen:
Aus Gründen der besseren Vergleichbarkeit ist die Tessellation-Optimierung von AMD im Crimson-Treiber für sämtliche Tests abgeschaltet – das Spiel bestimmt den Tessellation-Faktor.
https://www.computerbase.de/2017-03/mass-effect-andromeda-benchmark/
so küsst man nvidia auch die füße.
witcher 3 will tessellations level 64x, obwohl 16 praktisch die selbe optik bietet:
https://forums.geforce.com/default/topic/834905/real-reason-why-witcher-3-hairworks-reduces-fps/
Auf Arstechnica wirft ein Vertreter von AMD dem Konkurrenten Nvidia eine Art "Performance-Sabotage" mit den Algorithmen von Gameworks vor, insbesondere mit HBAO+ und Hairworks. AMD-Karten seien mit dem Fantasy-Rollenspiel wunderbar klargekommen - bis Nvidia vor rund zwei Monaten eine neue Fassung von Gameworks für das Spiel fertiggestellt habe.
https://www.golem.de/news/sabotagevorwurf-witcher-3-streit-zwischen-amd-und-nvidia-1505-114195.html
"ABER AMD HAT DOCH SELBST AUCH TRESS FX, IST DAS SELBE IN ROT!!!1"
Daher verlieren beide Grafikkartenhersteller im Durchschnitt etwa gleich viel FPS, wenn TressFX hinzugeschaltet wird. Bei unseren Kollegen von PCGH verlor die AMD Radeon HD 7970 GHz 28 Prozent an Leistung. Die NVIDIA GeForce GTX Titan verlor genauso viel, blieb vom allgemeinen FPS-Level aber hinter der Radeon.
Die große Kontroverse ist nun, dass AMD-Grafikkarten im Vergleich zu NVIDIA-Grafikkarten überproportional an Leistung verlieren, sollte man HairWorks aktivieren. In unserem eigenen Benchmark zeigte sich, dass eine GTX 980 mit HairWorks von durschnittlich 82 fps auf 59 fps fällt. Eine Radeon R9 290X hingegen fällt von durschnittlich 65 fps auf nahezu unspielbare gemittelte 26 fps.
https://www.hardwareluxx.de/index.p...d-tressfx-und-nvidia-hairworks-im-detail.html
Gschwenni schrieb:
Viel eher liegt es an der immernoch relativ schwachen Tesselationsleistung auf Seiten AMD´s die hin und wieder mal limitiert.
die geometrieleistung von amd karten ist niedriger - aber ausreichend - deseidenn es ist allgemeiner konsens, dass man in jedem spiel straßenbarrikaden mit mehreren millionen polys braucht - ein vielfaches mehr als jedes andere objekt in der szene. die eine tessellierte barrikade hat so einen absurden polycount, dass es für alle modelle in half-life 2 reichen würde, möglicherweise zwei oder drei mal.
Gschwenni schrieb:
Könnts ned auch in Frage kommen, dass Wolfenstein II das Bild zugunsten Vega verfälscht?
Ich mein das ist ein gesponserter AMD Titel. Gameworks für AMD im Prinzip.
nein, weil amd gesponserte titel immer auf nvidia auch sehr gut laufen. nvidia gesponsorte titel fast nie gut auf amd. doom@vulkan ist DER amd titel schlechthin (zumindest wenn man nvidia fans fragt). und was ist mit doom? läuft auf beiden marken hervorragend. gameworkstitel? eher weniger!