Pređi na sadržaj

Akumulacioni bafer

S Vikipedije, slobodne enciklopedije

Akumulacioni bafer (engl. Accumulation Buffer) je pojam iz računarske grafike. Predstavlja bafer koji za svaki piksel definiše tri komponente za boju i jedan za vidljivost (RGBA), mimo bafera za boju. Struktura ova dva bafera je slična, a razlika je u tome što ove četiri komponente akumulacionog bafera imaju opseg [-1,1] i tačnost im varira u zavisnosti od broja dodeljenih bitova za svaku komponentu. U akumulacioni bafer se crta tako što isti prilikom običnog crtanja nekog dela (ili cele) scene preuzima RGBA komponente, nad njima izvodi zadatu operaciju zadatom vrednošću, i pamti rezultate za svaki obrađeni piksel. Kad se završi sa crtanjem u njemu, sadržaj akumulaciog bafera se preuzima i koristi u iscrtavanju scene.

Ovaj bafer se koristi za postizanje specijalnih efekata poput Anti-Aliasing[1], dubinskog izoštravanja slike (engl. Depth of Field)[1], zamrljanosti pri pokretu (engl. Motion Blur)[1], za meke senke (engl. Soft Shadows) itd.

Princip rada[uredi | uredi izvor]

Načnin preslikavanja skupa piksela u akumulacioni bafer, ili akumulacionog bafera u neku drugi bafer, definišu dve komponente:

  • operacija koja se izvodi nad datim pikselima, i
  • vrednost jednostruke tačnosti (float) koja se tom operacijom primenjuje na RGBA komponentama

Moguće operacije su:

  • Akumulacija - Rezultat množenja komponenti sa datom vrednošću se sabira sa sadržajem akumulacionog bafera
  • Učitavanje - Rezultat množenja komponenti sa datom vrednošću se smešta u akumulacioni bafer
  • Sabiranje - Dodaje datu vrednost svakoj komponenti akumulacionog bafera
  • Množenje - Množi svaku komponentu akumulacionog bafera sa datom vrednošću
  • Vraćanje - Prenosi sadržaj iz akumulacionog bafera u bafere u koje se trenutno piše. Svaka vrednost je takođe pomnožena sa datom vrednošću pre zapisa. Ovom prilikom se vrednosti sabijaju na interval [0,1].

Oznake[uredi | uredi izvor]

Značenje OpenGL oznaka[2]
Akumulacija GL_ACCUM
Učutavanje GL_LOAD
Sabiranje GL_ADD
Množenje GL_MULT
Vraćanje GL_RETURN

Izvori[uredi | uredi izvor]

  1. ^ a b v SIGGRAPH 96 Courses Arhivirano na sajtu Wayback Machine (2. decembar 2008), Pristupljeno 28. 3. 2013.
  2. ^ OpenGL 4 Reference Pages, Pristupljeno 28. 3. 2013.

Spoljašnje veze[uredi | uredi izvor]