0

画像を含む 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 の準備に手順がありませんか?

4

1 に答える 1

3

指定することで

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

matノードの最初の面には material が必要であり、2 番目の面にはmaterial が必要であると言っていますmat2(3 番目、4 番目、5 番目、6 番目などの面についても同様です)。SCNPlaneその前後であること。

SceneKit の外部で画像の上にテキストを合成して、画像が 1 つだけになるようにします。または、テキストにマテリアルのtransparentプロパティを使用して (おそらく を使用する必要がありますSCNTransparencyMode.RGBZero)、画像をオーバーレイします。David Ronnqvist の SceneKit book には、惑星の例に透明性の良い例があります。

于 2016-02-12T05:36:24.140 に答える