我正在尝试使用 GLKit 在 iOS 上实现一个简单的场景图,但处理原点/锚点让我很适应。要求非常简单:
- 有一个节点图,每个节点都有平移、旋转、比例和原点。
- 每个节点将上面的属性组合成一个矩阵(如果它有父节点,则乘以它的父矩阵)。
- 节点需要尊重其父级的坐标系,包括原点(即禁止平移等。子级的原点应与父级的原点对齐)
所以问题是:
需要执行哪些操作(例如translationMatrix * rotationMatrix * scaleMatrix 等)以及以什么顺序来实现对原点/锚点的正确处理?
PS - 如果您愿意发布答案,请提及您的答案是基于列还是行主要矩阵 - 这对我来说是一个常年的困惑来源。