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

       

Загрузка X-файлов



11.2.1. Загрузка X-файлов

Для загрузки содержащихся в X-файле данных сетки мы будем использовать показанную ниже функцию. Обратите внимание, что этот метод создает объект ID3DXMesh и загружает в него данные геометрии из X-файла.

HRESULT D3DXLoadMeshFromX( LPCSTR pFilename, DWORD Options, LPDIRECT3DDEVICE9 pDevice, LPD3DXBUFFER *ppAdjacency, LPD3DXBUFFER *ppMaterials, LPD3DXBUFFER* ppEffectInstances, PDWORD pNumMaterials, LPD3DXMESH *ppMesh );

pFilename — Имя загружаемого X-файла.

Options — Один или несколько флагов, определяющих параметры создаваемой сетки. Полный список флагов приведен в описании перечисления D3DXMESH в документации SDK. Наиболее часто используются следующие флаги:

D3DXMESH_32BIT — Сетка будет использовать 32-разрядные индексы.

D3DXMESH_MANAGED — Сетка будет размещена в управляемом пуле памяти.

D3DXMESH_WRITEONLY — Данные сетки будут только записываться и не будут читаться.

D3DXMESH_DYNAMIC — Буферы сетки будут динамическими.

pDevice — Связанное с сеткой устройство.

ppAdjacency — Возвращает буфер ID3DXBuffer, содержащий массив значений типа DWORD, хранящий информацию о смежности граней сетки.

ppMaterials — Возвращает буфер ID3DXBuffer, содержащий массив структур D3DXMATERIAL, хранящий данные о материалах сетки. Мы подробнее поговорим о материалах сетки в следующем разделе.

ppEffectInstances — Возвращает буфер ID3DXBuffer, содержащий массив структур D3DXEFFECTINSTANCE. Мы игнорируем этот параметр и всегда будем передавать в нем 0.

pNumMaterials — Возвращает количество используемых в сетке материалов (то есть количество элементов D3DXMATERIAL в массиве, возвращаемом через указатель ppMaterials).

ppMesh — Возвращает созданный объект ID3DXMesh, заполненный данными о геометрии из X-файла.



Содержание раздела