SceneKit FlattenedClone неожиданно меняет узелIOS

Программируем под IOS
Anonymous
SceneKit FlattenedClone неожиданно меняет узел

Сообщение Anonymous »

У меня есть 3D-модель, содержащая три геометрии, как показано ниже
Изображение

Это мой код, который создает такой SCNNode из файла USDZ:

Код: Выделить всё

  private func readGeo(fn: String) -> SCNNode {
let bundle = Bundle.main
let url = bundle.url(forResource: fn, withExtension: nil)!
let asset = MDLAsset(url: url)
asset.loadTextures()
let object = asset.object(at: 0)
let node = SCNNode(mdlObject: object)
return node
}
Затем мне нужно сгладить узел, так как я хочу сделать его единой геометрией, чтобы было легче прикрепить физическое тело. Поэтому я изменил возврат на:

Код: Выделить всё

return node.flattenedClone()
Положение геометрий кажется неправильным, как вы можете видеть ниже: (видите, крышка торчит)
Изображение

Вы можете скачать образец проекта здесь: https://drive.google.com/file/d/1ewudz3 ... sp=sharing
Изменить:
I поймите, что положение подузлов изменяется после сглаживания. Изначально они имеют ненулевую координату, но после выравнивания они располагаются так, как если бы они находились в нулевой координате. Я не знаю почему

Подробнее здесь: https://stackoverflow.com/questions/793 ... xpectively

Вернуться в «IOS»