RealityKit

936 阅读4分钟

Reality Kit

模拟和渲染3D内容,以便在增强现实应用程序中使用。

概述

使用RealityKit框架实现高性能3D模拟和渲染。RealityKit利用[ARKit](developer.apple.com/documentati…

image.png

使用RealityKit的丰富功能来创造引人注目的增强现实(AR)体验。

-导入完全形成的资产,包括您使用Reality Composer应用程序制作的复杂作品,或从网格、材料和纹理中构建它们。

-将音频源放置在环境中。

-手动和物理模拟为物体添加动画效果。

-响应用户输入和环境变化。

-跨设备同步,实现组AR体验。

Essentials

class ARView

显示包含RealityKit内容的增强现实体验的视图。

Creating a Game with Reality Composer

在Reality Composer中设计应用程序的视觉外观和行为,并使用自定义RealityKit代码完成游戏体验。

Swift​Strike: Creating a Game with Reality​Kit

使用SwiftStrike应用程序作为指南,使用ARKit、RealityKit和Swift创建多人游戏。

Creating a Game with Scene​Understanding

在配备激光雷达的iOS设备上创建与现实世界对象交互的AR游戏和体验。

Building an Immersive Experience with Reality​Kit

使用系统和后处理效果创建一个逼真的水下场景。

Creating an App for Face-Painting in AR

将RealityKit的人脸检测与PenKit相结合,以实现虚拟人脸绘画。

WWDC Challenges

WWDC21 Challenge: Framework Freestyle

随机选择编程框架并将其映射到用户脸上的AR体验。

Reality Composer

Creating 3D Content with Reality Composer

将资产组装成动态的3D组合,您可以将其添加到应用程序中的场景中,或与AR快速查看共享。

USDZ Schemas for AR

使用新的USD模式为您的3D内容添加增强现实功能。

The Entity Component System

class Scene

包含AR视图呈现的实体集合的容器。

class Entity

RealityKit场景的一个元素,您将为实体提供外观和行为特征的组件附加到该场景中。

protocol Component

您应用于实体的几何形状或行为的表示。

protocol Resource

用于配置组件(如材料、网格或纹理)的共享资源。

protocol System

影响RealityKit场景每个帧中多个实体的对象。

Implementing Systems for Entities in a Scene

使用实体组件系统(ECS)将行为和物理效果应用于RealityKit场景中的对象和字符。

Scene Elements

class AnchorEntity

将实体与场景连接起来的锚。

class ModelEntity

RealityKit渲染并可选模拟的物理对象的表示。

class TriggerVolume

一种看不见的3D形状,用于检测物体何时进出给定的空间区域。

class BodyTrackedEntity

一种实体,用于通过跟踪真人来为AR场景中的虚拟角色添加动画效果。

Cameras and Lighting

class PerspectiveCamera

建立渲染透视的虚拟相机。

class PointLight

为虚拟对象产生全向光的实体。

class DirectionalLight

向特定方向投射虚拟光的实体。

class SpotLight

在锥形卷中照亮虚拟内容的实体。

Animation Playback

class AnimationPlaybackController

管理动画播放的控制器。

class AnimationResource

实体可以播放的动画。

struct AnimationTimingFunction

动画过渡的节奏。

enum AnimationEvents

RealityKit动画系统触发的事件。

Audio Playback

class AudioPlaybackController

管理资源音频播放的控制器。

class AudioResource

实体可以播放的音频资源。

class AudioFileResource

您从文件或URL加载的音频资源。

enum AudioEvents

与音频播放相关的事件。

Network Synchronization

class MultipeerConnectivityService

提供多点连接会话中所有对等机之间的场景同步的服务。

protocol SynchronizationService

一种接口,用于在一组本地对等机之间实现实体同步。

enum SynchronizationEvents

与场景信息的网络同步相关的事件。

class NetworkCompatibilityToken

一种不透明的令牌,用于检查多点连接中两个对等机之间的网络兼容性。

Custom Materials and Shader Functions

struct CustomMaterial

一种与自定义金属着色器功能兼容的材料。

Modifying Reality​Kit Rendering Using Custom Materials

编写金属着色器函数以实现自定义渲染效果。

Physics Simulation 

struct CollisionGroup

用于定义实体所属的冲突组的位掩码。

struct CollisionFilter

一组掩码,用于确定实体在模拟期间是否可以碰撞。

Controlling Entity Collisions in Reality​Kit

创建碰撞过滤器来控制哪些对象碰撞。

Designing Scene Hierarchies for Efficient Physics Simulation

配置RealityKit场景,以避免性能瓶颈。

Handling Different-Sized Objects in Physics Simulations

设置一个场景层次结构,进行准确的物理模拟。

Object Capture

class PhotogrammetrySession

管理从照片中创建3D对象的对象。

struct PhotogrammetrySample

表示一个图像及其相应元数据的对象。

Capturing Photographs for Reality​Kit Object Capture

拍摄高质量的对象图像以生成3D模型。

Creating 3D Objects from Photographs

构建虚拟对象以用于您的AR体验。

Taking Pictures for 3D Object Capture

使用深度和重力数据捕获高质量的图像,以便与RealityKit对象捕获一起使用。

Creating a Photogrammetry Command-Line App

使用RealityKit对象捕获从图像生成3D对象。