VBSP

From Valve Developer Community
Jump to: navigation, search
English Русский 简体中文

本简体中文页面由大康翻译于2021年8月29日。

VBSP 是将原始 VMF 文件编译为二元空间划分格式。一般后面跟着 VVISVRAD

VBSP 将:

虽然生成的 BSP 文件可以直接游玩,但它没有可见性控制(性能不佳)和照明。

Bug.png Bug: 在非求生之路分支游戏中,具有IDST1标头的.mdl文件将无法为 VBSP 加载,请参阅 VRAD 的错误。

启动选项

语法

vbsp <选项...> <vmf_文件>

例如:

"Half-Life 2\bin\vbsp.exe" -onlyents sdk_trainstation_01

这将重新嵌入实体块而不影响世界。

常用选项

Note.png 注意: -onlyents-keepstalezip将通过将文件 stale.txt 嵌入到 BSP 中来将地图标记为过时。在引擎中加载陈旧的地图会导致“This map is not final!!(这张地图不是最终的!!)”控制台中的警告消息。
-v
-verbose
打开详细输出(还显示更多命令行选项)。不带任何其他参数使用。
-onlyents
仅从 VMF 导入实体。固体和内部实体不会被修改。保存现有的照明数据。
-onlyprops
只更新静态和细节道具(即内部实体)。不生成 .prt 文件,导致 VVIS 错误!
-glview
glview 数据写入 VMF 的目录。 -tmpout将导致文件将写入\tmp代替。
-nodetail
移除 func_detail 笔刷。剩下的几何图形(固体)会影响可见性。
-nowater
移除水固体。
-low
作为 Idle 优先级进程运行。
-vproject <directory>
覆盖 VPROJECT 环境变量。
-game <directory>
指定gameinfo.txt文件所在的文件夹
-insert_search_path <directory>
包括一个额外的基础目录,用于安装附加内容(如 Gameinfo.txt 条目)。如果您想出于任何原因将某些资源与 mod 分开,则很有用。
-embed <directory>
将<directory>的内容嵌入到包文件中

高级选项

-novconfig
不要在 vproject 错误上显示图形 UI。
-threads
控制 vbsp 使用的线程数(默认为您设备上的处理器数量(Hypertreading/SMT CPU 的 2 倍))。
-verboseentities
如果 -v 启用,这将禁用子模型的详细输出。
-noweld
不要将面顶点连接在一起。
-nocsg
不要不绘制相交的固体区域。
-noshare
发出独特的面边缘而不是共享它们。
-notjunc
不要修复任何 T 形连接。(Don't fixup any t-junctions.)
-allowdetailcracks
不要修复 func_detail 上的 T 形连接。
-nodrawtriggers
编译所有 trigger,就好像它们使用 Nodraw 纹理一样,只影响使用带有 %CompileTrigger 的纹理的触发器。
-noopt
默认情况下,vbsp 会移除地图的“外壳”,即您无法看到的所有面,因为您永远无法离开地图。使用 -noopt 禁用此操作。
-noprune
不要修整相邻的固体节点。
-nomerge
不要将节点上的切碎的面合并在一起。
-nomergewater
不要在水面上将切碎的面合并在一起。
-nosubdiv
不要为光照贴图细分面。
-micro <#>
当固体输出的体积小于此数字(默认值:1.0)时,vbsp 将发出警告。
-fulldetail
将所有细节几何体标记为普通几何体(因此所有细节几何体都会影响可见性)。
-leaktest
如果检测到泄漏,则停止处理地图。无论是否设置此选项,(vbsp)都会在 <vmf 文件名>.lin 处写出一个泄漏文件,并且可以将其导入到 Hammer 中。
-bumpall
强制所有曲面进行凹凸贴图。
-snapaxial
将轴向平面对齐到整数坐标。
-block # #
控制 vbsp 切割关卡的网格大小。
Bug.png Bug: 导致 VBSP 完全崩溃。
-blocks # # # #
输入 vbsp 使用的网格大小的最小值和最大值。
-dumpstaticprops
将静态道具转储到 staticprop*.txt
-dumpcollide
写入带有碰撞信息的文件。
-forceskyvis
三维天空盒叶子块中启用可见性计算。
-luxelscale #
按此量缩放所有光照贴图(默认值:1.0)。
-lightifmissing
强制为所有表面生成光照贴图,即使它们不需要光照贴图。
-localphysx
去做: 目前未知。
-keepstalezip
保持 BSP 的 zip 文件完好无损,但重新生成其他所有内容。
-replacematerials
根据 content\maps 中的 materialsub.txt 替换材质
-FullMinidumps
在崩溃时写入大型转储。
-novirtualmesh
以更大的 bsp 大小为代价修复物理实体在置换表层上的物理效果
-allowdynamicpropsasstatic (only in Garry's Mod)
允许在模型查看器中使用所有带有“static”标志的模型在 prop_static 上使用,即使它们的 propdata 不包含“allowstatic”。

静态道具合并

(存在于自 Counter-Strike: Global Offensive 以来的所有游戏)

-StaticPropCombine
根据scripts/hammer/spcombinerules/spcombinerules.txt中定义的规则将静态道具合并在一起。这减少了绘制调用的数量,提高了性能。它还可用于减少地图中存在的静态道具的数量。参见 Static Prop Combine
-StaticPropCombine_AutoCombine
为 VBSP 认为应该组合的道具自动生成静态道具组合规则。
Note.png 注意: 这不会写入spcombinerules.txt
-StaticPropCombine_ConsiderVis
不使用距离限制,而是合并组中共享可见簇的所有道具。
-StaticPropCombine_SuggestRules
列出应该添加到spcombinerules.txt的共享相同材质的模型。
-StaticPropCombine_MinInstances <int>
设置创建组合道具所需的组合组中的最小道具数。
Tip.png 小技巧: Valve 将新的 Dust 2 设置为 3。
-StaticPropCombine_PrintCombineRules
证实:打印组合规则?无效果。
-StaticPropCombine_ColorInstances
证实:这会为实例着色吗?
-KeepSources
完成后不要删除自动生成的 QC 和解压缩的模型文件。
-CombineIgnore_FastReflection
组合道具,即使它们具有不同的 Render in Fast Reflections 设置。
-CombineIgnore_Normals
组合道具,即使它们具有不同的 Ignore Normals 设置。
-CombineIgnore_NoShadow
组合道具,即使它们具有不同的 Disable Shadows 设置。
-CombineIgnore_NoVertexLighting
组合道具,即使它们具有不同的 Disable Vertex lighting 设置。
-CombineIgnore_NoFlashlight
组合道具,即使它们具有不同的 Disable flashlight 设置。
-CombineIgnore_NoSelfShadowing
组合道具,即使它们具有不同的Disable Self-Shadowing设置。
-CombineIgnore_DisableShadowDepth
组合道具,即使它们具有不同的Disable ShadowDepth设置。

非功能性选项

-linuxdata
强制它为 linux 多人服务器写入物理数据。 (如果它发现某些实体,例如 info_player_terrorist、info_player_deathmatch、info_player_teamspawn、info_player_axis 或 info_player_coop,它将自动写入此数据。)
-nolinuxdata
强制它不为 linux 多人服务器写入物理数据,即使地图中有多人实体。
-virtualdispphysics
使用虚拟(非预计算)位移碰撞模型
-xbox
启用强制 Xbox 1 优化。

控制台输出

去做: 添加关于每个输出的描述(例如 WriteBSP、其他等)


另请参阅