Jump to content
 







Main menu
   


Navigation  



Main page
Contents
Current events
Random article
About Wikipedia
Contact us
Donate
 




Contribute  



Help
Learn to edit
Community portal
Recent changes
Upload file
 








Search  

































Create account

Log in
 









Create account
 Log in
 




Pages for logged out editors learn more  



Contributions
Talk
 



















Contents

   



(Top)
 


1 Format  





2 Example  





3 History  





4 See also  





5 References  





6 External links  














Open Game Engine Exchange







Add links
 









Article
Talk
 

















Read
Edit
View history
 








Tools
   


Actions  



Read
Edit
View history
 




General  



What links here
Related changes
Upload file
Special pages
Permanent link
Page information
Cite this page
Get shortened URL
Download QR code
Wikidata item
 




Print/export  



Download as PDF
Printable version
 
















Appearance
   

 






From Wikipedia, the free encyclopedia
 


OpenGEX
Filename extension
.ogex
Internet media type
model/vnd.opengex
Developed byEric Lengyel
Initial release21 December 2013; 10 years ago (2013-12-21)
Latest release

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

Type of format3D computer graphics
Extended fromOpenDDL
Open format?Yes
Websiteopengex.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.

Format[edit]

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:

Example[edit]

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[edit]

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[edit]

References[edit]

  1. ^ "IANA Media Types, Model".
  • ^ Lengyel, Eric (2021). Open Game Engine Exchange Specification, Version 3.0. Terathon Software LLC. ISBN 978-0-9858117-8-5.
  • ^ "Open 3D Model Exchange Format and Exporters for Popular Software".
  • External links[edit]


    Retrieved from "https://en.wikipedia.org/w/index.php?title=Open_Game_Engine_Exchange&oldid=1207700172"

    Categories: 
    3D graphics file formats
    3D graphics software
    Graphics standards
    Open formats
    Hidden category: 
    Official website not in Wikidata
     



    This page was last edited on 15 February 2024, at 13:32 (UTC).

    Text is available under the Creative Commons Attribution-ShareAlike License 4.0; additional terms may apply. By using this site, you agree to the Terms of Use and Privacy Policy. Wikipedia® is a registered trademark of the Wikimedia Foundation, Inc., a non-profit organization.



    Privacy policy

    About Wikipedia

    Disclaimers

    Contact Wikipedia

    Code of Conduct

    Developers

    Statistics

    Cookie statement

    Mobile view



    Wikimedia Foundation
    Powered by MediaWiki