SceneKit:如何更新 SCNGeometrySource
SceneKit : how to update SCNGeometrySource
我正在做一个非常棒的 iOS 项目。我决定使用 sceneKit 作为主要框架。
我遇到了一个问题:
当我在节点上应用动画时,如何更新节点的 SCNGeometrySource?
这是预期的行为。移动节点时,它不会更改附加几何对象的点数据。变换也是如此。
相反,几何(和几何源)中的点数据始终与几何本身相关。
渲染场景时,节点的位置和变换(及其父节点的位置和变换)用于创建单个变换矩阵,该矩阵将几何体的位置和法线从 "model coordinate space" 变换到"view coordinate space" 并将其投影到屏幕上1.
1:这是一个轻微的简化,但在描述这种转换的工作原理时不需要像 OpenGL 那样技术性强。如果您真的想了解所有相关步骤,可以搜索 "clip space"、"perspective division" 和 "normalized device space" 等关键字。
我正在做一个非常棒的 iOS 项目。我决定使用 sceneKit 作为主要框架。 我遇到了一个问题:
当我在节点上应用动画时,如何更新节点的 SCNGeometrySource?
这是预期的行为。移动节点时,它不会更改附加几何对象的点数据。变换也是如此。
相反,几何(和几何源)中的点数据始终与几何本身相关。
渲染场景时,节点的位置和变换(及其父节点的位置和变换)用于创建单个变换矩阵,该矩阵将几何体的位置和法线从 "model coordinate space" 变换到"view coordinate space" 并将其投影到屏幕上1.
1:这是一个轻微的简化,但在描述这种转换的工作原理时不需要像 OpenGL 那样技术性强。如果您真的想了解所有相关步骤,可以搜索 "clip space"、"perspective division" 和 "normalized device space" 等关键字。