Что такое формат файла MESH?
.mesh - это формат файлов, связанный с бинарным контейнером SDKMESH из состава DirectX SDK. Каждый файл .mesh содержит трехмерную геометрическую модель, используемую для рендеринга объектов в демонстрационных приложениях DirectX, учебных пособиях и играх, поддерживающих технологию DirectX.
SDKMESH хранит вершинные буферы (vertex buffers), индексные буферы (index buffers), подмножества мешей, иерархию кадров (костей) для скелетной анимации и определения материалов, включающие пути к файлам текстур. Формат существует в двух версиях: v1 использует традиционные диффузные/зеркальные материалы (образцы эпохи DirectX 9, 10 и 11), а v2 добавляет поддержку материалов PBR (Physically Based Rendering) для DirectX 11 и 12.
DirectX - это технология Microsoft для разработки приложений в системах Windows и на игровых консолях Xbox. Ее основное назначение - рендеринг графики в играх и программном обеспечении. DirectX 12 является текущей версией. SDKMESH был представлен примерно в 2008 году как преемник устаревшего формата .x для примеров кода SDK и до сих пор используется в руководствах по DirectX 12.
SDKMESH - это инструмент для разработчиков и демонстраций, он не предназначен для финальной дистрибуции игр. В современных проектах для обмена ресурсами используются glTF или FBX; инструмент ContentExporter преобразует FBX в SDKMESH для использования в примерах SDK. Обратите внимание, что расширение .mesh также используется несвязанными движками, такими как Ogre3D и Godot, с совершенно иными бинарными структурами.
Безопасность и защита
РИСК: LOWФайлы SDKMESH представляют собой чистые 3D-данные без исполняемого содержимого. Риск очень низок. Как и в случае с любым файлом, расширение которого (.mesh) используется многими программами, проверяйте источник перед открытием неизвестных файлов .mesh в инструментах игровых движков.
Детали формата
в двух словах- Файл меша Ogre3D - Игровой движок Ogre3D использует расширение .mesh для собственного бинарного формата 3D-мешей (магические байты: заголовок «MESH» или заголовок сериализатора Ogre); не связан с DirectX SDK.
- Ресурс меша Godot (устаревший) - Старые версии Godot Engine использовали .mesh для бинарных ресурсов мешей; текущий Godot использует .res/.tres.
- Универсальный 3D-меш (различные инструменты) - Многие 3D-инструменты (пользовательские экспортеры, игровые движки) используют .mesh как общее расширение для бинарных или XML-данных мешей без единого стандарта.
Программы, открывающие файлы MESH
Технические подробности
глубокая спецификация| Полное название формата | SDKMESH - бинарный формат DirectX SDK Sample Mesh |
| Поле версии в заголовке | Поле `uint32_t` Version: `101` = SDKMESH v1 (устаревшие материалы); `200` = SDKMESH v2 (PBR-материалы) |
| Порядок байтов | Little-endian (флаг IsBigEndian присутствует в заголовке для явного объявления) |
| Структура контейнера | Двухчастная бинарная структура: (1) секция статических данных - заголовок, дескрипторы вершинных/индексных буферов, записи мешей, материалы; (2) секция данных буфера - необработанные массивы вершин и индексов |
| Типы данных индексов | 16-битные или 32-битные целые числа без знака (согласно объявлению индексного буфера) |
| Модель материалов v1 | Традиционная диффузная/зеркальная - использовалась в примерах DirectX 9, 10 и 11 SDK |
| Модель материалов v2 | PBR (Physically Based Rendering) - карты альбедо, шероховатости, металличности; используется в примерах DirectX 11/12 Tool Kit |
| Поддержка иерархии костей | Записи кадров (frames) с отношениями «родитель-потомок» для скелетной анимации |
| Типичный размер | от 50 КБ до 50 МБ в зависимости от количества полигонов и ссылок на текстуры |
| Связанная ОС | Windows, Xbox (консоли на базе DirectX) |
| Инструмент создания | `ContentExporter` (microsoft/content-exporter на GitHub) - конвертирует FBX в SDKMESH |
| API для загрузки | Загрузчик DXUT `CDXUTSDKMesh`; класс `Model` в DirectX Tool Kit (`DirectXTK`) |
| Конфликты расширений | `.mesh` также используется Ogre3D, Godot и другими движками с совершенно разными бинарными форматами |
| Выпущен | circa 2008 (Direct3D 10 SDK samples; replacement for legacy .x format) |
| Последняя версия | SDKMESH v2 (introduced with DirectX Tool Kit DX11/DX12 for PBR materials) |
| Спецификация | github.com |
Конвертации MESH
Вопросы и ответы сообщества
спрошено пользователямиВопросов пока нет - станьте первым, кто спросит о файлах MESH.