Results 1 to 4 of 4

Thread: OpenDDL/OpenGEX

  1. #1

    Default OpenDDL/OpenGEX

    I'm returning to the ClanLib forums after a bit of a project hiatus.

    I'm just wondering about if there are any plans to integrate support for OpenDDL/OpenGEX within ClanLib.

    I have a library implemented which is able to read OpenDDL files; https://github.com/dysfictional/openddl/

  2. #2
    ClanLib Developer
    Join Date
    May 2007
    Posts
    1,824

    Default

    As far as I know, it hasn't been discussed on IRC.

    These are my personal thoughts...

    About 3 or 4 years ago, I started creating clanCollada. The interchange file format for interactive 3D applications.

    I spent about 5 months coding it, before deciding that it just didn't belong to ClanLib. It only converted from Collada into a ClanLib structure, something better done using another library.

    During this time the assimp library was maturing at a fast rate. Within 30 minutes, I could strip out the entire clanCollada code, replacing it with assimp for use in the examples.

    I would treat OpenDDL the same. Maybe have an example that imports OpenDDL (using external library) for clanScene3D.

    The main ClanLib SDK source for Microsoft Windows currently does not require any external libraries.

    OpenDDL, Collada, 3DS, Lightwave ,X3D ... https://xkcd.com/927/

  3. #3
    ClanLib Developer
    Join Date
    Sep 2006
    Location
    Denmark
    Posts
    554

    Default

    3D format handling is a very difficult topic. The amount of attempted standardizations and ways to import and export really illustrates it.

    The key issue is that there are countless ways to store 3D data, each with their pros and cons. Added to that most engines need the data in a very specific way: material limitations, texture limitations, animation limitations, pre-calculated data (lights, normals, tangents, etc), culling information (sectors, element render ordering, level of details, imposters, etc), sorting requirements (limit cache misses and improve fill rate), attachment points, rendering hints, rag doll data and the collision representation. And that was just from the top of my head!

    Because of this virtually all 3D game engines uses an asset pipeline where tools import 3D mesh data and then the user adds the additional data and the pipeline performs additional calculations and outputs a format specifically made for the engine. ClanLib doesn't have its own format importer currently because which mesh data is of interest to the application varies based on what the final application will be. The closest thing we have of a standardization is the ModelData structure in the clanScene3D library, which represents the mesh structure used for rendering meshes supported by that library. But even here a game would ideally want to import this data from a pipeline tool because textures need to be mipmapped and possibly compressed - things you really do not want to at runtime. Likewise things such as animations rarely are acceptably defined when exported from popular tools. Autodesk 3ds Max for example only has one animation timeline and games tend to have more than one animation per mesh.

    Personally I am not using the assimp library because I found that library promised far more than it could deliver. Most of its importers had awful quality of the time I tested the library, its material system was awfully old-skool fixed-function in design. It also insists on using STL containers in a way barely compatible with Visual Studio. Basically I think it seems to aim more for quantity in supported formats than in quality. On the plus side the library did have some rather interesting mesh post-processing features.

    At the moment I'm using the Autodesk FBX library for my mesh importing. There is a FBX importer utility example in the ClanLib git repository showing how to use it to import from Autodesk 3D applications. Naturally if you aren't using Autodesk products this is not the solution you are looking for.

  4. #4

    Default

    The way I see it, OpenDDL is a data format much like JSON or XML which already have support in ClanLib, which how I see it slotting in alongside existing code.
    OpenGEX support would sit behind a convenient plugin for the IDE project.

Bookmarks

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •