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.")