Открытый обмен игрового движка - Open Game Engine Exchange

OpenGEX
Структурная схема OpenGEX.png
Расширение имени файла
.ogex
Тип интернет-СМИ
модель / vnd.opengex
РазработанЭрик Ленгьел
изначальный выпуск21 декабря 2013 г.; 6 лет назад (2013-12-21)
Последний релиз
2.0
(29 января 2017 г.; 3 года назад (2017-01-29))
Тип формата3D компьютерная графика
Расширен сOpenDDL
Открытый формат ?да
Интернет сайтopengex.org

В Открытый обмен игрового движка (OpenGEX) - это текстовый формат файла, предназначенный для облегчения передачи сложных данных трехмерной сцены между приложениями, такими как инструменты моделирования и игровые движки. Формат OpenGEX построен на концепциях структуры данных, определенных Язык описания открытых данных (OpenDDL), общий язык для хранения произвольных данных в удобочитаемом формате. Формат файла OpenGEX зарегистрирован в Internet Assigned Numbers Authority (IANA) в качестве модель / vnd.opengex тип носителя.[1]

Формат OpenGEX определяется Спецификация обмена Open Game Engine,[2] который доступен на официальном сайте opengex.org.

Плагины экспорта, которые пишут формат OpenGEX, доступны для Autodesk Maya, 3D Studio Max, и Блендер.

Формат

На самом базовом уровне файл OpenGEX состоит из иерархии узлов, набора объектов, набора материалов и некоторой дополнительной информации о глобальных единицах измерения и ориентации оси. Различные структуры узлов, объектов и материалов содержат все детали, такие как геометрические данные и анимационные дорожки, в иерархии дополнительных типов структур, определенных OpenGEX. В файле OpenGEX могут отображаться следующие типы данных:

  • Иерархическая организация сцены (деревья узлов).
  • Преобразование узлов и объектов (матрицы 4 × 4, смещения, вращения и масштабы).
  • Объекты геометрии, световые объекты и объекты камеры.
  • Сетки, состоящие из массивов атрибутов вершин и массивов индексов для нескольких уровней детализации.
  • Сетки со скелетом (скелет, преобразования позы связывания, данные взвешивания влияния костей).
  • Множественные цели морфинга для сеток и анимированных весов морфинга.
  • Анимация по ключевым кадрам с линейными кривыми, кривыми Безье и TCB.
  • Цвета и текстуры материалов (диффузный, зеркальный, нормальный, эмиссионный, непрозрачность, прозрачность).

Пример

Очень простой пример полного файла OpenGEX, описывающего зеленый куб, показан в листинге ниже. Он начинается с группы Метрическая структуры, определяющие единицы измерения и глобальное направление вверх. За ними следует сингл GeometryNode структура, которая предоставляет имя и преобразование для куба. Геометрические данные для куба хранятся в GeometryObject структура, на которую ссылается геометрический узел. Структура геометрического объекта содержит единую сетку из треугольные примитивы это включает положения вершин, нормали и координаты текстуры. Наконец, Материал структура в конце файла содержит зеленый цвет диффузного отражения.

Метрика (key = "distance") {float {0.01}} Metric (key = "up") {string {"z"}} GeometryNode $ node1 {Name {string {"Cube"}} ObjectRef {ref {$ geometry1} } MaterialRef {ref {$ material1}} Transform {float [16] {{1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 50.0, 50.0, 0.0, 1.0}} }} GeometryObject $ geometry1 // Куб {Mesh (primitive = "triangles") {VertexArray (attrib = "position") {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 = "normal") {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 {unsigned_int32 [ 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 {Имя {string {"Green"}} Цвет (attrib = "diffuse") {float [3] {{0, 1, 0}}}}

История

Разработка формата OpenGEX финансировалась за счет краудсорсинговой кампании.[3] который закончился 8 мая 2013 года. Поскольку формат разрабатывался, Язык описания открытых данных также был создан как общий базовый язык, на котором был построен OpenGEX. Поддержка формата OpenGEX изначально была реализована в Двигатель C4 версия 3.5.

Рекомендации

  1. ^ «Типы носителей IANA, модель».
  2. ^ Ленгьел, Эрик (2017). Спецификация обмена Open Game Engine, версия 2.0. ООО «Терафон Софтвер». ISBN  978-0-9858117-9-2.
  3. ^ «Открытый формат обмена 3D-моделями и экспортеры популярного программного обеспечения».

внешняя ссылка