可视区域

From Valve Developer Community
< Zh
Revision as of 09:37, 27 June 2025 by WoShiGeNiCheng (talk | contribs) (Created page with "{{LanguageBar|Visleaf|title=可视区域}} {{Distinguish|VisGroup}} 每个'''可视区域'''(Visleaf,简称leaf)是地图中定义"可见表面簇"的中空体积空间。地图的每个可见表面都属于某个visleaf,主要由渲染引擎用于确定每帧需要渲染的区域。当某个visleaf的任一部分从当前visleaf可能可见时,该visleaf的全部内容都会被考虑渲染。 visleaf由{{L|vvis|VVIS}}编译工具根据{{L|BSP}}树...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search
English (en)Deutsch (de)Русский (ru)中文 (zh)Translate (Translate)
注意区分 VisGroup.

每个可视区域(Visleaf,简称leaf)是地图中定义"可见表面簇"的中空体积空间。地图的每个可见表面都属于某个visleaf,主要由渲染引擎用于确定每帧需要渲染的区域。当某个visleaf的任一部分从当前visleaf可能可见时,该visleaf的全部内容都会被考虑渲染。

visleaf由VVIS(en)编译工具根据BSP(en)树自动生成,其每个内部表面要么是世界笔刷(en)表面,要么是通往相邻visleaf的"门户"。

两房间示例场景
上图场景的默认visleaf结构(注意leaf 2不可见leaf 3)

查看方法

三种检查visleaf的方式:

1. **Hammer编辑器**(Source 2007及以后版本):

  - 通过菜单选项"地图 > 加载门户文件"在3D视图中直接查看
  - 相邻visleaf的边缘会显示为粗蓝线

2. **桌面工具**:

  - 使用glview(en)工具(位于`common\[game]\bin`目录)
Tip.png提示:使用自动visgroup(en)隐藏不影响可见性的物体(仅保留"世界几何体")可获得更清晰视图

3. **开发者控制台**:

  - 使用控制台变量(en) mat leafvis(en)
  - 例如:`mat_leafvis 3`显示PVS中所有visleaf
Note.png注意:不要与`mat_wireframe 3`显示的世界笔刷轮廓混淆

4. **3ds Max**(需安装4(en)):

  - 通过菜单"Wall Worm > 关卡设计 > 编译工具 > 加载PRT文件"查看
  - 门户显示为粗黄线,可选择门户高亮相邻visleaf

相关概念

  • PVS(en)(潜在可见集):当前需要渲染的visleaf集合
  • PAS(en)(潜在可听集):声音传播相关的visleaf集合
  • 可见性优化(en)
 - Leaks(en)(泄漏)会阻碍visleaf生成
 - Hint brush(en)提示编译器分割visleaf
  • 生成工具:
 - VVIS(en)编译器
 - [visleaf原理详解](存档链接)