gpt4 book ai didi

ios - 如何在 Swift 3 中显示图像而不是 SCNSphere?

转载 作者:行者123 更新时间:2023-11-28 10:12:16 26 4
gpt4 key购买 nike

我正在创建一个显示 SCNSphere 的应用程序,但出于某种原因,我试图弄清楚如何从我的 Assets 中放置图像,而不是使用 Apple 拥有的内置几何图形。所以,我的问题是如何显示在我的 SceneKit 应用程序而不是 SCNSphere 中显示的图像。谢谢你的帮助。

let personGeo = SCNSphere(radius: 0.2)
person = SCNNode(geometry: personGeo)

let personMat = SCNMaterial()
personMat.diffuse.contents = UIColor.cyan
personGeo.materials = [personMat]
person.position = SCNVector3Make(0, 1.1, 0)


person.physicsBody = SCNPhysicsBody(type: SCNPhysicsBodyType.static, shape: SCNPhysicsShape(node: person, options: nil))
person.physicsBody?.categoryBitMask = bodyNames.Person
person.physicsBody?.collisionBitMask = bodyNames.Coin
person.physicsBody?.contactTestBitMask = bodyNames.Coin
person.physicsBody?.isAffectedByGravity = false

scene.rootNode.addChildNode(person)

最佳答案

如果您想让 SceneKit 渲染您的节点,它必须首先附加几何数据(参见 SCNGeometry 类)。

SceneKit 已经为您提供了一些,通过 SCNPlane 您可以使用平面来显示您想要的图像。

然后您必须为您的节点提供将显示图像的 Material 。

大概是这样的:

let scene = SCNScene(named: "art.scnassets/ship.scn")!
let image = UIImage(named: "nameOfYourImage")!
let imageRatio = image.size.height / image.size.width
let desiredPlaneWidth: CGFloat = 1
let planeGeometry = SCNPlane(width: desiredPlaneWidth, height: desiredPlaneWidth*imageRatio) // We make a plane that has the same aspect ratio as the image we want to display with it
let planeMaterial = SCNMaterial()
planeMaterial.emission.contents = image // Emission makes
planeMaterial.isDoubleSided = true // Otherwise plane would only be visible from one side

不要犹豫,询问具体细节

关于ios - 如何在 Swift 3 中显示图像而不是 SCNSphere?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46381241/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com