netlib.narod.ru< Назад | Оглавление | Далее >

Итоги

В этой главе вы достаточно много узнали о создании полнофункционального графического движка и познакомились с набором новых графических классов. Большинство из них достаточно просты, но все они очень важны для последующих проектов этой книги.

Помимо многих, исследованных вами тестовых модулей, помогавших не отвлекаться от проблем, которые следовало решить для получения работающего графического движка, вы изучили процесс преобразования трехмерных данных в двухмерное пространство экрана и каким способом в XNA используются правосторонние матрицы. Для использования этих матриц в шейдерах, необходимых в XNA для визуализации чего угодно, вы быстро бросили взгляд на вершинные и пиксельные шейдеры, а более глубокое погружение в эту тему ожидает нас в следующей главе.

Если вы взглянете на новые классы (рис. 5.15) и обзор проекта (рис 5.13), то увидите, что у нас стало больше пространств имен, чем в предыдущих проектах, а некоторые классы переместились и были переработаны для соответствия новым потребностям. Это очень важно, поскольку переход от двухмерной графики к трехмерной не простой, и вы всегда можете улучшить работу классов и упростить тестовые модули. По мере того, как ваш движок будет становиться более и более сложным, еще более важно иметь надежный каркас со множеством тестовых модулей, к которым можно будет вернуться, если что-то пойдет не так. Без этого вы не сможете в конце книги написать тестовый модуль, визуализирующий сложную модель машины со множеством шейдеров, более чем 20 000 полигонами в сцене, с наложением теней, постэкранными эффектами, крутыми шейдерами для стекол и всего из нескольких строчек кода.

BaseGame теперь является главной точкой входа для приложения и все внутренние классы тем или иным образом присоединены к нему. BaseGame не только хранит экземпляры устройства или диспетчера содержимого, но также позволяет получать ширину и высоту области визуализации, все матрицы, необходимые для визуализации шейдеров, и объединяет множество других полезных возможностей в свойствах, которые, например, позволяют вам быстро включать и выключать альфа-смешивание.

В конце вы чуть больше узнали об использовании Xbox 360 для тестирования вашего графического движка и ловушках, которые могут подстерегать вас, если вы не начнете на ранних этапах разработки проверять работу игры на консоли. В следующей главе вы узнаете все о шейдерах, а в главе 7 реализуете эффект наложения нормалей и решите ряд проблем, которые могут возникать с моделями в XNA, тангенциальными данными и т.д. Затем, в главе 8, вы узнаете о мощных шейдерах постэкранной обраьотки, которые быстро придадут всей вашей игре совершенно иной вид, и, в качестве примера, посмотрите игру Rocket Commander, созданную для Xbox 360 с помощью XNA.


netlib.narod.ru< Назад | Оглавление | Далее >

Сайт управляется системой uCoz