-texdata # |
设定纹理使用显存的大小,单位是千字节(kb)!zhtl默认的大小是4mb显存,即4*1024=4096kb。一般这个量已经足够了,没有改动必要。 |
-chart |
显示bsp文件的变化统计,大家要明白一个概念:最终的bsp文件其实就是map文件经过4个编译程序编译的结果的总合,那么这4个程序到底分别给了最终的bsp文件什么样的信息呢,这个参数就会帮助我们了解这些内容信息,呵呵,对我们而言好象是没用的,能编译就行了,谁还管那么多呀!!! |
-low │ -high |
设置程序的优先级别,默认是normal(普通),设置成-low时,程序将后台运行,方便我们在编译是使用电脑进行其他工作,这个模式编译时间最长。设置成-high时,电脑把全力运行,时间最短。个人认为默认即可。 |
-nolog |
不输出log文件(编译过程记录文件),默认是输出,诚如我所说,log文件是我们碰到编译出错时的救命法宝,不可不要!!建议保留默认设置。 |
-threads # |
指定cpu数量,一般大家电脑里都是一个cpu吧,默认即可。windows系统就算是多cpu的程序也会自动识别的,不用大家手动设置。这个参数主是运用于那些使用非windows系统的多cpu电脑的。 |
-estimate |
显示编译进度,就是哪个10%......20%.......30%.....的编译进度,默认是关闭的,等半天也不知道编译了多少了,呵呵。他可以让我们见到编译的详细进度、剩余时间等信息。很有用的。 |
-verbose |
输出更详细的报告。对于我们而言,log文件(就是我们常说的编译报告)已经足够我们找到并解决编译中所遇到的决大部分问题了。当log文件实在无法帮助我们找到出错问题时,我们可以加这个参数以得到更多的帮助信息。 |
-noinfo |
不显示程序的设置信息,举例:
引用编译报告(log文件): hlcsg v2.4.2 rel (Nov
9 2000) Based on Valve's version, modified with
permission. Submit detailed bug reports to
(zoner@gearboxsoftware.com) ----- BEGIN hlcsg
----- Command line: "D:\Program
Files\Worldcraft\hlcsg.exe"c:\windows\desktop\map\car1 -wadinclude
x-man_bmw.wad
-= Current hlcsg Settings =- Name
│ Setting │
Default ---------------------│-----------│------------------------- threads
[ 1 ] [ Varies ] verbose
[ off ] [ off ] log
[ on ] [ on
] developer
[
0 ] [
0 ] chart
[ off ] [ off ] estimate
[ off ] [ off ] max
texture memory [ 4194304 ] [ 4194304 ] priority
[ Normal ] [ Normal ]
noclip
[ off ] [ off
] onlyents
[ off ] [ off
] wadtextures
[
on ] [ on
] skyclip
[ on ] [ on
] hullfile
[ None ] [ None ] min surface
area [ 0.500 ] [ 0.500
] brush union threshold [ 0.000 ] [ 0.000
]
Wadinclude list
: [zhlt.wad] [x-man_bmw.wad]
entering
c:\windows\desktop\map\car1.map CreateBrush: (26.80
seconds) SetModelCenters: (0.00 seconds) CSGBrush: (2.64
seconds) Using WAD File:
\反恐精英中文站cs1.5中文硬盘版\cs1.5中文硬盘版\cstrike\cstrike.wad Using WAD File:
\反恐精英中文站cs1.5中文硬盘版\cs1.5中文硬盘版\cstrike\cs_dust.wad Embedding
textures from WAD File
[\反恐精英中文站cs1.5中文硬盘版\cs1.5中文硬盘版\cstrike\x-man_bmw.wad] into
BSP added 4 additional animating textures. Texture usage is at
1.23 mb (of 4.00 mb MAX) 47.13 seconds elapsed
-----
END hlcsg
----- 引用结束。 这是我截取的编译报告中hlcsg程序编译报告的部分,上面红字的就是hlcsg程序的设置情况,默认是显示,所以我们能看到,加了这个参数,报告中红字部分就不会显示了。
|
-dev # |
一个收集输出程序debug信息的参数,一般是用于收集程序调试时的各种数据的,呵呵,对咱们而言根本是无用的! |
|
|
hlcsg专用参数 |
|
-nowadtextures |
这个参数就是让地图用到的所有纹理都自动整合到bsp文件里面去 |
-wadinclude file |
相信这个参数是大家使用最多的了,他的作用是把地图在指定wad文件里用到的纹理整合到bsp文件里面。呵呵,和-nowadtextures参数相比还是这个比较好,我来解释一下: 一般纹理我们可以分成官方纹理和第三方纹理,官方纹理每个cs都是自带的,我们是没有必要把他整合到bsp文件里面的,因为那样除了增加bsp文件的体积外没有任何好处。我们一般整合纹理的目的就是整合cs不自带的第三方的纹理,所以象-wadinclude
file这样让我们有选择的整合纹理的参数才是我们需要的,不是么?当然象-nowadtextures
这样的命令也不是没有用,他的优点在于:1、使用简单2、在我们跨版本使用地图时,他是必须的,因为版本不一样的cs他们的官方纹理也是不完全一样的。(带后缀的文件名) |
-noclip |
这个参数涉及到一个hull的概念,hull是雷神之锥引擎的一个构造游戏世界的基本原理的概念,我查过这个hull的解释文章,但都是无法打开的过期网页,到目前为止我也不知道这个hull的基本概念原理,所以这个参数我就按官方原文直译了,大家见谅,译文:不建立贴附外壳(clipping
hull),半条命就像雷神1一样,游戏世界由4层外壳组成,一个可见外壳(visual hull
)和3个相互作用的外壳(collision hull),这个参数为了节约编译时间会阻止激活相互作用的外壳(collision
hull)的产生。注意,这样所产生的地图世界将会是非固体的(所有的东西将会掉入无效的空间(void))。......呵呵,反正就是为节省编译时间而牺牲地图质量的一个参数(我的理解),大家不用理会!!!!! |
-onlyents |
把map文件中的实体参数更新到bsp文件。这个设置会将实体的变更参数从map文件提出来把他们加入bsp文件中去,用以替换原来的实体的参数。记住,是实体的参数!!!!!。因为增加或减少任何实体将导致重新编排其他原有那些已经被优化分割的的实体,尤其是那些触发实体(trigger),因为这可是vis的工作哦!!所以指望它去增加或减少原bsp存在的实体显然是不可取的。这个参数适用与这种情况:你辛辛苦苦花了很长时间编译一张地图,进游戏一看,妈妈呀,什么都好,就是有一块玻璃不够透明,一般你是乖乖的进wc改好玻璃的透明参数后再乖乖的重新编译一遍(5555...等的好苦啊..),呵呵现在不用愁了吧,呵呵,不用另外3个程序,只用一个hlcsg加上这个参数就可以了,爽吧!!!!这个参数比较有用,不过用人的比较少,个人认为这个参数对改变灯的参数时应该让hlrad也同时运行,因为光影效果是靠他的。没有试验过,所以不敢下结论,大家有空可以试试,记得把结果反馈给我哦!! |
-noskyclip |
不对天空进行纹理贴附。呵呵,默认(不用这个参数)是自动对天空固体进行纹理贴附,他的作用是相当于移走在天空固体里面的非天空纹理的面,作用显然能够加快vis的编译速度和节省rad编译时对内存的占用。呵呵,用了-noskyclip参数当然是一切相反喽!!这么垃圾的参数你会用么? |
-brushunion # |
对地图中重叠的固体设定警告的界限。呵呵,这是一个用于优化调试地图阶段的参数,取值范围是0~100,意思就是2个固体重叠超过%多少时输出警告信息到log文件,默认是关闭的,就是不警告,因为开着会显著的拖慢hlcsg的运行时间。这可是一个对我们优化地图很有用的参数,我来解释一下:曾经看过一篇教程,大体是说为了减少产生地图空隙的可能性,建议让大家在制作地图时宁可让固体相互插入(就是相交重叠)........,但我们也知道,过分的固体相交重叠无论从编译的时间(主要是vis)和对游戏的fps都是没有任何好处的,这是事实。还有一个事实是有时候固体相交确实是不能够避免的,一种情况是没办法,如:制作d2里的山石,另一种情况是自己的疏忽。我们在后期优化地图的时侯应该让第一中相交的程度尽量少,第2种情况尽量没有,呵呵,光靠眼睛不现实吧,这个参数就会派上用场了.....加上这个参数,用较大数值(如95)运行csg程序,然后打开log文件,里面就会有详细的相交程度超过95%的固体的编号坐标了,轻轻松松就找到你想修改的地方了。修正后在慢慢改变数字,以此类推,呵呵。爽吧!!!减小了你变4眼田鸡的可能性哦!!!!!建议有相当地图经验的人用 |
-hullfile |
又是一个涉及到hull概念的参数,呵呵,本斑竹不懂!!!估计不是什么好东西,不学也罢!!!!!!大家不要说我无能哦!!!!! |
|
|
hlbsp专用参数 |
|
-leakonly |
让bsp只运行他寻找空隙的程序部分而不运行其他,以帮我们在找地图缝隙的时候节省编译时间。当你知道地图有空隙正在寻找时弥补时,为了验证缝隙是否已经弥补需要进行一遍又一遍的bsp编译,呵呵是否让你不耐等待啊!!!这个参数可以帮你大大节省时间,知道你是否已弥补缝隙,同时把有关缝隙的信息更新到pts文件。有关pts文件的使用我有空会为大家讲解的!! |
-subdivide # |
设置bsp对面的细分标准!!!在半条命和所有他的mod的世界里,所有的面都是通过这个数值细分的,他的取值范围是64~240,默认是240。一般我们是不需要降低这个数值的,因为降低这个数值就会增加r_speeds。 关于r_speeds的说明:
r_speeds是cs的一个命令,大家可以在游戏里通过控制台输入r_speeds
0运用,他会显示你当前位置当前时刻的,fps、wpoly、epoly等信息。 wpoly是指在某一时刻,你在屏幕上所见到的地图上的固体(包括实体固体)的面的总和。地面,墙壁,门.....等等....1wpoly指固体的一个面 epoly是指指在某一时刻,你在屏幕上所见到的模型上的面的总和,包括如:你自己的手和枪的model,地上的枪,别的玩家,意大利里面的小鸡,等所有model。1wpoly指模型的一个面。 fps的意思大家都知道吧!(每秒的桢数),fps是越大越好。我们在排除客观的硬件因素后,上文提到的wpoly和epoly就和fps息息相关了,wpoly+epoly的总数与fps是成反比的,wpoly+epoly的总数越大,fps就越小;wpoly+epoly的总数越小,fps就越大。呵呵,你的明白了!!! 大家现在明白上文“增加r_speeds”的含义了吧,呵呵,就是增加wpoly的意思,增加也就是降低fps哦!!!呵呵你说你还会去用这个参数么 |
-maxnodesize # |
设置bsp对场景中最初级最基本的节点尺寸(同一固体上2个相临节点的距离)的设置。范围为64~4096,默认为1024,呵呵,解释一下吧,假设你的地图里有一个2048*32*32固体,大家阅读过我别的文章的应该都知道,在后面vis的时候他为了优化会把你的固体切切切的,其实在vis之前,还有bsp最基本
的一关呢,就向上面我说的固体,一到bsp手里就喀嚓了,变成两个1024*32*32的固体了(因为默认的nodsize是1024),到vis手里就是2个固体了,当然,小于1024单位的就可以通过这个bsp了,不用在他这里被砍一刀了,当然,无论怎么样,到了vis阶段还是都要被蹂躏虐待的。现在大家明白这个参数的含义了么?这个参数大家要慎重,因为改小了会增加当前bsp文件的体积,不过话又说回来,相对教小的参数会节省vis的编译时间和rad对系统物理内存的需求,反之,相对过大又会造成vis时间的增加和rad对系统物理内存需求!!!但这仅仅是编译上的时间问题,最主要的关键在于这个参数对fps的影响(因为最终会直接影响到游戏里的wpoly的量),根据地图的实际情况,相应增加或减少这个数值对提高你的fps是有一定帮助的,一般而言,大场景的地图值应当相对大一点好,小场景地图相对小一点比较好。呵呵,我只能说这么多了,总之,这是参数大家设好了就是天大好事,设坏了就是灾难了,我建议大家还是不要手痒的好。呵呵默认即可!!!! |
-notjunc |
不要打断有t-junctions
这种情况存在的边(不用于最终的编译)呵呵,简单了,官方文献上说,这是一个目前还是处于测试阶段的参数。建议大家不要使用,哈哈哈这次可不是我建议,是官方建议。 补充:t-junctions
的说明:T-junctions的存在是由于浮点运算的误差所导致的。如下面的图片所示,当polygon
ABCD被分割为ABC和BDC两个三角性后,三角形BDC又被分割为BDE和EDC两个三角形。这时候原始polygon被分割为三角形1、2、3。在理想状况下,点E应该与点B、C共线。但,实际情况却不是这样,点E会出现在三角形ABC或BDC的内。当点E出现在BDC内时,就会出现一个空白,三角形BEC。这时候就出现了T-junctions。呵呵,大家明白了么?再举一个列子:大家作地图用不规则的固体雕刻别的固体制造一个有不规则的洞的墙壁,在wc里面看上去是完美的,但编译后进游戏往往会发现这个形成这个洞的墙壁上往往有本来不应该存在的裂缝,这种情况就是T-junctions了。呵呵,现在很清楚了吧,关于产生这种情况的深层次的原因我聊几句,一般分割多边形的有2种方法1、基于polygon切割的算法。2、基于渲染的算法,第一种方法的最终结果有利于渲染,不过容易产生T-junctions,第2种方法则相反,咱们的编译程序刚好就是用了第一种方法,呵呵..........所以一碰到稍微复杂一点的固体就..........哈哈哈 |
-noclip |
如果csg程序用了这个参数,bsp也需要这个参数了,就是告诉bsp说,csg在贴附外壳层次没有进行纹理贴附的运算,你bsp也不用在贴附外壳层次的固体上下工夫了。呵呵。官方文件说,这个是不能用在地图的最终编译的(不是本斑竹说的哦!!!)。呵呵又是废物一个!! |
-nofill |
不填充地图的外部空间(是指大家的眼睛在游戏里永远看不到的地方,比如天空以外,实心箱子的里面,墙壁的里面)。呵呵!!这样搞的结果是到rad的时候不知道会增加多少时间和错误,尽管对vis不会产生大的影响。他的唯一的作用是掩饰你的地图的空隙,让你得到一个仅仅是可以运行的无用的bsp文件!!!!垃圾!垃圾!!垃圾!!!呵呵,超级的垃圾参数! |
|
|
hlvis的专用参数 |
|
|
|
-fast |
故名思意,就是进行快速的vis编译,这也是一个用在地图测试阶段的参数,目的是让你在改进测试中的地图的vos时间减少。他只是对固体进行切割,不会丢弃那些无用的polygon,显然这样的结果是r-speeds的结果是不会好的,当然是指里面的wpoly这个数据!!呵呵,不多说了,反正这个参数就是我们在地图测试期间可以使用以节省编译时间,最终发布的时候还是不能用的!!! |
-full |
|