我是 SceneKit 的新手……到目前为止,我试图让一些基本的东西正常工作,但没有取得太大的成功。出于某种原因,当我尝试将 png 纹理应用于 CNBox 时,我最终只有黑色。这是我在 viewDidLoad 中的简单代码片段:

    let sceneView = (view as SCNView)

    let scene = SCNScene()

    let boxGeometry = SCNBox(width: 10.0, height: 10.0, length: 10.0, chamferRadius: 1.0)

    let mat = SCNMaterial()
    mat.locksAmbientWithDiffuse = true
    mat.diffuse.contents = ["sofb.png","sofb.png","sofb.png","sofb.png","sofb.png", "sofb.png"]
    mat.specular.contents = UIColor.whiteColor()
    boxGeometry.firstMaterial = mat

    let boxNode = SCNNode(geometry: boxGeometry)

    scene.rootNode.addChildNode(boxNode)

    sceneView.scene = scene

    sceneView.autoenablesDefaultLighting = true
    sceneView.allowsCameraControl = true

它最终看起来像一个白色光源,从黑色背景上的黑色立方体反射出来。我错过了什么?我感谢所有的回应

最佳答案

只有 reflective Material 属性和场景的 background 支持传递图像数组(以创建立方体贴图)。

在您的情况下,所有图像都相同,因此您只需将图像(而不是数组)分配给内容即可使其出现在框的所有侧面

关于ios - 如何以编程方式在 SceneKit 中的立方体周围包裹 png 纹理,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/28386009/

10-10 11:24
查看更多