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开发学习笔记​

相关推荐
2601_958815164 小时前
悟赫德(Woowhead)品牌深度拆解:用“东方智慧×全球科技”在180亿手机膜赛道定义新品类
人工智能·科技·智能手机·ar·圆偏振光护眼·观复盾护景贴·悟赫德woowhead
2601_958815168 小时前
scinique® 1.0双护技术与观复盾产品全解析:手机膜的光学上限是如何被重新定义的
智能手机·ar·圆偏振光护眼·观复盾护景贴·悟赫德woowhead
2601_9588151610 小时前
消费电子贴膜的光学技术革新:圆偏振光与磁控溅射AR的原理解析
智能手机·ar·产品评测·观复盾护景贴·iphone护眼膜
北京阿法龙科技有限公司11 小时前
让AR显示如何做到公安安防在户外阳光下也能清晰可见
ar
2601_9583529011 小时前
AR-1106 量产落地白皮书:中小厂商如何用 1/10 成本实现语音交互功能
人工智能·ar·语音识别·智能机器人·音频处理模块
想你依然心痛12 小时前
HarmonyOS 6 悬浮导航 + 沉浸光感:打造鸿蒙智能体驱动的沉浸式音乐创作协作工坊
华为·ar·harmonyos·智能体
MhZhou04121 天前
1.11M参数小模型实现脑瘤分割 CVPR 2026 Findings 开源
算法·计算机视觉·3d·空间计算
想你依然心痛2 天前
HarmonyOS 6 悬浮导航 + 沉浸光感:打造鸿蒙智能体驱动的沉浸式代码评审助手
华为·ar·harmonyos·智能体
ar01232 天前
深度解析AR远程专家协助系统在工业4.0时代的变革力量
人工智能·ar
想你依然心痛2 天前
HarmonyOS 6 悬浮导航 + 沉浸光感:打造鸿蒙智能体驱动的沉浸式编程学习伴侣
学习·华为·ar·harmonyos·智能体