Jump to content

  • Log In with Google      Sign In   
  • Create Account

Loading Blender Models and Animations


Old topic!
Guest, the last post of this topic is over 60 days old and at this point you may not reply in this topic. If you wish to continue this conversation start a new topic.

  • You cannot reply to this topic
6 replies to this topic

#1 Tolito   Members   -  Reputation: 256

Like
0Likes
Like

Posted 12 September 2012 - 10:43 AM

I was looking for a way to load Blender models into the buffer and manipulate them via the animation data stored within the .blend file. Has anyone written such a parser yet, or would it be best for me to write an OBJ loader? My main issue here is that I need a way to load joints between limbs (shoulder and forearm, for example) during rotations. Blender has no problem doing this, so finding something to use with it would be best for me.

I am strictly using C so C++ solutions such as Ogre3D are not going to suit it for me. Unless there is a C alternative for Ogre3D or anything similar, I plan to stick with gl.h for this.

Thank you!

Sponsor:

#2 larspensjo   Members   -  Reputation: 1529

Like
4Likes
Like

Posted 12 September 2012 - 11:10 AM

If you are going to use animations, OBJ formats are not good. They do not contain armature information.

To start with, I would recommend the Assimp library. It can handle various formats, and the animation part of the data. Eventually, for a commercial project, you will probably want to use your own file format.

Doing animations is not easy. There is a lot of data, and you have to handle it correctly. I created a blog based on my experiences, maybe it can help: Doing animations in OpenGL.
Current project: Ephenation.
Sharing OpenGL experiences: http://ephenationopengl.blogspot.com/

#3 Tolito   Members   -  Reputation: 256

Like
0Likes
Like

Posted 12 September 2012 - 02:25 PM

Thanks for the links! Very good! When you say to use my own format for a commercial project, are you saying to make Assimp use the custom format, or to drop Assimp altogether?

I just did a reputation++; for you, by the way!

#4 larspensjo   Members   -  Reputation: 1529

Like
2Likes
Like

Posted 12 September 2012 - 10:32 PM

Use Assimp for now. In the future, when you have animations up and running, you do it in three steps:
  • Use Blender, or Maya, or something else, to make an animation.
  • Create a special small program, based on Assimp, that loads the animation and converts it to a special format that is tailored to your needs.
  • The main application then load these special file formats only.
You don't really need to worry about this now. When you have everything up and running, then you know better exactly what data structures are needed for your application. The advantage of Assimp is that it can load a lot of different formats. That makes it easier during the development phase. The disadvantage is using Assimp in a commercial product. It is overkill to include a general purpose library. It may also be that you don't want your models to be available in easy-to-copy formats in the application you distribute.

Thanks for the rep++, I also use it whenever someone writes something that is useful to me.

Edited by larspensjo, 12 September 2012 - 10:33 PM.

Current project: Ephenation.
Sharing OpenGL experiences: http://ephenationopengl.blogspot.com/

#5 Tolito   Members   -  Reputation: 256

Like
0Likes
Like

Posted 12 September 2012 - 11:21 PM

Thanks for that information. I have actually worked with custom formats before, so those are nothing new. My main problem is manipulating the entire model the way Blender does. It works in such a manner that the model appears to have joints with each rotation. In my experience in making other OpenGL applications, I had to work with hierarchy, which is no problem for me, but each part must be its own model and there are no joints. Do you know of a workaround for this, or a way to just include the Blender file loading from Assimp and not the whole utility? Also, I am getting a "Cannot find -lassimp" when trying to compile, so I would like some help finding a solution, if that is okay with you.

You're welcome, but don't mention it. There are not very many ways to say thanks via the Internet, so helping someone out with their reputation for every helpful post they make and saying thank you along with it is the least I can do. Thank you!

#6 larspensjo   Members   -  Reputation: 1529

Like
0Likes
Like

Posted 13 September 2012 - 12:19 AM

Also, I am getting a "Cannot find -lassimp" when trying to compile, so I would like some help finding a solution, if that is okay with you.

That depends a little on your development environment. If you use Linux Ubuntu, you can install Assimp as one of the standard packages. Otherwise, my installation is from the older 2.0 version, which I think has changed.
Current project: Ephenation.
Sharing OpenGL experiences: http://ephenationopengl.blogspot.com/

#7 Tolito   Members   -  Reputation: 256

Like
0Likes
Like

Posted 13 September 2012 - 08:13 PM

I am not able to find the Assimp package. Thank you, though. You have been very helpful.




Old topic!
Guest, the last post of this topic is over 60 days old and at this point you may not reply in this topic. If you wish to continue this conversation start a new topic.



PARTNERS