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!
Loading Blender Models and Animations
Started by Tolito, Sep 12 2012 10:43 AM
6 replies to this topic
Ad:
#2 Members - Reputation: 1408
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.
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.
#4 Members - Reputation: 1408
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:
Thanks for the rep++, I also use it whenever someone writes something that is useful to me.
- 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.
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.
#5 Members - Reputation: 212
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!
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 Members - Reputation: 1408
Posted 13 September 2012 - 12:19 AM
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.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.






