Qt Quick 3D 物理引擎烹饪

当将网格用作碰撞形状时,需要对其进行处理并转换为高效碰撞检测的数据格式。这被称为“烹饪”。在使用这三种形状类型之前,需要对其进行烹饪,即 ConvexMeshShapeTriangleMeshShapeHeightFieldShape。烹饪发生在使用这些形状的模拟的第一帧上。这种烹饪可能会产生可感知的性能开销,因此为了实现更快的加载时间,可以预先烹饪网格并直接加载。有两种方式可以实现这一点,即使用缓存目录或烹饪工具。

缓存目录

要使用缓存目录,请将环境变量 QT_PHYSICS_CACHE_PATH 设置为所选择的目录。当应用程序第一次运行时,所有使用的网格都将在此目录中烹饪并存储。下次应用程序运行时,将直接从磁盘读取已烹饪的网格而不是重新烹饪。

烹饪工具

另一种方式是使用 cooker 工具。构建它后,只需使用网格或高度场图像作为输入参数调用工具

cooker input.mesh

cooker input.png

如果输入是网格,它将生成两个文件

  • input.cooked.tri
  • input.cooked.cvx

一个是已烹饪的三角形网格,另一个是已烹饪的凸网格。然后,可以将这些网格简单地用作 TriangleMeshShape::sourceConvexMeshShape::source 的源,而无需进行烹饪。同样,如果输入是图像文件,则将在 HeightFieldShape::source 属性中生成名为 input.cooked.hf 的高度场,然后可以通过在属性中引用它来加载。

© 2024 Qt Company Ltd. 本文档贡献的版权属于其各自的所有者。本提供的文档在 GNU 自由文档许可协议第 1.3 版 的条款下提供,由自由软件基金会发布。Qt 和相应的标志是芬兰和/或其他国家全球 The Qt Company Ltd. 的商标。所有其他商标均属于其各自所有者的财产。