gpt4 book ai didi

SceneKit:如何控制导入资源的大小,一个DAE文件创建了巨大的SCNNode,而另一个则创建了 "normal"

转载 作者:行者123 更新时间:2023-12-02 22:09:01 25 4
gpt4 key购买 nike

一位设计师提供了 attached two DAE files创建于Cinema 4D .

这两个资源在 Cinema 4D 中的大小相当。两个 DAE 文件都是通过相同的导出过程生成的。

但是,将 DAE 文件导入 SceneKit 场景会产生不同的结果。

Chango.dae 以“正常”尺寸导入,边界框约为 3x4x3。

Tiki.dae 以巨大尺寸导入,边界框约为 155x325x140。它在 C4D 中的尺寸约为 122x283x142。

问题:

1) 如何确保资源“适合”SceneKit 场景?您是否应该使用SCNNode的“scale”属性来缩小 Assets ,或者您是否应该要求设计者将 Assets 制作为一定大小?在 SpriteKitUIKit 中,这很简单。资源大小与其屏幕大小直接相关(例如,20x20 图标大约需要那么多屏幕空间,具体取决于分辨率)。但是,SceneKit 的类比是什么?如果您希望资源适合 1x1x1 SCNNode,您会要求设计师将资源制作成多大尺寸?

2) 如果您的资源对于场景来说太大,您如何缩小它?例如,在 UIKit 中,您可以使用 ScaleAspectFit 之类的工具缩放图像以适合 UIView。似乎没有 SCNNode 的类似物。使用 SCNNode 的 scale 属性会更改外观,但不会更改资源的边界框。甚至改变外观也不精确。例如,对于 Tiki.dae,资源的原始高度(如边界框所示)为 324.36。但是,如果将 Y 比例设置为 0.01,高度不会变为 ~3.24。它变得小于 3,您可以通过将其舒适地安装在高度为 3(半径为 1.5)的球体中来证明这一点。

最佳答案

如果您打开 Collada 文件,您会发现在一种情况下距离以米表示:

Chango.dae

<unit name="meter"/>

在另一种情况下,它们以厘米表示:

Tiki.dae

<unit meter="0.01" name="centimeter"/>

因此,值 1 表示一个文件中为 1m,另一个文件中为 1cm。这是一个 Assets 问题,您可以在 Cinema 4D 中修复,或者通过手动编辑 Collada 文件来修复。您还可以使用convertUnitsToMeters在加载时转换单位的选项。

关于SceneKit:如何控制导入资源的大小,一个DAE文件创建了巨大的SCNNode,而另一个则创建了 "normal",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39358586/

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