A-tit indd



Download 3,35 Mb.
Pdf ko'rish
bet105/313
Sana05.06.2022
Hajmi3,35 Mb.
#638392
1   ...   101   102   103   104   105   106   107   108   ...   313
Bog'liq
Nistrem R. Patterni programmirovaniya igr-1

Часть III


142
Двойной буфер (Double Buffer) — 
Паттерны программирования игр
Двойной буфер 
(Double Buffer)
«Заставляет серию последовательных действий по-
являться мгновенно и казаться одновременными».
Мотивация
В душе любой компьютер — это последовательное со-
здание. Мощь компьютеров заключается в способности 
разбить огромные задачи на крошечные шаги, которые 
могут быть выполнены один за другим. Хотя иногда воз-
никает необходимость отобразить пользователям ре-
зультат нескольких действий за один мгновенный шаг, 
заставляя зрителей поверить, будто действия выполня-
лись одновременно.
Типичный пример, относящийся почти к каждому иг-
ровому движку, — это рендеринг. Когда игра отрисовы-
вает мир, который виден пользователю, это происходит 
по частям — горы вдалеке, склоны холмов, деревья, все 
в свою очередь. Если бы пользователь 
видел
все шаги, 
иллюзия гармоничного мира рухнула бы. Сцены долж-
ны обновляться плавно и быстро, образуя последова-
тельность законченных кадров, сменяющих друг друга 
мгновенно.
Двойная буферизация (Double Buffering) позволяет 
решить проблему одномоментности, но, чтобы понять 
как
, нам надо разобраться в принципе работы компью-
терной графики вообще.
Глава 8
Потоки и многоядерная 
архитектура делают все 
это не таким актуаль-
ным, но даже несколько 
ядер способны выпол-
нять всего несколько 
операций параллельно.


Паттерны программирования игр
— Паттерны очередности
143
Как работает компьютерная графика (кратко)
Видеодисплей, как и любой компьютерный монитор, 
рисует один пиксель за момент времени. Он проходит 
по каждому пикселю строки слева направо, затем спу-
скается на следующую строчку пикселей. Когда достига-
ется правый нижний угол, происходит переход в левый 
верхний, и процесс начинается сначала. Каждый такой 
проход происходит настолько быстро, примерно 60 раз 
в секунду, что остается незаметным для глаза. Мы видим 
просто набор разноцветных пикселей — изображение.
Можете представить этот процесс как процесс поли-
ва экрана пикселями из шланга. Отдельные цвета подво-
дятся к шлангу и выливаются последовательно на экран, 
каждый в свою очередь. Так как узнать, в каком порядке 
подводить пиксели к шлангу?
Для большинства компьютеров ответ — взять их 
из 
кадрового буфера
(framebuffer). Он представляет со-
бой массив пикселей в памяти, фрагмент оперативной 
памяти, где каждые несколько байт представляют цвет 
одного пикселя. И шланг при распылении просто считы-
вает цвета из массива по байту за раз.
Но в любом случае, чтобы наша игра появилась на эк-
ране, нам надо просто заполнить этот массив. Все не-
вероятно продвинутые алгоритмы обработки графики, 
по сути, делают следующее: записывают значения бай-
тов в кадровый буфер. Но есть небольшая проблема.
Ранее я уже говорил, что природа компьютеров по-
следовательная. То есть если компьютер сейчас выпол-
няет код, ответственный за рендеринг, нам не стоит 
ожидать, будто он займется еще чем-то одновременно. 
Дело действительно обстоит почти так, но есть пара ве-
щей, которые 
происходят
во время выполнения про-
граммы. Одна из них —
непрерывное
считывание кадро-
вого буфера дисплеем. И оно может обернуться для нас 
проблемой.
Допустим, нам надо отобразить на экране улыбаю-
щееся лицо. Программа начинает циклично проходить 
Мое объяснение, 
эм-м-м, «упрощено». 
Если вы хорошо разби-
раетесь в низкоуровне-
вом аппаратном обеспе-
чении и сейчас вас 
передернуло, то пропу-
стите эту часть и пере-
ходите к следующему 
Download 3,35 Mb.

Do'stlaringiz bilan baham:
1   ...   101   102   103   104   105   106   107   108   ...   313




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©hozir.org 2024
ma'muriyatiga murojaat qiling

kiriting | ro'yxatdan o'tish
    Bosh sahifa
юртда тантана
Боғда битган
Бугун юртда
Эшитганлар жилманглар
Эшитмадим деманглар
битган бодомлар
Yangiariq tumani
qitish marakazi
Raqamli texnologiyalar
ilishida muhokamadan
tasdiqqa tavsiya
tavsiya etilgan
iqtisodiyot kafedrasi
steiermarkischen landesregierung
asarlaringizni yuboring
o'zingizning asarlaringizni
Iltimos faqat
faqat o'zingizning
steierm rkischen
landesregierung fachabteilung
rkischen landesregierung
hamshira loyihasi
loyihasi mavsum
faolyatining oqibatlari
asosiy adabiyotlar
fakulteti ahborot
ahborot havfsizligi
havfsizligi kafedrasi
fanidan bo’yicha
fakulteti iqtisodiyot
boshqaruv fakulteti
chiqarishda boshqaruv
ishlab chiqarishda
iqtisodiyot fakultet
multiservis tarmoqlari
fanidan asosiy
Uzbek fanidan
mavzulari potok
asosidagi multiservis
'aliyyil a'ziym
billahil 'aliyyil
illaa billahil
quvvata illaa
falah' deganida
Kompyuter savodxonligi
bo’yicha mustaqil
'alal falah'
Hayya 'alal
'alas soloh
Hayya 'alas
mavsum boyicha


yuklab olish