Основы построения 3-х мерных сцен с использованием библиотеки DirectX. Макушкина Л.А - 14 стр.

UptoLike

16
hRes = pD3DDevice->CreateIndexBuffer(sizeof(short) * ildxNum,
D3DUSAGE_WRITEONLY, D3DFMT_INDEX16, D3DPOOL_DEFAULT, &iBuffer,
0);
if (FAILED(hRes)) return;
// Блокировка буфера индексов и заполнение
hRes = iBuffer->Lock(0, sizeof(short) * ildxNum, &pBuf, 0);
if (FAILED(hRes)) return;
memcpy(pBuf, Idxes, sizeof(short) * ildxNum);
iBuffer->Unlock();
}
sVertex - структура, которая описывает точку и состоит из трех
вещественных чисел координат точки и двойное целое число, описывающее
цвет точки:
struct sVertex {
float х, у, z; DWORD color;
} ;
После инициализации Direct3D, в качестве матрицы отображения
используется единичная матрица, при которой текущее положение камеры
находится в нулевой точке. В Direct3D эта матрица объявлена как d3dmatrix и
имеет следующий вид:
typedef struct _d3dmatrix { union {
struct {
float _11, _12, _13, _14;
float _21, _22, _23, _24;
float _31, _32, _33, _34;
float _41, _42, _43, _44;
};
float m[4][4];
};
} D3DMATRIX;
Числа
_
41, _42, _43 - координаты X, Y, Z камеры соответственно. Для
применения изменений необходимо вызвать функцию:
pD3DDevice->SetTransform (D3DTS_VIEW, &View);
Задание:
Создать трёхмерную сцену. Задать способ проецирования. Задать различные
режимы воспроизведения полигонов (точками, линиями, сплошное заполнение).
Вариант
Графический объект Режим
воспроизведения
Способ
проецирования
1 Конус точками параллельная
2 Цилиндр точками перспективная
3 Пирамида линиями параллельная
4 Усеченный конус линиями перспективная
5 Призма сплошное параллельная
6 Параллелепипед сплошное перспективная
hRes = pD3DDevice->CreateIndexBuffer(sizeof(short) * ildxNum,
    D3DUSAGE_WRITEONLY, D3DFMT_INDEX16, D3DPOOL_DEFAULT, &iBuffer,
    0);
if (FAILED(hRes)) return;
// Блокировка буфера индексов и заполнение
hRes = iBuffer->Lock(0, sizeof(short) * ildxNum, &pBuf, 0);
if (FAILED(hRes)) return;
memcpy(pBuf, Idxes, sizeof(short) * ildxNum);
iBuffer->Unlock();
}
     sVertex - структура, которая описывает точку и состоит из трех
вещественных чисел — координат точки и двойное целое число, описывающее
цвет точки:
struct sVertex {
float х, у, z; DWORD color;
} ;
    После инициализации Direct3D, в качестве матрицы отображения
используется единичная матрица, при которой текущее положение камеры
находится в нулевой точке. В Direct3D эта матрица объявлена как d3dmatrix и
имеет следующий вид:
typedef struct _d3dmatrix { union {
struct {
    float   _11, _12, _13, _14;
    float   _21, _22, _23, _24;
    float   _31, _32, _33, _34;
    float   _41, _42, _43, _44;
    };
  float m[4][4];
  };
} D3DMATRIX;
    Числа _41, _42, _43 - координаты X, Y, Z камеры соответственно. Для
применения изменений необходимо вызвать функцию:
pD3DDevice->SetTransform (D3DTS_VIEW, &View);

Задание:
    Создать трёхмерную сцену. Задать способ проецирования. Задать различные
режимы воспроизведения полигонов (точками, линиями, сплошное заполнение).

Вариант Графический объект              Режим             Способ
                                        воспроизведения   проецирования
1        Конус                          точками           параллельная
2        Цилиндр                        точками           перспективная
3        Пирамида                       линиями           параллельная
4        Усеченный конус                линиями           перспективная
5        Призма                         сплошное          параллельная
6        Параллелепипед                 сплошное          перспективная

                                       16