uiimage – Swift:设置SCNMaterial适用于SCNBox但不适用于从Win
发布时间:2020-12-14 05:39:44 所属栏目:百科 来源:网络整理
导读:此代码摘录(场景,相机,灯光等,从代码中删除)在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)
此代码摘录(场景,相机,灯光等,从代码中删除)在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编辑器中进行验证. 另请注意,您不必为每个几何元素创建一个材质.如果它们完全相同,只需构建一个材质的数组,它将用于整个几何体. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |