Как заполнить внутри SCNBox - PullRequest
0 голосов
/ 29 июня 2018

Я экспериментирую со SceneKit и пытаюсь создать для него лабиринтный стиль игры. Однако одна из проблем заключается в том, что когда вы перемещаетесь в рамку (трубу, сферу и т. Д.), Проекция рамки исчезает.

Я просматривал документацию несколько раз и либо не соответствую правильной формулировке, либо ее там нет.

Как бы вы заполнили содержимое коробки, чтобы при ее перемещении вы оказались в темноте?

Спасибо!

1 Ответ

0 голосов
/ 29 июня 2018

An SCNMaterial имеет свойство isDoubleSided, которое:

Логическое значение, определяющее, должен ли SceneKit отображать оба лицевая и задняя грани поверхности.

По умолчанию установлено значение false, означающее, что ваше содержимое будет отображаться только на одной стороне, например снаружи.

Если вы измените значение этого свойства на ДА, SceneKit отобразит оба передняя и задняя поверхности каждого многоугольника.

Как таковой и пример рендеринга с обеих сторон может быть достигнут так:

func createBoxNode(){

    //1. Create An SCNNode With An SCNBox Geometry
    let boxNode = SCNNode(geometry: SCNBox(width: 0.1, height: 0.1, length: 0.1, chamferRadius: 0))

    //2. Set The Colour Of All Sides To Cyan
    boxNode.geometry?.firstMaterial?.diffuse.contents = UIColor.cyan

    //3. Enusre That Both Sides Are Rendered
    boxNode.geometry?.firstMaterial?.isDoubleSided = true

    //4. Place Our BoxNode & Add It To The Hierachy
    boxNode.position = SCNVector3(0, 0, -1.5)
    self.augmentedRealityView?.scene.rootNode.addChildNode(boxNode)
}

Надеюсь, это поможет ...

...