uiimage – Swift:设置SCNMaterial适用于SCNBox但不适用于从Wings3D DAE加载的SCNGeometry

代码摘录(场景,相机,灯光等,从代码删除)在iOS模拟器上的 Swift中工作:
let BoxNode = SCNNode()

    // Create a Box
    BoxNode.geometry = SCNBox(width: 1,height: 1,length: 1,chamferRadius: 0.1)
    let numFaces = 6

    scene.rootNode.addChildNode(BoxNode)

    // create and configure a material for each face
    var materials: [SCNMaterial] = Array()

    for i in 1...numFaces
    {
        let material = SCNMaterial()
        material.diffuse.contents = UIImage(named: "texture")
        materials += material
    }

    // set the material to the 3d object geometry
    BoxNode.geometry.materials = materials

它会生成一个框,每个面都是方格图像.

尝试在Wings3D中创建的简单库存几何体,保存到DAE,并在应用程序中加载,给我一个合适的形状,但脸上没有阴影和图像:

let BoxNode = SCNNode()

    // Load the geometry
    let urlToColladaFile = NSBundle.mainBundle().URLForResource("Objects",withExtension:"dae")
    let sceneSource = SCNSceneSource(URL:urlToColladaFile,options:nil)

    BoxNode.geometry = sceneSource.entryWithIdentifier("dodecahedron3-0",withClass:SCNGeometry.self) as SCNGeometry
    let numFaces = 10

    scene.rootNode.addChildNode(BoxNode)

    // create and configure a material for each face
    var materials: [SCNMaterial] = Array()

    for i in 1...numFaces
    {
        let material = SCNMaterial()
        material.diffuse.contents = UIImage(named: "texture")
        materials += material
    }

    // set the material to the 3d object geometry
    BoxNode.geometry.materials = materials

我错过了什么?

你的几何有纹理坐标吗?
您可以通过编程方式(通过检查是否存在具有SCNGeometrySourceSemanticTexcoord语义的源)或在Xcode中内置的SceneKit编辑器中进行验证.

另请注意,您不必为每个几何元素创建一个材质.如果它们完全相同,只需构建一个材质的数组,它将用于整个几何体.

相关文章

Swift 正式开源!Swift 团队很高兴宣布 Swift 开始开源新篇章。自从苹果发布 Swfit 编程语言,就成为了...
快,快,快!动动您的小手,分享给更多朋友! 苹果去年推出了全新的编程语言Swift,试图让iOS开发更简单...
开发者(KaiFaX) 面向开发者、程序员的专业平台! 和今年年初承诺的一样,苹果贴出了Swift语言的源码,...
本文由@Chun发表于Chun Tips :http://chun.tips/blog/2014/12/11/shi-yong-swift-gou-jian-zi-ding-yi...
本文由CocoaChina译者leon(社区ID)翻译 原文:THE RIGHT WAY TO WRITE A SINGLETON 在之前的帖子里聊过...
本文由CocoaChina译者leon(社区ID)翻译 原文:THE RIGHT WAY TO WRITE A SINGLETON 在之前的帖子里聊过...