2011-04-30 42 views
2

首先,我使用OpenGL ES 1.1而不是2.0,主要是因为我花了相当多的时间学习1.0/1.1和上午很舒服。单骨(矩阵调色板)动画与简单的旋转/零件翻译

我花了一些时间来学习使用矩阵调色板进行动画和切换项目后的齿轮我有一个问题。

最初我使用2和3骨骼动画,因为我需要某些顶点组的权重。现在......在我正在研究的新项目中,我将动画制作更多机械化的东西,因此需要超过1个骨骼或加权是不必要的。我想仍然使用矩阵调色板,其权重为100%,单个骨骼...但我不知道这是否会导致性能下降。相反,我可以将网格划分成更小的部分,并在元素绘制调用之间进行简单的平移和旋转。当然,我担心的是表现。

回答

1

TL; DR版本:尝试两种方式,看看哪一个更好。

真的,使用1-bone动画的调色板是你可以做的事情,没有太多的麻烦,并且根据不同骨骼的数量以及设备驱动程序的开销,可能会更好。

值得注意的是,在1骨骼模型中权重可以被忽略,并且得到的每顶点代码通常应该可以与单个变换相比较,以模块间接指向调色板。

当然,这取决于GL的实施,以优化权重。另一方面,骨骼的数量越多,如果没有调色板,您将不得不生成更多的绘制调用,并且对CPU /驱动程序代码征税越多。

因此,在广泛的层面上,我认为调色板每个顶点的工作量要多一些,但每个骨骼的工作量要少得多。转折点取决于平台,因为这两项成本可能会有很大差异。

+0

非常感谢您的回答,只要它能让我给出答案,您就会获得赏金。我有一种感觉,单一的骨头可能是要走的路,但我会运行一些测试,看看我能否确定哪个更好。对于调色板,理论上讲,我应该发出较少的调用请求,对吗?这假定使用glDrawElements()。 – Maximus 2011-05-04 06:51:32

+0

@Maximus:非常非常。如果你的机器人有12块骨头,那最好是1:12比例! – Bahbar 2011-05-04 07:06:24