3D Exchange Standard
21 messages in this thread
Tim tipped me off to the existence of this thread, so I'll jump in with both
feet! My company makes InterChange, a program that translates between more
than thirty 3D file formats, so I've got a special perspective on this topic.
I'll start with a comparison. Consider all the bitmap image file formats.
Bitmap data is more simple in structure than 3D data. I can describe what's
stored in image file formats in just a few sentences! Yet there are dozens of
image file formats in use today. Serious image processing programs must handle
a dozen of them, and I know of more than a dozen companies that specialize in
making file filters. Why so many image formats? Some are merely historically
popular, some are more popular on one platform than another, some serve special
purposes like JPEG and FAX.
There's no real standard in the 2D structured drawing market, either. CGM,
Windows metafile, Adobe Illustrator, Freehand, Corel, and a dozen other
presentation graphics programs are all distinct formats, and clip art companies
are forced to support more than one.
3D data is more complex than bitmap data. Even with a minor subset like basic
geometry, it's tough to find common ground between today's most popular 3D
programs. (For the moment, let's put aside splines and patches, motions,
bones, cameras, lighting, hierarchies, particles, etc.) Some use only
triangles, others allow polygons with an indefinite number of sides, others
allow "point" and "line" polygons with just one or two sides.
Then there's surface attributes. Again, there is little common ground once you
get past basic RGB color, specularity, etc. For example, smoothing is handled
differently in every package I've examined. Some rely on underlying geometry
like shared points and edges to define smoothing, others have smoothing groups,
others have explicit or implicit shading angles, others allow more control.
Tim, I'm sure you encountered these differences when porting your humanoids
from program to program.
A standard is as likely to offend as please. If the standard includes concepts
that aren't possible in a program, I'll bet the designers will decide not to
support the file format, because it makes their program look inferior. A file
format often reflects the design decisions of the programmer. If a file format
reflects different design decisions than those in a program, it's been my
experience that the programmer and the CEO of that company are less likely to
consider supporting that format. This is true for proposed "standards" as well
as any other file format.
For example, you mentioned the support for DXF in Animation Master. It's very
difficult for them to import any polygonal format, much less the most difficult
yet most popular polygonal format, because their models are naturally built
from splines and patches, not polygons. Do you think they'll support a
polygonal standard? Similarly, not a day goes by when a customer doesn't beg
for a polygonal program to support spline patches. If the standard includes
spline patches, will purely polygonal programs want to support it?
A standard file format must reflect a least common denominator. In that sense,
the much-maligned DXF format meets this criteria. It's so basic it doesn't
even include surface color info. (Also, the latest R13 DXF includes encrypted,
un-documented CSG geometry.)
A standard must be easy to implement. I recommend that the promoters of the
new standard should hand out portable ANSI C source code for importing and
exporting the file format.
On this "easy to handle" criteria, DXF is an awful format. It is very
difficult to read properly, which leads to the incompatibilities we've all
seen. It is a CAD format that's been pressed into service to represent
polygons.
Even if the code for parsing the file is available, you must remember that
companies must support it in the expanded sense of the word. They'll need to
deal with incompatibility problems when customers share files with everyone
else's implementation of the standard. They'll need to write additional code to
insure that the data they read or write conforms to the standard. In the
future, they'll need to preserve compatibility with it where possible. All
this means extra effort, above and beyond what they're doing now. Just because
the new standard exists, doesn't mean that the demand for DXF support will
diminish soon.
Believe it or not, I've even heard from some CEOs who balk at supporting any
other file format. They regard their 3D program as the best, and they regard
support for other company's formats as "aid to the enemy." They regard
universal file formats as a way to make it easy for customers to flee their 3D
program and purchase other 3D programs.
It doesn't surprise me that commercial modeling companies most frequently
complain about the multiple standards. They're the ones most often affected by
this. On the other hand, this is the business you've chosen. Tim, you're
worried about three file formats? We support more than thirty file formats in
InterChange. 🙂
There is no shortage of proposed standards. Viewpoint DataLabs once announced
their plans to define and promote the "VIP" standard file format, but no one
has ever seen it. Silicon Graphics is promoting the Open Inventor file format
as a standard, and a subset of Inventor is VRML, which is the top contender for
a 3D file format standard for the World Wide Web. Apple proposed QuickDraw
3D's metafile as an exchange format, except the PC version is expected to
arrive six to nine months after the release on the Power PC Macs later this
summer. (There are no plans for a 680×0 Mac version, BTW.)
I'll also play devil's advocate for a moment. "No wonder he's not optimistic
about a 3D standard," you might think, "he's in the business of writing
translators."
Actually, we take a neutral position, in the same way we don't promote any
particular 3D program as the "best." We'll support any proposed 3D standard in
InterChange. For example, we worked very hard to be part of the roll-out for
Apple's QuickDraw 3D.
Great Reply, John.
You really made me think about how good this would actually be. If there ever
was a standard file format it would have to be updated constantly. Every time a
company created a new effect like bones. Also with bones there are several ways
it is implemented in each program. Which would be used for the standard? Also,
regarding the article in CGW, if each company only worked on new things instead
of what others already do you would have to buy just about every program that
comes out to get all the tools. Until I read your reply I only thought about
the positive things about this, but there are numerous negative things too. I
do think that the dxf format should be replaced with one more suited for
animation programs like 3ds or any of the others out there.
-Sam J. Bowling
Thanks for studying what I wrote! Another important point that I
didn't have a chance to explain… Very few companies document their
file format. Formats like Strata, Infini-D, Visual Reality, etc. are
proprietary. If they did document their file formats, then there
would be aghost of chance that companies like mine would be able to
develop translation tools. (Strata will document their format soon,
actually.)
As you pointed out, DXF has plenty of limitations. I agree, you'd
think that a few very simple ASCII-based formats for the exchange of
geometry or motions would solve at least *some* of the problems.
>> As you pointed out, DXF has plenty of limitations. <<
My biggest problem is that when I load a DXF into Imagine it can take up to 10
minutes, but when I change it to Imagines format it takes only seconds. It is
time for a change from the old DXF, but I don't see a file format that will
cover _all_ the possibilities of the various 3D programs in the near future if
ever.
-Sam J. Bowling
Yes, DXF is slow to parse: it's ASCII, and each and every point
requires converting several lines of numbers. Almost any 3D program
needs to perform some tedious post-processing of the points and
faces, too.
<<…My biggest problem is that when I load a DXF into Imagine it can take up
to 10 minutes, but when I change it to Imagines format it takes only
seconds….>>
My biggest problem is with the file size that results from DXF. Taking an
informal sample of half a dozen Mac and PC modellers I find that when you save
a file from the application's native format into the DXF format, it grows by
around 8-10 times. As an example of why this happens, consider a simple cube.
Most modellers have tools to create cubes/rectangular boxes and they're defined
as the base cordinates, plus offset to the far side. Or each of the 8 corners
is defined along with the planes that make up the sides. There are lots of
ways to efficiently describe a cube. However, when the cube is written out as
a DXF, each face is defined independently, so the corner points, which are
shared where 3 planes come together are duplicated three times.
Unfortunately, since the 'cube' isn't really as cube anymore, it's just a
collection of flat planes that happen to be positioned to look like a cube,
saving the freshly imported cube doesn't reduce the file size. I find that 3D
DXF is useful as a basis for reconstructing imported objects, kind of like 3D
tracing, but it's impractical to use the raw imported DXF's in the model.
>> David <<
>> You really made me think about how good this would actually be. If
there ever was a standard file format it would have to be updated
constantly. Every time a company created a new effect like bones.
Also with bones there are several ways it is implemented in each
program. Which would be used for the standard? Also, regarding the
article in CGW, if each company only worked on new things instead of
what others already do you would have to buy just about every program
that comes out to get all the tools. Until I read your reply I only
thought about the positive things about this, but there are numerous
negative things too. I do think that the dxf format should be replaced
with one more suited for animation programs like 3ds or any of the
others out there.<<
Sam,
I remember you brought this subject up some time ago, and it
looks now as though the idea of a 3D standard is gaining more
momentum.
I understand your concerns. I think John might be focusing a
little too much on the current difficulties in translations, many of
which could be addressed in a good standard.
A 3D standard does not have to be all-encompassing to be
effective for the vast majority of 3D users, nor does it have to
limit the _internal_ complexity or sophistication of a 3D program.
Yes, a standard will likely mean some loss in functionality
when going from one program to another. Certain program-specific
features may be lost for the time being like algorithmic textures,
bones, etc. But the meat and potatoes should be maintained. And over
time, standards can be upgraded to gradually increase the scope of
properties that are handled. But in my view, it is possible to design
standards that would maintain an exceptable level of integrity for
most 3D users.
Adoption of a standard does not mean a developer has to make
any compromises. It simply means that they agree to _also_ make it
possible for their program to output files which have a modest level
of compatibility with other 3D applications. I don't think this is
asking too much of developers, but it may take some significant
prodding from users.
Furthermore, standards can be developed that are both
backward and forward compatible, so 3D programs wouldn't have to be
continually updated just because the standard is.
As for "loss of functionality," a day or two ago I had a rude customer ask
about InterChange's conversion methodology, and when I explained that we didn't
translate UV coordinates at this time, they said "So what good is it?"
In my first posting, I gave specific examples of difficult questions for any
proposed 3D file format standard: smoothing, triangle versus polygons, etc. In
this posting, you made general statements about how a standard might be firm
yet flexible, backwards- and forwards compatible, useful and not limiting. If
you want to get specific, I'm all ears, and I'm willing to jump on details.
🙂
A good question to ask yourself along the way is "How is this better than DXF?"
I've sometimes thought that the easiest path to a 3D file format standard might
be to usurp parts of DXF. It already allows user-defined data in several ways.
All you need to do is define and promote the use of new extended data that
might store surface info like colors, smoothing, and better object names.
Since most companies have DXF in/out already, it would be relatively easy for
them to add small amounts of code to handle this new extension, and it would
buy a great deal in terms of info exchange.
Ok, Tim.
So to sum it up it would be a much more powerfull replacement for DXF right?
-Sam J. Bowling
>> I think John might be focusing a little too much on the current
>> difficulties in translations, many of which could be addressed in a
>> good standard.
Well what is this new standard for if not for data exchange which means
converting. Since all the available 3D programs handle the object data
different (more or lass) it wouldn't be much of use if this universal standard
would support all kinds of features and options. The data probably just won't
be available for the program that is trying to read it since it just don't have
this kind of data in it's own format or handles it different. Looking closer at
this there are only very few things left that are common in most (not all!)
programs: points, triangles (polys) groups (layers), hierarchy, and maybe color
(not attribs), light & camera position.
High end programs almost exclusivly work with splines so a polygon standard
would be only for the low/mid end market.
just my thoughts… -David
>>High end programs almost exclusivly work with splines so a polygon standard
would be only for the low/mid end market.<<
Do you consider Wavefront and Softimage to be low/mid end? Both have a
polygonal model as their primary format (with splines added later). Alias has
just *added* extensive support for polys because the gamers need it.
nevertheless, an interchange format *must* support nurbs, as openInventor does.
>> Do you consider Wavefront and Softimage to be low/mid end?
Yes absolutely low end! 🙂
Seriously, trianlges have their advantages in some cases and sometimes it's
important to have control over them. In realtime games the number of trinalges
must be optimized.
-David
Real time games and models used for creative work and development work are two
different things. For development work, highest res/quality is always desired-
whether for 3d, video or print. Once the creative work is done, an appropriate
delivery medium is necessary.
With Alias, part of the translation process from Nurbs to polys allows you to
visually, as well as numericly reduce the number of polys (it's a slider).
Nurbs are great for modeling, but problematic for some animation, and not
particularly useful for gaming.
Hmm… sidethought on your observation on new feature requiring change to the
format… I believe QuickDraw 3D's file format allows for custom data
structures… if a program can support it it will read it, but if not, then it
should just ignore it, is what my memory is.
jd
>> if a program can support it it will read it, but if not, then it should
just ignore it, is what my memory is. <<
That sounds pretty good, unless the parts that it can't read make the
scene/object worthless. This also would not change the fact that other programs
will still have to support the same features as the other program. There are so
many pro's and con's about this whole thing it's giving me a headache.<g>
-Sam J. Bowling
>> There are so many pro's and con's about this whole thing it's giving me a
headache.<<
Moi aussi. (me too)
-Tim
John,
Well, I thought you'd have some ideas on this subject, but gee whiz!
<g>… I think it's going to take me a couple days to go through all this
stuff.
-Tim
Hi John,
I read your msg and was wondering if you support the Alias Sketch for Macs file
format yet ?
I exchanged e-mail with someone from Syndesis about a year ago and was told
that you may support Alias Sketch in the future. Any progress on that ?
>> David Sattar <<
If we do, it'll be in the form of Alias StyleGuide file format. We've been
considering exporting it for some time. I can't say for certain when it will
become part of the product. We've had very few requests for it. We do have a
preliminary exporter for it, which means we'd write StyleGuide format.
<<…If we do, it'll be in the form of Alias StyleGuide file format. We've been
considering exporting it for some time. I can't say for certain when it will
become part of the product. We've had very few requests for it. We do have a
preliminary exporter for it, which means we'd write StyleGuide format….>>
All that sounds great John, except the lack of requests 🙁 I sometimes feel
like I'm the only modeller working with Alias Sketch on a Mac.
While something that could write a Styleguide file from say 3DS, Zoom,
Architrion and AutoCad r12 (the apps currently used by my colleagues) would be
a very good step, it'd be nearly as useful for me to be able to write back from
Styleguide to 3DS, Zoom etc. If you need a beta tester for the exporter, I'd
be delighted to help out…
>> David <<