Введение в программирование трехмерных игр с 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-файла.




- Начало -  - Назад -  - Вперед -