Добавить текстуру к какой-либо части 3D-модели - PullRequest
1 голос
/ 30 сентября 2019

Я столкнулся с одной проблемой при внедрении ARKit / SceneKit. Я хочу добавить текстуру только к некоторой части 3D-модели (например, к 3d-модели автомобиля, где я хочу изменить текстуру колес и зеркала).

let dragonScene = SCNScene(named: "art.scnassets/Dragon_Baked_Actions_fbx_6.dae")!
let position = anchor.transform

for childNode in dragonScene.rootNode.childNodes {
    self.dragonNode.addChildNode(childNode)
}

let scale:Float = 0.01
self.dragonNode.scale = SCNVector3(x: scale, y: scale, z: scale)
self.dragonNode.position = SCNVector3(x: position.columns.3.x, y: position.columns.3.y, z: position.columns.3.z)

self.sceneView.scene.rootNode.addChildNode(self.dragonNode)

let material = SCNMaterial()
material.diffuse.contents = UIImage(named: "Fire_A_2.png")
material.isDoubleSided = true
material.diffuse.wrapT = SCNWrapMode.repeat
material.diffuse.wrapS = SCNWrapMode.repeat
material.isDoubleSided = true
self.dragonNode.childNodes.first?.geometry!.replaceMaterial(at: 0, with: material)

1 Ответ

0 голосов
/ 01 октября 2019

Если каждая часть вашей модели представляет собой отдельный 3D-объект, вы можете легко изменить текстуру для него в XCode. Но если у вас есть мономодель (так называемая модель one-piece), вы можете изменить текстуру определенной ее части только с помощью UV-картирования (вы можете сделать это в 3dsMax, Maya, Cinema4D, Blender и т. Д.).

Вот как выглядят текстуры с УФ-отображением:

enter image description here

enter image description here

Учтите, что редактор Xcode Scene graph вообще не подходит для UV-картографирования. В Xcode вы можете применять только готовые текстуры с UV-отображением.

...