@realsee/five
Version:
Realsee Renderer SDK
94 lines (71 loc) • 4.27 kB
Markdown
# Glossary (术语表)
- **Summary**: Five SDK 中的核心术语定义与解释。
- **Audience**: 开发者、AI 助手。
## Core Entities (核心实体)
### Five
SDK 的核心入口类。一个 `Five` 实例对应一个 `<canvas>` 渲染上下文,负责管理场景生命周期、渲染循环、用户交互和状态更新。
### Work
VR 看房的**运行时实体**。通常指经过 `parseWork` 解析后生成的标准化数据对象。
- **LooseWork**: 服务端下发的原始 JSON 数据,结构较宽松。
- **WorkJson**: `workToJson` 生成的标准序列化数据,用于存储。
- **包含内容**: Observers, Panorama, Model, Plan 等。
### Vertex Marks (顶点标记)
在模型顶点上通过 `_feature_id_rsmask` 属性进行的标记。
- 用于在特定视角(如俯视)下控制 Mesh 的显隐(例如隐藏天花板)。
- 属于材质配置的一部分。
### Observer
**观察点**。对应现实空间中拍摄全景图的一个物理位置。
- 属性包含:位置 (position)、旋转 (quaternion)、关联的全景图信息。
- 用户在“全景模式”下,实际上是在不同的 Observer 之间跳转。
## State & Coordinates (状态与坐标)
### Mode (模式)
Five 定义的五种浏览状态:
1. **Panorama (全景)**: 第一人称视角,固定在某个点位观察 360° 景象。
2. **Floorplan (户型图)**: 2D 顶视视角,查看房屋平面结构。
3. **Topview (顶视)**: 3D 俯视视角,可自由旋转查看房屋立体结构。
4. **Model (模型)**: 自由漫游视角,可像游戏一样在模型中自由行走(脱离全景点位)。
5. **Map (地图)**: 类似 Google Earth 的操作方式,用于大场景鸟瞰。
### Pose (位姿)
描述相机状态的数据结构。
- **Panorama 模式下**: 使用球面坐标 `(Longitude, Latitude)` + `Fov`。
- **其他模式下**: 使用 `(x, y, z)` 坐标或变换矩阵。
### PanoIndex
**全景索引**。当前所在的 Observer 在 `work.observers` 数组中的下标 (从 0 开始)。
### Fov (Field of View)
**视场角**。决定了视野的宽窄。
- 数值越大,视野越广(广角)。
- 数值越小,视野越窄(长焦/放大)。
## Rendering (渲染)
### Pano Tile (全景瓦片)
为了在移动端快速加载高分辨率全景图(如 8K/16K),将全景图切分为多个小块(瓦片)。Five 会根据当前视角按需加载可见区域的瓦片。
### Mesh (三维网格)
**三维模型**。通过激光扫描或视觉算法重建的空间几何结构。在 Five 中,全景图贴在几何模型上,从而实现“从全景中看出立体感”的效果。
### G-Buffer / Geometry Buffer
用于后处理的几何缓冲区,包含深度 (Depth)、法线 (Normal)、ID 等信息,用于实现高级特效(如轮廓线、SSAO)。
### ViewLayer
管理 `Model` 内部特定 3D 资源(如 Mesh、PointCloud、Gaussian Splatting)的图层。
- 继承自 `Tile3D`。
- 拥有独立的 `Parameter` 配置(覆盖上层配置)。
- 支持可见性控制 (`visible`) 和优先级加载。
### Gaussian Splatting
一种基于点的 3D 渲染技术,通过各向异性高斯球(Splat)来表示场景。
- 相比传统 Mesh,能更真实地还原复杂光照和细节。
- Five 支持 `.spz` 和 `.splat` 格式的 Gaussian Splatting 渲染。
### 3D Tiles Refinement (细化)
3D Tiles 加载过程中的状态概念:
- **Loaded (已加载)**: 瓦片的基本数据已下载并解析,满足最低显示要求 (`minLevelOfDetail`)。
- **Refined (已细化)**: 瓦片已加载最高质量数据,满足当前视角的屏幕空间误差要求 (`maxScreenSpaceError`)。
- `five.model.refineProgress` 可用于监控当前视角的细化进度。
## Interaction (交互)
### Raycast (射线检测)
将屏幕上的 2D 点击坐标转换为 3D 空间中的射线,用于检测用户点击了哪个物体(如点击地面移动、点击标签)。
### Tap / Press / Pan / Pinch
Five 封装的手势事件:
- **Tap**: 轻触。
- **Press**: 长按。
- **Pan**: 拖拽/平移。
- **Pinch**: 双指缩放。
---
```yaml
tags: [术语, 概念, glossary, terminology, definitions, observer, pose, mode, work, panoindex, fov, viewlayer, gaussian-splatting, 3dtile]
```