gpt4 book ai didi

swift - 3d 对象的静态图像 (Swift AR)

转载 作者:搜寻专家 更新时间:2023-11-01 07:05:11 26 4
gpt4 key购买 nike

我只是想知道如何让我的 SceneKit 对象像普通的 2d 图像一样是静态的,而不是让它的形状像球体。我对 AR 很陌生,所以我真的不知道如何很好地编程。谢谢!

import UIKit
import SceneKit

class Ship: SCNNode {
let radius : CGFloat = 0.11
override init() {
super.init()
self.geometry = SCNSphere(radius: radius)
self.physicsBody = SCNPhysicsBody(type: .dynamic, shape: nil)
self.physicsBody?.isAffectedByGravity = false

self.physicsBody?.categoryBitMask = CollisionCategory.ship.rawValue
self.physicsBody?.contactTestBitMask = CollisionCategory.bullets.rawValue

// add texture
let material = SCNMaterial()
material.diffuse.contents = UIImage(named: "innierevised")
self.geometry?.materials = [material, material, material, material, material, material]
}

required init?(coder aDecoder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}

}

enter image description here enter image description here

最佳答案

您必须创建一个 SCNPlane 并使用其 Material 属性为其分配图像:

// Compute Material
let material = SCNMaterial()
material.isDoubleSided = false
material.diffuse.contents = UIImage(named: "innierevised")
material.diffuse.contentsTransform =
SCNMatrix4Translate(SCNMatrix4MakeScale(-1, 1, 1), 1, 0, 0)
// This is if your image is flipped vertically (as SceneKit coordinate system is different from UIKit one)

然后:

// Create Plane
let newPoi = SCNPlane(width: radius, height: radius)
newPoi.materials = [material]
let newPoiNode = SCNNode(geometry: newPoi)
newPoiNode.position = // your SCNVector3 expected position
newPoiNode.constraints = [SCNBillboardConstraint()] // Look towards camera

关于swift - 3d 对象的静态图像 (Swift AR),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48505345/

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