gpt4 book ai didi

ios - 场景套件。哪条路向上?

转载 作者:搜寻专家 更新时间:2023-10-30 21:53:29 25 4
gpt4 key购买 nike

似乎大多数 3D 创作应用程序都使用 Z 作为“向上”轴。而 SceneKit 使用 Y 作为“向上”轴。 SceneKit 允许您将场景加载为 Collada .DAE 文件。通过以下任一方式加载场景时:

SCNScene(named: String?, inDirectory: String?, options: [NSObject : AnyObject]?)

SCNSceneSource(URL url: NSURL!, options: [NSObject : AnyObject]!)

您可以指定选项,包括 SCNSceneSourceConvertToYUpKey 和 SCNSceneSourceConvertUnitsToMetersKey。

相应地设置这些,当我将它们添加到我自己的场景中时,我希望各种节点能够转换和缩放,这些场景是从加载场景中的节点构建的。但是这些选项似乎没有效果。

let myScene = SCNScene(named: "Scene.dae", inDirectory: nil, options: [SCNSceneSourceConvertToYUpKey:true, SCNSceneSourceConvertUnitsToMetersKey:25.4])

我是否误解了这些选项参数的含义?

最佳答案

SceneKit 不会直接在 iOS 上加载 DAE(或 ABC)文件——它会从私有(private) Apple 格式加载场景,当您在项目中包含场景文件时,Xcode 会自动将其转换为该格式。此转换的一部分是转换上轴的选项。

我不认为当您简单地将 DAE 文件作为捆绑资源包括在内时,该选项会被公开。 (可能是 a good bug to file。)但是,无论如何,最好使用新的 SceneKit Assets 目录功能——将您的 DAE 文件和任何外部资源(纹理)放入带有 .scnassets< 的文件夹中 扩展名,Xcode 将在构建时将它们一起处理以针对目标设备进行优化。然后,当您在 Xcode 导航器中选择该文件夹时,您将获得一个用于场景构建选项的编辑器:

SceneKit Asset Catalog options

那里的所有框都可以检查。 :)(因为第一个没有解释:交错意味着组织几何的顶点数据,这样你就可以获得更好的 GPU 内存局部性,从而在顶点处理期间减少缓存未命中,这对于嵌入式设备的性能很重要。)

嗯,不过我在里面没有看到任何关于单位的信息。可能是 another good bug to file .

还有另一种选择——所有 SceneKit 对象都实现 NSSecureCoding 协议(protocol),因此您可以在 OS X 上加载和预处理您的场景,然后使用 NSKeyedArchiver 编写它出去。将生成的文件作为捆绑资源包含在您的 iOS 项目中,Xcode 不会对其进行预处理(它已经尽可能地压缩和优化)——如果您使用 .scn 命名它扩展,您可以使用所有 SCNSceneSCNSceneSource 方法来加载它,就像加载(预处理的)DAE 文件一样。

关于ios - 场景套件。哪条路向上?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24739248/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com