缓存对象---【魔立方】
缓存对象用于缓存在X粒子系统。您缓存在RAM中的粒子数据,并将其保存到磁盘随场景文件保存时的情景。
重要提示:你只需要在一个场景中的一个缓存的对象!虽然你可以添加多个,他们对相同的数据和多个高速缓存对象的所有工作,不推荐,因为它可能会导致混乱(见“ 场景中的多个缓存对象下面')。
设置
使用缓存
勾选后,场景中的对象都将使用缓存的粒子数据,如果有的话。每当高速缓存是内置或与保存的缓存数据的场景被载入此开关会自动检查。
如果该开关处于未选中状态时,不使用的高速缓存,即使它被保存在内存中。你可以回去使用缓存再次选中该按钮。此开关不可用,如果没有缓存已经建成或从磁盘中加载。它一旦被启用为你载入一个保存的缓存数据的场景文件,或你建立的缓存。
自动更新信息
如果选中,则自动upates缓存的详细信息。
缓存压缩对构建
在X-粒子1版本,缓存被完全保存在内存中,并保存到磁盘的场景文件(可能会导致一些非常大的文件大小)的一部分。在版本2中,发射器的数据保存到磁盘中一个单独的文件,它被压缩,以节省空间,如果该开关被选中。从其他对象缓存数据仍然保存在场景文件。
书写格式
X-粒子可以保存在任何自己的本机格式或RealFlow的BIN格式的粒子数据,这样你就可以根据需要将数据导出到RealFlow的。它也可以用于高速缓存的对象导入RealFlow的BIN文件,但看到下面的注释了这一重要信息。
重要!
当缓存文件发射器的名字被用来命名的文件。因此,如果在场景多个发射器是 至关重要的,它们具有唯一的名称!加载高速缓存时,同样适用于RealFlow的BIN文件,高速缓存对象将寻找开始与发射器名的文件名 (可以是RealFlow的BIN或XP缓存文件)。因此,如果读取或写入缓存文件(或RealFlow的BIN)发射器的名字是它非常重要的工作始终。
夹
其中,发射的数据文件存储在磁盘上的文件夹。
读/解压缩缓冲区限制(MB)
在缓冲区中的兆字节的最大尺寸用于保存缓存中的数据在未压缩状态。
构建缓存
点击此按钮创建缓存(见“ 构建高速缓存 “下面有详细介绍)。你会被要求确认这一点,如果缓存在内存中已持有。
清空缓存
单击此按钮将删除内存中缓存并释放所使用的内存。你会被要求确认这一点,如果缓存在内存中已持有。它不会从磁盘中删除缓存中的数据。要删除已保存的数据,只需保存修改后的场景文件的清空缓存,并覆盖旧的。
要再次使用缓存,你将必须点击“生成缓存”按钮,或从磁盘重新装载场景,如果你清空缓存后未保存场景。
详细
关于高速缓存信息会显示在下面的这个文本区域。看到的信息,如果它是不可见的,或者如果需要更新,请单击“刷新缓存详细信息”按钮。
刷新缓存详细
单击此按钮将更新缓存“详细信息”区域。
使用缓存对象
缓存有几个优点:
- 它可以让你向前和向后擦洗时间轴
- 可以运行一个动画一次,然后使用高速缓存中,这是一个复杂的动画快得多回放
- 缓存保存到磁盘中的场景文件,并重新加载,当你再次加载场景文件
- 渲染过当的网络中,使用缓存可以防止不连续性,从不同的机器上的渲染的帧,因为所有的机器都将使用相同的缓存数据
场景中的所有'生成器'对象都可以缓存。这是发射器,生成器,精灵,斯金纳和跟踪物体。默认情况下,当你缓存场景所有这些对象被缓存,但你只能选择特定的对象,以通过禁用那些你不希望在对象管理器缓存的缓存。
缓存对象图标
在对象管理器缓存对象的图标可以有三种颜色之一,向您展示在任何时候缓存的状态。这些颜色是:
- 蓝 - 默认颜色,表示高速缓存尚未建立(或从一个场景文件中未装入保存的高速缓存数据)
- 黄色 - 高速缓存已建成并是可用的,但没有使用
- 红色 - 高速缓存已建成并正在使用中
工作流
通常的流程是先通过点击“生成缓存”按钮,以填补缓存。一旦缓存被装满时,“使用高速缓存”开关变为可用,并会自动打开(选中)。打开此开关将强制缓存对象在场景中使用的高速缓存的粒子数据的来源。一旦你很高兴与缓存的动画,您可以将场景保存到磁盘,它会自动保存缓存的数据与它一起。
构建缓存
要构建的缓存,只需点击“生成缓存”按钮。如果您已经缓存中的数据,您会被要求确认是否要覆盖现有数据。缓存对象将缓存每个缓存对象中的场景,在该场景中的每个帧。(注:这是残疾人在对象管理器将不被缓存的对象。)一个小对话框,显示缓存建设的进度将出现。
如果你只有很短的场景少数粒子和几个对象缓存这个盒子可能只是暂时可见。对于更长或更复杂的场景,你可以通过单击对话框中的“取消”按钮停止缓存建设。当然,如果你这样做,不是所有的场景都将被缓存,当你玩场景发回它会停在该帧,你取消了缓存建设。
当完成了高速缓存对象将显示缓存中的某些信息,包括可高速缓存的对象的数目,所用的总的RAM,和缓存的帧的数目。
缓存对象的图标会变成红色,一旦缓存已经建成,告诉你,缓存已经建成并正在使用中。
从缓存中排除的对象
如果你想防止某些对象被缓存,简单地禁用它们在对象管理器。
Empyting缓存
如果你想停止使用缓存,你可以简单地取消选中“使用缓存”按钮。这将关闭缓存对象图标黄色,以指示该缓存可用,但不被使用。您可以选中“使用缓存”开关再次使用缓存。
要删除内存中缓存,并释放所用的内存,点击“清空缓存”按钮。您会被要求确认是否要做到这一点。请注意,这不会删除磁盘上保存的缓存数据,直到您保存场景文件。一旦缓存被清空,缓存对象图标会变成蓝色。
问题要注意
项目设置帧速率与渲染设置帧率
您可以在两个不同的地方在电影的帧速率 - 项目设置和渲染设置。如果这些都是不同的,你可能会得到混乱的结果。
举个例子,假设你在项目设置中设置每秒帧数为25,场面长度为200帧。当您建立高速缓存,X-粒子将缓存201帧(0〜200包)。这是符合市场预期。然而,在渲染设置默认的帧频为30。如果你选择从“框架范围”中选择“所有帧”来渲染所有的帧,然后渲染的图片浏览器,影院将渲染241(不是201)的帧。这没有多大意义,但缓存将只包含201帧,因此在帧202所有的粒子会出现冻结,因为没有缓存的数据帧200后。
只是意识到这个问题,并避免它确保你设置的帧速率是在这两个群体中的设置相同。为方便起见,你可以在在“设置帧速率”按钮,这样做系统对象。
场面与一些对象缓存和一些不缓存
如果缓存的对象是在对象管理器禁用它不会被缓存。你应该知道,一个场景中的某些对象不会缓存是很好的开发和测试目的,但可能导致对最终的渲染问题。
考虑这样一个场景,你有两个发射器,其中的第二个被禁用。当您建立高速缓存的第一个发射器缓存,但第二个发射器是没有的。然后,再次启用第二个发射器。现在,你有哪一个对象被缓存的场景,另一个则不是。当缓存对象“使用高速缓存”开关进行检查,每个对象被指示使用其缓存数据。但第二个发射器没有任何缓存的数据一起工作,以便将工作正常 - 也就是说,因为如果它没有被缓存。
为什么会造成这样的问题吗?对于一件事,如果你再保存该文件,认为它是所有缓存的,其实你只保存缓存数据的排放国之一。这可能 - 或可能不 - 造成问题,尤其是当渲染在网络上。
更重要的是,尽量重复这个练习与联系残疾人发射一个Sprite对象。你会发现,构建高速缓存连接到发射器禁用了Sprite对象将不会被任何缓存后,因为它没有粒子数据缓存时发生的一起工作。现在重新启用的发射极。你所期望的发射器正常工作(这是这样,即使你看不到画粒子),但Sprite对象不起作用。这是因为,高速缓存对象已经告诉它使用其缓存...但它不具有一个,因为它不得不在了高速缓存,发生无粒子的数据来使用。
如果你陷入这种难题,最容易的解决办法是清空缓存并重建它。
场景中的一个以上的高速缓存对象
您可以添加多个缓存对象,但不建议这样做。什么都不会出问题,但在运行中被严重混淆高速缓存状态的风险。
假设有一个发射器和一个高速缓存对象,并且所述场景被缓存。现在,添加另一个缓存中的对象。新的对象不知道已经存在的缓存任何东西。所以,现在你有一个红色的缓存对象和一个蓝色的 - 它会很容易二者混淆。但是假设你使用的新对象清空缓存。这将工作,但它不会警告你首先因为它认为有在内存中没有缓存。所述第一对象保持红色虽然,表示高速缓存仍然存在,并且在使用中,当实际上缓存已被删除。你可以看到的可能性混乱!
记住:只有一个场景中的高速缓存。添加另一个缓存对象不创建额外的缓存。缓存对象仅仅是提供了一种方法来管理高速缓存的数据。
删除缓存对象从场景
假设你有一个场景,一个发射器和一个缓存对象。您已经缓存了场景,并使用高速缓存。然后你删除缓存对象。会发生什么?
好了,不多。发射器,生成器等的高速缓存对象是存在于作为对象的一个整体管理器 - 它是要记住,构建和清空高速缓存,或者从加载或保存到磁盘的工作,是全部由单个对象的重要缓存。如果没有缓存的对象,你会在每一个单独的对象建立并启用缓存 - 耗时且容易遗漏一些人出来。
因此,在上述情况下,删除缓存对象不删除缓存数据。问题是,现在有没有办法重建缓存或清空或停止使用。你怎么解决这个问题?
答案很简单:添加一个新的缓存对象。当然,新的对象不知道现有的缓存内容。只要新的高速缓存对象而言,没有高速缓存。为了解决这个问题,你只需要重建缓存(它会自动删除已存在的)。然后缓存对象“知道”有关缓存再次,可用于为正常。
缓存与X-粒子和动态场景
如果你有两个X-粒子和动力学的场景,并且要同时缓存,我们建议您缓存的X粒子,再动态。反过来可能(或可能不)导致在于X-粒子的问题可能不能够在所有控制粒子,如果动态特性的第一高速缓存。在某些情况下,这可能无法正常工作,您可能需要缓存动态,再X粒子。
缓存粒子的思考
如果缓存中的发射器生成粒子的思考,也有一些问题需要注意的。
当使用高速缓存,思维粒子被重新从缓存的X-粒子数据中的每一帧。这就导致了一个问题:因为在思考粒子与X粒子发射极之间的优先级差异,思维粒子的行为有点古怪 - 尝试缓存的发射器生成TP和回放,你会看看会发生什么。为了制止这种“时忽略缓存粒子速度”开关发射器的思路粒子部分打开。
这将停止古怪的行为,是所有你需要做的,在大多数情况下。使用Pyrocluster时是一个例外。Pyrocluster需要的粒子速度为它的内部计算,因此,如果速度不可用,Pyrocluster将不能正确地渲染。为了避免这种情况,关闭和打开“确保匹配坐标',当缓存忽略粒子的速度”。缓存会再与TP和Pyrocluster正常工作。
操纵缓存
你可能想尝试的东西就像克隆了的MoGraph克隆器缓存中的数据或处理以其他方式缓存。如果你这样做,它可能工作......也可能不会。具体来说,虽然缓存是稳定的,否则,如果你做这样的事情崩溃是可能的。
“官方”的立场是,你不应该做这样的事情来缓存数据,这是有专门让贴切通过网络或允许在时间轴上的动画擦洗。如果你做不自然的事,你是你自己!
其他点
还请注意以下几点:
- 一旦你已经加载,并且使用的是高速缓存,任何更改您对发射器和生成器等物件被忽略 - 例如,如果你改变粒子的速度,你不会看到任何改变,直到你关闭缓存或再新建它
- 缓存可以占用很多的内存 - 在更多的粒子,你有更多的缓存对象,时间越长,场景,更多的内存被占用
- 填充缓存是比打在编辑器中的动画,因为动画没有显示在屏幕上,当缓存被填充稍快
- 在磁盘缓存中的场景文件可能会很大,需要几秒钟的加载或保存