使用3D模型的OpenGL中的动画


11

我在Blender中创建了一个模型。现在,我想在我的C ++程序中阅读该3D模型。我认为模型可以导出为各种文件格式,例如.obj,.3ds或COLLADA,然后可以在c ++程序中读取。我已经在网上搜索了很久了,发现了很多教程。但是我大多数都遇到了问题。例如,在Nehe教程中,他们使用glaux,而我不想在程序中使用。其余教程使用Blender不支持的md2。

因此,谁能指导我导出3D模型所使用的文件格式以及如何在OpenGL程序中加载该文件格式?另外,我该如何为该模型制作动画?在使用OpenGL将其加载到c ++程序中之后,是否可以添加诸如色调映射之类的额外效果?如果是,那怎么办?

PS我正在使用Linux进行游戏开发

Answers:


2

我会选择OBJ格式。正如你已经可能已经意识到,有数以百计的OBJ装载机为C ++ 在那里。我相信最成熟的软件之一是Assimp,它支持许多不同的格式,并且文档记载得很好。在这里,您有一个使用它们的示例。


lighthouse.com链接不起作用
Snape 2011年

它适用于我所有的浏览器...试试这个链接x90.es/1CC

2
Obj不支持动画网格物体吗?只是Google“ Blender opengl skinned mesh”,我希望您会找到适合您要编辑的格式:无法删除我的帖子,本来是对以前推荐obj格式的帖子的回复
Stowelly 2011年

1
.obj不支持动画,此答案是错误的。stackoverflow.com/questions/757145/…–
肖恩·

2

Blender 2.60具有固定的COLLADA动画支持,在早期版本中或多或少地被破坏了。但是,如果您尚未在自己的代码中加载任何模型格式,建议您先学习加载.obj。它采用ASCII格式,因此无需外部加载程序库即可被人类阅读和轻松读取。


1

3ds不包含任何动画数据,因此无法使用。Collada我不太了解,但是当我决定在游戏中使用哪种格式时,我进行了搜索和比较,最后我选择了B3D格式,它支持骨骼动画并且可以从Irrlicht加载(它还包含照明值) )。

我使用了3dsMax的“ b3d管道”导出器,并且已经编写了自己的hlsl着色器以对网格进行动画处理和光照,它确实运行良好。

您可以查看Irrlicht的工作方式(即加载和设置动画),也可以在软件中进行动画处理,但是有一些示例,您可以搜索使用着色器的方法(如果需要)。一件好事是Irrlicht同时支持OpenGL和Linux。

另一个非常简单的格式是.X格式,那里必须有大量的示例,说明如何导出,加载,解析和设置框架以及对其进行动画处理。虽然它是Microsof格式,所以也许您不想使用它:-)

色调映射等与动画完全无关,是的,如果您知道如何使用该技术,则可以对动画网格物体进行设置。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.