高效的骨骼动画


11

我正在考虑为RTS游戏采用骨骼动画格式(如此处提示)。屏幕上每种模型的单独代表将很小,但会有很多!

在骨骼动画(例如MD5文件)中,每个单独的顶点都可以附加到任意数量的关节上。

在GLSL中进行插值时,如何有效地支持这一点?还是引擎在CPU上做动画?

还是引擎对每个顶点的最大关节数设置了任意限制,并对那些不使用最大数量的关节调用nop乘法?

是否有游戏在类似RTS的设置中使用骨骼动画,从而证明在集成显卡上走骨头路线时我无需担心?


+1,这是一个很好的问题。我一直想知道动画是否应该以着色语言还是在CPU上完成?
詹姆斯

使用EA的SAGE引擎(C&C 3和更高版本,BFME系列)的RTS Games使用骨骼动画,但是顶点仅绑定到一根骨骼(至少在BFME中)
Bart van Heukelom

Answers:


6

限制骨骼影响的数量很常见,是的。您可以将未使用的影响权重设置为0,也可以使用循环/提前退出机制来跳过。

至于它是否适用于RTS,我没有适合您的参考,但我想如果在屏幕上使用大量字符并且这些字符较小的话,您将需要LOD。

LODing骨骼角色与LODing其他内容几乎相同,除了您可能希望LOD骨骼影响,骨骼以及网格。

例如,低细节水平可能只使用对每个顶点具有最高影响力的单个骨骼(也称为“硬皮”)。

对于低LOD模型,您可能还会限制骨骼中的骨骼数量。

最后-考虑你是否曾经需要特写呈现的字符。您可能只想对角色进行建模,皮肤化和动画处理以达到最接近的可视距离……当然,您不想以比您将要渲染的分辨率高得多的分辨率存储所有运行时数据。您可能会发现,只需要一个非常基本的骨架和每个顶点的几个影响即可。


我希望有人可能会说:“你真的不想在一个RTS炮塔的骨头,如果你的作品是小,考虑MD3与它的关联模型功能,而不是”什么的
威尔

好吧,在那种情况下,我不会对这些类型的网格使用蒙皮,但是“骨骼”只是用于层次转换的一个奇特的名字。没有什么可以阻止您仅将网格连接到网格,而不是加权顶点。(换句话说,对于炮塔,您可能只有两个骨骼和两个网格,并且根本没有蒙皮/加重)。
JasonD 2011年

2

我不认为骨骼动画对RTS游戏有好处,骨骼动画将需要对所有角色进行额外的处理,而关键帧动画会消耗更多的内存,但是您将对大量角色使用相同的动画,而rts游戏每个角色所需的动画却很少

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.