Составители:
Рубрика:
14
Рисунок1.5 - Представление
На рисунке 1.5 графически показаны параметры этой функции. В точке Р
находится камера и из этой точки мы смотрим на мир. Все, что ближе плоскости
ZN или дальше ZF, мы видеть не можем. Угол между двумя линиями взора,
направленными под углом вниз и вверх, — это и есть значение fovy.
Теперь необходимо установить созданную матрицу устройству
iDirect3DDevice. Для ЭТОГО используется метод SetTransform:
HRESULT SetTransform(
D3DTRANSFORMSTATETYPE State,
CONST D3DMATRIX *pMatrix
);
Теперь функцию инициализации можно считать завершенной. Для
освобождения интерфейсов Direct3D используется метод Release. Сначала
необходимо вызвать этот метод, а потом обнулить переменную. При этом
освобождение ресурсов должно идти в обратном созданию порядке. В нашем
приложении сначала был создан интерфейс iDirect3D9, а затем iDirect3DDevice9.
Это значит, что сначала нужно уничтожить iDirect3DDevice9, а потом уже
iDirect3D9. Перед вызовом Release необходимо проверить существование
интерфейса.
Примитивы Direct3D
В Direct3D есть три примитива — точка, отрезок и треугольник. Все
остальные примитивы можно построить с помощью этих трех составляющих. в
качестве примера начнем писать приложение, вращающее куб. Каждая сторона
его должна быть окрашена в свой цвет, чтобы вы могли увидеть, что это куб. Дело
в том, что у нас пока не будет освещения, без которого монолитно окрашенная
фигура будет казаться плоской. Разный цвет каждой грани позволит увидеть
объемность фигуры без освещения.
Листинг 1.3 - Функция инициализации куба
void CreateQuad()
{
// Массив вершин куба
const sVertex svVortexList[] = {
// Грань 1
Рисунок1.5 - Представление На рисунке 1.5 графически показаны параметры этой функции. В точке Р находится камера и из этой точки мы смотрим на мир. Все, что ближе плоскости ZN или дальше ZF, мы видеть не можем. Угол между двумя линиями взора, направленными под углом вниз и вверх, — это и есть значение fovy. Теперь необходимо установить созданную матрицу устройству iDirect3DDevice. Для ЭТОГО используется метод SetTransform: HRESULT SetTransform( D3DTRANSFORMSTATETYPE State, CONST D3DMATRIX *pMatrix ); Теперь функцию инициализации можно считать завершенной. Для освобождения интерфейсов Direct3D используется метод Release. Сначала необходимо вызвать этот метод, а потом обнулить переменную. При этом освобождение ресурсов должно идти в обратном созданию порядке. В нашем приложении сначала был создан интерфейс iDirect3D9, а затем iDirect3DDevice9. Это значит, что сначала нужно уничтожить iDirect3DDevice9, а потом уже iDirect3D9. Перед вызовом Release необходимо проверить существование интерфейса. Примитивы Direct3D В Direct3D есть три примитива — точка, отрезок и треугольник. Все остальные примитивы можно построить с помощью этих трех составляющих. в качестве примера начнем писать приложение, вращающее куб. Каждая сторона его должна быть окрашена в свой цвет, чтобы вы могли увидеть, что это куб. Дело в том, что у нас пока не будет освещения, без которого монолитно окрашенная фигура будет казаться плоской. Разный цвет каждой грани позволит увидеть объемность фигуры без освещения. Листинг 1.3 - Функция инициализации куба void CreateQuad() { // Массив вершин куба const sVertex svVortexList[] = { // Грань 1 14
Страницы
- « первая
- ‹ предыдущая
- …
- 10
- 11
- 12
- 13
- 14
- …
- следующая ›
- последняя »