我有一个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的一步?
发布于 2016-02-12 05:36:24
通过指定
node.geometry?.materials = [mat, mat2]您的意思是,节点的第一个面应该有物质mat,第二个面应该有物质mat2(第3、第4、第5、第6等).Since,您正在使用的是一个SCNPlane,应该是它的前后。
在SceneKit之外的图像上对文本进行组合,这样您就只有一个图像。或者,对文本使用材料的transparent属性(您可能希望使用SCNTransparencyMode.RGBZero)来覆盖图像。大卫·隆奎斯特( David )的SceneKit书中有关于地球透明度的很好的例子。
https://stackoverflow.com/questions/35351484
复制相似问题