Введение в программирование трехмерных игр с DX9



         

Данные геометрии и содержимое - часть 2


Для доступа к таблице атрибутов сетки используется следующий метод:

HRESULT ID3DXMesh::GetAttributeTable( D3DXATTRIBUTERANGE* pAttribTable, DWORD* pAttribTableSize );

Данный метод делает две веши: возвращает количество атрибутов в таблице атрибутов и заполняет массив структур D3DXATTRIBUTERANGE данными атрибутов.

Чтобы получить количество элементов в таблице атрибутов, мы передаем в первом аргументе 0:

DWORD numSubsets = 0; Mesh->GetAttributeTable(0, &numSubsets);

После того, как нам стало известно количество элементов, мы можем заполнить массив значений D3DXATTRIBUTERANGE данными из таблицы атрибутов с помощью следующего кода:

D3DXATTRIBUTERANGE table = new D3DXATTRIBUTERANGE [numSubsets]; Mesh->GetAttributeTable(table, &numSubsets);

Мы можем явно инициализировать таблицу атрибутов с помощью метода ID3DXMesh::SetAttributeTable. В приведенном ниже фрагменте выполняется инициализация таблицы атрибутов для 12 подгрупп:

D3DXATTRIBUTERANGE attributeTable[12];

// ...заполняем массив attributeTable данными

Mesh->SetAttributeTable(attributeTable, 12);




Содержание  Назад  Вперед