2016-02-11 55 views
0

我有一個SCNNode(由SCNPlane組成),上面有一個圖像,我想把文本放在圖像上。我瞭解SCNNode可以有不同的材料。我的問題是我可以加載SCNNode上的圖像,但是當我加載它時文本不會出現。我的代碼看起來是這樣的:SCNMaterial文本沒有出現在SCNMaterial上有圖像

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是一個String)

如果我嘗試圖像之前加載文本([MAT2,墊]),我我只想去一個空白的飛機。我是否錯過了準備SCNMaterial的一步?

回答

3

通過指定

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

你說,你的節點的第一面應具有物mat,第二面應該有材料mat2(等進行第3,第4,第5,第6 ,等等)。因爲你正在使用SCNPlane,這應該是它的正面和反面。

在SceneKit以外的圖像上合成文本,以便只有一個圖像。或者,使用材質的文字transparent屬性(您可能需要使用SCNTransparencyMode.RGBZero)來疊加圖像。 David Ronnqvist的SceneKit書籍在這個星球的例子中有很好的透明度例子。

+0

你的建議修改SceneKit以外的圖像讓我重新考慮我的方法。我在搜索時發現[this](http://stackoverflow.com/questions/28906914/how-do-i-add-text-to-an-image-in-ios-swift),並將另一個函數合併到我的代碼中那隻會將圖像的副本添加到該平面中。現在我可以在我的圖片上看到文字。感謝您的正確方向。 –