如果我在 SceneKit 中有两个点(例如(1,2,3)和(-1,-1,-1))。我如何在两者之间划清界限?
我看到有一个我可以使用的 SCNBox 对象,但这只允许我指定中心(例如 via simdPosition)。修改它的其他方法是变换(我不知道如何使用)或欧拉角(我不知道如何计算我需要使用哪些角)。
在 SceneKit 中,有很多选项,例如
SCNMaterial.(diffuse|emission|ambient|...).contents SCNMaterial.transparency(从 0.0 到 1.0 的 CGFloat) SCNMaterial.transparent(另一个 SCNMaterialProperty) SCNNode.opacity(从 0.0(完全透明)到 1.0(完全不透明)的 CGFloat)我想知道是否有办法在 RealityKit 中为 ModelEntity 设置透明度/不透明度/alpha?
我正在尝试围绕其 z 轴旋转一个立方体,但我找不到方法。
RealityKit 有没有办法做到这一点?
我正在尝试在 RealityKit AR 场景中添加照明。我在 Reality Composer 中找不到灯光选项。如果有办法添加Directional Light或编辑它,请告诉我。我尝试过 Apple 文档,但不明白如何添加它们。
我希望能够将在 Reality Composer 中创建的文件添加到 Swift Playground 中以进行测试。我也认为用作剧本的补充会很有趣。如何将 rcproject 添加到 Playground 中,例如 Apple 提供的场景“Box”的 Experience.rcproject?
RealityKit框架中检测交叉点的方法一共有三种,但是我不知道如何在我的项目中使用它。
1.
func raycast(origin: SIMD3<Float>,
direction: SIMD3<Float>,
length: Float,
query: CollisionCastQueryType,
mask: CollisionGroup,
relativeTo: Entity?) -> [CollisionCastHit]
Run Code Online (Sandbox Code Playgroud)
2.
func raycast(from: SIMD3<Float>,
to: SIMD3<Float>,
query: CollisionCastQueryType,
mask: CollisionGroup,
relativeTo: Entity?) -> [CollisionCastHit]
Run Code Online (Sandbox Code Playgroud)
3.
func convexCast(convexShape: ShapeResource,
fromPosition: SIMD3<Float>,
fromOrientation: simd_quatf,
toPosition: SIMD3<Float>,
toOrientation: simd_quatf,
query: CollisionCastQueryType,
mask: CollisionGroup,
relativeTo: Entity?) -> [CollisionCastHit]
Run Code Online (Sandbox Code Playgroud) 我正在使用 Vision 框架,我希望能够使用 UITextField 来查找图片中的特定单词。例如,假设我在文本字段中输入“黑色”一词,我希望它在我的图片中检测到该词。我该怎么做呢?我使用 Vision 框架,我找到了如何检测文本,但停留在可以检测用户在文本字段中输入的单词的部分。
func startTextDetection() {
let textRequest = VNDetectTextRectanglesRequest(completionHandler: self.detectTextHandler)
let request = VNRecognizeTextRequest(completionHandler: self.detectTextHandler)
request.recognitionLevel = .fast
textRequest.reportCharacterBoxes = true
self.requests = [textRequest]
}
func detectTextHandler(request: VNRequest, error: Error?) {
guard let observations = request.results else {
print("no result")
return
}
let result = observations.map({$0 as? VNTextObservation})
DispatchQueue.main.async() {
self.previewView.layer.sublayers?.removeSubrange(1...)
for region in result {
guard let rg = region else {
continue
}
self.highlightWord(box: rg)
if let boxes = region?.characterBoxes {
for characterBox …Run Code Online (Sandbox Code Playgroud) 我试图在不改变任何枢轴点的情况下制作一个带有三角形的六边形网格,但我似乎无法正确定位三角形以制作单个六边形。我正在SCNNodes创建UIBezierPaths三角形,然后旋转贝塞尔曲线路径。这似乎工作得很好,直到我尝试使用参数方程将三角形围绕圆定位以形成六边形,然后它们最终不会处于正确的位置。你能帮我找出我做错的地方吗?
class TrianglePlane: SCNNode {
var size: CGFloat = 0.1
var coords: SCNVector3 = SCNVector3Zero
var innerCoords: Int = 0
init(coords: SCNVector3, innerCoords: Int, identifier: Int) {
super.init()
self.coords = coords
self.innerCoords = innerCoords
setup()
}
init(identifier: Int) {
super.init()
// super.init(identifier: identifier)
setup()
}
required init?(coder aDecoder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}
func setup() {
let myPath = path()
let geo = SCNShape(path: myPath, extrusionDepth: 0)
geo.firstMaterial?.diffuse.contents = UIColor.red
geo.firstMaterial?.blendMode = .multiply …Run Code Online (Sandbox Code Playgroud) 我知道您可以View按照以下步骤将 iOS SwiftUI 转换为图像,但这会使用 SwiftUI 扩展中的 UIKit 内容,而您无法在 macOS 的 SwiftUI 中使用这些内容。
有谁知道如何对 macOS SwiftUI 视图进行快照/屏幕截图?
RealityKit 有相机选项.nonAR,但缺乏构建 3D 非 AR 应用程序的基本选项,例如相机控制 ( .allowsCameraComtrol)。
使用 RealityKit 替代 SceneKit 是否可行(过去几年没有更新,可能很快就会被亵渎)?
swift ×10
realitykit ×7
arkit ×5
scenekit ×3
ios ×2
macos ×2
3d ×1
apple-vision ×1
math ×1
nsimage ×1
ocr ×1
raycasting ×1
rotation ×1
screenshot ×1
swiftui ×1