Open Game Engine Exchange

OpenGEX

Filename extension| `.ogex`
Internet media type| `model/vnd.opengex`
Developed by| Eric Lengyel
Initial release| 21 December 2013; 12 years ago (2013-12-21)
Latest release|

3.0
(2 February 2021; 5 years ago (2021-02-02))

Type of format| 3D computer graphics
Extended from| OpenDDL
Website| opengex.org

The Open Game Engine Exchange (OpenGEX) is a format that aids the application-agnostic transferring of complex scene data between 3D graphics apps including game engines and 3D modelling apps. It uses Open Data Description Language for data storage, a method for arbitrary data storage that maintains human readability. The OpenGEX file format is registered with the Internet Assigned Numbers Authority (IANA) as the `model/vnd.opengex` media type.[1]

The OpenGEX format is defined by the Open Game Engine Exchange Specification,[2] which is available on the official website opengex.org.

Export plugins that write the OpenGEX format are available for Autodesk Maya and 3D Studio Max, with an unofficial plugin available for Blender.

## Contents

* 1 Format
* 2 Example
* 3 History
* 4 See also
* 5 References
* 6 External links

## Format

At the most basic level, an OpenGEX file consists of a node hierarchy, a set of objects, a set of materials, and some additional information about global units and axis orientation. The various node, object, and material structures contain all of the details such as geometric data and animation tracks within a hierarchy of additional types of structures defined by OpenGEX. The following types of data can appear in an OpenGEX file:

* Hierarchical scene organization (node trees).
* Node and object transforms (4×4 matrices, translations, rotations, and scales).
* Geometry objects, light objects, and camera objects.
* Meshes composed of vertex attribute arrays and index arrays for multiple levels of detail.
* Skinned meshes (skeleton, bind-pose transforms, bone influence weighting data).
* Multiple morph targets for meshes and animated morph weights.
* Keyframe animation with linear, Bézier, and TCB animation curves.
* Material colors and textures (diffuse, specular, normal, emission, opacity, transparency).

## Example

A very simple example of a complete OpenGEX file describing a green cube is shown in the listing below. It begins with a group of `Metric` structures that define the units of measurement and the global up direction. Those are followed by a single `GeometryNode` structure that provides the name and transform for the cube. The geometric data for the cube is stored in the `GeometryObject` structure that is referenced by the geometry node. The geometry object structure contains a single mesh of triangle primitives that includes per-vertex positions, normals, and texture coordinates. Finally, the `Material` structure at the end of the file contains the green diffuse reflection color.

Metric (key = "distance") {float {0.01}}
Metric (key = "up") {string {"z"}}

GeometryNode $node1

Name {string {"Cube"}}
ObjectRef {ref {$geometry1}}
MaterialRef {ref {$material1}}

Transform

float[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        // Cube

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

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}

Material $material1

Name {string {"Green"}}

Color (attrib = "diffuse") {float[3] {{0, 1, 0}}}

## History

The development of the OpenGEX format was funded by a crowd-sourcing campaign[3] that ended on May 8, 2013. As the format was being designed, the Open Data Description Language was also created as a generic base language upon which OpenGEX was built. Support for the OpenGEX format was originally implemented in C4 Engine version 3.5.

## See also

* glTF \- a Khronos Group file format for 3D Scenes and models.

## References

1. ↑ "IANA Media Types, Model". https://www.iana.org/assignments/media-types/media-types.xhtml#model.
2. ↑ Lengyel, Eric (2021). Open Game Engine Exchange Specification, Version 3.0. Terathon Software LLC. ISBN 978-0-9858117-8-5.
3. ↑ "Open 3D Model Exchange Format and Exporters for Popular Software". http://www.indiegogo.com/projects/open-3d-model-exchange-format-and-exporters-for-popular-software/x/3105524.

## External links

* v
* t
* e

Vector graphics markup languages and file formats

By type|

| 2D|

* Asymptote
* CGM
* DrawingML
* Graphics Layout Engine
* GeoGebra
* HVIF
* MetaPost
* PGF/TikZ
* PGML
* PSTricks
* Remote Imaging Protocol
* SVG
* SWF
* VML
* WMF
* EMF
* XAML
* Xar

|

3D|

* 3DMLW
* 3DXML
* Asymptote
* COLLADA
* DWF
* GeoGebra
* IGES
* JT
* OpenGEX
* PRC
* STEP
* STL
* U3D
* VRML
* X3D
* XAML
* XVL
* xVRML

See also|

* Web3D
* Web3D Consortium
* Linden Scripting Language
* Scene description language

0.00

(0 votes)

Original source: https://en.wikipedia.org/wiki/Open Game Engine Exchange. Read more

|

Retrieved from "https://handwiki.org/wiki/index.php?title=Open_Game_Engine_Exchange&oldid=203472"
*[v]: View this template
*[t]: Discuss this template
*[e]: Edit this template