Zoners Tools.bci 31 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894
  1. // Specification: Zoners Tools
  2. // Written by: Ryan Gregg
  3. // Version: 2.5.3
  4. // Created: August 4, 2004
  5. // Last updated: August 9, 2004
  6. // Updated by: Ryan Gregg
  7. // Date: August 9, 2004
  8. // Thanks to: Anders Jenbo
  9. // Moved RAD's Sparse and No Visibility Matrix options to a ComboBox.
  10. // Moved RipEnt's Import and Export options to a ComboBox.
  11. // Reorganized options to match Zoners Tools P Series.
  12. // Updated by: Ryan Gregg
  13. // Date: August 6, 2004
  14. // Added Zoners Tools Link.
  15. Include "Templates.bci"
  16. Variable
  17. {
  18. Name "WADRoot"
  19. Type "Folder"
  20. Optional "True"
  21. Hint "Wad root directory."
  22. }
  23. Batch
  24. {
  25. Name "Zoners Tools"
  26. Priority "2"
  27. Links "Zoners Tools,http://dev.valve-erc.com/index.php?go=zhlt"
  28. Filter "Supported Files|*.map;*.bsp|MAP Files (*.map)|*.map|BSP Files (*.bsp)|*.bsp"
  29. Stages "CSG|BSP|VIS|NetVIS|RAD|RipEnt|Shared"
  30. Template "@echo off\n"_
  31. "set WADROOT=${WADRoot}\n"_
  32. "\"${StagePath=CSG}\" ${StageParam=CSG} \"${FilePath}\\${FileName}\"\n"_
  33. "\"${StagePath=BSP}\" ${StageParam=BSP} \"${FilePath}\\${FileName}\"\n"_
  34. "\"${StagePath=VIS}\" ${StageParam=VIS} \"${FilePath}\\${FileName}\"\n"_
  35. "\"${StagePath=NetVIS}\" ${StageParam=NetVIS} \"${FilePath}\\${FileName}\"\n"_
  36. "\"${StagePath=RAD}\" ${StageParam=RAD} \"${FilePath}\\${FileName}\"\n"_
  37. "\"${StagePath=RipEnt}\" ${StageParam=RipEnt} \"${FilePath}\\${FileName}\"\n"_
  38. "${LogViewerRun}\n"
  39. }
  40. Batch
  41. {
  42. Name "CSG"
  43. Priority "1"
  44. Stages "CSG|Shared"
  45. Filter "Map Files (*.map)|*.map"
  46. Template "@echo off\n"_
  47. "set WADROOT=${WADRoot}\n"_
  48. "\"${StagePath=CSG}\" ${StageParam=CSG} \"${FilePath}\\${FileName}\"\n"_
  49. "${LogViewerRun}\n"
  50. }
  51. Batch
  52. {
  53. Name "BSP"
  54. Priority "1"
  55. Stages "BSP|Shared"
  56. Filter "Map Files (*.map)|*.map"
  57. Template "@echo off\n"_
  58. "set WADROOT=${WADRoot}\n"_
  59. "\"${StagePath=BSP}\" ${StageParam=BSP} \"${FilePath}\\${FileName}\"\n"_
  60. "${LogViewerRun}\n"
  61. }
  62. Batch
  63. {
  64. Name "VIS"
  65. Priority "1"
  66. Stages "VIS|Shared"
  67. Filter "Map Files (*.map)|*.map"
  68. Template "@echo off\n"_
  69. "set WADROOT=${WADRoot}\n"_
  70. "\"${StagePath=VIS}\" ${StageParam=VIS} \"${FilePath}\\${FileName}\"\n"_
  71. "${LogViewerRun}\n"
  72. }
  73. Batch
  74. {
  75. Name "NetVIS"
  76. Priority "1"
  77. Stages "NetVIS|Shared"
  78. Filter "Map Files (*.map)|*.map"
  79. Template "@echo off\n"_
  80. "set WADROOT=${WADRoot}\n"_
  81. "\"${StagePath=NetVIS}\" ${StageParam=NetVIS} \"${FilePath}\\${FileName}\"\n"_
  82. "${LogViewerRun}\n"
  83. }
  84. Batch
  85. {
  86. Name "RAD"
  87. Priority "1"
  88. Stages "RAD|Shared"
  89. Filter "Map Files (*.map)|*.map"
  90. Template "@echo off\n"_
  91. "set WADROOT=${WADRoot}\n"_
  92. "\"${StagePath=RAD}\" ${StageParam=RAD} \"${FilePath}\\${FileName}\"\n"_
  93. "${LogViewerRun}\n"
  94. }
  95. Batch
  96. {
  97. Name "RipEnt"
  98. Priority "1"
  99. Stages "RipEnt|Shared"
  100. Filter "BSP Files (*.bsp)|*.bsp"
  101. Template "@echo off\n"_
  102. "\"${StagePath=RipEnt}\" ${StageParam=RipEnt} \"${FilePath}\\${FileName}\"\n"_
  103. "${LogViewerRun}\n"
  104. }
  105. //
  106. // CSG
  107. //
  108. Stage
  109. {
  110. Name "CSG"
  111. Title "Constructive Solid Geometry"
  112. Type "Program"
  113. Filter "HLCSG (hlcsg.exe)|hlcsg.exe"
  114. CheckBox
  115. {
  116. Name "No Clip"
  117. Param "-noclip"
  118. Stages "BSP"
  119. Hint "\tDon't create clipping hull.\n\n"_
  120. "\tHalf-life like Quake 1, has 4 hulls, 1 visual hull and 3 collision hulls. This option disables generation of the collision hulls for a small savings in compile time. Note that the world will not be solid at all (everything will fall into the void) with this option set."
  121. }
  122. CheckBox
  123. {
  124. Name "No Sky Clip"
  125. Param "-noskyclip"
  126. Hint "\tDisable automatic clipping of SKY brushes.\n\n"_
  127. "\tBy default hlcsg will CLIP all SKY brushes, as well as remove all non-sky faces on the 'inside' of a sky brush (which eases up vis time, and improves some time and memory usage in rad as well)."
  128. }
  129. CheckBox
  130. {
  131. Name "No WAD Textures"
  132. Param "-nowadtextures"
  133. Hint "\tInclude all used textures into bsp.\n\n"_
  134. "\tThis option is obsolete by -wadinclude and is only left in to retain some backwards compatibility as it making the bsp unnecessarily big by including textures from the default wad's."
  135. }
  136. CheckBox
  137. {
  138. Name "Entities Only"
  139. Param "-onlyents"
  140. Hint "\tDo an entity update from .map to .bsp.\n\n"_
  141. "\tThis option will take the entities from the .map file and update them into the bsp file. For the most part, entities can only be edited. Adding or removing any can reorder the other entities which frequently break brush based entities, especially triggers."
  142. }
  143. TextBox
  144. {
  145. Name "Brush Union"
  146. Param "-brushunion"
  147. Type "Single"
  148. Default "95.0"
  149. Min "0.0"
  150. Max "100.0"
  151. Hint "\tThreshold to warn about overlapping brushes.\n\n"_
  152. "\tThis option is a mapper debugging feature. The value passed in is a percentage (0 to 100) of overlap of two brushes before a warning is printed. Starting with a high value (95+) is a good idea, as going too low to start can print hundreds or thousands of messages. The brush numbers of the intersecting brushes and the percentage in which they intersect each other is displayed for each occurrence. This option is off by default as it dramatically slows down hlcsg to do these calculations."
  153. }
  154. TextBox
  155. {
  156. Name "Tiny"
  157. Param "-tiny"
  158. Type "Single"
  159. Default "0.5"
  160. Min "0.0"
  161. Hint "\tMinimum brush face surface area before it is discarded.\n\n"_
  162. "\tTiny brush faces are outright removed. The current cut-off is 0.5 square units. It is dangerous to drop faces in this manner, as the BSP tree for the world can be unusable, or generate leaf portal errors or hall-of-mirrors vis errors."
  163. }
  164. FileBox
  165. {
  166. Name "Hull File"
  167. Param "-hullfile"
  168. FullPath "True"
  169. Filter "Hull Files (*.hull)|*.hull|Text Files (*.txt)|*.txt"
  170. Hint "\tLoad a custom hullfile.\n\n"_
  171. "\tLoads a custom set of hulls for the collision hull generation. The file is composed of 3 lines of 3 whitespace delimited numbers. Each line is an X Y Z size of the bounding box it is for. Only specific mod authors and their mapping teams should ever worry about this feature."
  172. }
  173. Space
  174. {
  175. Size "3"
  176. }
  177. TextBox
  178. {
  179. Name "Additional Parameters"
  180. Type "String"
  181. Size "3"
  182. Hint "\tAdd additional parameters here as you would a command line."
  183. }
  184. FileBox
  185. {
  186. Name "WAD File"
  187. Param "-wadinclude"
  188. FullPath "False"
  189. Filter "WAD Files (*.wad)|*.wad"
  190. Hint "\tPlace textures used by the wad file specified into the bsp.\n\n"_
  191. "\tThis option will cause csg to include used textures from the named wadfile into the bsp. It does partial name matching, is not case sensitive, and can also match directory names. If multiple includes need to be done, -wadinclude must be specified multiple times, once for each include. Only textures actually used in the map are included into the bsp."
  192. }
  193. FileBox
  194. {
  195. Name "WAD File"
  196. Param "-wadinclude"
  197. FullPath "False"
  198. Filter "WAD Files (*.wad)|*.wad"
  199. Hint "\tPlace textures used by the wad file specified into the bsp.\n\n"_
  200. "\tThis option will cause csg to include used textures from the named wadfile into the bsp. It does partial name matching, is not case sensitive, and can also match directory names. If multiple includes need to be done, -wadinclude must be specified multiple times, once for each include. Only textures actually used in the map are included into the bsp."
  201. }
  202. FileBox
  203. {
  204. Name "WAD File"
  205. Param "-wadinclude"
  206. FullPath "False"
  207. Filter "WAD Files (*.wad)|*.wad"
  208. Hint "\tPlace textures used by the wad file specified into the bsp.\n\n"_
  209. "\tThis option will cause csg to include used textures from the named wadfile into the bsp. It does partial name matching, is not case sensitive, and can also match directory names. If multiple includes need to be done, -wadinclude must be specified multiple times, once for each include. Only textures actually used in the map are included into the bsp."
  210. }
  211. FileBox
  212. {
  213. Name "WAD File"
  214. Param "-wadinclude"
  215. FullPath "False"
  216. Filter "WAD Files (*.wad)|*.wad"
  217. Hint "\tPlace textures used by the wad file specified into the bsp.\n\n"_
  218. "\tThis option will cause csg to include used textures from the named wadfile into the bsp. It does partial name matching, is not case sensitive, and can also match directory names. If multiple includes need to be done, -wadinclude must be specified multiple times, once for each include. Only textures actually used in the map are included into the bsp."
  219. }
  220. FileBox
  221. {
  222. Name "WAD File"
  223. Param "-wadinclude"
  224. FullPath "False"
  225. Filter "WAD Files (*.wad)|*.wad"
  226. Hint "\tPlace textures used by the wad file specified into the bsp.\n\n"_
  227. "\tThis option will cause csg to include used textures from the named wadfile into the bsp. It does partial name matching, is not case sensitive, and can also match directory names. If multiple includes need to be done, -wadinclude must be specified multiple times, once for each include. Only textures actually used in the map are included into the bsp."
  228. }
  229. FileBox
  230. {
  231. Name "WAD File"
  232. Param "-wadinclude"
  233. FullPath "False"
  234. Filter "WAD Files (*.wad)|*.wad"
  235. Hint "\tPlace textures used by the wad file specified into the bsp.\n\n"_
  236. "\tThis option will cause csg to include used textures from the named wadfile into the bsp. It does partial name matching, is not case sensitive, and can also match directory names. If multiple includes need to be done, -wadinclude must be specified multiple times, once for each include. Only textures actually used in the map are included into the bsp."
  237. }
  238. FileBox
  239. {
  240. Name "WAD File"
  241. Param "-wadinclude"
  242. FullPath "False"
  243. Filter "WAD Files (*.wad)|*.wad"
  244. Hint "\tPlace textures used by the wad file specified into the bsp.\n\n"_
  245. "\tThis option will cause csg to include used textures from the named wadfile into the bsp. It does partial name matching, is not case sensitive, and can also match directory names. If multiple includes need to be done, -wadinclude must be specified multiple times, once for each include. Only textures actually used in the map are included into the bsp."
  246. }
  247. FolderBox
  248. {
  249. Name "WAD Path"
  250. Param "-wadinclude"
  251. Hint "\tPlace textures used by wad files in the folder specified into the bsp.\n\n"_
  252. "\tThis option will cause csg to include used textures from the named wadfile into the bsp. It does partial name matching, is not case sensitive, and can also match directory names. If multiple includes need to be done, -wadinclude must be specified multiple times, once for each include. Only textures actually used in the map are included into the bsp."
  253. }
  254. FolderBox
  255. {
  256. Name "WAD Path"
  257. Param "-wadinclude"
  258. Hint "\tPlace textures used by wad files in the folder specified into the bsp.\n\n"_
  259. "\tThis option will cause csg to include used textures from the named wadfile into the bsp. It does partial name matching, is not case sensitive, and can also match directory names. If multiple includes need to be done, -wadinclude must be specified multiple times, once for each include. Only textures actually used in the map are included into the bsp."
  260. }
  261. }
  262. //
  263. // BSP
  264. //
  265. Stage
  266. {
  267. Name "BSP"
  268. Title "Binary Space Partition"
  269. Type "Program"
  270. Filter "HLBSP (hlbsp.exe)|hlbsp.exe"
  271. CheckBox
  272. {
  273. Name "Leak Only"
  274. Param "-leakonly"
  275. Hint "\tRun BSP only enough to check for leaks.\n\n"_
  276. "\tIf you already know a map has a leak, this is a good option to just save some time in hlbsp and just generate the pts file."
  277. }
  278. CheckBox
  279. {
  280. Name "No Fill"
  281. Param "-nofill"
  282. Hint "\tDon't fill outside (will mask leaks) (not for final runs).\n\n"_
  283. "\tThis step causes filling to not be performed, which will cause all the faces on the outside of the map to not be discarded. It is probably a bad idea to rad a map that has been compiled this way, though vis should run normally."
  284. }
  285. CheckBox
  286. {
  287. Name "No T-Junction"
  288. Param "-notjunc"
  289. Hint "\tDon't break edges on t-junctions (not for final runs).\n\n"_
  290. "\tThis is a development/debugging option that should not be set in normal use."
  291. }
  292. TextBox
  293. {
  294. Name "Max Node Size"
  295. Param "-maxnodesize"
  296. Bold "True"
  297. Type "Single"
  298. Default "1024.0"
  299. Min "64.0"
  300. Max "8192.0"
  301. Hint "\tSets the maximum portal node size.\n\n"_
  302. "\tThis option tweaks the maximum size of a portal node. Setting it smaller will bsp the world into smaller chunks at the cost of higher r_speeds, but it can pay itself back in many cases with making vis either faster, or more accurate, or both."
  303. }
  304. TextBox
  305. {
  306. Name "Subdivide"
  307. Param "-subdivide"
  308. Type "Single"
  309. Default "240.0"
  310. Min "64.0"
  311. Max "240.0"
  312. Hint "\tSets the face subdivide size.\n\n"_
  313. "\tFaces in Half-life are subdivided by this value (in units). Setting this to high might cause bad surface extents when running rad. It should never be set lower then 240 as this just increases the r_speeds."
  314. }
  315. Space
  316. {
  317. Size "5"
  318. }
  319. TextBox
  320. {
  321. Name "Additional Parameters"
  322. Type "String"
  323. Size "3"
  324. Hint "\tAdd additional parameters here as you would a command line."
  325. }
  326. }
  327. //
  328. // VIS
  329. //
  330. Stage
  331. {
  332. Name "VIS"
  333. Title "Visibility Index Set"
  334. Type "Program"
  335. Filter "HLVIS (hlvis.exe)|hlvis.exe"
  336. ComboBox
  337. {
  338. Name "Vis Type"
  339. Bold "True"
  340. Default "Normal"
  341. Options "Fast,-fast|Normal,|Full,-full"
  342. Hint "\tRun as fast or normal or full VIS.\n"_
  343. "\tFull vis enables extra calculations during vis, which help reduce the number of vis errors in a map over a normal vis. The speed hit is approximately 30% over a normal vis. r_speeds will generally be the same, though lower in some areas, and higher in others (primarily due to vis errors being fixed).\n\n"_
  344. "\tFast vis is handy for running around in a developed map without dropping polygons. However, r_speeds will usually be pretty bad, as well as epoly counts. The map can still be lit with hlrad, however its quality and compile time will both suffer as a result. Maps should regularly be compiled without fast vis, as fast vis can mask a sudden increase in normal vis compile time."
  345. }
  346. Space
  347. {
  348. Size "9"
  349. }
  350. TextBox
  351. {
  352. Name "Additional Parameters"
  353. Type "String"
  354. Size "3"
  355. Hint "\tAdd additional parameters here as you would a command line."
  356. }
  357. }
  358. //
  359. // NetVIS
  360. //
  361. Stage
  362. {
  363. Name "NetVIS"
  364. Title "Network Visibility Index Set"
  365. Type "Program"
  366. Filter "NetVIS (netvis.exe)|netvis.exe"
  367. ComboBox
  368. {
  369. Name "Vis Type"
  370. Bold "True"
  371. Default "Normal"
  372. Options "Normal,|Full,-full"
  373. Hint "\tRun as normal or full VIS.\n"_
  374. "\tFull vis enables extra calculations during vis, which help reduce the number of vis errors in a map over a normal vis. The speed hit is approximately 30% over a normal vis. r_speeds will generally be the same, though lower in some areas, and higher in others (primarily due to vis errors being fixed)."
  375. }
  376. CheckBox
  377. {
  378. Name "Server"
  379. Param "-server"
  380. Bold "True"
  381. Hint "\tRun as the NetVIS server."
  382. }
  383. TextBox
  384. {
  385. Name "Connect"
  386. Param "-connect"
  387. Bold "True"
  388. Type "String"
  389. Hint "\tHosts computer name, domain name, or ip address.\n\n"_
  390. "\tConnect to a NetVIS server and assist compiling."
  391. }
  392. TextBox
  393. {
  394. Name "Port"
  395. Param "-port"
  396. Type "Integer"
  397. Default "21212"
  398. Min "0"
  399. Max "65535"
  400. Hint "\tThe socket or port."
  401. }
  402. TextBox
  403. {
  404. Name "Rate"
  405. Param "-rate"
  406. Type "Integer"
  407. Default "60"
  408. Min "1"
  409. Hint "\tChange the status display update rate. (In seconds.)\n\n"_
  410. "\tEvery time this interval is hit your console is updated with a progress report listing all the clients and their progress as well as an overall percentage."
  411. }
  412. Space
  413. {
  414. Size "5"
  415. }
  416. TextBox
  417. {
  418. Name "Additional Parameters"
  419. Type "String"
  420. Size "3"
  421. Hint "\tAdd additional parameters here as you would a command line."
  422. }
  423. }
  424. //
  425. // RAD
  426. //
  427. Stage
  428. {
  429. Name "RAD"
  430. Title "Radiosity"
  431. Type "Program"
  432. Filter "HLRAD (hlrad.exe)|hlrad.exe"
  433. CheckBox
  434. {
  435. Name "Circus"
  436. Param "-circus"
  437. Hint "\tEnable 'circus' mode for locating unlit lightmaps.\n\n"_
  438. "\tThis is a debugging option, which will cause all black pixels in any lightmap to be set to a random fullbright color. It only looks at the direct lighting to make this determination, and ignores any bounced radiosity data for making this determination."
  439. }
  440. CheckBox
  441. {
  442. Name "Dump Light Patches"
  443. Param "-dump"
  444. Hint "\tDumps light patches to a file for hlrad debugging info This is a developer option for zhlt, to dump out the patch data generated by the chopping/subdividing and make sure it looks alright."
  445. }
  446. /*CheckBox
  447. {
  448. Name "Extra"
  449. Param "-extra"
  450. Bold "True"
  451. Hint "\tTurns on 9 point oversampling for lighting, making it look much better."
  452. }*/
  453. CheckBox
  454. {
  455. Name "Incremental"
  456. Param "-incremental"
  457. Hint "\tUse or create an incremental transfer list file.\n\n"_
  458. "\tThis is a handy option for tweaking lighting, especially on slow or lower memory machines. BuildVisLeafs, MakeScales, and SwapTransfers can be skipped entirely on subsequent runs of hlrad. Note that geometry must not change, but lighting can."
  459. }
  460. CheckBox
  461. {
  462. Name "No Linear Interpolation"
  463. Param "-nolerp"
  464. Hint "\tDisable three multi-point interpolation for radiosity patch blending, use nearest point sample instead."
  465. }
  466. /*CheckBox
  467. {
  468. Name "No Visibility Matrix"
  469. Param "-nomatrix"
  470. Hint "\tDisable usage of vismatrix entirely.\n\n"_
  471. "\tAs the sparse code does some compression, it requires a lot of thread synchronization and does not scale well past 2 CPU's. The -nomatrix switch was added to address this. However, the addition of 'opaque brush entities' starting with ZHLT 2.2 hurts the -nomatrix method's performance quite a bit. There is no vismatrix in this method at all, so it essentially reduces the memory requirements to zero for that structure."
  472. }*/
  473. CheckBox
  474. {
  475. Name "No Opaque Entities"
  476. Param "-nopaque"
  477. Bold "True"
  478. Hint "\tDisable all entities using zhlt_lightflags 2 to block light. Using opaque entities slows rad down, and using this option is useful for doing quicker non-final lighting compiles."
  479. }
  480. CheckBox
  481. {
  482. Name "No Sky Fix"
  483. Param "-noskyfix"
  484. Hint "\tDisable light_environment being global ZHLT 2.1 added a simpler more manageable system for light_environments. The new behavior is that a map only needs a single light_environment entity to light up all sky everywhere. The placement of the entity no longer matters. The -noskyfix option turns this feature off and enables the original code which requires multiple light_environments to properly light up an outdoor area."
  485. }
  486. CheckBox
  487. {
  488. Name "No Texture Scale"
  489. Param "-notexscale"
  490. Hint "\tDo not scale radiosity patches with texture scale.\n\n"_
  491. "\tBy default, hlrad will take the texture scale and apply it to the chopping grid which is projected onto it. This option turns that off, and almost always increases the number of patches in a map as most maps have many walls scaled up to 2 and 3."
  492. }
  493. CheckBox
  494. {
  495. Name "Sparse"
  496. Param "-sparse"
  497. Bold "True"
  498. Hint "\tEnable low memory vismatrix algorithm.\n\n"_
  499. "\tThe original vismatrix algorithm was limited to 65535 patches due to its design. Its memory usage also grew exponentially with the number of patches (patches * patches / 16 bytes). This option enables a compressed vismatrix, which at the cost of extra CPU time, breaks the 65535 limit, and also uses about 10% of the memory the vismatrix would."
  500. }
  501. TextBox
  502. {
  503. Name "Bounce"
  504. Param "-bounce"
  505. Bold "True"
  506. Type "Integer"
  507. Default "1"
  508. Min "0"
  509. Hint "\tSet number of radiosity bounces.\n\n"_
  510. "\tThis option sets the number of times light bounces in the radiosity pass. By the time the code gets to this point, all the data is precomputed, and extra bounces are very fast. It will make the shadows less harsh using more bounces, but can help light up dark areas much more naturally."
  511. }
  512. TextBox
  513. {
  514. Name "Chop"
  515. Param "-chop"
  516. Type "Single"
  517. Default "64.0"
  518. Min "1.0"
  519. Hint "\tSet radiosity patch size for normal textures.\n\n"_
  520. "\tEach face in the world has a grid projected onto it, and chopped up into a rather coarse set of sample points. These points are patches, and are what hlrad uses to do the bounced lighting calculations. A higher chop sacrifices quality for both speed and memory consumption of hlrad. A lower chop increases the quality at the expense of speed and memory usage."
  521. }
  522. TextBox
  523. {
  524. Name "Additional Parameters"
  525. Type "String"
  526. Size "3"
  527. Hint "\tAdd additional parameters here as you would a command line."
  528. }
  529. TextBox
  530. {
  531. Name "Coring"
  532. Param "-coring"
  533. Type "Single"
  534. Default "1.0"
  535. Min "0.0"
  536. Hint "\tSet lighting threshold before blackness.\n\n"_
  537. "\tThis value controls how much light it takes before a surface will be lit with a non-black value."
  538. }
  539. TextBox
  540. {
  541. Name "Direct Light"
  542. Param "-dlight"
  543. Type "Single"
  544. Default "25.0"
  545. Min "0.0"
  546. Hint "\tSet direct lighting threshold.\n\n"_
  547. "\tThis option is similar to -maxlight, except that it re-normalizes the direct lighting values instead of clipping them if they are too high."
  548. }
  549. TextBox
  550. {
  551. Name "Direct Scale"
  552. Param "-dscale"
  553. Bold "True"
  554. Type "Single"
  555. Default "2.0"
  556. Min "0.0"
  557. Hint "\tSet direct lighting scale.\n\n"_
  558. "\tDue to a bug in the original version of qrad, the direct lighting layer was added into the final lighting twice. The correct thing to do is only have it in there once, but at the time too many maps had been created with this assumption and it was left in there. This has been corrected as a command line switch, to scale the direct lighting by.\n\n"_
  559. "\tUsing the value of '1' would generate the most correct looking maps. Using a value of '0' will remove the direct lighting completely. Using larger values, like '3' or '4', cause extremely harsh direct lighting relation to shadows."
  560. }
  561. TextBox
  562. {
  563. Name "Fade"
  564. Param "-fade"
  565. Type "Single"
  566. Default "1.0"
  567. Min "0.0"
  568. Hint "\tSet global fade (larger values shorter lights).\n\n"_
  569. "\tThis value adds in an artificial factor into the normal (1 / dist * dist) inverse square falloff calculations, by multiplying the denominator of the scale by the fade value. Point lights can set their own individual fade and falloff values, which override any global setting on the command line. These calculations only affect the direct lighting layer, as the radiosity pass always uses plain inverse square falloff."
  570. }
  571. TextBox
  572. {
  573. Name "Gamma"
  574. Param "-gamma"
  575. Type "Single"
  576. Default "0.5"
  577. Min "0.0"
  578. Hint "\tSet global gamma value.\n\n"_
  579. "\tThis option also occurs after the direct and radiosity layers are added together, and a global gamma correction is calculated and applied to the lighting before it is finalized."
  580. }
  581. TextBox
  582. {
  583. Name "Max Light"
  584. Param "-maxlight"
  585. Type "Integer"
  586. Default "255"
  587. Min "0"
  588. Hint "\tSet maximum light intensity value.\n\n"_
  589. "\tThis option can be used to cap the bright spots, if you want a map to come out darker overall."
  590. }
  591. TextBox
  592. {
  593. Name "Scale"
  594. Param "-scale"
  595. Type "Single"
  596. Default "1.0"
  597. Min "0.0"
  598. Hint "\tSet global light scaling value.\n\n"_
  599. "\tThis option scales the final light values right after the direct lighting layer is added to the radiosity bounced lighting layer. Low values make the world darker, higher values make it brighter."
  600. }
  601. TextBox
  602. {
  603. Name "Sky"
  604. Param "-sky"
  605. Type "Single"
  606. Default "0.5"
  607. Min "0.0"
  608. Hint "\tSet ambient sunlight contribution in the shade outside.\n\n"_
  609. "\tMany faces have line of sight to sky, but fall in the shadow of some other object. This option affects how much of the normal sky lighting is put into the shadows."
  610. }
  611. TextBox
  612. {
  613. Name "Smooth"
  614. Param "-smooth"
  615. Bold "True"
  616. Type "Single"
  617. Default "50.0"
  618. Min "0.0"
  619. Max "180.0"
  620. Hint "\tSet smoothing threshold for blending (in degrees).\n\n"_
  621. "\tBy default hlrad uses Phong shading on all faces. If the angle between two edges is less than this value, it will be shaded with the Phong smoothing code, otherwise it won't."
  622. }
  623. TextBox
  624. {
  625. Name "Texture Chop"
  626. Param "-texchop"
  627. Type "Single"
  628. Default "32.0"
  629. Min "1.0"
  630. Hint "\tSet radiosity patch size for texture light faces.\n\n"_
  631. "\tTexture light faces are chopped with a different granularity than the normal faces, primarily so that the lighting looks good. Generally it should be half of the chop value. Adding -extra to hlrad will automatically divide this value by 2 at runtime."
  632. }
  633. Space
  634. {
  635. Size "1"
  636. }
  637. ComboBox
  638. {
  639. Name "Fall Off Mode"
  640. Param "-falloff"
  641. Default "Inverse Square"
  642. Options "Inverse Linear,1|Inverse Square,2"
  643. Hint "\tSet global falloff mode.\n\n"_
  644. "\tThis option can change the normal inverse square falloff of lighting in the direct lighting layer with inverse falloff."
  645. }
  646. ComboBox
  647. {
  648. Name "VIS Matrix"
  649. Bold "True"
  650. Default "Legacy"
  651. Options "Legacy,|Sparse,-sparse|Disable,-nomatrix"
  652. Hint "\tThe original vismatrix algorithm was limited to 65535 patches due to its design. Its memory usage also grew exponentially with the number of patches (patches * patches / 16 bytes).\n\n"_
  653. "\tSparse enables a compressed vismatrix, which at the cost of extra CPU time, breaks the 65535 limit, and also uses about 10% of the memory the original vismatrix would, but as it does some compression, it requires a lot of thread synchronization and does not scale well past 2 CPU's.\n\n"_
  654. "\tDisabling the Vis matrix essentially reduces the memory requirements to zero for that structure. However, the addition of \"opaque brush entities\" starting with ZHLT 2.2 hurts this method's performance quite a bit."
  655. }
  656. ColorBox
  657. {
  658. Name "Ambient Light"
  659. Param "-ambient"
  660. Type "Single"
  661. Default "0 0 0"
  662. Hint "\tSet ambient world light.\n\n"_
  663. "\tThis option sets a minimum light value to every face so that nothing comes out pitch black."
  664. }
  665. FileBox
  666. {
  667. Name "Lights File"
  668. Param "-lights"
  669. FullPath "True"
  670. Bold "True"
  671. Filter "Radiosity Files (*.rad)|*.rad|Text Files (*.txt)|*.txt"
  672. Hint "\tManually specify a lights.rad file to use.\n\n"_
  673. "\tThe .rad file will be used in addition to the defaults of lights.rad and mapname.rad."
  674. }
  675. }
  676. //
  677. // RipEnt
  678. //
  679. Stage
  680. {
  681. Name "RipEnt"
  682. Title "Rip Entities"
  683. Type "Program"
  684. Filter "RipEnts (ripent.exe)|ripent.exe"
  685. ComboBox
  686. {
  687. Name "Operation"
  688. Checked "True"
  689. Default "Export"
  690. Options "Import,-import|Export,-export"
  691. Hint "\tImport an entity list into a BSP or export an entity list from a BSP.\n\n"_
  692. "\tAn entity list is a mapname.ent file which lists all the entities in the BSP in MAP format which you can edit in a text editor."
  693. }
  694. Space
  695. {
  696. Size "9"
  697. }
  698. TextBox
  699. {
  700. Name "Additional Parameters"
  701. Type "String"
  702. Size "3"
  703. Hint "\tAdd additional parameters here as you would a command line."
  704. }
  705. }
  706. //
  707. // Shared
  708. //
  709. Stage
  710. {
  711. Name "Shared"
  712. Title "Shared Parameters"
  713. Type "ParameterList"
  714. CheckBox
  715. {
  716. Name "Chart"
  717. param "-chart"
  718. Bold "True"
  719. Stages "CSG|BSP|VIS|NetVIS|RAD"
  720. Hint "\tDisplay BSP statistics.\n\n"_
  721. "\tThis option will cause the program to print out the bsp statistics right before it writes out the bsp. It is most handy to do -chart with hlrad and hlvis at the end of the compiles. The ripent program will always displays the chart."
  722. }
  723. CheckBox
  724. {
  725. Name "Estimate"
  726. param "-estimate"
  727. Bold "True"
  728. Stages "CSG|BSP|VIS|NetVIS|RAD"
  729. Hint "\tDisplay estimated time during compile.\n\n"_
  730. "\tThis option replaces the 10...20... style progress indicators with a estimate bar with some estimated completion times, as well as the exact number of the current job and how many jobs there are to do. The three different times remaining factor in varying amounts of historical data to guess how much longer it will take to run. It is good for a ballpark figure, but frequently not much more accurate than that."
  731. }
  732. CheckBox
  733. {
  734. Name "No Info"
  735. param "-noinfo"
  736. Bold "True"
  737. Stages "CSG|BSP|VIS|NetVIS|RAD"
  738. Hint "\tDo not show tool configuration information.\n\n"_
  739. "\tBy default every tool shows its current settings and their default. This sometimes causes problems with other programs and is unnecessary as it already can be seen in the command line."
  740. }
  741. CheckBox
  742. {
  743. Name "No Log"
  744. param "-nolog"
  745. Stages "CSG|BSP|VIS|NetVIS|RAD"
  746. Hint "\tDon't generate the compile logfiles.\n\n"_
  747. "\tThis option just disables the generation of the .log and .err files which are normally generated whenever the compile tools run."
  748. }
  749. CheckBox
  750. {
  751. Name "Verbose"
  752. param "-verbose"
  753. Stages "CSG|BSP|VIS|NetVIS|RAD"//, Opt_EntData"
  754. Hint "\tCompile with verbose messages.\n\n"_
  755. "\tMany of the tools have 'minor warnings' and informative messages which are displayed when verbose mode is set. As the ZHLT 2.x series develops, many of the developer specific settings are being moved to developer messages, while the mapper related messages will remain as verbose messages."
  756. }
  757. TextBox
  758. {
  759. Name "Texture Data"
  760. Param "-texdata"
  761. Bold "True"
  762. Stages "CSG|BSP|VIS|NetVIS|RAD|RipEnt"
  763. Type "Integer"
  764. Default "4096"
  765. Min "2048"
  766. Hint "\tAlter maximum texture memory limit (in kb).\n\n"_
  767. "\tHalflife was built with a 2Mb texture limit, as was Opposing Force. The ZHLT default limit is 4Mb. Even 4Mb can be a bit much, when combined with model textures, skies, hud graphics, and more. This is especially true of people with older cards (Voodoo 1 and 2's, etc)."
  768. }
  769. TextBox
  770. {
  771. Name "Threads"
  772. Param "-threads"
  773. Stages "CSG|BSP|VIS|NetVIS|RAD"
  774. Type "Integer"
  775. Default "1"
  776. Min "1"
  777. Hint "\tManually specify the number of threads to run.\n\n"_
  778. "\tThis option is generally only necessary on the non-windows versions of the tools, where there is not a standard way to detect the number of processors in the system and auto-set the value. It can be manually set on windows machines, primarily if you wish to use fewer threads than processors."
  779. }
  780. ComboBox
  781. {
  782. Name "Developer"
  783. Param "-dev"
  784. Stages "CSG|BSP|VIS|NetVIS|RAD"
  785. Default "Error"
  786. Options "Off,0|Error,1|Warning,2|Info,3|Fluff,4|Spam,5|MegaSpam,6"
  787. Hint "\tCompile with developer messages.\n\n"_
  788. "\tInternal ZHLT debugging messages have been slowly added to the tools. This variable sets the 'level' to display. In order (starting with 0 and going up) : Off, Error, Warning, Info, Fluff, Spam, MegaSpam. Generally this option should never be used except at request, to diagnose a compile problem on an end-users machine."
  789. }
  790. ComboBox
  791. {
  792. Name "Priority"
  793. Stages "CSG|BSP|VIS|NetVIS|RAD"
  794. Default "Normal"
  795. Options "Low,-low|Normal,|High,-high"
  796. Hint "\tRun program an altered priority level.\n\n"_
  797. "\tSetting the priority of the compile tools to -low is very handy, as you can multitask and do other things without really feeling the drain of the compile programs on the system, provided there is enough memory for the tools and the other programs you use."
  798. }
  799. }