Предыдущая Следующая
static float aspectRatio;
static float FOV = MathHelper.PiOver4;
static float nearClip = 1.0f;
static float farClip = 1000.0f;
Рисуем модель на экране телевизора 289
Рис. 17.4. Страница компании Autodesk
Все четыре переменные принимают участие в матричных расчетах, и это часть давно отлаженного механизма, передающегося по наследству от старых версий DirectX. Первая переменная aspectRatio в исходном коде представляет так называемый коэффициент сжатия, на базе которого ведется расчет перспективы модели для правильного соотношения геометрических размеров в пространстве.
Следующая переменная FOV призвана определять поле зрения. Здесь типичное значение равно MathHelper.PiOver4. Две оставшиеся переменные nearClip и farClip позволяют задать соответственно переднюю и заднюю области отсечения и участвуют в проекционных расчетах.
Затем в исходном коде у нас следует объявление объекта model класса Model, который будет представлять мячик в игре.
private Model model;
private Vector3 positionModel
Переменная ров1Ь1опМоОе1 необходима для выбора позиции модели на экране. В методе 1пз_г,1а11ге() мы задаем позицию модели в пространстве нулевыми значениями.
positionModel = new Vector3(0, 0, 0);
290 Загружаем в игру модель
Нулевые значения для позиции модели при нахождении камеры в центре экрана устанавливают модель четко в центр экрана. Помните, в главе 15 мы говорили о преобразовании системы координат модели в свою локальную, или объектную, систему координат. Так вот, используя в исходном коде три ранее созданные матрицы (мировую, видовую и проекционную), мы создадим для объекта свою локальную систему координат.
После этих действий все свои установки объектов на позиции в трехмерном мире вам придется вести относительно локальной системы координат объекта и позиции камеры (о которой мы поговорим позже в этой главе). Если камера стоит в центре экрана (X = 0 и У = 0, по оси Ъ камера либо приближается, либо удаляется от центра экрана) и у объекта нулевые координаты, то местоположение объекта всегда будет точно в центре телевизора (рис. 17.5).
Переходим в тело метода 1пз_г,1а11ге(). Здесь появляется новая запись, инициализирующая переменную аэресЬЯаЫо значением, равным делению половины ширины экрана на половину высоты экрана.
азреоГИаПо = (f1oat)screenWidth / (г1оаг-)зсгеепНе1дг1Г-;
Переходим к методу LoadGraphicsContent(). Строка кода по загрузке модели из рабочего каталога программы выглядит следующим образом: Предыдущая Следующая
|