处理SDK中模型时的性能
最終更新: 2024年6月28日
性能
更新速度
在SDK上显示模型时,性能可能会根据图形网格的绘制顺序而降低。
在Cubism模型中,图形网格从背面(画布侧)一张一张地绘制。
在画面上绘制图形网格时,如果混合方式与之前绘制的图形网格不同,SDK的性能将会下降。
因切换导致性能降低的设置如下。
- 绘制的图形网格使用的纹理
- 绘制图形网格的混合方式(通常、加算、正片叠底)
- 存在或不存在绘制的图形网格的剪贴
这些因素相互影响。
即使纹理、混合方式和蒙版图形网格相同,剪贴也会导致设置发生变化。
例如,假设您有一个使用两个纹理的模型,并且部分图形网格按以下顺序从后面排列。
[名称] | [ID] | [绘制设置] | [发生切换] |
右睫毛 | ArtMesh6 | 纹理:第二张图片 | ○ |
右眉 | ArtMesh7 | ○ | |
右脸颊 | ArtMesh8 | 混合方式:正片叠底 | ○ |
右高亮 | ArtMesh9 | 剪贴:右眼白,混合方式:加算 | ○ |
右瞳孔 | ArtMesh10 | 剪贴:右眼白 | ○ |
右眼白 | ArtMesh11 | ○ | |
左睫毛 | ArtMesh16 | 纹理:第二张图片 | ○ |
左眉 | ArtMesh17 | 混合方式:正片叠底 | ○ |
左脸颊 | ArtMesh18 | ○ | |
左高亮 | ArtMesh19 | 剪贴:左眼白,混合方式:加算 | ○ |
左瞳孔 | ArtMesh20 | 剪贴:左眼白 | ○ |
左眼白 | ArtMesh21 |
这些图形网格是从表格底部绘制的。
以这种方式排列时,若从表格底部开始计数,则绘制设置将切换11次。
如果您按如下重新排列此绘制顺序,则切换绘制设置的次数将减少到7次。
[名称] | [ID] | [绘制设置] | [发生切换] |
右眉 | ArtMesh6 | 纹理:第二张图片 | |
左眉 | ArtMesh16 | 纹理:第二张图片 | ○ |
右脸颊 | ArtMesh7 | 混合方式:正片叠底 | |
左脸颊 | ArtMesh17 | 混合方式:正片叠底 | ○ |
右睫毛 | ArtMesh8 | ||
左睫毛 | ArtMesh18 | ○ | |
右高亮 | ArtMesh9 | 剪贴:右眼白,混合方式:加算 | ○ |
左高亮 | ArtMesh19 | 剪贴:左眼白,混合方式:加算 | ○ |
右瞳孔 | ArtMesh10 | 剪贴:右眼白 | ○ |
左瞳孔 | ArtMesh29 | 剪贴:左眼白 | ○ |
右眼白 | ArtMesh11 | ||
左眼白 | ArtMesh21 |
您可以使用Cubism Viewer for OW检查图形网格的顺序和切换状态。
如果设置根据参数改变绘制顺序的变换,则很难预测切换次数。
另外,如果以下物体和每个状态的设置数量很大,会影响SDK上的性能,因此请注意不要过度使用。
- 图形网格数量
- 多边形数量
- 变形器数量
- 变形器转变的分割数
- 变形器的父子结构层数
- 为一个物体(图形网格、变形器)设置的参数数量
其中,6个影响特别大,基本上建议设置到2个。
这是因为参数的关键点之间混合的计算量随着正片叠底的增加而增加。
参考:关键点(父子结构的动作)
例如,如果为一个图形网格设置两个参数,则对每个参数进行混合计算,然后将计算结果进一步混合。
因此,混合计算量随着设置参数的增加而增加。
当参数相乘次数增加时,可以通过将其替换为融合变形来大大降低计算成本,该融合变形是一种为模型形状加算差异的函数。
此外,如果图形网格或变形器超出父级弯曲变形器的范围,则会增加处理负载并降低性能。
建立父子结构时的注意事项详见下方父子结构组合页面。
原始化速度
扩展插值是对参数的线性插值进行曲线性插值的功能,并在指定数量的关键点之间自动生成扩展插值的关键点作为实体。
因此,当对具有多个参数的物体设置扩展插值时,扩展插值追加的关键点相互之间会进行正片叠底,模型文件的大小按比例增加。
请注意,在SDK中处理扩展插值时,对运行性能影响不大,但会减慢模型的导入速度。
分辨率
如果蒙版的网格占据了显示画面的大面积,蒙版画面上的分辨率会降低,可能会丢失精细的细节。
当您放大比实际小的蒙版时会发生这种情况,因为生成蒙版的纹理的分辨率不会改变。
为避免这种情况,请避免使用大蒙版。