Welche Games benutzen schon Pixel- und Vertexshader

Also um ehrlich zu sein, gibt es diese Diskussion schon öfters hier.
Ich versuche, mindestens einmal im Jahr drauf zurück zukommen.

Nein Quatsch. Spaß beiseite.
Mein Problem ist ja grundsätzlich nicht der PC an sich. Ich habe ja schließlich selber einen und mit dem Spiele ich auch mal. Aber was mich eben stört ist, dass bei der ganzen Euphorie um die beste Grafikkarte immer nur die theoretische Leistung angepriesen wird und diese nie im Spiel gezeigt wird oder nur, wenn die Karte selber schon 2 Jahre alt ist. Das war seit 3Dfx tot ist und NVIdia mit dem "T&L" Gespenst angefangen hat so.

Und da ich in genau der Zeit wieder mit Konsolen angefangen habe (nach dem SNES und der PS1 ist viel Zeit vergangen) und jetzt sehe, wo man diese Effekte schon heute in jedem Spiel sieht, dachte ich mir, ich tue das hier mal kund.

Dass das nicht jeder sofort glauben mag, der sich noch den 3DMark 3x täglich antut, ist mir klar.
 
Da hast Recht, man bezahlt immer die theoretische Leistung, die später Praxis wird, wenn es aber soweit is, das Effekte ausgereift sind, gibt es wieder neue und alles fängt von vorne an. Ich hab früher auch Konsolen bevorzugt, heute hab ich aber keine mehr, hab ja nen guten PC.
 
Green Mamba schrieb:
durch aliasing bekommt man weis gott nicht mehr details! antialiasing verhindert nur die treppchenbildung an kanten, sonst nix. ;)
So ein Unsinn... Wenn ich ein dünnes Objekt zwischen 2 Pixeln hab dann wird es nicht dargestellt. Bei Antialiasing wird mehr abgetastet, also is die Wahrscheinlichkeit höher, dass dieses Objekt mit ins Bild einfließt. Eigentlich verhindert Antialiasing Aliasing (so ein Zufall) und davon sind nicht nur Polygonkanten betroffen.
 
Und wie gesagt: Bei mir war es umgekehrt: Ich habe die Effekte und Spielbarkeit ohne Fehler lieber sofort und nicht erst, wenn es bessere Dinge gibt.
Außerdem gibt es ein paar Exklusivtitel in der Konsolenwelt, die mein PC bis jetzt nicht toppen konnte. Dazu zählen Final Fantasy, Soul Calibur und Halo sowie Zelda. Das sind absolute must-haves in meinen Augen.

Der PC ist für das Internet so wie Filme und eben meine Arbeiten da.

Trotzdem lege ich jedem mal nahe, eine Konsole seiner Wahl, die anhand der SPiele getroffen werden sollte, zu kaufen und plötzlich sind Probleme wie "zu lauter Lüfter, Festplatten, usw. vorbei.

Ach ja, und die Frauen stehen Konsolenspieler, wie man hier sehen kann:

http://www.marctv.de/foren/marctvdotde.jpg

EDIT: mamba, entweder kannsT Du nicht richtig klicken oder Du hast Probleme mit dem Browser, den Du benutzt. Der Link geht 100%ig und ich habe es nicht nötig, Eigenwerbung zu machen.


und bestimmt nicht auf das:

http://i.dslr.net/pics/sfbaypeople/image6131.jpg

=)
 
Zuletzt bearbeitet:
Stormbilly schrieb:
So ein Unsinn... Wenn ich ein dünnes Objekt zwischen 2 Pixeln hab dann wird es nicht dargestellt. Bei Antialiasing wird mehr abgetastet, also is die Wahrscheinlichkeit höher, dass dieses Objekt mit ins Bild einfließt. Eigentlich verhindert Antialiasing Aliasing (so ein Zufall) und davon sind nicht nur Polygonkanten betroffen.

Wie kann ein dünnes Objekt zwischen zwei pixeln sein, wenn es selber nicht auf einem Pixel ist?;)

Nein, mit AA hat GM schon recht. Bei deinem BSP wird dieses Dünne Objekt, z.B. eine AutoAntenne, nicht linear angezeigt, sondern springt wohl mit 1xAA, zwischen den 2 Pixeln hin und her. Da mit zuhilfenahme zusätzlicher Suppixel bei einschaltung zusätzlicher AA-Modi, welches dadurch die Abtastung verfeinert wird, wird dieser Stufenbau verhindert.
 
BodyLove schrieb:
Wie kann ein dünnes Objekt zwischen zwei pixeln sein, wenn es selber nicht auf einem Pixel ist?;)
Es ist zwischen 2 Pixelabtastpunkten, also auf keinem Pixel, also unsichtbar.
Bei "1xAA" also gar keinem AA gibt es einen Abtastpunkt pro Pixel. Wenn das Objekt keinen Abtastpunkt auf dem Bild berührt wird es nicht dargestellt. Bei AA gibt es zusätzliche Abtastpunkte wodurch die Wahrscheinlichkeit steigt, dass das Objekt dargestellt wird.
Aliasing entsteht durch Unterabtastung.
 
ja klar, nur wie kann etwas permanent zwichen 2pixeln sein? Der dann auch nicht zu sehen ist? meiner ansicht nach würde dieses Objekt nur zwischen den Pixeln hin und her "springen". nicht aber völlig unsichtbar bleiben. Aber wie gesagt, imho. :)
 
jede kante im dreidimensionalen raum liegt auf einem pixel, vorrausgesetzt sie liegt im sichtbaren bereich, und nicht z.b. hinter dem betrachter...
 
BodyLove schrieb:
ja klar, nur wie kann etwas permanent zwichen 2pixeln sein? Der dann auch nicht zu sehen ist? meiner ansicht nach würde dieses Objekt nur zwischen den Pixeln hin und her "springen". nicht aber völlig unsichtbar bleiben. Aber wie gesagt, imho. :)
Natürlich erscheint das Objekt bei nem bewegten Bild wieder sobald ein Pixelabtastpunkt darauf liegt. ;)

Nein, Green Mamba das ist falsch! Pixel sind eigentlich Punkte die auf eine Fläche ausgebreitet sind. also verschwindet alles, was nicht von dem Punkt erfasst wird.

Hier kann man auch auf dem 2. und 3. Bild deutlich sehen, dass die eigentliche Kurvenform verschwindet.
 
Zuletzt bearbeitet:
@storm

okay, ich und GM lagen anscheinend falsch. Den link von MarcDK hatte ich schon davor durchgelesen gehabt, aber ich habe darin was interessantes Gefunden.

3dcenter schrieb:
Die Motivation für Anti-Aliasing im Bereich der 3D-Grafik ergibt sich nicht nur daraus, dass man gerne geglättete Kanten hätte. Man stelle sich ein Szenario vor, wo man im Hintergrund sehr dünne Objekte sieht, wie z.B. eine Stabantenne. Nehmen wir an, dieses sehr dünne Rechteck sei nur ein halbes Pixel breit. Je nach Lage zum Pixelraster wäre die Antenne mal zu sehen, und mal nicht. Derlei Flackern ist äußerst unschön. Es gilt also auch, Dinge sichtbar zu machen, die ansonsten durch das Pixelraster rutschen würden.

anscheinend ist es doch möglich.
 
das ist ein problem welches durch das abtast-theorem entsteht. das hat nix damit zu tun, dass details verschwinden. die vertices (eckpunkte von polygonen) im dreidimensionalen raum werden durch matrix-operationen auf den zweidimensionalen screen abgebildet. dabei ist jedem punkt aus dem raum ein punkt auf dem screen zugeordnet, egal wo er sich befindet, er kann immer eindeutig auf genau einen pixel abgebildet werden. da sich die pixel quasi spaltfrei aneinander-reihen, trifft jeder denkbare vertex genau einen pixel.

das was in dem bericht von 3d-center erklärt wird, ist das abtast-theorem-problem. das sagt einfach nur aus, dass es frequenzprobleme gibt, sobald mehr vertices pro pixel getroffen werden. das gibt dann aliasing-effekte in der art dass moiree-muster auftreten. sowas kann man sehen wenn z.b. ein horizont im bild ist, der mit einem schachbrett überzogen ist. so wie auf diesem bild zu erkennen.
am "ende" des horizonts werden mehrere eckpunkte auf einen pixel abgebildet, daher kommt es zu diesen unschönen artefakten.

das problem der stabantenne kann hoffentlich aths mal genauer beleuchten. ich schreib ihm mal ne pm, interessiert mich ja jetzt schon.
 
Zuletzt bearbeitet:
Green Mamba schrieb:
das problem der stabantenne kann hoffentlich aths mal genauer beleuchten. ich schreib ihm mal ne pm, interessiert mich ja jetzt schon.
Wieso Problem? Ich find das logisch. :) Also verschwinden Details.
 
Green Mamba schrieb:
das ist ein problem welches durch das abtast-theorem entsteht. das hat nix damit zu tun, dass details verschwinden. die vertices (eckpunkte von polygonen) im dreidimensionalen raum werden durch matrix-operationen auf den zweidimensionalen screen abgebildet. dabei ist jedem punkt aus dem raum ein punkt auf dem screen zugeordnet, egal wo er sich befindet, er kann immer eindeutig auf genau einen pixel abgebildet werden.
Na.

Auf dem Bildschirm wird eine Art Sichtpyramide abgebildet. Was links und rechts davon ist, und was außerhalb dessen liegt, was der Z-Buffer abfasst, wird nicht dargestellt.

Was die Abbildung angeht, verliert man bei der Projektion auf den Bildschirm natürlich die 3. Dimension. Im selben Pixel könnten unterschiedliche Punkte aus dem Raum sein. Der Z-Test entscheidet, welchen man sieht.

Das Problem mit dem Aliasing ist, grob vereinfacht gesagt, dass Geometrie mit FP32 vorliegt. Es gibt keinen Fall, in dem FP32 schlechter als Int24 ist. 2^24 entspricht etwa 16 Mio. Die Projektion auf die tatsächliche Bildschirmauflösung beinhaltet also auch immer eine gewaltige Unterabtastung.


Green Mamba schrieb:
das was in dem bericht von 3d-center erklärt wird, ist das abtast-theorem-problem. das sagt einfach nur aus, dass es frequenzprobleme gibt, sobald mehr vertices pro pixel getroffen werden. das gibt dann aliasing-effekte in der art dass moiree-muster auftreten. sowas kann man sehen wenn z.b. ein horizont im bild ist, der mit einem schachbrett überzogen ist. so wie auf diesem bild zu erkennen.
Das ist ein Versuch gewesen, den "Aliasing"-Begriff aus der Ecke der Treppen-Effekte zu holen. Aliasing ist ein generelles Phänomen bei der Digitalisierung. Kanten-Aliasing gehört auch dazu. Anti-Aliasing ansich wird auch beim Texturieren gemacht. Dort wird es immer gemacht, weil man dort über den Detailgrad (quasi Schärfegrad) der Textur die Nyquist-Grenze einhalten kann. Bei einem Resampling der Textur auf den Bildschirm mit einem Nicht-1:1-Verhältnis kommt zusätzliche Unschärfe ins Spiel, was man durch anisotropes Filtern beheben muss. (Für verzerrte Texturen bräuchte man einen Nichtquadratischen Filterkernel. AF nähert das an, in dem mehrere Kernel passend aneinander gelegt werden.)


Green Mamba schrieb:
am "ende" des horizonts werden mehrere eckpunkte auf einen pixel abgebildet, daher kommt es zu diesen unschönen artefakten.
Das eigentliche Aliasing worum es hier geht, also das, was man durch Anti-Aliasing sprich Kantenglättung bekämpft, ist, dass eine schräge Linie nicht glatt, sondern treppig aussieht. Bzw., dass extrem dünne Objekte mal sichtbar sind, und mal nicht, und somit in Bewegung flimmern. Das ist das, was "Anti-Aliasing" versucht, zu bekämpfen. Sowas kommt natürlich auch vor, wenn man 2^24 Zeilen hätte.

Letztlich interessiert uns gar nicht so die Unterabtastung von der Geometrie zum Bildschirm-Raster, sondern dass das Bildschirmraster für unsere "Augen-Auflösung" zu grob ist.

Die erste Abhilfe wäre zu versuchen, zu Extrem-Auflösungen zu greifen. Das ermöglicht gleichzeitig ein fantastisches Textur-Detail. So detailliert braucht man die Texturen aber nicht. In der echten Welt sehen wir entfernte Objekte ja auch nicht mehr so detailreich. Nur die Kanten benötigen höhere Auflösung. Dafür gibt es Multisampling-Anti-Aliasing.


Green Mamba schrieb:
das problem der stabantenne kann hoffentlich aths mal genauer beleuchten. ich schreib ihm mal ne pm, interessiert mich ja jetzt schon.
Wenn man fernsieht, reichen derzeit 576 Zeilen für ein ordentliches Bild. Digitale Fotografie liefert selbst mit 1 MegaPixel, auf dem Monitor betrachtet, vernünftige Ergebnisse. Weil hier in jede Pixel-Fläche alle Informationen einfließen, die in der Fläche liegen. Damit findet automatisch eine Tiefpass-Filterung statt. Die höchste Frequenz, die noch abgebildet wird, ist maximal (Auflösung / 2 ). (Shannon-Theorem, Nyquist-Grenze.)

Beim Rendervorgang wird für die Pixelfläche aber nur ein mathematischer Punkt abgetastet. Die Information einer unendlich kleinen Fläche wird auf eine endliche Fläche ausgedehnt. Das Problem besteht immer. Anti-Aliasing berechnet für das Pixel mehrere Subpixel, die im Pixel liegen. Man hofft nun, dass "alle relevanten" Informationen irgendwie erfasst werden. Je mehr Subpixel, desto höher liegen die Chancen.

Bisschen konfus wird das dadurch, dass auch das Aussehen der Subpixelmaske erheblich mit dazu beiträgt, wie gut die Glättung ist. Das ist hier angerissen: http://www.3dcenter.de/artikel/anti-aliasing-masken/

Kanten-Anti-Aliasing erhöht auch den Detailgrad. Man kann diese Details zwar nicht über das hinaus schrauben, was die Auflösung zulässt. Aber ohne Anti-Aliasing verschwinden Details (genau das ist ja das, was Aliasing eigentlich heißt*) die theoretisch noch mit dem Bildschirmraster erfassbar wären. Glättung von Kanten funktioniert momantan nur so, dass die Kante detailreicher erfasst und dann heruntergerechnet wird. Das Downsampling vernichtet die Lokalitätsinformation der Subpixel, aber in das Pixel fließen "Umgebungs-Informationen" ein. Das Downsampling vernichtet weniger Informationen, als zunächst zusätzlich berechnet wurden.

* Aliasing heißt eigentlich, dass die Frequenzen, die oberhalb der halben Samplingfrequenz liegen, an der Grenzfrequenz zurück ins eigentliche Signal gespiegelt werden. Wenn du ein Audiosignal mit bis zu 20 KHz hast, es aber nur mit 32 KHz abtastest, können maximal 16 KHz erfasst werden. Der Bereich von 12-16 KHz wird durch das auftretene Aliasing verfälscht. Hört man gut bei alten Xing-MP3-Encodern. Durch Aliasing fallen nicht nur Informationen weg, sonst könnte man damit einigermaßen leben ("die Stabantenne ist zu dünn, und nicht sichtbar") sondern werden verfälscht ("die Stabantenne flackert.")
 
Zuletzt bearbeitet:
ok, dann hab ich das problem nicht richtig durchblickt, weil ich davon ausging, dass die abbildung falschherum abläuft von 3d auf 2d. so wie du es beschreibst werden virtuelle straheln durch jeden pixel geschossen, für´s multisampling eben mehrere.
ich hingegen war der annahme verfallen, dass die koordinaten der vertices durch matrixoperationen auf den screen geklebt werden. in dem fäll wäre ja jedem punkt im raum definitiv genau ein pixel auf dem screen zugeordnet. ich ging davon aus, dass die abtastung wie du sie beschrieben hast in den bereich raytraycing fällt.

ich glaub mir war nur nicht so ganz klar dass du in dem artikel wirklich von der render-pipeline sprichst, und nicht von anderen verfahren. :)
vielen dank für deine mühe, wieder was dazugelernt, was unter anderem bei meiner kommenden prüfung in computergrafik sicher hilfreich sein wird. :daumen:
insgesamt kann ich deiner erklärung sehr gut folgen!
 
Green Mamba schrieb:
ok, dann hab ich das problem nicht richtig durchblickt, weil ich davon ausging, dass die abbildung falschherum abläuft von 3d auf 2d. so wie du es beschreibst werden virtuelle straheln durch jeden pixel geschossen, für´s multisampling eben mehrere.
Rrr.

Nein.

Die Abbildung geht von 3D auf 2D.



Green Mamba schrieb:
ich hingegen war der annahme verfallen, dass die koordinaten der vertices durch matrixoperationen auf den screen geklebt werden. in dem fäll wäre ja jedem punkt im raum definitiv genau ein pixel auf dem screen zugeordnet. ich ging davon aus, dass die abtastung wie du sie beschrieben hast in den bereich raytraycing fällt.
Raytracing findet nicht statt. Das Triangle Setup ermittelt, welche Bildschirm-Zeilen vom aktuellen Dreieck überdeckt werden, und wo die Zeile jeweils anfängt und aufhört. Dazu wird mittels Matrizenrechnung eine 3D-Koordinate in die passende 2D-Koordinate für den Bildschirm umgewandelt.

Wo ist der Widerspruch mit meinen Ausführungen in diesem Thread?



Green Mamba schrieb:
insgesamt kann ich deiner erklärung sehr gut folgen!
Offenbar gibt es bezüglich der Reihenfolge von den Dreiecken zum Monitorbild doch Missverständnisse.
 
Zuletzt bearbeitet:
Ok Jungs. Und das heißt jetzt was?
Auf den Fernseher bezogen bedeutet das, wenn z.B. die X-Box Spiele dort anzeigt, durch das Antialiasing ( Wie spricht man das eigentlich aus? "Anti" ist klar aber "Aliasing"? So wie "Alias" aus der Pro7-Serie + "ing"?) das Bild hoch aufgelöst wirkt wie eben bei einer DVD, die auf dem Bildschirm angezeigt wird.

Ach ja: Noch ein paar Bilder von DoA:XBV zum abkühle nach der anstrengenden Diskussion über AA. Denn es zählt letztendlich nur das Ergebnis:

http://www.neotaku.com/doax/screens_iolite.html
 
oh, da hab ich mich ein wenig zwei- bis dreideutig ausgedrückt. mir war schon klar, dass die abbildung von 3d auf 2d erfolgt, aber eben nicht dass die abbildung vom pixel ausgeht.
du schreibst ja dass für jeden pixel ermittelt wird welches dreieck darauf abgebildet wird. ich hingegen ging davon aus, dass jeder (sichtbare) dreiecks-eckpunkt einem pixel zugeordnet wird.
auf der einen seite wird jeder pixel mehrfach aus dem 3d-raum abgetastet, und auf der anderen seite schreibst du:
aths schrieb:
Dazu wird mittels Matrizenrechnung eine 3D-Koordinate in die passende 2D-Koordinate für den Bildschirm umgewandelt.
so hab ich das auch gelernt, aber warum wird denn jetzt eine schmale antenne die sich weiter weg befindet manchmal nicht dargestellt? wenn doch die 3d-koordinate in eine 2d-koordinate abgebildet wird, müsste die antenne doch sichtbar sein!? :confused_alt:

@MarcDK
wie soll man bei DEN bildern noch auf´s antialiasing achten!?
 
MarcDK schrieb:
Ok Jungs. Und das heißt jetzt was?
Auf den Fernseher bezogen bedeutet das, wenn z.B. die X-Box Spiele dort anzeigt, durch das Antialiasing ( Wie spricht man das eigentlich aus? "Anti" ist klar aber "Aliasing"? So wie "Alias" aus der Pro7-Serie + "ing"?) das Bild hoch aufgelöst wirkt wie eben bei einer DVD, die auf dem Bildschirm angezeigt wird.
Nein. Die Xbox berechnet das Bild wie ein Computer. Die DVD-Bildinformation enstand aus einer Abtastung, wo vom Film jeweils die Information einer Fläche in das Pixel einfließt.

Antialiasing kannst du Entiälijäsing oder Antialiasing aussprechen.
 
Zuletzt bearbeitet:
Green Mamba schrieb:
du schreibst ja dass für jeden pixel ermittelt wird welches dreieck darauf abgebildet wird. ich hingegen ging davon aus, dass jeder (sichtbare) dreiecks-eckpunkt einem pixel zugeordnet wird.
Das ist für die Betrachtung vom Kanten-Aliasing Jacke wie Hose.

Es erklärt sich am besten, wenn man sich vorstellt, dass man in die Pixelmitten "Nadelstiche" macht, und die Information des Nadelstiches für die Pixelfläche gilt.

Tatsächlich rastert er das Dreieck auf die Pixel und nicht anders rum. Dabei zählt, ob die Pixelmitte im Dreieck liegt, oder nicht. Wenn ja, wird das Pixel gemalt.



Green Mamba schrieb:
auf der einen seite wird jeder pixel mehrfach aus dem 3d-raum abgetastet, und auf der anderen seite schreibst du: so hab ich das auch gelernt, aber warum wird denn jetzt eine schmale antenne die sich weiter weg befindet manchmal nicht dargestellt? wenn doch die 3d-koordinate in eine 2d-koordinate abgebildet wird, müsste die antenne doch sichtbar sein!? :confused_alt:
Sie muss nicht sichtbar sein. Noch mal: Das Triangle Setup stellt zunächst fest, welche Zeilen überhaupt "betroffen" sind. Dann wird für jede Zeile errechnet, in welcher Spalte das Objekt beginnt, und wo es endet. Wenn die Geometrie nun zwischen zwei benachbarten Pixelmittelpunkten liegt, wird diese Zeile nicht gerendert.



Green Mamba schrieb:
@MarcDK
wie soll man bei DEN bildern noch auf´s antialiasing achten!?
Wenn ich das anbringen darf :) Du wolltest ein ' statt ´ nehmen. Neuerdings wird selbst das ' weggelassen. "Beim" und "ins" war früher schon die gängige Form, jetzt ist auch "durchs", "aufs" usw. erlaubt.
 
Zuletzt bearbeitet:
Zurück
Oben