I use SCNMorpher in iOS SceneKit to convert between different facial expressions in a 3D face model exported as a DAE file from Blender. Morphing itself works great.
Before I first call setWeight:forTargetAtIndex:in morpher, the model will be done smoothly, if desired.
But as soon as I make this call, all the edges of the polygon become visible, which is very unattractive. This is the same difference as the transition from "smooth" to "flat" rendering in Blender itself.
Images follow: first, smooth rendering, preliminary morphology, then flat rendering, post-morph.


( ), litPerPixel .
, / SCNMorpher, -, . , - , .
, , . ( , , , , , , ).
:
faceNode.geometry = faces.rootNode.childNodeWithName("neutral", recursively: true)!.geometry
scene.rootNode.addChildNode(faceNode)
var morphs: [SCNGeometry] = []
let moods: [String] = "mood1 mood2".componentsSeparatedByString(" ")
for mood in moods {
let moodFace = faces.rootNode.childNodeWithName(mood, recursively: true)!.geometry!
morphs.append(moodFace)
}
let morpher = SCNMorpher()
morpher.targets = morphs
faceNode.morpher = morpher
morpher.setWeight(0.5, forTargetAtIndex: 0)