gpt4 book ai didi

ios - 在 Scenekit 中加载大尺寸 .obj 模型。如何在 scenekit 中自动调整模型大小?

转载 作者:行者123 更新时间:2023-11-28 12:08:28 33 4
gpt4 key购买 nike

我正在 Scenekit 中加载一个 .obj 模型。当我尝试加载像(水瓶)这样的小模型时,它工作得很好。但是当我尝试加载更大的模型(如沙发、 table )时,它加载完美,但超出了场景的边界。

在Scenekit中有没有什么办法,无论模型有多大,我们都可以在scenekit中加载模型。它应该正确地安装在场景中。请查看随附的屏幕截图以获得更好的想法。

如果您能提供一些调整大小的提示,请告诉我。

 let url = "https://s3.ap-south-1.amazonaws.com/p9-platform/product/ccbb5daa-982d-4fa1-b475-971453534686.obj"

let asset = MDLAsset(url: url as URL)
let scene = SCNScene(mdlAsset: asset)
let mesh = asset.object(at:0) as! MDLMesh
let vertexBuffer = mesh.vertexBuffers[0]
let descripter = mesh.vertexDescriptor
let submeshes = mesh.submeshes



for index in 0...(submeshes?.count)! - 1{
let submesh0 = submeshes![index] as! MDLSubmesh
let singleMesh = MDLMesh(vertexBuffer: vertexBuffer, vertexCount: mesh.vertexCount, descriptor: descripter, submeshes: [submesh0])
let geometry = SCNGeometry(mdlMesh: singleMesh)
let Node = SCNNode(geometry: geometry)
let submeshname = submesh0.material?.name as! String
let materialname = "_\(submeshname)" as! String
let nodename = submesh0.name as! String
let revisedName = nodename.replacingOccurrences(of: materialname, with: "")
Node.name = revisedName
scene.rootNode.addChildNode(Node)
}

enter image description here

enter image description here

最佳答案

SCNNode 有一个 scale 属性。我以前遇到过这个问题,基本上只是在 Maya 或 Blender 等程序中创建模型时发生。作者把它变大了,这样他们就可以让它更详细、更复杂。

无论如何,你可以尝试的是:

Node.scale = SCNVector3(0.001, 0.001, 0.001)

Node 也不应该以大写字母开头^________^

关于ios - 在 Scenekit 中加载大尺寸 .obj 模型。如何在 scenekit 中自动调整模型大小?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48990071/

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