SCNMaterial文本没有出现在带有图像的SCNMaterial上

时间:2016-02-11 22:37:59

标签: ios swift scenekit scnnode

我有一个SCNNode(由SCNPlane组成),上面有图像,我想在图像上放置文字。我知道SCNNode可以有不同的材料。我的问题是我可以在SCNNode上加载图像,但加载时文本不会出现。我的代码看起来像这样:

let mat = SCNMaterial()
let mat2 = SCNMaterial()
let node = SCNNode(geometry: SCNPlane(width: 6, length: 9))

mat.diffuse.contents = imgName
mat2.diffuse.contents = strName

node.geometry?.firstMaterial?.locksAmbientWithDiffuse = true
node.geometry?.materials = [mat, mat2]

(imgName是UIImage,strName是字符串)

如果我尝试在图像之前加载文本([mat2,mat]),我只会得到一个空白的平面。我在准备SCNMaterial时错过了一步吗?

1 个答案:

答案 0 :(得分:3)

指定

node.geometry?.materials = [mat, mat2]

你说节点的第一面应该有材质mat,第二面应该有材质mat2(依此类推第3,第4,第5,第6等等因为你正在使用SCNPlane,所以应该是它的正面和背面。

将您的文本合成在SceneKit外部的图像上,这样您就只有一个图像。或者,使用材质的transparent属性作为文本(您可能希望使用SCNTransparencyMode.RGBZero)来覆盖图像。 David Ronnqvist的SceneKit书中有很好的透明例子。