objective-c – 使用SceneKit从DAE / COLLADA中提取动画顶点
使用Mac OS X上的SceneKit加载COLLADA(DAE)文件,您可以通过遍历SCNNode:s及其各自的SCNGeometry:s树轻松获取所有几何体,并使用[geometry geometrySourcesForSemantic:SCNGeometrySourceSemanticVertex]提取顶点数据.
但是,给定一个包含动画对象的DAE文件 – SceneKit是否能够在动画中给定给定时间每个顶点的确切位置,还是可以从关联的CAAnimation对象中提取所有动画数据? 我的用例是我想使用SceneKit导入DAE文件,但是使用我自己的渲染管道来完成其他任务. 澄清 1)从关联的动画中获取并解析关键帧 2)让SceneKit评估给定时间的场景,并给我预先计算的顶点(等)坐标 我在用例中的目标是#2,但是如果我能找到SceneKit#1使用的关键帧格式的文档也是可以接受的. 我的问题是,对于#1,我没有设法进一步挖掘以下内容: SCNNode.animationKeys为给定的SCNNode提供动画密钥,[SCNNode animationForKey:key]给定CAAnimationGroup对象,CAAnimationGroup对象通过CAAnimationGroup.animations从CAAnimationGroup对象获取. CAAnimation对象(对于我的DAE文件)是CAKeyframeAnimation的实际实例,我从中获取CAKeyframeAnimation.values: 关键帧(1/40):< 00000000 0000f0bf 00000080 d9956d3c 000000a0 0e32a13c 00000000 00000000 00000020 636772bc 00000020 290000ef3f 00000000 0f7ecebf 00000000 00000000 00000020 1324a1bc 00000000 000007 0000 00 00000020 000000ef 00000000 00000000 00000000 00000000 00000000 00000000300> 00000000 00000006900 00000000 0000f03f> 等等.所以为了解决上面的#1方法,我需要找到用于这些关键帧的格式. 解决方法
我的理解是你需要从SceneKit中检索节点(对象位置)几何(顶点,法线……)动画信息 – 然后将这些信息转换为引擎的表示,然后播放动画并转换引擎中的顶点.
SceneKit将使用SCNNode / SCNGeometry API为您提供几何和层次结构信息. 您可以使用CoreAnimation的CAKeyframeAnimation / CAAnimationGroup API检索动画的各个关键帧. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |