首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >处理动画工具数据存储的最有效/最快的方法

处理动画工具数据存储的最有效/最快的方法
EN

Stack Overflow用户
提问于 2016-04-22 20:37:28
回答 2查看 466关注 0票数 1

如果我有一堆可能是非线性但有序的值: 1,3,8,12,并且我添加了一个新的值,比如5种最好的集合类型(速度比其他任何东西都快),它可以存储在3到8之间,并给我索引,这样我就可以直接检查值后面和前面的杂念了。这是一个动画系统,我正在存储关键帧,我需要知道前面和后面的内容,这样我才能正确地插入值

目前,我使用的是一个哈希表,关键是关键帧号,它的值是我想要的位置。

因此,使用这种方法,它非常有用,在进行更改时更新关键帧,但在动画时,如果我将soem数据放在5中,则查找3和8,让我遍历整个列表来计算当前条目的索引,然后存储前一项并迭代到下一项。(更别提每次我在字典中添加东西时,它都需要按键排序才能起作用)。

只是想找些建议来解决这个相当开放的问题。

来了解一下我当前动画工具的结构:

我有一个叫做时间线的组件,这就是KeyframeProperties记录的内容。因此,在keyframe属性中,您将调用record(),它将询问它连接到的时间线是否可以记录到当前插槽中,如果可以,它将返回记录关键帧的索引,然后keyframe属性将该索引存储到它当前与动画器当前数据一起使用的字典中。当您选择播放动画时,调用timeline.play()函数,它将处理所有连接属性的迭代和调用keyframeproperty.advanceframe(int frame#)。这就是为什么我需要上一帧和下一帧,因为在不知道这一点的情况下,当frame#被传入时,就无法知道动画的下一个内插目的地应该在哪里。

示例:在4中传递,而属性中最近的两个关键帧位于3和7,动画应该将起始位置设置为第3帧数据,然后插值到第7帧0.25 (1/(7-3) = 0.25)。

EN

回答 2

Stack Overflow用户

发布于 2016-04-22 22:43:13

我认为.NET中没有任何集合/容器返回插入项的索引。至少订购的不能提供这种能力。

你的问题实际上比表面上看起来复杂得多。因为,据我所知,从您问题的标记中可以看出,您的解决方案使用了一个相当老的Mono实现,它的目标是.NET 3.5Profile。此外,由于团结能够用C#将您的C++代码转换为IL2CPP (取决于您所针对的平台),您甚至可能需要考虑C++编译器将如何对待您的代码,它是否会将您的代码向量化。所以,很难给你一个直截了当的答案,但我会给你一个机会.

如果您的数据集很小(我可以说少于几千项,这是一个相对的数字,取决于您的目标平台),那么您几乎可以使用您所选择的任何集合/容器,这不会产生太大的影响。如果是这样的话,那么我只需要使用LinkedList,因为它允许您在一个搜索操作中同时拥有要查找的项及其邻居(列表中的前一项和下一项)。在您的示例中,如果您对包含关键帧5的LinkedListNode有一个引用,您将能够通过使用LinkedListNode对象的前一个和下一个属性来检查上一个和下一个关键帧在哪里。只是方便..。

如果你有一个大的数据集;首先,什么对你更重要,插入速度还是检索速度?不幸的是,他们走的是相反的方式,所以你必须在那里做出选择。如果检索速度是您所喜欢的,那么忘记LinkedList类,它对遍历大量数据来说太慢了。但是,如果您喜欢插入速度,那么LinkedList也是一个很好的选择,因为它不必在每次向列表中添加值时对所有数据进行排序。您只需在您想要的位置插入一个项目,它所做的就是在这里和那里更改几个指针。问题是,您必须告诉它要将项目添加到何处。这意味着,您仍然需要执行搜索,以找到要插入项目的位置,该位置的开销将很高,但仍然不会像诉诸数万项那样糟糕。

如果您要以IL2CPP为目标,那么我将忽略所有这些,使用一个简单的数组,自己实现所有的搜索、插入、排序和数组调整操作。因为数组上的搜索操作很可能被C++编译器矢量化,这将给大型数据集带来很大的速度障碍。

票数 2
EN

Stack Overflow用户

发布于 2016-04-23 10:08:20

就速度而言,数组和列表或字典之间没有区别,除非您正在密集地处理大量数据和执行它们上的方法(例如,每帧100次)。所以,不要担心,只要使用任何让您更容易使用的东西,就不要做早熟优化

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36802935

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档