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

Свет, камера... эффект!

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

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

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

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

effect.Begin();
foreach(EffectPass CurrentPass in effect.CurrentTechnique.Passes)
{
    CurrentPass.Begin();

    // Здесь помещаем код для рисования сцены
    // с использованием данного эффекта

    CurrentPass.End();
}
effect.End();

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

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

BasicEffect простой, но все равно остается вариантом Effect, и вы должны использовать показанный выше код в каждой создаваемой программе. Однако, вам не надо беспокоиться о том, какие типы техник может использовать программа, или какие проходы может содержать каждая из этих техник — вы просто будете использовать этот код как шаблон проекта, поскольку сейчас важно понять, какие удобства может обеспечить BasicEffect через свои свойства. Если вы хотите подробнее разобраться с эффектами, обратитесь к разделу «How to: Create and Apply Custom Effects» в справочной системе XNA Game Studio.


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

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