gpt4 book ai didi

opengl - 如何在OpenGL中为3D模型(网格)设置动画?

转载 作者:行者123 更新时间:2023-12-03 23:52:17 25 4
gpt4 key购买 nike

我想为OpenGL中的模型(例如人,步行)设置动画。我知道有诸如骨骼动画(带有复杂的数学运算)之类的东西,但是这个……。


在Blender中创建模型
在Blender中为该模型创建骨架
现在在Blender中使用该模型和骨架进行行走动画
拍摄该动画的一些“ keyFrames”,并将每个“ keyFrame”导出为单个模型
(例如作为obj文件)
为OpenGL创建OBJ文件加载器(获取顶点,纹理,法线和面部数据)
使用VBO在OpenGL中绘制该动画模型(并获得一些技巧,如何更改VBO中的当前“ keyFrame” /模型...也许使用glMapBufferRange


好的,我知道这个想法只是一个小脚本,但是值得进一步研究吗?
在VBO中更改“ keyFrame” /模型的好概念是什么?

我知道内存问题,但是我认为可以使用较小的模型(而不是过多的动画)来完成。

最佳答案

您要在静态关键帧之间进行动画制作的方法在早期3D游戏(地震等)中非常流行,现在通常称为“混合形状”或“变形目标”动画。
我建议实现它的方式与您描述的略有不同。而不是为每个可能的动画帧导出模型。仅在“关键帧”处导出模型并内插顶点位置。这样可以显着减少内存使用量,使播放更加流畅。
有多种实现选项:

创建动态/流式VBO。每个框架都会找到上一个和下一个关键帧模型。计算插值
在他们之间建立模型并将其上传到VBO。

创建一个静态VBO,其中包含所有帧的网格数据以及每个顶点处的附加“下一个位置”或“位移”属性。
使用范围选项
glDrawArrays上选择当前帧。
在位置和下一个位置之间的顶点着色器中插值。


实际上,您可以设置搅拌器以将场景的每一帧导出为OBJ。然后,自定义工具可以将这些文件编译为漂亮的动画格式。
阅读更多:

http://en.wikipedia.org/wiki/Morph_target_animation

http://en.wikipedia.org/wiki/MD2_(file_format)

http://tfc.duke.free.fr/coding/md2-specs-en.html

关于opengl - 如何在OpenGL中为3D模型(网格)设置动画?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18389211/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com