Расширение имени файла | .ogex |
---|---|
Тип интернет-СМИ | модель / vnd.opengex |
Разработан | Эрик Ленгьел |
изначальный выпуск | 21 декабря 2013 г . |
Последний релиз | 3.0 (2 февраля 2021 г . ) |
Тип формата | 3D компьютерная графика |
Расширен с | OpenDDL |
Открытый формат ? | да |
Интернет сайт | opengex |
Формат Open Game Engine Exchange ( OpenGEX ) - это текстовый формат файлов, предназначенный для облегчения передачи сложных данных 3D-сцены между приложениями, такими как инструменты моделирования и игровые движки. Формат OpenGEX построен на концепциях структуры данных, определенных языком описания открытых данных (OpenDDL), универсальным языком для хранения произвольных данных в удобочитаемом формате. Формат файла OpenGEX зарегистрирован в Internet Assigned Numbers Authority (IANA) в качестве model/vnd.opengex
типа носителя. [1]
Формат OpenGEX определяется спецификация Open Game Engine обмена , [2] , которая доступна на официальном сайте opengex.org .
Плагины экспорта, пишущие в формате OpenGEX, доступны для Autodesk Maya и 3D Studio Max .
Форматировать [ редактировать ]
На самом базовом уровне файл OpenGEX состоит из иерархии узлов, набора объектов, набора материалов и некоторой дополнительной информации о глобальных единицах измерения и ориентации оси. Различные структуры узлов, объектов и материалов содержат все детали, такие как геометрические данные и анимационные дорожки, в иерархии дополнительных типов структур, определенных OpenGEX. В файле OpenGEX могут отображаться следующие типы данных:
- Иерархическая организация сцены (деревья узлов).
- Преобразование узлов и объектов (матрицы 4 × 4, смещения, вращения и масштабы).
- Объекты геометрии, световые объекты и объекты камеры.
- Сетки, состоящие из массивов атрибутов вершин и массивов индексов для нескольких уровней детализации.
- Сетки со скелетом (скелет, преобразования позы связывания, данные взвешивания влияния костей).
- Множественные цели морфинга для сеток и анимированных весов морфинга.
- Анимация по ключевым кадрам с линейными кривыми, кривыми Безье и TCB.
- Цвета и текстуры материалов (диффузный, зеркальный, нормальный, эмиссионный, непрозрачность, прозрачность).
Пример [ править ]
Очень простой пример полного файла OpenGEX, описывающего зеленый куб, показан в листинге ниже. Он начинается с группы Metric
структур, которые определяют единицы измерения и общее направление вверх. За ними следует единственная GeometryNode
структура, которая предоставляет имя и преобразование для куба. Геометрические данные для куба хранятся в GeometryObject
структуре, на которую ссылается геометрический узел. Структура геометрического объекта содержит единую сетку из треугольных примитивов, которая включает положения вершин, нормали и координаты текстуры . Наконец, Material
структура в конце файла содержит зеленый цвет диффузного отражения.
Метрика (key = "distance") {float {0,01}}Метрика (key = "up") {строка {"z"}}GeometryNode $ node1{ Имя {строка {"Куб"}} ObjectRef {ref {$ geometry1}} MaterialRef {ref {$ material1}} Преобразовать { поплавок [12] { {1.0, 0.0, 0.0, 0,0, 1,0, 0,0, 0,0, 0,0, 1,0, 50.0, 50.0, 0.0} } }}GeometryObject $ geometry1 // Куб{ Сетка (примитив = "треугольники") { VertexArray (attrib = "позиция") { float [3] // 24 { {-50.0, -50.0, 0.0}, {-50.0, 50.0, 0.0}, {50.0, 50.0, 0.0}, {50.0, -50.0, 0.0}, {-50.0, -50.0, 100.0}, {50.0, -50.0, 100.0}, {50.0, 50.0, 100.0}, {-50.0, 50.0, 100.0}, {-50.0, -50.0, 0.0}, {50.0, -50.0, 0.0}, {50.0, -50.0, 100.0}, {-50.0, -50.0, 100.0}, {50.0, -50.0, 0.0}, {50.0, 50.0, 0.0}, {50.0, 50.0, 100.0}, {50.0, -50.0, 100.0}, {50.0, 50.0, 0.0}, {-50.0, 50.0, 0.0}, {-50.0, 50.0, 100.0}, {50.0, 50.0, 100.0}, {-50.0, 50.0, 0.0}, {-50.0, -50.0, 0.0}, {-50.0, -50.0, 100.0}, {-50.0, 50.0, 100.0} } } VertexArray (attrib = "нормальный") { float [3] // 24 { {0,0, 0,0, -1,0}, {0,0, 0,0, -1,0}, {0,0, 0,0, -1,0}, {0,0, 0,0, -1,0}, {0,0, 0,0, 1,0}, {0,0, 0,0, 1,0}, {0,0, 0,0, 1,0}, {0,0, 0,0, 1,0}, {0,0, -1,0, 0,0}, {0,0, -1,0, 0,0}, {0,0, -1,0, 0,0}, {0,0, -1,0, 0,0}, {1.0, 0.0, 0.0}, {1.0, 0.0, 0.0}, {1.0, 0.0, 0.0}, {1.0, 0.0, 0.0}, {0.0, 1.0, 0.0}, {0.0, 1.0, 0.0}, {0,0, 1,0, 0,0}, {0,0, 1,0, 0,0}, {-1,0, 0,0, 0,0}, {-1,0, 0,0, 0,0}, {-1,0, 0,0, 0,0}, {-1,0, 0,0, 0,0} } } VertexArray (attrib = "texcoord") { float [2] // 24 { {1.0, 0.0}, {1.0, 1.0}, {0.0, 1.0}, {0.0, 0.0}, {0.0, 0.0}, {1.0, 0.0}, {1.0, 1.0}, {0.0, 1.0}, {0.0, 0.0}, {1.0, 0.0}, {1.0, 1.0}, {0.0, 1.0}, {0.0, 0.0}, {1.0, 0.0}, {1.0, 1.0}, {0.0, 1.0}, {0.0, 0.0}, {1.0, 0.0}, {1.0, 1.0}, {0.0, 1.0}, {0.0, 0.0}, {1.0, 0.0}, {1.0, 1.0}, {0.0, 1.0} } } IndexArray { uint32 [3] // 12 { {0, 1, 2}, {2, 3, 0}, {4, 5, 6}, {6, 7, 4}, {8, 9, 10}, {10, 11, 8}, {12, 13, 14}, {14, 15, 12}, {16, 17, 18}, {18, 19, 16}, {20, 21, 22}, {22, 23, 20} } } }}Материал $ material1{ Имя {строка {"Зеленый"}} Цвет (attrib = "diffuse") {float [3] {{0, 1, 0}}}}
История [ править ]
Разработка формата OpenGEX финансировалась краудсорсинговой кампанией [3] , завершившейся 8 мая 2013 г. По мере разработки формата язык описания открытых данных также создавался как общий базовый язык, на котором был построен OpenGEX. . Поддержка формата OpenGEX изначально была реализована в C4 Engine версии 3.5.
Ссылки [ править ]
- ^ «Типы носителей IANA, модель» .
- ^ Ленджиел, Эрик (2021). Спецификация Open Game Engine Exchange, версия 3.0 . ООО «Терафон Софтвер». ISBN 978-0-9858117-8-5.
- ^ «Открытый формат обмена 3D-моделями и экспортеры популярного программного обеспечения» .