PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Fragen zu den Buffern


Unregistered
2001-04-23, 20:47:30
Hallo
könnt ihr mir bitte einer erklären was der uUterschied zwischen Front-, Back- und Framebuffer ist? Ich blick da nicht ganz durch. Und gibts es noch einen Buffer ausser dem Texturebuffer?
Danke und Gruss
Michi

Littlehonk
2001-04-23, 22:38:22
Ich weiß es nicht genau, aber anhand der Namen kann ich vermuten (bitte korrigiert mich wenns nicht stimmt): Frontbuffer - Puffer für Vordergrundtexturen, Backbuffer - Puffer für Texturen in der Hintergrundebene, Framebuffer - Puffer für schon im voraus berechnete Bilder.

Ich hoffe das stimmt.

Gruß
Littlehonk

Unregistered
2001-04-24, 16:59:22
Danke für deine Antwort ...
und was meinst du mit Hintergrundtexturen und Verdergrund texturen. Meinst du die Skins auf den Models und die auf den normalen Brushes?

Littlehonk
2001-04-24, 17:11:35
Ja, meine ich so. Also alles was z.B. Deine Knarre oder aber Deine Gegner sind ist für mich Vordergrund, Wände oder Himmel usw. meine ich mit Hintergrund.

Erklären kann das alles aber Leonidas bestimmt besser, der kennt sich, glaub ich, mit sowas richtig aus.

Gruß
Littlehonk

StefanV
2001-04-24, 17:36:55
Du meinst den ganzen müll, der gerendert wird, obohl er nicht sichtbar ist, z.B. steht jemand (aus der 3 Perspiektive) vor einer Wand, und überlagert so Texturen.

Erst wird die Wand gerendert, dan die Person, und zum schluß wird festgestellt, was wo ist...

Also, es wird alles gerendert, was da ist, ob du es siehst oder nicht spielt keine Rolle...

Ausnahme:
Alles was auf den namen PowerVR hört...

Leonidas
2001-04-24, 17:43:15
Alles Inkorrekt.


Framebuffer = Frontbuffer + Backbuffer.

Frontbuffer = enthält das gerade auf dem Monitor dargestellte Bild.

Backbuffer = enthält dieses Bild, welche das nächste wäre, was dargestellt wird (wo die Grafikkarte noch daran arbeitet).

Der Frontbuffer wartet darauf, daß das Bild im Backbuffer fertig ist - und schwups werden die Inhalte getauscht und das eben im Backbuffer befindliche Bild ist nun im Frontbuffer und wird auf dem Monitor ausgegeben. Das alte Frontbuffer-Bild wird weggeworfen und der Backbuffer ist wieder frei für ein neues Bild, was der Chip erstellen soll.

Neuere GraKa lösen letzteres im übrigen anders - da wird nicht der Inhalt des Backbuffers in den Frontbuffer kopiert (was ja auch Bandbreite und Zeit kostet), sondern da wird einfach der alte Backbuffer nun zum Frontbuffer und der alte Frontbuffer nun zum Backbuffer. Das ganze nennt man "buffer flipping".


Texture Buffer - ist was ganz anderes, wird nur intern benutzt, um häufig gebrauchte Texturen in einem extrem schnellen Speicher zwischenzulagern. Gehört aber zu den internen Abläufen während der Grafikerstellung - der Framebuffer ist nur für die Ausgabe auf dem Monitor da und damit etwas komplett anderes.

Unregistered
2001-04-24, 19:30:34
Aha .. tnx
Ich nun ist mir das Prinzip klar, aber ich hab noch ne Frage :) ?
Von wo holt der backbuffer die infos?
Oder wir das alles direkt über den AGP-Bus geschickt und dann in den backbuffer gerendert? Oder gibt es da noch einen Buffer um Effekte die mehrere Durchgänge benötigen zu erzeugen?
Viele viele fragen ... :) wennn jemand links hat wo man solches Zeugs nachlesen kann postet dat bitte.
tnx und gruss
Michi

Littlehonk
2001-04-24, 19:41:28
Oh Schreck, da hab ich mich ja wieder mal mit Ruhm bekleckert... :(:(:(

Danke aber für die Aufklärung Leo!

Gruß
Littlehonk

StefanV
2001-04-24, 19:46:17
Mist, hier hab ich natürlch wieder geschlafen und nicht richtig nachgedacht...

Es wird in den Backbuffer gerendert...

Gibt es diese Front-/Backbuffer nicht schon seit ewigen Tagen?

Bei den Windoof beschleunigern?

Leonidas
2001-04-24, 21:01:43
Front- und Backbuffer ist in der Tat eine uralte Sache.


Zum Backbuffer: Der bekommt seine Infos vom Grafikchip! Dieser schreibt dort Pixel für Pixel rein, bis das Bild fertig ist. Mit den mehreren Effekten und mehreren Durchgängen hat das nix zu tun, das ist eine Sache des Chips und auch bei jedem Chip etwas anders.


Sicher haben die Chips kleine Cache-Speicher, um oftmals benötigte Texturen zu cachen. Aber wenn es um Blending-Operationen geht, sieht es schlecht aus. Zuerst wird der Pixel gerendert und in den Backbuffer geworfen und irgendwann stellt dann der Chip fest, das da noch ein Blending (Lichteffekt, Rauch, Schatten, etc.) drüber soll. Dann wird der Pixel wieder aus dem Backbuffer gelesen, die Blending-Operation erledigt und dann wird der wieder zurückgeschrieben.


Deswegen kommt es ja unter 16 Bit teils zu so mieser Qualität auf einigen Chips. Der Chip schreibt den Pixel mit 16 Bit Genauigkeit, also nur ungenau in den Backbuffer. Solange der dann nicht wieder gebraucht wird, ist der Genauigkeitsverlust tolerierbar. Aber wenn man dann ein Blending drüber legt, wird mit dem ungenauen 16 Bit-Wert weitergerechnet - und schon haben wir das bekannte 16-Bit-Dithering.