命令条目: “粒子视图” 添加或选择“缓存磁盘”。

“缓存磁盘”操作符的工作方式与“缓存”操作符非常相似,不同之处在于它可以让您将缓存存储到独立于 MAX 文件的磁盘文件中。

与“缓存”操作符相同,它允许您预先计算所有活动并将其存储在粒子系统中,以便可以快速播放或拖动动画而无需等待计算。主要区别不是使用磁盘文件,而是因为磁盘缓存的速度比内存缓存慢,没有自动更新的选项。优点是,缓存大小仅受硬盘驱动器上可用空间的限制。                    

注意若要使用“缓存磁盘”,请将其添加到要存入缓存的事件;如果要将整个粒子流存入缓存,请将其添加到全局事件。单击“选择文件”,指定一个文件名,然后单击“保存”。然后,若要创建缓存,请播放动画,或单击“更新”按钮。                

此外,由于磁盘缓存的速度比内存缓存慢,因此“缓存磁盘”没有自动更新选项。如果您更改了参数,并想要查看更改的结果,您必须单击“更新”按钮。                

提示如果遇到粒子系统相互依赖的情况,请使用“缓存”操作符,然后在可以渲染前解算模拟,尤其是如果要在网络上渲染,或要无序地渲染帧。由于粒子系统相互依赖,粒子流一次仅可以迭代一个帧。

有关缓存如何在粒子流中工作的常规背景信息,请参见“缓存”操作符主题的简介。        

界面

使用位置

在视口中播放时,或在渲染时,或在这两种情况下,将粒子运动存入缓存。默认设置为“视口”。                      

重要信息仅当在视口中和在渲染时使用相同数量的粒子时,才选择“视口/渲染”选项。换句话说,全局事件(或粒子流源)的“发射”卷展栏上的两个“数量倍增”设置必须相同。否则,会发生不可预测的结果。

范围

设置“缓存磁盘”操作符在其中操作的帧范围。默认设置为“活动段”。

  • 活动段软件仅将活动段中的帧存入缓存,活动段由“时间配置”对话框上的“开始时间”和“结束时间”设置来定义。这是轨迹栏上显示的帧范围。您也可以按住 Alt+Ctrl,并用鼠标的左、中或右按钮拖动轨迹栏来更改活动段。

  • 自定义软件仅对自定义范围中的帧进行缓存,该范围由“缓存磁盘”操作符的“开始时间”和“结束时间”设置进行定义(请参见下文)。

注意如果您仅将部分动画存入缓存,“粒子流”会按顺序计算粒子行为,没有缓存的帧则使用已缓存的数据。例如,如果您将第 0 帧到第 50 帧存入缓存,然后跳至第 60 帧,则“粒子流”会基于缓存的数据计算第 51 帧,以及基于每一前面帧计算第 52 帧到第                           60 帧。

开始/结束时间

当“范围”设置为“自定义”时(请参见上文),则为缓存时帧范围的开始帧和结束帧。默认设置为 0, 30。                      

注意帧范围时间是绝对时间,也就是说,对整个动画而言。如果您在局部使用“缓存磁盘”操作符,并且在您指定的帧范围内没有粒子出现在事件中,则粒子流不会使用缓存。

采样

确定“缓存磁盘”操作符采样和缓存动画的频率。默认设置为“每帧”。

  • 每帧软件将动画数据存入缓存的频率为每帧一次。

  • 积分步长软件在每个积分步长将动画数据存入缓存,使用由“使用位置”设置(请参见上文)指定的“积分步长”和用于流的“系统管理”卷展栏(选择全局事件)。如果“使用位置”设置为“视口/渲染”,则它会使用两个“积分步长”值中较小的那一个。例如,如果“视口”设置为“半帧”,“渲染”为“八分之一帧”,则采样率为每帧八次。                          

  • 每 N 帧软件将动画数据存入缓存的帧间隔,该间隔由 N 值指定(请参见下文)。

N

当“采样”(请参见以上说明)设置为“每 N 帧”时,确定执行缓存的帧间隔。默认设置为 5。                      

例如,当 N 设置为默认值 5 时,缓存为每 5 帧存储动画数据。                      

缓存测试结果

当将粒子数据存入缓存时,该项也将测试操作的结果存入缓存。默认设置为启用。                      

当“缓存磁盘”用作局部操作符,且下一个事件没有缓存类型操作符时,这一点很重要。为了使下一个事件工作正常,它应该从当前事件接收粒子。这些粒子由测试操作活动产生。“缓存磁盘”操作符可以记录测试活动以便在以后进行播放。                      

如果将“缓存磁盘”操作符用作全局操作符,则无需将测试结果存入缓存。这是因为系统有每个事件的缓存数据,并且无需测试结果就能跳至任意帧。                      

“缓存文件”组              

每个“缓存磁盘”操作符会将其数据存储到一系列磁盘文件中;一个磁盘文件用于一个动画帧。文件名使用 base_name####.pfc 格式,其中 base_name 是您提供的名称,#### 是具有前导零的四位数,.pfc(粒子流缓存)是文件扩展名。                                

[“选择文件”按钮]

单击此按钮可指定缓存文件的位置和基础名称。之后,基础名称会显示在按钮上。将鼠标光标悬停在该按钮上,即可在工具提示中看到整个路径和基础名称。                    

“更新和重置”组              

由于磁盘缓存的速度比内存缓存慢,因此“缓存磁盘”没有自动更新磁盘缓存的选项。如果您更改了参数,并想要查看更改的结果,您必须单击“更新”按钮。                

更新

如果您更改粒子系统中的参数,缓存数据可能会变为无效。使用该组指定的范围,单击此按钮手动更新缓存。

若要取消正在进行的更新,请按 Esc 键。

清除

使用该组指定的范围,删除缓存文件。                    

范围

设置当您单击“更新”或“清除”时,“缓存”操作符重新计算数据的帧范围。默认设置为“活动段”。

  • 活动段软件仅更新活动段中的帧的缓存,活动段由“时间配置”对话框上的“开始时间”和“结束时间”设置来定义。这是轨迹栏上显示的帧范围。您也可以按住 Alt+Ctrl,并用鼠标的左、中或右按钮拖动轨迹栏来更改活动段。                            

  • 自定义软件仅更新自定义范围中的帧的缓存,该范围由“开始时间”和“结束时间”设置来定义(请参见下文)。                            

开始/结束时间

当“范围”设置为“自定义”时(请参见上文),更新范围的开始帧和结束帧。默认设置为 0, 30。                    

更新视口

启用时,在手动更新缓存的过程中,动画会在视口中播放。禁用该项可以禁止在手动执行缓存过程中在视口中播放动画,这能提高缓存进程的速度,特别是大型的或复杂的粒子系统。默认设置为启用。                    

全部更新

更新当前流中所有“缓存磁盘”操作符的缓存。使用此选项可以避免在更改参数(该参数会影响整个流)后必须分别更新每个缓存。                    

全部清除

删除当前流中所有“缓存磁盘”操作符的缓存文件。                    

从缓存排除数据

防止粒子流将指定的动画数据保存在缓存文件中。启用某一选项可从缓存排除相应类型的数据。数据类型为:图形、脚本数据、缩放、材质 ID、贴图和旋转。                      

使用这些选项有助于减小缓存文件的大小,尤其是当排除的数据将使用后缓存操作符计算时(请参见下文)。通常图形数据占用的存储最多。如果粒子图形是由后缓存操作符定义的,则无需将数据保存在缓存文件中,因为无论如何该数据都将被忽略。                      

使用后缓存操作符

允许在缓存操作后应用操作符,因此这些操作将不会存储在缓存中。启用该选项之后,单击“按列表添加”打开一个对话框,该对话框列出了当前流中所有会影响行为的操作符,然后从对话框中选择操作符。此后,它们将出现在“后缓存操作符”列表中。                      

使用后缓存操作符可微调预先计算的粒子系统。有时大多数计算都用于粒子移动(由于与参考对象的碰撞以及可能的粒子间碰撞)。在这种情况下,最好先计算运动,并将其存储在缓存文件中。其他粒子方面(大小、图形、颜色、贴图、方向)可以在存入缓存后计算,并稍后应用。                                            

后缓存操作符

列出由“使用后缓存操作符”指定的操作符。                  

按列表添加

打开可从中选择操作符的对话框(将在缓存运行后应用该操作符的影响),因此这些操作将不会存储在缓存中。                  

移除

从“后缓存操作符”列表中删除所有高亮显示的操作符。                  

内存限制

为了获得最佳性能,“缓存磁盘”操作符一直作为内存中缓存的一部分。此参数确定了 RAM 缓存的最大大小。如果总缓存大小超过内存限制值,则操作符仅在 RAM 中保留最新的帧。一旦特定帧的缓存信息可用,它将以扩展名为 .pfc 的文件形式写入到磁盘上。                  

清除内存

清除 RAM 缓存并强制操作符从文件(如果可用)中获取缓存数据或重新计算数据(如果缓存文件不可用)。                  

全部清除

执行所有“缓存磁盘”操作符的“清除内存”函数(请参见上文)。                  

,