note/程序开发/游戏开发/优化/PVS.md

89 lines
926 B
Markdown
Raw Normal View History

2023-07-05 09:34:06 +08:00
## 数据烘培
## 体素化
遍历所有遮挡物,标记体素
## 空间划分
### Tile
大场景划分为小场景
### Cell
小场景空间划分为小房间
### Portal
定义小房间之间的连接空间 - 门
## 可见性检测
通过门递归检测房间可见性
射线检测判断所有门是否可见
所有 tile 的所有 cell 之间的可见性检测
## 模型划分
- 遮挡物 ==> AABB ==> cellList
- 被遮挡物 ==> 所有外附Cell ==> CellList
## 数据存储
### Header
- Voxel Size
- Scene AABB
### Cell Info
- Cell AABB
- ID PVS Offset
- ID Model Offset
### Portal Info
- Portal AABB
- ID from_cell
- ID to_cell
- normal
### PVS
- ID Cell
- ListID Visible_Cell_List
### Model
- ID Model
- ListID Visible_Model_List
## Cell 查询
### 查找 Cell
遍历查找
### 可视Cell
遍历目标Cell的可视Cell
### 模型标记
标记Cell下的所有可视模型