Skip to main content

参考基准:两个状态切换

我们的参考基准将采用简单的双状态切换作为参考。

image.png

 默认的切换对比图。图中显示了两个动画,每个动画包含两个帧,数值相同。已启用“写入默认”。

在每次测试动画层数时,层数与帧时间的关系图呈二次曲线。这意味着,随着动画层数的增加,添加额外动画层的帧时间开销会显著增加。然而,由于二次曲线的性质不是很强,因此在动画层数较少时,可以用线性图来近似。对于基本的状态切换,每增加一个动画层的额外开销约为0.01毫秒。这将作为我们比较的基准。

image.png

基本切换在未被主动切换时的帧时间与动画层数关系图。

如果我们在进行层动画时重新运行相同的基准测试,将得到如下图表。

image.png

基本切换在主动切换时的帧时间与动画层数关系图。

该图表显示,对于不断进行切换的情况,其成本比不切换时高出大约20-30%。例如,面部或眼部追踪情况即是如此。这种20-30%的额外开销在我的所有测试中都表现出一致性(如AnyState、AnyState自我过渡、多个Animator等),仅在直接使用Blend Trees时有所不同,这取决于具体的设置。