A-tit indd


Паттерны программирования игр



Download 3,35 Mb.
Pdf ko'rish
bet272/313
Sana05.06.2022
Hajmi3,35 Mb.
#638392
1   ...   268   269   270   271   272   273   274   275   ...   313
Bog'liq
Nistrem R. Patterni programmirovaniya igr-1

Паттерны программирования игр
— Паттерны оптимизации
371
гнездо» (площадка на мачте для наблюдателя). Там сто-
ит пират. На его плече сидит попугай (рис. 18.1). Ло-
кальные преобразования корабля определяют позицию 
в море. Преобразования «вороньего гнезда» — позицию 
на корабле. И так далее.
Рис. 18.1.
Йо-хо-хо!
Таким образом, когда родительский объект пере-
мещается, дочерние перемещаются с ним автоматиче-
ски. Если мы изменим преобразования корабля, то «во-
ронье гнездо», пират и его попугай переместятся вслед 
за кораблем. Представьте, насколько проблематичнее 
было бы вручную передвигать все объекты.
Но чтобы на самом деле отобразить попугая на эк-
ране, нам необходимо знать его абсолютную позицию. 
Я буду называть преобразования относительно родите-
ля 
локальными
. Для рендеринга объекта нам необходи-
мы его 
глобальные
преобразования.
Локальные и глобальные преобразования
Вычисление глобальных преобразований довольно при-
митивно: вы просто проходите всю родительскую цепь, 
начиная от корневого элемента вниз до самого объекта, 
На самом деле, если 
речь идет о море, то вам 
все равно придется 
вручную смещать объ-
екты. Возможно, мне 
стоило выбрать более 
сухую локацию.


372
Грязный флаг (Dirty Flag) — 
Паттерны программирования игр
комбинируя преобразования на своем пути. Другими 
словами, глобальные преобразования попугая выглядят 
примерно так (рис. 18.2).
Рис. 18.2.
Вычисление глобальных преобразований попугая, 
начиная с локальных преобразований родителей
Нам нужны глобальные преобразования каждого 
объекта на каждом кадре, поэтому, хотя на модель при-
ходится всего несколько умножений матриц, подобный 
код все равно требует очень много ресурсов. А держать 
их в актуальном состоянии сложно, ведь движение ро-
дительского объекта влияет как на него самого, так 
и на все его дочерние элементы рекурсивно.
Самый простой подход — вычислять преобразования 
на лету прямо во время рендеринга. Каждый кадр мы ре-
курсивно проходим по всему графу сцены, начиная свер-
ху иерархии. Для каждого объекта мы вычисляем гло-
бальные преобразования и тут же их визуализируем.
Но это ужасная растрата ценных ресурсов процессора! 
Большинство объектов не меняют свое положение на каж-
дом кадре. Сюда относится вся статическая геометрия, со-
ставляющая уровень. Повторное вычисление преобразо-
ваний неподвижных объектов — настоящая растрата.

Download 3,35 Mb.

Do'stlaringiz bilan baham:
1   ...   268   269   270   271   272   273   274   275   ...   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