1 苹果地图中的应用
mesh渲染路线
国内互联网地图从2022年,结合车道级HD导航技术,纷纷种树,引入高精的模型表达。。
传统地图中采用Mesh的技术对多种种类树木进行渲染:

高斯渲染路线
IOS27把树木的表达 卷出了新高度。充分利用了gs泼溅的技术特性,能够表达树木,灌木丛这种不规则物体。

苹果采用mesh跟高斯结合,两条管线做到了深度的混合。
2 Reality Kit 开放底层渲染API

https://developer.apple.com/documentation/realitykit/gaussiansplatresource
GS支持的属性常见如下:

官方提供的示例程序
cpp
// Parse your splat source data.
let bunny: PlyData = readDataFromPLY("bunny.ply")
// Allocate a LowLevelBuffer with your interleaved splat data.
let floatSize = MemoryLayout<Float>.size
let stride = 15 * floatSize
var buffer = try LowLevelBuffer(descriptor: .init(capacity: ((bunny.data.length + 15) & ~0xF), sizeMultiple: 16))
buffer.withUnsafeMutableBytes { ptr in
ptr.copyBytes(from: bunny.bytes, count: bunny.data.length)
}
// Describe each property's location within the buffer.
let position = GaussianSplatResource.BufferDescriptor(
buffer: buffer, format: .float3, stride: stride, offset: 0)
let scale = GaussianSplatResource.BufferDescriptor(
buffer: buffer, format: .float3, stride: stride, offset: floatSize * 3)
let rotation = GaussianSplatResource.BufferDescriptor(
buffer: buffer, format: .float4, stride: stride, offset: floatSize * 6)
let opacity = GaussianSplatResource.BufferDescriptor(
buffer: buffer, format: .float, stride: stride, offset: floatSize * 10)
let sh = GaussianSplatResource.BufferDescriptor(
buffer: buffer, format: .float3, stride: stride, offset: floatSize * 11)
// Create the buffer resource and wrap it in a GaussianSplatResource.
let bufferResource = try GaussianSplatResource.BufferResource(
count: bunny.count,
position: position,
scale: scale,
rotation: rotation,
opacity: opacity,
sphericalHarmonics: (sh, .zero)
)
let resource = GaussianSplatResource(bufferResource)
// Attach the component to an entity.
let splatEntity = Entity()
let component = GaussianSplatComponent(resource)
splatEntity.components.set(component)
3 OpenUSD Kit 标准推广
这个是啥Kit? 统一场景描述,
USDKit 是一个用于创作、编写和操作通用场景描述 (USD) 内容的 Swift API。USD 是一种开放的场景交换格式,由皮克斯动画工作室 (Pixar) 发起,现由 OpenUSD 联盟维护;它能够跨数字内容创作工具和运行时引擎表示 3D 场景、资源和动画。USDKit 通过一个手工编写的、ABI 稳定的 Swift 接口,公开了 OpenUSD 的一个精选子集。
![]() |
![]() |
|---|---|
| OpenUSD Kit 架构概览 | OpenUSD Kit 在实际应用中的效果展示 |
https://www.youtube.com/watch?v=91YwhLUPKcg
2:50左右时间点。
4 系统内3D USD标准支持
4.2 Spatial Preview Kit中支持USD的文件模型
这个kit也是刚发布的,目前支持平台MacOS 27+,VersionOS 27+
Kit中定义了 USDPreviewSession 的支持,能够解析加载模型USD的模型,
4.1 WebKit中支持3d model消费

web中加载usdz格式例子程序见wwdc:


