No announcement yet.

Case study: model format

  • Filter
  • Time
  • Show
Clear All
new posts

  • Case study: model format

    First of all, I'm an artist, not a coder, so possible I simply annoy competent people with my humble opinions. In such a pity case I hereby give my apologizes.
    We still need some format for 3D models of units. It was said what StP will employ true 3D graphics, and it is Good Thing as we live in 3D world and think in 3D terms. I found several prerequestives for such a formats, namely following ones:
    1) It must be either open or at least supported by open source programs as export option
    2) It may be extensible, as we could add some features in the future
    3) It would be easy to parse (at least by computers )
    4) It must support explicit uv texture mapping
    5) It must be reasonable compact
    6) It have to be 3D mesh oriented rather than scene description, freeform surface etc.
    While first option may seems questionable, I belibe it's right, as open source programs can't thrive on commertial stuff. Label me open source purist and zealot, but I think so.
    Here is a list of 3D formats I think deserves mention:

    3DS, ASC 3D Studio data format. Once upon a time, 3D studio consisted from several different programs, like Shaper, Lofter, Keyframer and so on. 3DS was designed to store various sorts of thing in one scene while distinct tool were able to save their own files (Shaper .shp if I correctly remember and so on). Now it's widespread interchange format for 3D mesh data, for historical reasons.
    Status: widespread in 3D computing as mesh interchange, development frozen
    Origin: commercial, officaly not documented (?)
    Format: chunked binary (unit16 tags), little endian, easy to parse; most chunks are obsolete as they were meant to store original 3D Studio stuff, we have to bother with 0x3d3d top-level chunk. There is also plain text (ASCII) .asc
    Contents: 3D triangle mesh, no quads, rudimentary surfaces
    Texturing: it depends, but in general, it's silly.
    Usage: it's relatively easy to read/write and here is opensource library for loading

    AC AC3D is shareware 3D editor. IMHO, it ist neither dramaticaly good nor horrible; usable interface, some interesting modeling features, even more vital features are still missing
    Status: lurks around, some usage was found in opensource projects, still alive
    Origin: commercial, shareware, documented
    Format: plain text
    Contents: some degenerate subtype of scene graph with parent/kid scheme, materials section + objects section, polygon mesh
    Texturing: silly, but may be viewed as existing
    Usage: possible easy

    BLEND Blender scene file. Not a long ago, Blender was evil commercialware and Nature punished its owners for such a ignorance so they bunkrupt. Then they become more enlightned and opened it (but only after community donation of $100,000 BTW) so Blender is open source once and for all (GPL plus BSD). Blender is one of the best mesh editors I know while its UI is _very_ special and discouraging for unexperienced user. In fact, blender has its own "game" engine inside along with workshop for creating event-driven VR worlds so .blend files have way too much unneeded features.
    Status: reincarnated and about to improve
    Origin: freed commercial
    Contents: lots of things, without much of documentation but with source code
    Usage: hard, I think

    DXF AutoCAD Drawing Interchange, exchange format used for many CAD/CAM applications, it may in fact store some mesh defenition
    Status: in use
    Origin: commercial, used for some open source CAD applications, some modelers may export it
    Format: plain text
    Contents: lots of drawing-related things, including layers, line styles etc. Heavy block structure with somewhat chaotic syntax.
    Texturing: no way, AFAIK
    Usage: Ugh!

    IV Inventor / Open Inventor scene graph. It's almost internal format for SGI own C++ scene graph toolkit, possible useles without Inventor itself but of course it may be used alone, with some pain.
    Status: still alive, but not much
    Origin: commercial, almost open source later
    Format: plain text or binary
    Contents: full-blown scene graph with various nodes. Wonder if we can use half of them.
    Usage: hard away from Inventor itself but possible may be imported to other scene graph toolkits.

    LWO LightWave is one of best commercial 3D workshops I know of, it has simply best mesh modeler out there with lots of useful features, wow! But it's way too expensive...
    Status: widespread in professional 3D modeling world and some games, Independance War for example. Healthy.
    Origin: commercial, do't know about open source tools saving that files (HELP!), documented
    Format: .IFF chunked binary, big-endian, word boundary pad, uint32 tags
    Contents: lots of. Point data (vectors) is mapped into vertices then vertex data mapped to polygons. Also include bones, subdiv surfaces, metaballs and some other things along with keyframing, surface and envelope data. Arbitary type mesh (from 0 - sided polygons to infinity).
    Texturing: good, really good
    Usage: not hard indeed, just keep track of all these chunk types

    MDL, MD2, MD3 Quake engines and friends. Supports mesh data, skins and comprehansive animation, this models are almost ultimate choice for any person looking for character models.
    Status: legendary
    Origin: commercial, but ID seems to throw away and GLPize obsolete code, so old engines are in fact free
    Format: binary, of course
    Contents: lots of stuff, including mesh data, animation sequences, skinning...
    Texturing: exists, and even good
    Usage: hard, but most of BSP game engines managed to read it somehow and its code may be stolen.

    OBJ, MOD Very old object format used by Wavefront, it was dislodged from its original birthplace but still in use as interchange format. Open/save by various programs including open source like Art of Illusion.
    Status: undead, widespread interchange format
    Origin: commercial, documented
    Format: plain text, resembles Xfig's .fig or binary(?)
    Contents: lines/polygons/curves/surfaces plus some scene graph stubs like object merge and smoothing groups
    Texturing: exists
    Usage: not too hard

    OFF, AOFF Somewhat stale format first introduced by DEC and later used in some 3D applicatons. Was meant as library and interchange format for storing 3D objects.
    Status: waning
    Origin: commertial/public, documented
    Format: plain text and binary
    Contents: polygon mesh, simple material properties and aux info (author etc.)
    Texturing: none, AFAIK
    Usage: should be easy

    V3D Vertex 3D Model Assembler is infamous open source mesh editor. It has somewhat silly UI and some OpenGL-friendly stuff like explicit quad strips, so artist may spend some time optimizing mesh rather making it better. For low-poly models only, IMHO.
    Status: lurking around, but possible already sinked
    Origin: open source
    Format: plain text
    Contents: various mesh data along with transformations and surfaces
    Texturing: explicit uv
    Usage: may be easy, especialy for "raw" OpenGL w/o any toolkit

    VR Dive object/actor format, used by one of the oldest VR toolkits out there, and I really saw couple of modeling apps saving this format.
    Status: alive(?)
    Origin: open source
    Format: plain text
    Contents: defenitely resembles .vrml (see)
    Texturing: yes
    Usage: ?

    VRML [i]Virtual Reality Markup Language[/b], in fact it's another one scene markup language specialy crafted for low download times rather than eye candy or feature richness. It comes in 3 flavors, namely versions 1, 2 and 97, but the later pair is almost identical. Here is another upcoming format called x3d featuring stream-oriented server communications, more interactivity etc. OK, it is't model format but it can be abused to do so.
    Status: wide(?)spread and evolving
    Origin: both open and closed source, well supported and documented, read/write by almost any modeler
    Format: plain text, usualy gzip'ed
    Contents: some degenerate scene graph plus auguments like animation, events and hyperlinks.
    Texturing: yes, but do't expect much
    Usage: possible, especialy ignoring all other than mesh data

    All other formats I forgot.

    IMHO, specific format to work with may be selected as consensus between coder and artist groups as both groups are interested in various aspects of choice in question.
    Targon out.
    If you don't see my avatar, your monitor is incapable to display 128 bit colors.
    Stella Polaris Development Team, ex-Graphics Manager

  • #2
    Modelers I know

    Here is a list of modelers I've tasted, with maximaly polite opinions. All trademarks mentioned below belongs to their unlucky holders.

    3D Studio Max - commercial "professional" (in fact amateur playing professional) 3D modeler. It's useful for rendering even complex things while you are't too interested in photorealistic looks. Mesh editing is humble, despite some stuff like "Uv unwrap". Saves lots of formats.
    AC3D - inexpensive yet not open-source (hence I label this kind as shareunaware) shareware modeler. May be used for not too extensive modeling as eventualy you'll become bored of it. Texturing is still inchoate. Saves its own A3D along with various VRMLs, DXF and some even more exotic.
    Art of Illusion - written on Java, so it runs on every machine out there, right, but SLOW. Still somewhat buggy. Sometimes resembles RayDream Studio. Best surface editor I ever seen, BTW. Saves VRML and OBJ.
    Ayam - modeling/rendering frontend for Pixar Renderman-based renderers, like Exluna BMRT and others. They are non-free (in "freedom to speech" sense, according to FSF) counterparts of PovRay, for example. Saves AY and standerd RIB files.
    Blender - really nice thing, but somewhat biased towards interactive "game" creation; features VERY special interface Saves BLEND, DXF and VideoScape (?!)
    gSculpt - some play around 3DSMax-alike modifier stack, but in more general case; really works but hardly useful for real mesh editing. Saves its own Yet Another Format.
    Innovation3D - poor interface and editing
    KPovModeler - nice modeler, but its bicubic patch facilities are rudimentary; no export/import besides povray. Saves its own KPM along with POV
    LightWave - really good thing, but expensive, let alone open source, and of course without Linux version (but runs under some versions of Wine). Saves LWO
    Loq Airou (sorry if misspelled) - another _very_ special modeler, emphasizing eye candy and mouse gesture control as means of arousing one's creativity. May evolve into very interesting concept, but still hardly usable. Rarely saves anyway.
    MindsEye - this thing failed to compile, can't try. It's stale anyway.
    mg^2 - useless, period
    Pygmalion - it's messy thing. Has some mesh editing along with some rendering support, but no texturing anyway. Saves DXF and OFF.
    RayDream Studio - commercial, somewathat old modeler with strong amateur taste. Had usable mesh editing though. Saves lots of formats.
    OpenFX - ex-comercial, nowdays open source, but sadly window$-only (just imagine: open source without Linux port!). Still walks under Wine (_walk_ not _run_). Sometimes useful, sometimes useless, eye candy interface... I may tolerate this modeler, especialy its Linux port. Saves 3DS, DXF and some others.
    Truevison - yet another PovRay modeler. Saves surprise, surprise, POV (and its own .tvs).
    Vertex - bad interface, support of raw OpenGL features like fans&strips. Saves its own V3D.
    Undulate - something about particle editing. Failed to compile for modern Qt.
    If you don't see my avatar, your monitor is incapable to display 128 bit colors.
    Stella Polaris Development Team, ex-Graphics Manager


    • #3
      From your review I see OBJ, Mod are not bad...
      But didn't yet found some loader library or something like that, but that were mere 20 minutes
      Maybe a bit later...


      • #4
        IMHO, .obj is bad, as it can't store texturing data AFAIK. Correct me if I'm wrong, please.
        Personaly, I like .lwo, but we may use it only if someone knows some editor saving this files.
        That's why my second post was related with modelers. I do't pretend I know all popular (open-source) modelers, so I urge people with more knowledge to post their comments. We need format 1) feature-rich 2) easy to handle by coder team 3) easy to work with for artist team. And sorry, Kurilka, but 3rd is more valuable than 2nd, as your work is one-time while ours is neverending.
        If you don't see my avatar, your monitor is incapable to display 128 bit colors.
        Stella Polaris Development Team, ex-Graphics Manager


        • #5
          I read your case studies and I can only say you've done a great job, IMO. So which ones are your personal favourites right now?
          "Kids, don't listen to uncle Solver unless you want your parents to spank you." - Solver


          • #6
            LWO pros: very feature rich, good documentation, modern approach
            cons: commercial modeler (PLEASE, correct me if I'm wrong here!)
            3DS pros: support by almost any modeler out there, wide range of loader libraties/plugins
            cons: ancient format, not especialy useful for modern rendering techniques.
            If you don't see my avatar, your monitor is incapable to display 128 bit colors.
            Stella Polaris Development Team, ex-Graphics Manager


            • #7
              targon, I think you should start working with the format which is more easy to you. As you've said you're going to work all day with it. Then developers (count with me of course) will do the rest, so it's your vote wich count most. What is the format that you work best with? (more comfortable to you)


              • #8
                I remember the name "POV Ray" (or something like that) being used with 3D graphics in the past, and a number of design were made with it.

                Or something like that I believe. My memory isn't that good, and I didn't pay that much attention to the graphics discussions


                • #9
                  for lwo i've found

                  But what about modeller?

                  2 Joeno:
                  POV Ray is used for rendering and could be used for prerendered images (background, slpashscreen etc.), but our model will be rendered in real-time, so it is not so useful...


                  • #10
                    Haven't found anything about open source .lwo modellers ...


                    • #11
                      Some 3D formats to add:
                      ASE ???
                      Status: ??? some modelers may export it
                      Origin: ???
                      Format: text?
                      Contents: polygon mesh: coords/colors/uv
                      Texturing: yes
                      Usage: may be easy

                      TRI Alias Triangle.
                      Status: interchange, lurking around. Couple of modelers may save it AFAIK.
                      Origin: commercial
                      Format: do't know, think it's text
                      Contents: raw tri-mesh with coords/colors/uv per vertex
                      Texturing: yes
                      Usage: not too hard IMHO
                      If you don't see my avatar, your monitor is incapable to display 128 bit colors.
                      Stella Polaris Development Team, ex-Graphics Manager


                      • #12
                        Thanks for your work targon, it's appreciated.
                        Personally I think we should go for a format with a wide compatability, rather than based on technical merits. Having existing loaders for the engine/graphics SDK we decide to us would be a big plus too.


                        • #13
                          I do think you're right, Blake. It may be 3DS for example as it's really widespread and accepted by almost any modeling program. And I do't know any reasonable big 3D toolkit completely ignorant to this format. Thanks Autodesk and its de-facto monopoly on low-end market long ago.
                          So please grok it for youself and decide how this format suits your needs. In theory, it's almost self-sufficient and may be used for some modern rendering techniques.
                          If you don't see my avatar, your monitor is incapable to display 128 bit colors.
                          Stella Polaris Development Team, ex-Graphics Manager


                          • #14
                            I've found some really interesting modeler: Wings3D. Really good modeling features, sometimes comparable with best commercial modelers, per-face material painting and lots of other things. One sadness: it's written on language called Erlang that despite its great hack value is't especialy popular. As it's VM-driven language it is't especialy fast, too (but nothing like Art of Illusiion and its Java). Saves 3DS, OBJ and VRML(2) along with more hermetic tongues like .NDO, .XNDO and .PLY.
                            If you don't see my avatar, your monitor is incapable to display 128 bit colors.
                            Stella Polaris Development Team, ex-Graphics Manager


                            • #15
                              I've just found .LWO export plugin for the Blender modeler, it's here:
                              But it has't any UV export though...
                              If you don't see my avatar, your monitor is incapable to display 128 bit colors.
                              Stella Polaris Development Team, ex-Graphics Manager