note/程序开发/游戏开发/优化/PVS.md
2023-07-05 09:34:06 +08:00

926 B

数据烘培

体素化

遍历所有遮挡物,标记体素

空间划分

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下的所有可视模型