Skip to main content

"Universal" 3D File Formats

Submitted by dom on

I'm after a file format specification that serves as a "standard container" for 3D geometry data. I know that CAD applications comply with various universal formats such as IGES and STEP, which allows them to export/import 3D design data between different CAD applications. I'm after something similar specifically for computer graphics.

Basically, I need information on non-application specific 3D file formats. Any suggestions?

Submitted by Blitz on Thu, 15/04/04 - 12:01 AMPermalink

Not 100% sure, but i think VRML is an open standard...
Check it out. Lightwave .obj might also be an open format, as i've seen several applications that can import/export them.
CYer, Blitz

Submitted by redwyre on Fri, 16/04/04 - 4:38 AMPermalink

I think .3ds is the way to go. discrete have an sdk on spark that shows you how to read and write it.

Submitted by dom on Fri, 16/04/04 - 8:45 AMPermalink

I tried looking for the official docs for the 3DS format, but I can't find them AT ALL.

Submitted by Daemin on Fri, 16/04/04 - 9:54 PMPermalink

My suggestion is to try and make your own, not all formats support all things, and the ones that come close are bloody hard to parse.

I haven't seen the lightwave object format but I'd assume that it wouldn't be 100% suited towards games because half of the processing and all of the animation is stored in the lightwave scene file rather than the object file. I suppose it would be easier then to make an export format based on the two file formats though, although I've never tried.

Try and avoid the 3ds file format, since that only supports one set of texture coordinates per vertex, and right now we definetly need more than that for modern games. I.e. texture map, displacement map, bump map, normal map etc...

DXF might be interesting but I think its text based

MAX is also text based but a lot more complex and contains a large amount of 3DS MAX specific data that is superfluous to games.

Submitted by TheBigJ on Sat, 17/04/04 - 12:49 AMPermalink

DXF can be binary and text. I would strongly suggest staying away from it. DXF is revised with new versions of AutoCAD which makes compatibility very painful.

I agree with Daemin on this. Work with your own format and write a converter to *fairly* standard formats like 3DS if you need to.

Submitted by dom on Sat, 17/04/04 - 3:05 AMPermalink

Thanks for your suggestions.

I wanted to avoid writing my custom format, because I didn't want to go trough all the hassle of writing conversion routines, etc., when I could just read in a third party format straight away. Looks like I'll have no choice.

Submitted by alia on Thu, 22/04/04 - 8:42 PMPermalink

Oj, you beat me to it! :)
File formats for 3d stuff has always annoyed me... hope these guys come up with something that isnt too complicated but still powerfull (yes i know thats damn hard!)

A.

Submitted by OJ on Thu, 22/04/04 - 10:29 PMPermalink

Alia: Isn't it always the way :) I'm usually on the other end aswell! Looks like I finally got in before someone else this time :)

I think they're going to have quite a challenge in making a decent format that covers a good percentage of the requirements for people in the industry. Bearing in mind that this (probably?) might not be just for gaming, it'll be a really tough task to keep people happy.

Good luck to them, I look forward to seeing the result.

OJ

Submitted by OJ on Fri, 23/04/04 - 11:55 PMPermalink

One step ahead of ya ;) Have already had a good look through the responses from the various posters. I still thought it was a worthy topic to mention :)

Submitted by dom on Sat, 24/04/04 - 4:48 AMPermalink

U3D? Cool, that looks very interesting!!!

Submitted by rx on Mon, 17/05/04 - 12:26 PMPermalink

This discussion topic reminds of the pain I went thru while writing a .3DS parser :S. Specially the key frame animation chunk in a .3DS file is the worst of all.
3ds files are smaller and IO efficient being a binary file. But writing a parser from scratch can be challenging! Simpler file formats such as .ASC, .ASE are easier to read but bulkier. there's always a trade off for efficiency.
The good thing is, if u're not comfortable with one format there's always a second choice and there are hundreds of plugins for interconversion.

Submitted by Daemin on Tue, 18/05/04 - 12:45 AMPermalink

Yeah, writing a 3DS parser was hard, however the format has several major flaws, first being the texture coordinate garbage (only allowed one set). So really it shouldn't be used now at all!

Submitted by CombatWombat on Tue, 18/05/04 - 1:24 AMPermalink

I was pretty impressed with the maya API, quite well designed, if a little confusing to begin with.

Posted by dom on

I'm after a file format specification that serves as a "standard container" for 3D geometry data. I know that CAD applications comply with various universal formats such as IGES and STEP, which allows them to export/import 3D design data between different CAD applications. I'm after something similar specifically for computer graphics.

Basically, I need information on non-application specific 3D file formats. Any suggestions?


Submitted by Blitz on Thu, 15/04/04 - 12:01 AMPermalink

Not 100% sure, but i think VRML is an open standard...
Check it out. Lightwave .obj might also be an open format, as i've seen several applications that can import/export them.
CYer, Blitz

Submitted by redwyre on Fri, 16/04/04 - 4:38 AMPermalink

I think .3ds is the way to go. discrete have an sdk on spark that shows you how to read and write it.

Submitted by dom on Fri, 16/04/04 - 8:45 AMPermalink

I tried looking for the official docs for the 3DS format, but I can't find them AT ALL.

Submitted by Daemin on Fri, 16/04/04 - 9:54 PMPermalink

My suggestion is to try and make your own, not all formats support all things, and the ones that come close are bloody hard to parse.

I haven't seen the lightwave object format but I'd assume that it wouldn't be 100% suited towards games because half of the processing and all of the animation is stored in the lightwave scene file rather than the object file. I suppose it would be easier then to make an export format based on the two file formats though, although I've never tried.

Try and avoid the 3ds file format, since that only supports one set of texture coordinates per vertex, and right now we definetly need more than that for modern games. I.e. texture map, displacement map, bump map, normal map etc...

DXF might be interesting but I think its text based

MAX is also text based but a lot more complex and contains a large amount of 3DS MAX specific data that is superfluous to games.

Submitted by TheBigJ on Sat, 17/04/04 - 12:49 AMPermalink

DXF can be binary and text. I would strongly suggest staying away from it. DXF is revised with new versions of AutoCAD which makes compatibility very painful.

I agree with Daemin on this. Work with your own format and write a converter to *fairly* standard formats like 3DS if you need to.

Submitted by dom on Sat, 17/04/04 - 3:05 AMPermalink

Thanks for your suggestions.

I wanted to avoid writing my custom format, because I didn't want to go trough all the hassle of writing conversion routines, etc., when I could just read in a third party format straight away. Looks like I'll have no choice.

Submitted by alia on Thu, 22/04/04 - 8:42 PMPermalink

Oj, you beat me to it! :)
File formats for 3d stuff has always annoyed me... hope these guys come up with something that isnt too complicated but still powerfull (yes i know thats damn hard!)

A.

Submitted by OJ on Thu, 22/04/04 - 10:29 PMPermalink

Alia: Isn't it always the way :) I'm usually on the other end aswell! Looks like I finally got in before someone else this time :)

I think they're going to have quite a challenge in making a decent format that covers a good percentage of the requirements for people in the industry. Bearing in mind that this (probably?) might not be just for gaming, it'll be a really tough task to keep people happy.

Good luck to them, I look forward to seeing the result.

OJ

Submitted by OJ on Fri, 23/04/04 - 11:55 PMPermalink

One step ahead of ya ;) Have already had a good look through the responses from the various posters. I still thought it was a worthy topic to mention :)

Submitted by dom on Sat, 24/04/04 - 4:48 AMPermalink

U3D? Cool, that looks very interesting!!!

Submitted by rx on Mon, 17/05/04 - 12:26 PMPermalink

This discussion topic reminds of the pain I went thru while writing a .3DS parser :S. Specially the key frame animation chunk in a .3DS file is the worst of all.
3ds files are smaller and IO efficient being a binary file. But writing a parser from scratch can be challenging! Simpler file formats such as .ASC, .ASE are easier to read but bulkier. there's always a trade off for efficiency.
The good thing is, if u're not comfortable with one format there's always a second choice and there are hundreds of plugins for interconversion.

Submitted by Daemin on Tue, 18/05/04 - 12:45 AMPermalink

Yeah, writing a 3DS parser was hard, however the format has several major flaws, first being the texture coordinate garbage (only allowed one set). So really it shouldn't be used now at all!

Submitted by CombatWombat on Tue, 18/05/04 - 1:24 AMPermalink

I was pretty impressed with the maya API, quite well designed, if a little confusing to begin with.