Framebuffer ob'ekti - Framebuffer object - Wikipedia

The ramka buferi ob'ekti me'morchilik (FBO) - kengaytmasi OpenGL a-ga ko'rsatishni ham o'z ichiga olgan ekrandan tashqari moslashuvchan renderlarni bajarish uchun to'qima. Odatda ekranga tortiladigan rasmlarni olish orqali u turli xil tasvir filtrlarini va qayta ishlashdan keyingi effektlarni amalga oshirish uchun ishlatilishi mumkin. FBO shunga o'xshash maqsadlar modelini ko'rsatish yilda DirectX. U samaradorligi va ishlatishda qulayligi uchun OpenGL-da ishlatiladi. FBO-lardan foydalanish OpenGL chizilgan kontekstni almashtirish bilan bog'liq bo'lgan ortiqcha xarajatlardan aziyat chekmaydi va asosan bufer va kontekstli kalitlarni o'z ichiga olgan boshqa usullar.

Foydalanadi

FBO ikkita asosiy maqsadga ega: turli xil sahnalar orasidagi tasvir va kompozitsiyalarni qayta ishlash.

  1. Ko'rsatilgan rasm olinadi va unga bo'ysunadi Fragment Shaders yoki boshqa manipulyatsiyalar. Bu bugungi kunda ommalashgan kompyuter grafikasi effektlarining ko'pchiligini, shu jumladan loyqalanish yoki gullash effektini qo'shishni ta'minlaydi.
  2. Boshqa sahnalarning ko'rinishini yaratish uchun foydalanish mumkin, masalan: ikkilamchi kameradan ko'rinishni ko'rsatadigan uydagi televizor. Sahna FBO orqali teksturaga etkazilishi mumkin, keyin televizor yuzasiga ushbu tekstura qo'llanilishi mumkin. Buni ba'zan "Render to Texture" yoki RTT deb atashadi.

Boshqa usullardan afzalliklari

FBOni jalb qilish usullari ustun hisoblanadi, chunki:

  • Boshqa usullardan ko'ra sozlash osonroq.
  • Kontekstni almashtirishni talab qilmaydi.
  • Bu samaraliroq, chunki resurslar bir xil kontekstda taqsimlanadi.
  • Bu yanada moslashuvchan, chunki barchasi chuqurlik buferi, shablon tampon va boshqalarni sotib olish mumkin.

Arxitektura

FBO-dan foydalanish uchun shunchaki uning nusxasi yaratiladi. FBO bilan bir qatorda bir nechta qo'shimchalar keladi. Keyin ularni tanlangan qabul qiluvchiga ulash mumkin: yoki a to'qima yoki a buferni yaratish.

Masalan:

  • FBO yarating va uni bog'lang.
  • Rang tamponini (RenderBuffer yoki tekstura shaklida) FBO-ga ulang.
  • FBO ga chuqurlik tamponini (RenderBuffer yoki tekstura sifatida) biriktiring.
  • Mahalliy oynani FrameBuffer bilan bog'lab qo'ying (id = 0)
  • Rang ma'lumotlariga va chuqurlik ma'lumotlariga bog'liq ravishda pikselli shader yordamida ekranga teksturani ko'rsating.

Tashqi havolalar