Importing models?

I would like to make a video game with OpenGL. However, after painstakingly creating characters from scratch with OpenGL’s Beizer curves, I’ve had it with rendering models solely with OpenGL.

I know the pros couldn’t possibly use this method to create their characters. Is there a way to use another graphics package like 3D Studio to create and animate character models within an OpenGL application? If so, what aspects of the game would I use OpenGL for?

Any references such as books or websites would be appreciated.

Thanks.

You can create the models in a modelling package, but you’d still need OpenGL to do the drawing. There are several model loading tutorials at the following sites:
http://nehe.gamedev.net
http://www.gametutorials.com

Or a simple Google search should turn up numerous results.

You will probably like Blender, a free 3D modeller. http://www.blender3d.com/

Press ‘crap’ button.

The Blender file format was decodable only by Blender. Besides which, Blender has recently gone out of business.

I’d recommend Anim8or which is a free modelling & animation program that also happily exports 3D Studio MAX formatted meshes (.3DS files).

Take the .3DS mesh files created with Anim8or and display them with Display3DS , a free OpenGL based 3DS file viewer that includes legible Visual C++ source code to help you get started.

BTW: This thread should have been posted in the Beginners forum, rather than Advanced.

[This message has been edited by ppinter1 (edited 04-01-2002).]

Sure the .blend format was only decodable by blender, but it was pretty easy to write a quick exporter to another format (the plugin/scripting language was Python).

I guess it’s a moot point now, unless you have an existing copy of Blender sitting around.

QUOTE]Originally posted by ppinter1:

…Take the .3DS mesh files created with Anim8or and display them with Display3DS , a free OpenGL based 3DS file viewer that includes legible Visual C++ source code to help you get started.


Have you tried lib3ds? If you have, please let me know if Display3DS does any better work in getting additional data from the files (not interested on the drawing part)

If you’re writing your own rendering layer, by all means use lib3ds as it is very comprehensive and includes keyframe animation support among many other (platform-independent) features.

I wrote Display3DS for newbies as a (hopefully) legible soft landing into the world of OpenGL and 3DS mesh decoding and display.

Display3DS is a small Visual C++/MFC based mainline which instantiates an Okudagram object.

An Okudagram is itself a small class that encapsulates all OpenGL handling and in turn instantiates a Mesh3DS object.

Finally, the Mesh3DS class is my object-oriented translation of David Farrell’s old View3DS code. Mesh3DS is not a small class but, with only 3 public methods, it’s very ease to use .

Mesh3DS unbuttons the 3DS mesh file into various data structures and displays the mesh vertices, materials and textures onto the current OpenGL Rendering Context as created by the Okudagram.

In short, newbies should find Display3DS to be a useful learning tool while seasoned OpenGL people would likely find lib3ds emminently more feature capable.

[This message has been edited by ppinter1 (edited 04-02-2002).]

Why doesn’t OpenGL create it’s own 3D mesh format.

[This message has been edited by billy (edited 04-04-2002).]

Originally posted by billy:
Why doesn’t OpenGL create it’s own 3D mesh format.

Because OpenGL is a Graphics Library and that the way you store your objects has nothing to do with graphics.

Some graphics APIs (Direct3D, QuickDraw, QuickDraw3D) have specific file formats but I think you always end up needing something that is not available in these formats…

Regards.

Eric

Eric,

Ya directx has its own format. I don’t defend directx, far from it!

I think OpenGL should remain focused on visualisation. but this functionality could be done by glut or some other library related to OpenGL.

Originally posted by ppinter1:
[b]The Blender file format was decodable only by Blender. Besides which, Blender has recently gone out of business.

I’d recommend Anim8or which is a free modelling & animation program that also happily exports 3D Studio MAX formatted meshes (.3DS files).

Take the .3DS mesh files created with Anim8or and display them with Display3DS , a free OpenGL based 3DS file viewer that includes legible Visual C++ source code to help you get started.

BTW: This thread should have been posted in the Beginners forum, rather than Advanced.

[This message has been edited by ppinter1 (edited 04-01-2002).][/b]

I don’t think I made a mistake posting this topic in the Advanced Forum. I know many gurus are picky about this stuff, but I took an OpenGL class in college and we never touched this stuff. Is a beginner going to create such a complex program importing models for animation? I don’t belive that.

Originally posted by ksanim:
However, after painstakingly creating characters from scratch with OpenGL’s Beizer curves, I’ve had it with rendering models solely with OpenGL.

That must have been a nightmare - how long did it take you to realise you were missing the point?

Eric has a very valid point, 3d file formats unlike image formats have so many options + possiblbiltys that having a general format is an impossiblity, have u ever wondered why 99% of professional games written with d3d DONT use *.x files,

Originally posted by ksanim:
I don’t think I made a mistake posting this topic in the Advanced Forum. I know many gurus are picky about this stuff, but I took an OpenGL class in college and we never touched this stuff. Is a beginner going to create such a complex program importing models for animation? I don’t belive that.

A beginner should be learning how to do “stuff”, so yes, a beginner should have a clue as to how to acheive a result, and should ask for details.

Nothing wrong with your question, just that you dont know it’s not relevant to opengl. Model making is usually done with a class of software called CAD.

A relevant question might be:
Should I use standard opengl evaluators or should I use NV evaluators. Which is faster? Should I use polygon based models instead? Advantages, disadvantages of each?

V-man