我的 SCNScene 包含动画对象(。 dae 文件),并且 SCNRender 使用 openGLContext 初始化。 当我将动画场景设置为此渲染时,我看不到动画,但是当我将动画场景设置为 SCNView 时,我会看到动画。
我如何设置渲染:
Mechanism
据我所知,OpenGL只能绘制对象,它对 .dae 文件中的动画设置一无所知
有人可以解释我如何使用开放式文件初始化 SCNRender 来绘制动画场景吗?
答案 0 :(得分:0)
在调用以下函数时似乎:
var globeTime:TimeInterval = 0
time 参数非常重要。在我刚离开它之前没有动画。如果你用CFAbsoluteTimeGetCurrent()设置它,你似乎只能得到一个动画(我刚测试过它。我的游戏英雄有射击动作和行走动作,并设置 atTime 使用CFAbsoluteTimeGetCurrent(),只显示行走的那个。)
然而,我们的情况有点不同。就我而言,我还有一个SCNView渲染英雄的视角。因此,为了运行所有动画,我创建了一个globe变量:
func renderer(_ aRenderer: SCNSceneRenderer,
updateAtTime time: TimeInterval) {
globeTime = time
//...
}
并将当前时间保存在SCNView的渲染器功能中:
//...
renderer.render(atTime: globeTime, viewport: viewport,
commandBuffer: commandBuffer,
passDescriptor: renderPassDescriptor)
最后将它传递给我的SCNRender。
SELECT "Live" AS source, a.date, a.name, a.id, a.trn
FROM archive AS a JOIN live AS l
ON a.name = l.name AND a.id = l.id AND a.trn = l.trn
UNION ALL
SELECT "Archive" AS source, a.date, a.name, a.id, a.trn
FROM archive AS a
WHERE NOT EXISTS(
SELECT * FROM live AS l
WHERE a.name = l.name AND a.id = l.id AND a.trn = l.trn
)
这完全解决了我的问题。