visionOS空间计算实战开发教程Day 9 打造“任意门”

我们在​​Day 8​​中演示了attachment的实现,本节的知识点是portal。portal相当于哆啦A梦里的任意门,它让我们可以打开另一个世界,这个世界独立于当前的世界,具有单独的光照系统并且由portal几何图形进行遮罩。

要创建portal,首先就需要创建一个世界(​​makeWorld​​),在其中可以添加自己的实体。接着创建portal并将其关联至刚刚创建的世界。

主要的代码如下:

import SwiftUI
import RealityKit

struct ContentView: View {
    var body: some View {
        RealityView { content in
            let world = makeWorld()
            let portal = makePortal(world: world)
            content.add(world)
            content.add(portal)
        }
    }
    
    func makeWorld() -> Entity {
        let world = Entity()
        world.components[WorldComponent.self] = .init()
        
        let environment = try! EnvironmentResource.load(named: "Sunlight")
        world.components[ImageBasedLightComponent.self] = .init(source: .single(environment), intensityExponent: 12)
        world.components[ImageBasedLightReceiverComponent.self] = .init(imageBasedLight: world)
        
        let earth = try! ModelEntity.load(named: "Earth")
        earth.position = SIMD3<Float>(x: -0.1, y: 0, z: -0.4)
        world.addChild(earth)
        
        return world
    }
    
    func makePortal(world: Entity) -> Entity {
        let portal = Entity()
        
        portal.components[ModelComponent.self] = .init(mesh: .generatePlane(width: 0.5, height: 0.5, cornerRadius: 0.5), materials: [PortalMaterial()])
        portal.components[PortalComponent.self] = .init(target: world)
        
        return portal
    }
    
}

其中的​​Sunlight.skybox​​文件及​​Earth.usdz​​文件请见我们的代码仓库。

示例代码:​​GitHub仓库​

其它相关内容请见​​虚拟现实(VR)/增强现实(AR)&visionOS开发学习笔记​

相关推荐
知来者逆2 天前
AR 领域的突破——微型化显示屏为主流 AR 眼镜铺平道路
人工智能·计算机视觉·ar·虚拟现实
小溪彼岸3 天前
【iOS小组件】小组件尺寸及类型适配
swiftui·swift
mirrornan3 天前
AR技术在电商行业的应用及优势有哪些?
ar·3d建模·3d模型·三维建模·ar试戴·ar试穿
虹科数字化与AR4 天前
《中国电子报》报道: 安宝特AR为产线作业者的“秘密武器
ar·远程工作·ar眼镜·ar远程监管
SEU-WYL5 天前
增强现实中的物体识别与跟踪
深度学习·ar
虹科数字化与AR5 天前
安宝特分享 | AR技术重塑工业:数字孪生与沉浸式培训的创新应用
ar·数字孪生·ar眼镜·增强现实·工业ar
HyperAI超神经6 天前
凌晨1点开播!Meta Connect 2024开发者大会,聚焦Llama新场景和AR眼镜
ar·llama
花生糖@6 天前
Snap AR眼镜Spectacles的技术揭秘:通往真正AR体验的道路
ar
go2coding6 天前
Meta发布AR眼镜Orion限量版
ar
HyperAI超神经7 天前
Llama 3.2来了,多模态且开源!AR眼镜黄仁勋首批体验,Quest 3S头显价格低到离谱
人工智能·ar·llama