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

相关推荐
编程百晓生1 天前
《SAP FICO系统配置从入门到精通共40篇》021、CO-PC实战笔记:在制品与差异计算,那些年车间里的“账实不符”
服务器·人工智能·笔记·ar·从入门到精通·sap fico·sap fico系统
ar01231 天前
AR航空装配:赋能航空航天制造的智能化转型
人工智能·ar
Xvisio诠视科技2 天前
从广交会智能穿戴展区看趋势:XR、VR、AR、MR是什么?有什么区别?
科技·ar·xr·vr·智能穿戴设备·广交会
想你依然心痛2 天前
HarmonyOS 5.0文旅文博开发实战:构建AR空间计算导览与AIGC沉浸式文化体验系统
aigc·ar·harmonyos·空间计算
北京阿法龙科技有限公司2 天前
工业级真AR智能眼镜如何助力电力运维实现更安全、高效的流程作业
运维·安全·ar
微学AI2 天前
Rokid AI眼镜的运用:基于 Rokid 灵珠平台,几步搭建专属城市规划评估AR智能体
人工智能·ar
好家伙VCC2 天前
# ARCore+ Kotlin 实战:打造沉浸式增强现实交互应用在
java·python·kotlin·ar·交互
ar01232 天前
AR眼镜远程协助在数字化工业的变革应用
人工智能·ar
爱看科技2 天前
Snap聚焦AR入局下一代计算,苹果/阿里/微美全息加强构筑智能穿戴市场壁垒!
ar
LONGZETECH3 天前
破解智能网联汽车教学痛点!龙泽科技AR仿真软件,重新定义实训新范式
科技·架构·汽车·ar·职业教育·汽车仿真教学软件·汽车故障诊断