我正在开发一个增强现实应用程序,该应用程序使用网格进行物理和遮挡。网格是不规则形状的几何体,由围绕相机的许多顶点组成。
要使网格具有正确的物理形状,我必须在创建SCNPhysicsShape.ShapeType.concavePolyhedron
时添加SCNPhysicsShape
选项,其他选项是在形状周围绘制边界框,这使得物理不可能,因为相机位于内部网格。
这很好,但是性能很差。有什么办法可以提高这一过程的效率?
答案 0 :(得分:0)
对于物理引擎而言,针对多个简单(凸)几何体进行碰撞测试要比对单个,大型,复杂,凹形几何体进行碰撞测试要容易得多。
让问题看起来更简单:如果要为碰撞检测的典型空间建模,则不要创建中间具有凹长方体形状的几何图形,而是创建四面墙,一面地板和一顶天花板,分别使用429 Too Many Requests
或SCNPlane
。
对于相机周围的一组更复杂的物理交互表面,只需扩大此想法即可。建立大致与您的视觉几何形状匹配的冒名顶替者形状的排列(理想情况下使用SCNBox
,SCNBox
或其他原始几何形状),然后使用init(node:options:)
将其变成物理形状。< / p>