Предыдущая Следующая
Суть работы Ъ-буфера заключается в том, чтобы правильно представить объемную модель на двухмерной плоскости экрана монитора. Задний буфер расставляет вершины объекта в пространстве как в реальном мире, удаляя от нас более дальние части модели и приближая ближние, создавая тем самым объемность мира. После этого все данные поступают в так называемый фрейм-буфер, или просто кадр.
Вот такая модель работы используется графическим конвейером для представления графики на экране монитора. На этом знакомство с основами программирования ЗБ-графики подошло к завершению, и мы переходим к работе над новым проектом трехмерной игры. Это не значит, что мы изучили всю концепцию программирования ЗБ-графики, но этих знаний вам вполне хватит для дальнейшей работы с книгой.
Глава 17
Смена
_игровых состояний
Прежде чем перейти к созданию трехмерной игры, нам стоит уделить внимание оптимизации ранее изученных способов представления графики на экране монитора, а также значительно улучшить механизм смены игровых состояний в приложении. В этой главе мы последовательно изучим обе предложенные темы и начнем с автоматического подбора программой текущего разрешения дисплея.
17.1. Автоматический подбор разрешения экрана
В двухмерной игре разрешение экрана задавалось постоянной величиной. Это простой и надежный способ выбора режима представления графики на экране монитора, но не всегда этот способ приемлем. В трехмерных играх, где полноэкранное представление графики является одним из важнейших и в то же время комфортных (для пользователя) факторов, очень важно иметь автоматический механизм подбора разрешения дисплея.
В XNA имеется ряд дополнительных классов и методов, позволяющих выполнять подбор разрешения дисплея в автоматическом режиме. Давайте воспользуемся этими компонентами и реализуем пример подбора разрешения монитора в новом проекте Screen. Исходный код всего проекта вы найдете на компакт-диске в папке Code\Chapter17\Screen.
Это базовый проект для всех последующих наших проектов, связанных с трехмерной графикой. Проект Screen сформирован на базе шаблона Windows Game. Как и в предыдущей части книги, мы будем постоянно модернизировать исходный код программы и в результате реализуем пусть и не большую, но зато свою трехмерную игру.
Перейдем к проекту Screen и классу Gamel. Весь исходный код этого класса в книге давать не имеет смысла, поскольку он основан на шаблоне Windows Game и не содержит неизвестных для вас нововведений. Рассмотрим только один-единственный новый блок кода в методе Initialize() , который направлен на подбор разрешения экрана. Предыдущая Следующая
|