ПРОГРАММИРОВАНИЕ! СОЗДАНИЕ САЙТОВ И ИХ ОПТИМИЗАЦИЯ
Главная » Статьи » Программирование » Visual C++ |
Direct3dX - Использование матриц Если вы следовали моим урокам, то вы, наверное, уже можете нарисовать треугольник. Это здорово, но мало. Теперь вы можете научиться его, например, вращать. Для этого в Direct3d существует такая штука, называемая матрицей. Когда я первый раз услышал это слово, оно ничего мне не говорило, но через некоторое время я даже научился использовать их. И вы можете научиться. Итак, в Direct3d существуют 3 основные матрицы: видовая (View), мировая (World) и проекционная (Projection). Начнем с первой. Видовая матрица характеризует положение камеры в пространстве. Вторая – положение объекта в пространстве. Третья – угол обзора и дальность прорисовки (лучше ее задать один раз и больше не менять). Для работы с матрицами существует несколько функций: D3DXMATRIX mat1, mat2, matres; //создание 3-х матриц Перемножение – одна из основных функций. При ее использовании получившаяся матрица получается как бы комбинацие двух других. Т.е. если одна матрица была повернута, а другая – подвинута, то получившаяся матрица будет и повернута, и передвинута. Это – основные функции, больше вам пока не надо. Теперь можно применить эти знания к, например, видовой матрице. Для этого найдите функцию Render и добавьте туда этот код (можно в самое начало, но не после рисования полигонов): D3DXMATRIX matres; Вот мы и задали видовую матрицу. Аналогично задается мировая матрица (только пишется D3DTS_WORLD). С проэкционной все немного сложнее: D3DXMATRIX matres; Это – наиболее стандартный способ задания проекционной матрицы. D3DX_PI/4 – угол обзора, 100.0f – дальность прорисовки. Теперь, когда вы можете использовать матрицы, созданим простенький пример. Вот вид функции Render() (создайте глобальную переменную count): Render() D3DXMATRIX mat; // рисование примитивов g_pd3dDevice->EndScene(); Этот вариант функции Render будет вращфть камеру вокруг оси X. Вот и все. | |
Просмотров: 552 | Рейтинг: 0.0/0 |
Всего комментариев: 0 | |