www.wikidata.de-de.nina.az
Der Akkumulationspuffer englisch accumulation buffer ist in der Computergrafik ein Speicherbereich fur Bilder die dort nacheinander addiert werden und von denen anschliessend der Durchschnitt gebildet wird Dadurch lassen sich bestimmte Grafikeffekte erreichen Der Akkumulationspuffer wird entweder in Software implementiert oder von der Grafikhardware zusatzlich zum Framebuffer zur Verfugung gestellt Inhaltsverzeichnis 1 Anwendungen 1 1 Beispiel Antialiasing 2 Geschichte 3 LiteraturAnwendungen BearbeitenMit dem Akkumulationspuffer lassen sich unter anderem folgende Effekte erreichen indem der Durchschnitt mehrerer Bilder mit unterschiedlichen Einstellungen berechnet wird Tiefenunscharfe durch Anderung des Fokus der virtuellen Kamera Antialiasing durch leichtes Verschieben der Kamera Bewegungsunscharfe durch unterschiedliche Zeitpunkte und damit Positionen der Objekte weiche Schatten durch unterschiedliche Interpretation der Position der Lichtquelle Beispiel Antialiasing Bearbeiten Die Idee hinter Antialiasing mittels Akkumulationspuffer ist den Treppeneffekt durch eine hohere Abtastrate zu verhindern Es handelt sich also um eine softwaregestutzte Variante des Supersamplings Im Einzelnen sind hierzu die folgenden Schritte erforderlich Der Akkumulationspuffer wird auf eine schwarze Flache zuruckgesetzt Um eine n displaystyle n nbsp fache Auflosung zu simulieren werden 2 n displaystyle 2 n nbsp Bilder benotigt die sich minimal das heisst um den Bruchteil eines Pixels unterscheiden Minimal unterschiedliche Bilder werden erzeugt indem die Kamera leicht verschoben wird Nachdem jeweils eines der 2 n displaystyle 2 n nbsp Bilder berechnet gerendert wurde addiert man dessen Farbwerte zu denen im Akkumulationspuffer Sobald man alle 2 n displaystyle 2 n nbsp Bilder addiert hat dividiert man alle Pixelwerte im Akkumulationspuffer durch 2 n displaystyle 2 n nbsp Danach steht im Akkumulationspuffer ein Bild das den Mittelwert aus den 2 n displaystyle 2 n nbsp verschobenen Einzelbildern darstellt Der Inhalt des Akkumulationspuffers wird schliesslich in den ursprunglichen Speicherbereich kopiert und angezeigt Geschichte BearbeitenDer Akkumulationspuffer wurde Ende der 1980er Jahre von Silicon Graphics fur ihre damaligen Grafik Workstations entwickelt Die erste Programmierschnittstelle die einen Akkumulationspuffer unterstutzte war daher das herstellereigene IRIS GL Das 1992 veroffentlichte OpenGL 1 0 enthielt ebenfalls eine Unterstutzung des Konzepts In der Folge setzte sich fur Standard Grafikhardware anderer Hersteller ein hardwareunterstutzter Akkumulationspuffer zunachst nicht durch Dies lag an dem erheblichen zusatzlichen Aufwand zur Hardwareunterstutzung von Framebuffern mit mehr als 8 Bit Farbtiefe pro Farbkanal die fur eine sinnvolle Nutzung des Akkumulationspuffer notig sind und von der OpenGL Spezifikation erfordert werden Dieser Aufwand fur einen relativ begrenzten Nutzen schien in den Augen der meisten Grafikhardwarehersteller nicht gerechtfertigt So war der Akkumulationspuffer meist nur durch den Geratetreiber in Software realisiert und darum in Anwendungen extrem langsam Dies anderte sich erst ab 2002 mit Grafikkarten neuerer Generation die intern Gleitkommazahlen fur die Farbkanale von Texturen und nicht sichtbarer Framebuffer verwenden konnten Die erste Grafikkarte dieser Art war die ATI Radeon 9700 Dadurch kann der Treiber einer Grafikkarte den Akkumulationspuffer intern durch die Hardware emulieren Damit ist die Verwendung mit aktuellen Grafikkarten in hoher Geschwindigkeit moglich Zur Unterstutzung von Antialiasing hat der Akkumulationspuffer allerdings mittlerweile seine Bedeutung verloren weil die Grafikhardware fur diesen Effekt spezielle Verfahren vorgesehen hat Literatur BearbeitenPaul Haeberli und Kurt Akeley The Accumulation Buffer Hardware Support for High Quality Rendering PDF Datei 3 30 MB in SIGGRAPH 90 Conference Proceedings S 309 318 Abgerufen von https de wikipedia org w index php title Akkumulationspuffer amp oldid 138208533