私は現在、迅速にSCNGeometryまたはMDLMeshを使用してobjモデルをスムージングしようとしています。すばやく3のオブジェクト/モデルを滑らかにする方法はありますか?
SCNGeometryで細分化とスムージングを行うための "subdivisionLevel"プロパティがあることを示す公式文書が見つかりました。ただし、期待どおりに動作していません。レベルについては
= 1-2、何もレベルについて明らかに
を変更していない= 3-5は、まだ何も明らかに変化しませんが、このアプリは以下の
を遅れているがあり、私の実験とコードのスクリーンショットです私は滑らかにしようとすることができるものは何ですか?
subdivisionLevel = 0: http://imgur.com/7BM9wp6
subdivisionLevel = 5: http://imgur.com/mipaYMP
(あなたが見ることができるように、鋭いエッジ腰や腕がまだある)
コード:
//load obj
let path = Bundle.main.path(forResource: "model_longshirt", ofType: "obj")!
let fileUrl = URL(fileURLWithPath: path)
let asset = MDLAsset(url: fileUrl)
guard let object = asset.object(at: 0) as? MDLMesh else {
fatalError("ERROR_FAILED_TO_GET_MESH_FROM_ASSET")
}
//load material
let scatteringFunction = MDLScatteringFunction()
let material = MDLMaterial(name: "baseMaterial2", scatteringFunction: scatteringFunction)
let texPath = Bundle.main.path(forResource: "model_LongSleeve_texture_3", ofType: "jpg")!
let texUrl = URL(fileURLWithPath: texPath)
let materialProperty = MDLMaterialProperty(name: "baseTexture2", semantic: MDLMaterialSemantic.baseColor, url: texUrl)
material.setProperty(materialProperty)
//attach to node
let scnGeometry = SCNGeometry(mdlMesh: object)
scnGeometry.subdivisionLevel = 5
objNode = SCNNode(geometry: scnGeometry)
objNode.geometry?.firstMaterial = scnMaterial
助けやヒントがあれば感謝します。ありがとう。
私も同じ問題に直面しています。解決策は見つかりましたか? –
残念ながら、私は最終的により滑らかな別のモデルをロードしました。 – adayoegi
私が感じたことは、この問題を引き起こしている頂点ベースではなく、シーンキットが通常の計算に直面していることです。 –