Непрозрачность и видимость SCNNode - PullRequest
1 голос
/ 11 марта 2020

У меня есть один узел, который находится внутри другого узла. Оба загружаются из .obj файлов. Внешний узел имеет непрозрачность 0,01. Внутренний узел имеет непрозрачность 0,99. Внутренний узел вообще не виден, если я не изменю его непрозрачность на 1 или непрозрачность внешнего узла на 0. Когда я слегка поворачиваю сцену с невидимым узлом, появляется узел. Когда я поворачиваю его обратно, он исчезает.

Есть мысли о том, как я могу поддерживать видимость внутреннего узла?

1 Ответ

0 голосов
/ 25 марта 2020

Вы можете легко контролировать видимость внутренней сферы, используя .renderingOrder свойство экземпляра:

var renderingOrder: Int { get set }          /*  By default it equals to zero  */

Вот как это выглядит в коде:

// NESTED OBJECT
let innerNode = SCNNode()
innerNode.geometry = SCNSphere(radius: 0.5)
innerNode.geometry?.firstMaterial?.diffuse.contents = UIColor(white: 0.0, 
                                                              alpha: 0.99)
scene.rootNode.addChildNode(innerNode)

// OUTER OBJECT
let outerSphere = scene.rootNode.childNode(withName: "sphere", recursively: true)
outerSphere?.geometry?.firstMaterial?.diffuse.contents = UIColor(white: 1.0, 
                                                                 alpha: 0.3)
outerSphere?.renderingOrder = 1

enter image description here

...