MadManniMan
2007-02-21, 23:55:50
Mei, ich durchforste gerade die Überreste meines inzwischen ein Jahr lang beendeten Studiums und stolperte gerade über einen 'Kurzvortrag', den wir über ein beliebiges Thema halten sollten - wobei einzige Vorraussetzung die Mitangabe einer sog. 'Mindmap' war.
Das Ganze ist stümperhaft, bestimmt von einer Milchmädchenrechnung, ich habe teilweise Worte vergessen (und das bleibt auch so :D ) und arrogant ist es auch noch, vom schlechten Stil reden wir erst gar nicht - aber dennoch gibt es eine schöne Quintessenz, wenn man das Thema an sich ranläßt... von daher, viel Spaß!
(verfaßt irgandwann ende Dezember 2004)
3D-Spiele für den PC – macht Kantenglättung hohe Auflösungen unwichtig?
Nun, liebe Zuhörer, ich möchte Sie mit der für viele kryptischen Thematik von Anti-Aliasing Varianten in aktuellen Computerspielen vertraut machen, wobei ich besonders auf die 3D-Beschleuniger der aktuellen Generation eingehen möchte.
Hierbei geht es speziell um einen Teilpunkt, an dem sich die Geister scheiden: nutzt man lieber hohe Bildschirmauflösungen, oder kompensiert man die Nachteile einer vergleichsweise niedrigen Auflösung lieber mit Maßnahmen, die mehr Informationen in die geringere Anzahl von Bildelementen integrieren. Oder sollte man vielleicht sogar die sprichwörtlich „goldene Mitte“ suchen, also auf eine Kombination hinarbeiten, die bei ausreichender Leistung die subjektiv höchste Qualität auf den Monitor bringt?
Gänzlich objektivierbar ist diese Thematik natürlich nicht, denn in wie so vielen Bereichen des Lebens und gerade der Freizeitbeschäftigung entscheidet nicht letztlich der Geschmack darüber, ob man sozusagen die theoretisch vernünftigste Lösung vorzieht.
Doch zuerst möchte ich ganz kurz für die weniger versierten unter anreißen, womit sich denn diese eher als Kolumne gedachte Präsentation befasst.
3D-Spiele werden über eine virtuelle Projektion von Dreiecken(Polygone) im – wie der Name schon sagt – dreidimensionalen Raum erreicht, wobei diese geometrischen Objekte durch „Tapezierungen“(Texturen) mit Strukturen versehen werden. So wird eine Wand z.B. durch zwei aneinander angrenzende Dreiecke simuliert, die durch ihre Anordnung ein Rechteck bilden. Damit man nicht nur die Umrisse dieser Vielecke sieht, werden die Polygone mit einer Textur „beklebt“, die wie eine fotografierte Wand aussehen, also z.B. das 2D-Abbild von angeordneten Ziegelsteinen besitzen.
Nun werden ja Bilder auf dem Monitor über eine begrenzte Anzahl von Pixeln dargestellt, gängige Auflösungen sind hierbei 800 horizontale mal 600 vertikale Pixel, kurz 800*600 genannt, aber auch 1024*678, oder 1280*1024.
Hierbei wird dann für jeden Bildpunkt berechnet, wie die in den virtuellen Raum projizierte 3D-Welt an dieser Stelle aussieht.
Das größte Problem sind die Begrenzungen der Dreiecke, da die Texturen, also die darauf befindlichen Strukturen zwar bei geschlossenen Objekten die Übergänge recht fließend erscheinen lassen, es aber an der Abgrenzung zu einer mehr oder weniger starken Aufrasterung des Bildes kommt. Diagonal im Raum stehende Linien werden somit durch eine Folge von versetzten Pixeln simuliert, die eine störende Treppe bilden. Je größer die Bildschirmauflösung nun ist, desto feiner sind diese Stufen und desto weniger unnatürlich wirkt das Bild. Eine Auflösung von 1280*1024 bietet eine etwa 2,7 Mal so große Pixelmenge, wie 800*600 und erzeugt dadurch ein schärferes und natürlicheres Bild, die Berechnung dessen verbraucht natürlich ebenso die 2,7fache Leistung.
Und hier deutet sich das Hauptproblem der Thematik an: die begrenzte, zur Verfügung stehende Rechenleistung von Grafikkarten. Für den Eindruck eines flüssigen Bildablaufs etwa beim virtuellen Durchstreifen eines Waldes sollten es schon 35 - 40 einzelne Bilder pro Sekunde sein, da nicht einfach wie bei Filmen mit Bewegungsunschärfe gearbeitet werden kann, was schon bei 25 Bildern pro Sekunde ein scheinbar ruckelfreies Ablaufen der Szene entsteht.
Befinden wir uns nun also in diesem virtuellen Wald und bewegen uns bei 800*600 mit angenommenen 80 Bildern pro Sekunde durch die Szene, stören uns aber an der Grobkörnigkeit des Bildes und der Treppenbildung an den Rändern der Bäume, hätten wir in einer Auflösung von 1280*1024 zwar ein schöneres Bild, aber nur noch – ausgegangen davon, dass die Grafikkarte die bei der Erstellung der Szene limitierende Komponente ist - 80 / 2,7 = 29,6 Bilder pro Sekunde, womit ein ruckelnder, wiederum störender Ablauf der Szene entsteht, womit wir uns nicht zufrieden geben wollen.
Alternativ greifen wir auf die Auflösung 1024*768 zurück, womit wir nun 80 / 1,6 (da das Verhältnis von Bildpunkten von 1024*768 im Vergleich mit 800*600) = 50 Bilder pro Sekunde erreichen würden. Somit erreichen wir einen flüssigen Ablauf der Szene und auch ein schöneres Bild in 800*600, jedoch nicht die Brillanz von 1280*1024. Da wir mit 50 Bildern pro Sekunde noch etwa 15 Bilder pro Sekunde „übrig“ haben, bis durch eine zu geringe Anzahl an Bildern der Bildverlauf zu stockend wäre, können wir diese Rechenleistung in Anti-Aliasing umsetzen.
Bei aktuellen Beschleunigern ist hierbei das Multi Sampling die vorzuziehende Variante. Diese errechnet an den störenden Kanten der Polygone, wo sich also wie gesagt die störenden Treppen bilden durch eine höhere Grafikkarten interne Auflösung in den angrenzenden Pixeln Zwischenstufen zwischen den Farbkontrasten und erzeugt durch die entstehenden Farbverläufe ein virtuelles Abschwächen des störenden Treppeneffektes.
Benutzen wir nur innerhalb dieser Kantenpixel eine intern viermal so hohe Auflösung, haben wir also eine virtuelle Auflösung dieser Kanten von 2048*1536, was feinere Strukturen als bei 1280*1024 bedeutet.
Günstigerweise „kostet“ die Berechnung dieses Effektes auch nur dort Leistung, wo auch tatsächlich Dreieckskanten vorhanden sind. Da eine 3D-Szene typischerweise allerdings nur zu 5% aus Kantenpixeln besteht, müssen also nur diese 5% mit einer höheren Genauigkeit berechnet werden. Wir kämen über die Berechnung 50 Bilder/Sekunde + 2,5 Bilder/Sekunde (erst einmal fällt in der Rechnung der mit höherer Auflösung berechnete Teil weg) – 4*2,5 Bilder/Sekunde (die betroffenen Pixel werden intern viermal Berechnet) auf 42,5 Bilder/Sekunde, was einen immer noch sehr flüssigen Bildablauf bedeutet.
Wir haben also ausgegangen von „zuviel“ Leistung in 800*600 einen flüssigen Bildablauf in 1024*768 mit vierfacher Multi Sampling Kantenglättung, was ein weniger grobes Bild als in 800*600 bedeutet, aber auch ein weniger stotterndes, wie in 1280*1024, wobei sogar feinere Übergänge an den Polygonbegrenzungen als in dieser hohen Auflösung bestehen.
Natürlich könnte man auch höhere Kantenglättungsmodi in 800*600 verwenden, oder auch noch geringfügig höhere in 1024*768, da ja noch ein wenig Leistung im Überschuss vorhanden ist, doch spätestens hier entscheidet dann der Geschmack.
Somit lässt sich also Fazit ziehen, dass hohe Auflösungen durch Kantenglättung nicht ihre Daseinsberechtigung verlieren, aber in Kombination mit dieser die sinnvollste Einstellung für 3D-Spiele bieten. Das Suchen der „goldenen Mitte“ lohnt sich dementsprechend, um die Leistung der Grafikkarte dem eigenen Geschmack nach am geschicktesten in Bildqualität umzusetzen.
Ich danke für ihre Aufmerksamkeit!
Mind-Map:
Problematik: Leistung in Bildqualität umsetzen -> höhere Auflösung oder Kantenglättung ? -> Kombination!
Das Ganze ist stümperhaft, bestimmt von einer Milchmädchenrechnung, ich habe teilweise Worte vergessen (und das bleibt auch so :D ) und arrogant ist es auch noch, vom schlechten Stil reden wir erst gar nicht - aber dennoch gibt es eine schöne Quintessenz, wenn man das Thema an sich ranläßt... von daher, viel Spaß!
(verfaßt irgandwann ende Dezember 2004)
3D-Spiele für den PC – macht Kantenglättung hohe Auflösungen unwichtig?
Nun, liebe Zuhörer, ich möchte Sie mit der für viele kryptischen Thematik von Anti-Aliasing Varianten in aktuellen Computerspielen vertraut machen, wobei ich besonders auf die 3D-Beschleuniger der aktuellen Generation eingehen möchte.
Hierbei geht es speziell um einen Teilpunkt, an dem sich die Geister scheiden: nutzt man lieber hohe Bildschirmauflösungen, oder kompensiert man die Nachteile einer vergleichsweise niedrigen Auflösung lieber mit Maßnahmen, die mehr Informationen in die geringere Anzahl von Bildelementen integrieren. Oder sollte man vielleicht sogar die sprichwörtlich „goldene Mitte“ suchen, also auf eine Kombination hinarbeiten, die bei ausreichender Leistung die subjektiv höchste Qualität auf den Monitor bringt?
Gänzlich objektivierbar ist diese Thematik natürlich nicht, denn in wie so vielen Bereichen des Lebens und gerade der Freizeitbeschäftigung entscheidet nicht letztlich der Geschmack darüber, ob man sozusagen die theoretisch vernünftigste Lösung vorzieht.
Doch zuerst möchte ich ganz kurz für die weniger versierten unter anreißen, womit sich denn diese eher als Kolumne gedachte Präsentation befasst.
3D-Spiele werden über eine virtuelle Projektion von Dreiecken(Polygone) im – wie der Name schon sagt – dreidimensionalen Raum erreicht, wobei diese geometrischen Objekte durch „Tapezierungen“(Texturen) mit Strukturen versehen werden. So wird eine Wand z.B. durch zwei aneinander angrenzende Dreiecke simuliert, die durch ihre Anordnung ein Rechteck bilden. Damit man nicht nur die Umrisse dieser Vielecke sieht, werden die Polygone mit einer Textur „beklebt“, die wie eine fotografierte Wand aussehen, also z.B. das 2D-Abbild von angeordneten Ziegelsteinen besitzen.
Nun werden ja Bilder auf dem Monitor über eine begrenzte Anzahl von Pixeln dargestellt, gängige Auflösungen sind hierbei 800 horizontale mal 600 vertikale Pixel, kurz 800*600 genannt, aber auch 1024*678, oder 1280*1024.
Hierbei wird dann für jeden Bildpunkt berechnet, wie die in den virtuellen Raum projizierte 3D-Welt an dieser Stelle aussieht.
Das größte Problem sind die Begrenzungen der Dreiecke, da die Texturen, also die darauf befindlichen Strukturen zwar bei geschlossenen Objekten die Übergänge recht fließend erscheinen lassen, es aber an der Abgrenzung zu einer mehr oder weniger starken Aufrasterung des Bildes kommt. Diagonal im Raum stehende Linien werden somit durch eine Folge von versetzten Pixeln simuliert, die eine störende Treppe bilden. Je größer die Bildschirmauflösung nun ist, desto feiner sind diese Stufen und desto weniger unnatürlich wirkt das Bild. Eine Auflösung von 1280*1024 bietet eine etwa 2,7 Mal so große Pixelmenge, wie 800*600 und erzeugt dadurch ein schärferes und natürlicheres Bild, die Berechnung dessen verbraucht natürlich ebenso die 2,7fache Leistung.
Und hier deutet sich das Hauptproblem der Thematik an: die begrenzte, zur Verfügung stehende Rechenleistung von Grafikkarten. Für den Eindruck eines flüssigen Bildablaufs etwa beim virtuellen Durchstreifen eines Waldes sollten es schon 35 - 40 einzelne Bilder pro Sekunde sein, da nicht einfach wie bei Filmen mit Bewegungsunschärfe gearbeitet werden kann, was schon bei 25 Bildern pro Sekunde ein scheinbar ruckelfreies Ablaufen der Szene entsteht.
Befinden wir uns nun also in diesem virtuellen Wald und bewegen uns bei 800*600 mit angenommenen 80 Bildern pro Sekunde durch die Szene, stören uns aber an der Grobkörnigkeit des Bildes und der Treppenbildung an den Rändern der Bäume, hätten wir in einer Auflösung von 1280*1024 zwar ein schöneres Bild, aber nur noch – ausgegangen davon, dass die Grafikkarte die bei der Erstellung der Szene limitierende Komponente ist - 80 / 2,7 = 29,6 Bilder pro Sekunde, womit ein ruckelnder, wiederum störender Ablauf der Szene entsteht, womit wir uns nicht zufrieden geben wollen.
Alternativ greifen wir auf die Auflösung 1024*768 zurück, womit wir nun 80 / 1,6 (da das Verhältnis von Bildpunkten von 1024*768 im Vergleich mit 800*600) = 50 Bilder pro Sekunde erreichen würden. Somit erreichen wir einen flüssigen Ablauf der Szene und auch ein schöneres Bild in 800*600, jedoch nicht die Brillanz von 1280*1024. Da wir mit 50 Bildern pro Sekunde noch etwa 15 Bilder pro Sekunde „übrig“ haben, bis durch eine zu geringe Anzahl an Bildern der Bildverlauf zu stockend wäre, können wir diese Rechenleistung in Anti-Aliasing umsetzen.
Bei aktuellen Beschleunigern ist hierbei das Multi Sampling die vorzuziehende Variante. Diese errechnet an den störenden Kanten der Polygone, wo sich also wie gesagt die störenden Treppen bilden durch eine höhere Grafikkarten interne Auflösung in den angrenzenden Pixeln Zwischenstufen zwischen den Farbkontrasten und erzeugt durch die entstehenden Farbverläufe ein virtuelles Abschwächen des störenden Treppeneffektes.
Benutzen wir nur innerhalb dieser Kantenpixel eine intern viermal so hohe Auflösung, haben wir also eine virtuelle Auflösung dieser Kanten von 2048*1536, was feinere Strukturen als bei 1280*1024 bedeutet.
Günstigerweise „kostet“ die Berechnung dieses Effektes auch nur dort Leistung, wo auch tatsächlich Dreieckskanten vorhanden sind. Da eine 3D-Szene typischerweise allerdings nur zu 5% aus Kantenpixeln besteht, müssen also nur diese 5% mit einer höheren Genauigkeit berechnet werden. Wir kämen über die Berechnung 50 Bilder/Sekunde + 2,5 Bilder/Sekunde (erst einmal fällt in der Rechnung der mit höherer Auflösung berechnete Teil weg) – 4*2,5 Bilder/Sekunde (die betroffenen Pixel werden intern viermal Berechnet) auf 42,5 Bilder/Sekunde, was einen immer noch sehr flüssigen Bildablauf bedeutet.
Wir haben also ausgegangen von „zuviel“ Leistung in 800*600 einen flüssigen Bildablauf in 1024*768 mit vierfacher Multi Sampling Kantenglättung, was ein weniger grobes Bild als in 800*600 bedeutet, aber auch ein weniger stotterndes, wie in 1280*1024, wobei sogar feinere Übergänge an den Polygonbegrenzungen als in dieser hohen Auflösung bestehen.
Natürlich könnte man auch höhere Kantenglättungsmodi in 800*600 verwenden, oder auch noch geringfügig höhere in 1024*768, da ja noch ein wenig Leistung im Überschuss vorhanden ist, doch spätestens hier entscheidet dann der Geschmack.
Somit lässt sich also Fazit ziehen, dass hohe Auflösungen durch Kantenglättung nicht ihre Daseinsberechtigung verlieren, aber in Kombination mit dieser die sinnvollste Einstellung für 3D-Spiele bieten. Das Suchen der „goldenen Mitte“ lohnt sich dementsprechend, um die Leistung der Grafikkarte dem eigenen Geschmack nach am geschicktesten in Bildqualität umzusetzen.
Ich danke für ihre Aufmerksamkeit!
Mind-Map:
Problematik: Leistung in Bildqualität umsetzen -> höhere Auflösung oder Kantenglättung ? -> Kombination!