netlib.narod.ru | < Назад | Оглавление | Далее > |
В этой главе вы узнали все о постэкранных шейдерах и на этом разработка вашего графического движка пока завершена. Графические эффекты прекрасны и могут доставить много удовольствия при экспериментировании с ними, но эта книга посвящена разработке игр, где работа с графикой является только частью целого. В следующей части книги мы больше сосредоточимся на других аспектах, таких как звук, ввод и общий игровой движок. Часть этого кода уже использовалась в предыдущих играх и особенно в игре Rocket Commander, где применяется звук, расширенные классы ввода и есть много игровой логики.
Вот обзор некоторых вещей, для которых могут применяться постэкранные шейдеры:
Наложение небесного куба (ладно, это предэкранный шейдер, но он работает аналогичным образом).
Визуализация текстуры поверх сцены (наложение со смешиванием).
Инвертирование карты сцены (это легко, просто используйте 1 - color).
Превращение карты сцены в черно-белую с помощью функции Luminance.
Добавление эффекта к краям экрана; в этом случае края экрана затемняются, чтобы создать иллюзию телевизионного экрана.
Техники засветки и повышение их быстродействия с помощью понижения разрешения.
Имитация HDR с использованием дополнительного альфа-канала в шейдере засветки. В качестве альтернативы вы можете попробовать использовать цели визуализации, поддерживающие больше 8 бит на канал и позволяющие сохранить HDR-цвета в карте сцены, которая потом будет использоваться для настоящих HDR-эффектов.
Обнаружение граней (ладно, это была ваша часть).
Эффекты меню, шумовые текстуры в шейдерах, эффекты полутонов и т.д.
Цветокоррекция, включая изменение яркости, настройку контрастности и добавление цветов, чтобы влиять на общий вид сцены. С постэкранным шейдером цветокоррекции можно также реализовать эффект сепии.
Размытие движущихся объектов, либо попиксельное, либо для всего экрана. Также обсуждался дополнительный трюк для улучшения итогового результата, заключающийся в визуализации на экране решетки 10 × 10, вместо одного экранного квадрата.
И много других шейдеров.
Надеюсь, вы нашли последние главы полезными и смогли за короткое время создать свой графический движок XNA, благодаря множеству примеров, которые я приводил в каждой главе. В этой главе вы смогли протестировать много постэкранных шейдеров с исходным кодом XnaGraphicsEngine, который теперь стал весьма большим и мощным движком, позволяющим вам работать с шейдерами, трехмерной геометрией, спрайтами, постэкранными шейдерами и многими другими вещами не заботясь о деталях реализации, поскольку все это обрабатывается за вас движком.
Использование многопоточного решения обеспечило замечательные результаты производительности Rocket Commander XNA, но программировать многопоточные приложения сложнее.
Сейчас легко положиться на графический движок и прекратить писать тестовые модули, но не поступайте так. Это аукнется вам позже, когда вы попытаетесь выяснить почему меню X не работает так, как должно, или почему модуль Y выполняет совсем не то, что предполагалось. С тестовым модулем меню вы можете быстро найти, что сделано неправильно, а тестовые модули для игровых блоков, скорее всего, позволят провести проверку и отладку гораздо быстрее, чем прохождение целой игры, настройка всего и ожидание появления ошибки.
В последней части книги мы обсудим больше графических эффектов, физику и гоночную игру, а сейчас перейдем к части III, где вы также увидите еще одну замечательную игру (скажите привет моей маленькой стрелялке) и немного углубитесь в детали звукового сопровождения, ввода и классов игровой логики.
netlib.narod.ru | < Назад | Оглавление | Далее > |