0
votes

I am an openGL beginner. I need to build a c/c++ application which displays 3d models in augmented reality. For AR i'm using ARToolkit. In the app it must import 3d models built with modelling softwares like blender,sketchup etc.. the models might be .obj,.3ds,.collada(suggest me any others if any??).

ARToolkit mainly uses opengl to render(AFAIK), the 3d objects to camera input.

  • Is it possible to load 3d models/objects at runtime dynamically. what libraries are existing if any for this?

I want to have keyboard interaction with the models also where i can move specific parts of the model(eg: rrotate wheels of a car)

The models here maybe as simple as a simple house to character(man/woman).suggest me the resources i need for this and any technicalities i missed. I prefer if possible my code to work with opengl 1.4

2
i am also concerned with the scale and texture of the models - kaushik54
There is no "opengl format". OpenGL doesn't have formats. OpenGL doesn't have files; it defines a rendering system. It doesn't say anything about how data is stored on disk. - Nicol Bolas
Also, what exactly is your question. "Im in confusion where to start" is not a question. - Nicol Bolas
yes my fault(opengl format), my question is how to render the 3d models of different formats from the modelling softwares using opengl. - kaushik54
@kaushik54 the question is more on how Opengl works because from your question I undestand there is a lack of knowledge on the basics of OpenGL, Model loading, Model hierarchy (car + wheels linked together but movable in a separate way). I guess lighting would be an issue as well (augmented reality has to reflect the environment light in order to be realistic). I would suggest to study deeper the OpenGL world, there is really an universe to learn. Cheers. - Maurizio Benedetti

2 Answers

0
votes

You will need some import mechanism to import meshes in various formats into your runtime format. OpenGL (or DirectX) doesn't specify how your meshes must look on disk, and there is various stuff stored on disk that is not required for rendering. Basically, you need a way to get the vertex positions and attributes from the file, and optionally an index list (if you render using indexed triangle lists, which you probably should be doing.)

The easiest for sure is .obj, which is an ASCII format that you can easily parse and which is supported by many applications. Otherwise, look at libraries like Open Asset Import.

However, I would assume you are looking for an OpenGL based rendering system, which does the rendering for you as well as the mouse interaction. There are lot of existing engines you can use out there, for instance, Ogre3D or IrrLicht. IrrLicht is easy to use and provides support for a bunch of the formats you mentioned. It you must stick with ARToolkit for rendering, then you can probably easily convert the formats from either engine to whatever ARToolkit expects.

0
votes

I'm very recomending you to try http://assimp.sourceforge.net/lib_html/ It supports a lot of open/not-very-open data formats, skelet-animation, affine transfer animation, etc.