После того как вы познакомились с шаблонами и объектами данных, пришло время рассмотреть, как можно использовать их в своих проектах. Если вы уже знакомы с DirectX SDK, то заметили, что .X файлы широко используются для хранения информации о меше. Поэтому Microsoft снабдила DirectX некоторым количеством шаблонов, которые я называю: стандартные шаблоны DirectX. Эти шаблоны используются для хранения информации, связанной с мешами.
Стандартные шаблоны полезны, т. к. они определяют почти все аспекты трехмерных мешей, так что уделите немного времени на их изучение. Я не буду очень подробно останавливаться на их описании, потому что DirectX SDK содержит множество информации о них, но я приведу краткий обзор каждого шаблона.
Стандартные шаблоны, приведенные в таблице 3.2, имеют соответствующий макрос, который вы применяете для определения используемого в вашей программе объекта данных. Эти макросы определены (используя DEFINE_GUID) в специальном файле - " nnxfguidh ". Макросы GUID стандартных шаблонов очень легко запомнить, т. к. они просто имеют префикс перед своим именем - "D3DRMTID". Например, шаблон "Animation" определяется, используя макрос "D3DRM_TIDAnimation".
Таблица 3.2. Стандартные шаблоны DirectX
|
Имя шаблона |
Описание |
|
Animation |
Определяет данные анимации для одного кадра |
|
AnimationKey |
Определяет один ключевой кадр для родительского анимационного шаблона |
|
AnimationOptions |
Содержит информацию о проигрывании анимации |
|
AnimationSet |
Содержит набор шаблонов анимации |
|
Boolean |
Содержит логическое значение |
|
Boolean2d |
Содержит два логических значения |
|
ColorRGB |
Содержит красную, зеленую и синюю компоненты цвета |
|
ColorRGBA |
Содержит красную, зеленую и синюю компоненты и значение |
|
прозрачности цвета |
|
|
Coords2d |
Определяет два значения координат |
|
FloatKeys |
Содержит массив вещественных значений |
|
FrameTransformMatrix |
Содержит матрицу преобразования для родительского шаблона "Frame" |
|
Frame |
Шаблон кадра ссылок, который определяет иерархию |
|
Header |
Заголовок .X файла определяющий версию |
|
IndexedColor |
Содержит индексированные значения цвета |
|
Material |
Содержит значения цветов материала |
|
Matrix4x4 |
Содержит матрицу 4x4 |
|
Mesh |
Содержит данные одного меша |
|
MeshFace |
Содержит данные граней меша |
|
MeshFaceWraps |
Содержит наложение текстур для граней меша |
Таблица 3.2. Стандартные шаблоны DirectX
|
Имя шаблона |
Описание |
|
MeshMaterialList |
Содержит список материалов меша |
|
MeshNormals |
Содержит нормали, используемые мешем |
|
MeshTextureCoords |
Содержит текстурные координаты, используемые мешем |
|
MeshVertexColors |
Содержит информацию о цвете вершин меша |
|
Patch |
Определяет управляющую сетку |
|
PatchMesh |
Содержит сеточный меш (совсем как шаблон "Mesh") |
|
Quaternion |
Содержит значение кватерниона |
|
SkinWeights |
Содержит массив весов, накладываемых на вершины меша. |
|
Используется для скелетных мешей |
|
|
TextureFilename |
Содержит имя текстуры, используемой в материале |
|
TimedFloatKeys |
Содержит массив шаблонов "FloatKeys" |
|
Vector |
Содержит координаты трехмерной точки |
|
VertexDuplicationIndices |
Сообщает, что вы хотите скопировать вершины из других вершин |
|
XskinMeshHeader |
Используется скелетным мешем для определения количества костей |
Вы видите, что стандартных шаблонов много - слишком много, чтобы обсуждать их в этой книге. К счастью, вы обнаружите, что вам придется иметь дело с небольшим количеством стандартных шаблонов при анализировании .X файлов. Вы поймете о каких шаблонах я говорю, когда дочитаете книгу. А теперь, давайте продолжим, рассмотрев, как получить доступ к .X файлам в ваших проектах.
⇐Вставка объектов данных и ограничения шаблонов || Оглавление || Доступ к .X файлам⇒