1、Valve Hammer Editor 编译参数4 个编译程序通用的参数-texdata #:设定纹理使用显存的大小,单位是千字节(kb)!zhtl 默认的大小是 4mb 显存,即 4*1024=4096kb。一般这个量已经足够了,没有改动必要。-chart:显示 bsp 文件的变化统计,大家要明白一个概念:最终的 bsp 文件其实就是 map文件经过 4 个编译程序编译的结果的总合,那么这 4 个程序到底分别给了最终的 bsp 文件什么样的信息呢,这个参数就会帮助我们了解这些内容信息,呵呵,对我们而言好象是没用的,能编译就行了,谁还管那么多呀!-low -high:设置程序的优先级别,默认是
2、 normal(普通) ,设置成-low 时,程序将后台运行,方便我们在编译是使用电脑进行其他工作,这个模式编译时间最长。设置成-high 时,电脑把全力运行,时间最短。呵呵,老规矩,个人认为默认即可。-nolog:不输出 log 文件(编译过程记录文件) ,默认是输出,诚如我所说, log 文件是我们碰到编译出错时的救命法宝,不可不要!建议保留默认设置。-threads #:指定 cpu 数量,妈妈的,呵呵,一般大家电脑里都是一个 cpu 吧,默认即可。windows 系统就算是多 cpu 的程序也会自动识别的,不用大家手动设置。这个参数主是运用于那些使用非 windows 系统的多 cpu
3、 电脑的。呵呵,朋友们,把这个垃圾到顶的参数忘了吧。-estimate:显示编译进度,就是哪个 10%20%.30%.的编译进度,默认是关闭的,等半天也不知道编译了多少了,呵呵。他可以让我们见到编译的进度。-verbose:输出更详细的报告。对于我们而言,log 文件(就是我们常说的编译报告)已经足够我们找到并解决编译中所遇到的决大部分问题了。当 log 文件实在无法帮助我们找到出错问题时,我们可以加这个参数以得到更多的帮助信息。-noinfo:不显示程序的设置信息,举例:引用编译报告(log 文件): hlcsg v2.4.2 rel (Nov 9 2000) Based on Valves
4、 version, modified with permission. Submit detailed bug reports to () - BEGIN hlcsg - Command line: “D:Program FilesWorldcrafthlcsg.exe“c:windowsdesktopmapcar1 -wadinclude x-man_bmw.wad-= Current hlcsg Settings =- Name Setting Default - - threads 1 Varies verbose off off log on on developer 0 0 char
5、t 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.wadentering c:windowsdesktopmapc
6、ar1.map CreateBrush: (26.80 seconds) SetModelCenters: (0.00 seconds) CSGBrush: (2.64 seconds) Using WAD file: 反恐精英中文站 cs1.5 中文硬盘版cs1.5 中文硬盘版cstrikecstrike.wad Using WAD file: 反恐精英中文站 cs1.5 中文硬盘版cs1.5 中文硬盘版cstrikecs_dust.wad Embedding textures from WAD File 反恐精英中文站 cs1.5 中文硬盘版cs1.5 中文硬盘版cstrikex-man_
7、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 信息的参数,一般是用于收集程序调试时的各种数据的,呵呵,对咱们而言根本是无用
8、的!好了,通用的参数讲完了,相面就分别讲 4 大编译程序各自独有的参数hlcsg:-nowadtextures:呵呵,这个参数就是让地图用到的所有纹理都自动整合到 bsp 文件里面去。-wadinclude file(带后缀的文件名):相信这个参数是大家使用最多的了,他的作用是把地图在指定 wad 文件里用到的纹理整合到 bsp 文件里面。呵呵,和 -nowadtextures 参数相比还是这个比较好,我来解释一下: 一般纹理我们可以分成官方纹理和第三方纹理,官方纹理每个 cs 都是自带的,我们是没有必要把他整合到 bsp 文件里面的,因为那样除了增加 bsp 文件的体积外没有任何好处。我们一
9、般整合纹理的目的就是整合 cs 不自带的第三方的纹理,所以象-wadinclude file 这样让我们有选择的整合纹理的参数才是我们需要的,不是么?当然象-nowadtextures 这样的命令也不是没有用,他的优点在于:1、使用简单 2、在我们跨版本使用地图时,他是必须的,因为版本不一样的 cs 他们的官方纹理也是不完全一样的。呵呵-noclip:这个参数涉及到一个 hull 的概念,hull 是雷神之锥引擎的一个构造游戏世界的基本原理的概念,我查过这个 hull 的解释文章,但都是无法打开的过期网页,到目前为止我也不知道这个 hull 的基本概念原理,所以这个参数我就按官方原文直译了,大
10、家见谅,译文:不建立贴附外壳(clipping hull) ,半条命就像雷神 1 一样,游戏世界由 4 层外壳组成,一个可见外壳(visual hull )和 3 个相互作用的外壳(collision hull) ,这个参数为了节约编译时间会阻止激活相互作用的外壳(collision hull)的产生。注意,这样所产生的地图世界将会是非固体的(所有的东西将会掉入无效的空间(void) ) 。呵呵,反正就是为节省编译时间而牺牲地图质量的一个参数(我的理解) ,大家不用理会!-onlyents:把 map 文件中的实体参数更新到 bsp 文件。这个设置会将实体的变更参数从map 文件提出来把他们加
11、入 bsp 文件中去,用以替换原来的实体的参数。记住,是实体的参数!。因为增加或减少任何实体将导致重新编排其他原有那些已经被优化分割的的实体,尤其是那些触发实体(trigger) ,因为这可是 vis 的工作哦!所以指望它去增加或减少原 bsp 存在的实体显然是不可取的。这个参数适用与这种情况:你辛辛苦苦花了很长时间编译一张地图,进游戏一看,妈妈呀,什么都好,就是有一块玻璃不够透明,一般你是乖乖的进 wc 改好玻璃的透明参数后再乖乖的重新编译一遍( 5555.等的好苦啊) ,呵呵现在不用愁了吧,呵呵,不用另外 3 个程序,只用一个 hlcsg 加上这个参数就可以了,爽吧!这个参数比较有用,不过
12、用人的比较少,个人认为这个参数对改变灯的参数时应该让 hlrad 也同时运行,因为光影效果是靠他的。没有试验过,所以不敢下结论,大家有空可以试试,记得把结果反馈给我哦!呵呵-noskyclip:不对天空进行纹理贴附。呵呵,默认(不用这个参数)是自动对天空固体进行纹理贴附,他的作用是相当于移走在天空固体里面的非天空纹理的面,作用显然能够加快vis 的编译速度和节省 rad 编译时对内存的占用。呵呵,用了-noskyclip 参数当然是一切相反喽!这么垃圾的参数你会用么!-brushunion #:对地图中重叠的固体设定警告的界限。呵呵,这是一个用于优化调试地图阶段的参数,取值范围是 0100,意
13、思就是 2 个固体重叠超过%多少时输出警告信息到 log文件,默认是关闭的,就是不警告,因为开着会显著的拖慢 hlcsg 的运行时间。这可是一个对我们优化地图很有用的参数,我来解释一下:曾经看过一篇教程,大体是说为了减少产生地图空隙的可能性,建议让大家在制作地图时宁可让固体相互插入(就是相交重叠).,但我们也知道,过分的固体相交重叠无论从编译的时间(主要是 vis)和对游戏的fps 都是没有任何好处的,这是事实。还有一个事实是有时候固体相交确实是不能够避免的,一种情况是没办法,如:制作 d2 里的山石,另一种情况是自己的疏忽。我们在后期优化地图的时侯应该让第一中相交的程度尽量少,第 2 种情况
14、尽量没有,呵呵,光靠眼睛不现实吧,这个参数就会派上用场了.加上这个参数,用较大数值(如 95)运行 csg 程序,然后打开 log 文件,里面就会有详细的相交程度超过 95%的固体的编号坐标了,轻轻松松就找到你想修改的地方了。修正后在慢慢改变数字,以此类推,呵呵。爽吧!减小了你变4 眼田鸡的可能性哦!建议有相当地图经验的人用,呵呵,菜弟弟们慢慢来吧!-hullfile: 又是一个涉及到 hull 概念的参数,呵呵,本斑竹不懂!估计不是什么好东西,不学也罢!大家不要说我无能哦!好了,关于 hlcsg 的参数部分到此结束!hlbsp 的参数-leakonly:呵呵,让 bsp 只运行他寻找空隙的程
15、序部分而不运行其他,以帮我们在找地图缝隙的时候节省编译时间。当你知道地图有空隙正在寻找时弥补时,为了验证缝隙是否已经弥补需要进行一遍又一遍的 bsp 编译,呵呵是否让你不耐等待啊!这个参数可以帮你大大节省时间,知道你是否已弥补缝隙,同时把有关缝隙的信息更新到 pts 文件。有关pts 文件的使用我有空会为大家讲解的!-subdivide #:设置 bsp 对面的细分标准!在半条命和所有他的 mod 的世界里,所有的面都是通过这个数值细分的,他的取值范围是 64240,默认是 240。一般我们是不需要降低这个数值的,因为降低这个数值就会增加 r_speeds。关于 r_speeds 的说明:r_
16、speeds 是 cs 的一个命令,大家可以在游戏里通过控制台输入 r_speeds 0 运用,他会显示你当前位置当前时刻的,fps、wpoly、epoly 等信息。wpoly 是指在某一时刻,你在屏幕上所见到的地图上的固体(包括实体固体)的面的总和。地面,墙壁,门.等等1wpoly 指固体的一个面 epoly 是指指在某一时刻,你在屏幕上所见到的模型上的面的总和,包括如:你自己的手和枪的 model,地上的枪,别的玩家,意大利里面的小鸡,等所有 model。1wpoly 指模型的一个面。 fps 的意思大家都知道吧!(每秒的桢数) ,fps 是越大越好。我们在排除客观的硬件因素后,上文提到的
17、 wpoly 和 epoly 就和 fps 息息相关了,wpoly+epoly 的总数与 fps 是成反比的,wpoly+epoly 的总数越大,fps 就越小;wpoly+epoly 的总数越小,fps 就越大。呵呵,你的明白了! 大家现在明白上文“增加 r_speeds”的含义了吧,呵呵,就是增加 wpoly 的意思,增加也就是降低 fps 哦!呵呵你说你还会去用这个参数么!又是垃圾!哈哈哈-未完-maxnodesize #:设置 bsp 对场景中最初级最基本的节点尺寸(同一固体上 2 个相临节点的距离)的设置。范围为 644096,默认为 1024,呵呵,解释一下吧,假设你的地图里有一个
18、2048*32*32 固体,大家阅读过我别的文章的应该都知道,在后面 vis 的时候他为了优化会把你的固体切切切的,其实在 vis 之前,还有 bsp 最基本 的一关呢,就向上面我说的固体,一到 bsp 手里就喀嚓了,变成两个 1024*32*32 的固体了(因为默认的 nodsize 是 1024) ,到 vis 手里就是 2 个固体了,当然,小于 1024 单位的就可以通过这个 bsp 了,不用在他这里被砍一刀了,当然,无论怎么样,到了 vis 阶段还是都要被蹂躏虐待的。现在大家明白这个参数的含义了么?这个参数大家要慎重,因为改小了会增加当前 bsp 文件的体积,不过话又说回来,相对教小的
19、参数会节省 vis 的编译时间和 rad 对系统物理内存的需求,反之,相对过大又会造成 vis 时间的增加和 rad 对系统物理内存需求!但这仅仅是编译上的时间问题,最主要的关键在于这个参数对 fps 的影响(因为最终会直接影响到游戏里的 wpoly的量) ,根据地图的实际情况,相应增加或减少这个数值对提高你的 fps 是有一定帮助的,一般而言,大场景的地图值应当相对大一点好,小场景地图相对小一点比较好。呵呵,我只能说这么多了,总之,这是参数大家设好了就是天大好事,设坏了就是灾难了,我建议大家还是不要手痒的好。呵呵默认即可!-notjunc:不要打断有 t-junctions 这种情况存在的边
20、(不用于最终的编译)呵呵,简单了,官方文献上说,这是一个目前还是处于测试阶段的参数。建议大家不要使用,哈哈哈这次可不是我建议,是官方建议。补充:t-junctions 的说明:T-junctions 的存在是由于浮点运算的误差所导致的。如下面的图片所示,当 polygon ABCD 被分割为 ABC 和 BDC 两个三角性后,三角形 BDC 又被分割为BDE 和 EDC 两个三角形。这时候原始 polygon 被分割为三角形 1、2、3。在理想状况下,点 E 应该与点 B、C 共线。但,实际情况却不是这样,点 E 会出现在三角形 ABC 或 BDC 的内。当点 E 出现在 BDC 内时,就会出
21、现一个空白,三角形 BEC。这时候就出现了 T-junctions。呵呵,大家明白了么?再举一个列子:大家作地图用不规则的固体雕刻别的固体制造一个有不规则的洞的墙壁,在 wc 里面看上去是完美的,但编译后进游戏往往会发现这个形成这个洞的墙壁上往往有本来不应该存在的裂缝,这种情况就是 T-junctions 了。呵呵,现在很清楚了吧,关于产生这种情况的深层次的原因我聊几句,一般分割多边形的有 2 种方法 1、基于 polygon 切割的算法。2 、基于渲染的算法,第一种方法的最终结果有利于渲染,不过容易产生 T-junctions,第 2 种方法则相反,咱们的编译程序刚好就是用了第一种方法,呵呵
22、所以一碰到稍微复杂一点的固体就 哈哈哈-noclip:如果 csg 程序用了这个参数, bsp 也需要这个参数了,就是告诉 bsp 说,csg 在贴附外壳层次没有进行纹理贴附的运算,你 bsp 也不用在贴附外壳层次的固体上下工夫了。呵呵。官方文件说,这个是不能用在地图的最终编译的(不是本斑竹说的哦!) 。呵呵又是废物一个!-nofill:不填充地图的外部空间(是指大家的眼睛在游戏里永远看不到的地方,比如天空以外,实心箱子的里面,墙壁的里面) 。呵呵!这样搞的结果是到 rad 的时候不知道会增加多少时间和错误,尽管对 vis 不会产生大的影响。他的唯一的作用是掩饰你的地图的空隙,让你得到一个仅仅
23、是可以运行的无用的 bsp 文件!垃圾!垃圾!垃圾!呵呵,超级的垃圾参数!ok 了,hlbsp 的所有参数宣告结束!hlvis 的专用参数呵呵,只有 2 个哦!-fast:故名思意,就是进行快速的 vis 编译,这也是一个用在地图测试阶段的参数,目的是让你在改进测试中的地图的 vos 时间减少。他只是对固体进行切割,不会丢弃那些无用的polygon,显然这样的结果是 r-speeds 的结果是不会好的,当然是指里面的 wpoly 这个数据!呵呵,不多说了,反正这个参数就是我们在地图测试期间可以使用以节省编译时间,最终发布的时候还是不能用的!呵呵-full:呵呵,就是完全的 vis 编译,他可以
24、输出比普通 vis 编译(默认)在 log 文件输出更多的警告信息(这种警告的意思是说 xx 固体有缺陷或 xx 固体和 xx 固体之间有空隙,并不会导致编译出错,这些信息可以帮助我们修正地图的细小缺陷,但并不是必须的,呵呵) ,同时这种编译会比普通编译增加约 30%的 vis 编译时间,至于最终结果嘛,呵呵就是和普通便宜在总体上是差不多的,也就是说 r_speeds 的结果是大体相同的, 2 者比较时,fps 有的地方会高一点,有的地方会低一点呵呵,就是说用多 30%的编译时间得到一样的结果!呵呵,你会用么?建议那些对地图精益求精的老手使用,以帮助得到有用信息以帮助找到修正固体小错误!大家可
25、不要指望他能够帮你提高地图的 fps 哦!好了。hlvis 的参数没有了。hirad 的专用参数:-sparse:起用低内存计算渲染的编译演算方法(压缩算法) 。这里有一个“path”的概念大家要掌握:rad 把可见面按一定的尺寸标准分化成它能处理的表面我们称这个为“path”!这些“path”会被 rad 处理光线阴影效果并最终让我们在游戏里看到逼真的光影效果,举个例子:假设有:一个 128*128*128 的箱子,贴图时没有进行纹理缩放,他的一个面是128*128,rad 程序处理这个面的时候并不是直接在这个面上渲染光影,而是首先把他定义成 4 个 64*64 的面(按 rad 默认参数)
26、 ,也就是“path” ,然后对这 4 个“path ”处理光影,进行渲染,形成最终的效果!呵呵,这里还有一点要注意:上文说的面,其实就是文理的面积,假设我们在上面这个 128*128 的面上是用一个 64*64 的文理进行放大贴图的(注意:是一个) ,那么虽然面的面积是 128*128,其实用到的文理还是 64*64,那么 rad处理这种面时,它的 path 就只有 1 个了,如果是 256*256 的纹理缩小贴图呢?那他的 path就是 16 个!,现在大家明白了么?rad 的基本处理单元“path”和面的大小与文理的缩放有关。讲了这么多无非就是让大家明白 rad 中 path 的含义。这
27、是很重要的一个概念,大家好好掌握。下面讲的就是建立在大家对“path”理解的基础上的。 rad 能够处理的path 不是无限的,他有限量:最大值是 65535。同时,rad 运行时需要大量的内存,有一个换算公式即:最大 path 值/16=花费的最大内存字节数,我们很容易得到 rad 需要的最大内存是 256m,再加上其他的内存消耗,如系统本身的内存消耗,wc 的内存消耗,基本需要额外 128m 内存,我们得出,rad 的最佳内存要求是至少 384 内存的内存!呵呵,这个参数是就是争对那些内存相对教少或 path 超过 65535 而编译出错的朋友的,他起用一种压缩的算法,用极其繁重的 cpu
28、 运算任务来打破 path 不能超过 65535 这个限制,还有就是大大降低 rad 对内存的需求程度(和内存缢出说拜拜!) 。呵呵,好东东哦!大家根据实际需要使用哦!-nomatrix:完全关闭计算渲染的编译演算方法。这个参数是针对那些多 cpu 用户在渲染的编译演算时出错或效果不好时用的(官方文献) ,大家不用理会!-extra:起用 9 点光线取样的光影渲染算法,呵呵,地图光影效果一级棒,至于硬件要求和时间代价么?大家试试吧!-bounce #:这个参数是设置光线反射次数的,大家都知道,现实生活中的光线在物体表面会漫反射,这个参数就是模拟光线反射的,默认是 1,即反射一次。呵呵,也是一个
29、消耗内存的大户,我们可以设置成“-bounce 0”,即固体表面不反射光线,会大大节省内存,提升编译速度。当然,显而易见的是,我们编译后的地图的阴影将会非常刺眼不舒服的。 当然,机器好的话可以是 3、 4哈哈哈!继续工作。呵呵!-ambient r g b:这个参数改变地图的最小灯光等级,r g b 分别代表光线的 rgb 颜色,范围是0.0001.000。默认是: 0 0 0 就是全暗,在默认情况下,一间没有灯的房间是漆黑的,我们如果想让这间没有灯的房间还有一点亮度的话,就在这里设置吧!-maxlight #:和上个参数相反,设置调整地图的最大灯光等级,默认是 256。就是说,在默认情况下,
30、你为 light 实体设了超过 256 的亮度,在游戏里都是以 256 的亮度来照亮世界,除非你用这个参数改动设置!-circus:起用 “马戏团”模式(circus)开定位地图中全黑的地方,呵呵,这是一个测试的参数,他会用全亮的随机颜色照亮你地图中全黑的地方。他只会根据你的灯的数据来判断那些地方是亮,那些地方是黑,而不理会由于漫反射(bounce 参数)形成的光线!-nopaque:禁止所有实体使用 zhlt_lightflags 2 这个默认设置参数来阻挡光线,在默认情况下 rad 的速度是很慢的,这个参数是在地图调试阶段用的,目的是使你加快测试地图的编译时间!-smooth #:为光线进
31、行叠加混合时设定平滑过度的程度(角度值) ,默认是 50。默认情况下,rad 使用一种叫“phong shading”的方法处理所有固体表面的,当相临的 2 条边的夹角小于这个射定值时,程序会使用这种方式处理光隐的平滑过度程度,否则不用这种方式处理。呵呵,没用过,理论上这个值越大光影效果越好!大家可以试验一下,记得反馈信息哦!-chop #:呵呵,这个值就是用来定义上文提到的“path”的大小的,默认值是 64,这个值直接影响着“path”的大小,从而影响到 rad 对系统内存的需求和最终地图的光影效果的精细程度,大的 chop 值意味着对内存需求的减少和光影效果的粗糙,反之则相反,大家自己根
32、据实际情况来。呵呵,rad 运行慢的元凶就是他!-texchop #:纹理 path 的大小,大家在游戏里看到的阴影其实就是 rad 程序在原来的纹理上再进行光影纹理的渲染叠加后形成的,就是说我们在游戏里看到的文理,已经不光光是wad 里面的文理了,而是 wad 纹理再加上阴影纹理了这个就是设置 rad 绘制那个“阴影纹理”的基本单位:纹理 path 的大小的。值越小就意味着颗粒越小, “阴影纹理”越精致。他的默认设置是 32,呵呵就是“chpo ”的一半,一般情况下我们需要把这个值控制在chop 值的一半或一半以下的水平。顺便说一下,我们在设置了“-extra”参数的时候,这个值会自动被除以
33、 2 的!-notexscale #:纹理 path 和 path 是一样的,默认情况下。rad 处理纹理 path 的时候也是需要考虑到贴图纹理的缩放问题的(详见关于 path 的说明) ,这个参数就是让 rad 忽略贴图问题缩放这个问题。一般来说,我们的地图多多少少都会有纹理缩放的情况存在,让 rad忽略这个问题对我们的游戏地图光影的细腻程度的一致性是没有好处的!-coring #:设定一个光线向完全黑暗过度的临界值,默认是 1,就是说默认情况下当地图中某固体表面某一点的光线亮度为 1 时,他的相临的点的光线亮度就直接过度到 0 了,即完全黑暗。不会继续 0.90.8 这样衰减下去了!-d
34、light # :设置直射光线的临界点,呵呵,和上面的“-coring #”相同,只不过他是光线向完全亮度过度的临界值。默认为 25。-dscale #:设定直射照明光线的比例。呵呵,rad 的源程序有一个 bug(缺陷) ,就是把这个值的默认值射为了 2!我们可以通过这个值来把参数修正到 1。以更正 bug。呵呵,好东西啊!-nolerp:关闭多光源光影混合叠加。呵呵,假设有很多灯都能照到一个箱子的一个面,那么默认情况下这个面的光影就是所有所有灯对照到他的表面的亮度的叠加。这个参数就是不让所有灯的灯光对这个箱子的起作用,仅仅让离他最近的哪个灯在他表面形成光影效果,而忽略其他的。-fade #
35、:根改全局光线的衰减值,默认是 1,大家知道,灯的光线是以灯为中心重亮向暗逐渐衰弱的,这个值就是让你人工设定这个衰弱的变量的值,越大,光线就衰弱的越快,呵呵,比如:本来默认情况下能照到 20 米外的物体的灯,如果你把这个值设为 2,就只能照到 10 米远的物体了,0.5 的话就是 40 米远。呵呵!-falloff #:设置全局光线的衰减的模式,取值是 1 和 2,1 代表线性衰减,2 代表方型衰减(默认) 。呵呵,没用过。大家可以试试。-scale #:设置全局的光线比例。默认值是 1,如果设置的小,地图总体偏暗,大就偏亮。呵呵!1-gamma #:呵呵,一看就明白,是设置地图的 gamma
36、 值的,默认是 0.5,什么用处不用我多讲了吧,大家到 windows 的显示属性页,改改显卡的属 gamma 值就能体会了!-sky #:呵呵,大家知道现实生活中除了被阻挡光线的东西之外地图中所有的面都是处于天空之下被太阳直射的(废话) ,这些被阻挡了光线直射的物体并不是不可见的,就象下雨的白天,没有太阳大家还是可以见到所有东西的,并不是黑漆漆的(事实是大家在一个被云遮挡的巨大的阴影里) ,呵呵这时的光线我们称之为自然光。这个东西就是设置自然光的。默认是 1。FPS 对一张地图起着很大的影响,有着较高的 FPS 是一张地图成功的关键之一,=当然影响地图 FPS 的原因有很多, 处理不当会有很大的不同,总结下主要有以下的几个因素:1. 尽量避免过于宽阔的场景,视野宽阔,FPS 就直线下降,这个是最大的因素2. 光线的强弱也有很大的影响,光线越强,FPS 越低,所以,一般不是很必要,只要保证能看清楚就可以了,不要要求过分的光线强度3. 地图制作的布局也有很大影响,场景复杂很容易降低 FPS,比如你把两个箱子紧紧放一起和留裂缝,留了裂缝的就会相对比较慢,这样一个两个当然影响不大,但是一旦多了你就会发现有了变化4. 地图编译时的 vis 优化,试着用快速和完全两个设置去编译一张图,你就可以体会到了5. 一些其他的因素:玻璃,水,透明物体,复杂模型,天空过高. 等等