SceneKit didApplyAnimationsAtTime 计算时间
SceneKit didApplyAnimationsAtTime calculation time
您好,我正在尝试计算我的渲染器 运行 动作和动画所花费的时间。
据我了解:https://developer.apple.com/documentation/scenekit/scnscenerendererdelegate
rendererDiDSomething 中的时间 属性:如果您的游戏需要时间在屏幕上呈现,则每次回调中的时间应该不同。
我有一个包含动画的复杂场景,我可以使用 SceneView 统计信息看到动画每帧占用大量资源。但是当我在回调中检查时间 属性 时,它们都是一样的。
我还尝试计算帧之间的时间差,它总是 0.0
我在这里错过了什么?
片段说明:
func renderer(_ renderer: SCNSceneRenderer, updateAtTime time: TimeInterval) {
print(time)
}
func renderer(_ renderer: SCNSceneRenderer, didApplyAnimationsAtTime time: TimeInterval) {
print(time)
}
func renderer(_ renderer: SCNSceneRenderer, didRenderScene scene: SCNScene, atTime time: TimeInterval) {
print(time)
}
谢谢!
我认为所有具有 time
参数的 SceneKit 的 renderer()
实例方法向我们显示相同的值,因为这个时间是由 [= 提供的系统时间(以秒和毫秒表示) 12=] Double class.
的类型别名
看来我们无法在这个API中找出渲染循环中的子帧时间是什么,比如评估约束的时间恰好发生,或应用动画时。
您好,我正在尝试计算我的渲染器 运行 动作和动画所花费的时间。 据我了解:https://developer.apple.com/documentation/scenekit/scnscenerendererdelegate
rendererDiDSomething 中的时间 属性:如果您的游戏需要时间在屏幕上呈现,则每次回调中的时间应该不同。
我有一个包含动画的复杂场景,我可以使用 SceneView 统计信息看到动画每帧占用大量资源。但是当我在回调中检查时间 属性 时,它们都是一样的。 我还尝试计算帧之间的时间差,它总是 0.0
我在这里错过了什么?
片段说明:
func renderer(_ renderer: SCNSceneRenderer, updateAtTime time: TimeInterval) {
print(time)
}
func renderer(_ renderer: SCNSceneRenderer, didApplyAnimationsAtTime time: TimeInterval) {
print(time)
}
func renderer(_ renderer: SCNSceneRenderer, didRenderScene scene: SCNScene, atTime time: TimeInterval) {
print(time)
}
谢谢!
我认为所有具有 time
参数的 SceneKit 的 renderer()
实例方法向我们显示相同的值,因为这个时间是由 [= 提供的系统时间(以秒和毫秒表示) 12=] Double class.
看来我们无法在这个API中找出渲染循环中的子帧时间是什么,比如评估约束的时间恰好发生,或应用动画时。