Zh/Brush: Difference between revisions

From Valve Developer Community
< Zh
Jump to navigation Jump to search
No edit summary
m (Multipage removal)
 
(6 intermediate revisions by 3 users not shown)
Line 1: Line 1:
{{lang|Brush|title=固体}}
{{LanguageBar}}
 
 
 
本页面由[[User:1416006136|大康]]翻译。
本页面由[[User:1416006136|大康]]翻译。
----
----
'''固体''' (brush) 是使用 [[Hammer:zh-cn|Hammer]]'s [[Hammer Block Tool|Block Tool]] 创建的[[Wikipedia:Polygon#Convexity_and_non-convexity|凸面]] 3D 形状。关卡设计师使用固体来定义[[world|世界]]的形状(定义[[visibility|可见性]])并创建[[brush entity:zh-cn|固体实体]]
'''固体''' (brush) 是使用 {{L|Hammer}}'s {{L|Hammer Block Tool|Block Tool}} 创建的[[Wikipedia:Polygon#Convexity_and_non-convexity|凸面]] 3D 形状。关卡设计师使用固体来定义{{L|world|世界}}的形状(定义{{L|visibility|可见性}})并创建{{L|brush entity|固体实体}}


编译地图时,[[VBSP:zh-cn|VBSP]] 将接触 [[visleaf]] 的笔刷面转换为[[Wikipedia:Constructive solid geometry|多边形组]]。生成的“固体模型”存储在 BSP 文件中,并且可以由实体(例如世界或你的固体实体)声明。原始固体保留在 BSP 中,尽管这样做的好处尚不清楚。
编译地图时,{{L|VBSP}} 将接触 {{L|visleaf}} 的笔刷面转换为[[Wikipedia:Constructive solid geometry|多边形组]]。生成的“固体模型”存储在 BSP 文件中,并且可以由实体(例如世界或你的固体实体)声明。原始固体保留在 BSP 中,尽管这样做的好处尚不清楚。


[[model|模型]]相比,固体:
{{L|model|模型}}相比,固体:


* 独一无二
* 独一无二
* 低细节和[[cheap|便宜]]
* 低细节和{{L|cheap|便宜}}
* 使用预先计算的 [[lightmap]] 光照
* 使用预先计算的 {{L|lightmap}} 光照
* 刚性 (不能[[Skeletal animation|变形]])
* 刚性 (不能{{L|Skeletal animation|变形}})


== 编译 ==
== 编译 ==
Line 20: Line 23:
这些规则有两个例外:
这些规则有两个例外:


* 尽管它们在 Hammer 中是离散的实体,但 [[func_detail]] 在编译过程中都会合并为一个。你不需要 [[nodraw]] 隐藏“细节与细节(连接)<sup>①</sup>”的面 [但你需要 nodraw 世界与细节(连接)的<sup>②</sup>面和细节与世界(连接)的<sup>③</sup>面]。
* 尽管它们在 Hammer 中是离散的实体,但 {{L|func_detail}} 在编译过程中都会合并为一个。你不需要 {{L|nodraw}} 隐藏“细节与细节(连接)<sup>①</sup>”的面 [但你需要 nodraw 世界与细节(连接)的<sup>②</sup>面和细节与世界(连接)的<sup>③</sup>面]。
* 应用了 [[$translucent|translucent]] 材质的面永远不会被切碎。不要将它们应用于内部或隐藏的表面,除非你真的打算这样做。
* 应用了 {{L|$translucent|translucent}} 材质的面永远不会被切碎。不要将它们应用于内部或隐藏的表面,除非你真的打算这样做。
<small>——————<br>① (detail-to-detail)<br>② (world-to-detail)<br>③ (detail-to-world)</small>
<small>——————<br>① (detail-to-detail)<br>② (world-to-detail)<br>③ (detail-to-world)</small>
== 限制 ==
== 限制 ==
Line 31: Line 34:
* 总共 32768 个面(BSP 平面限制的一半,每个面使用两个平面)
* 总共 32768 个面(BSP 平面限制的一半,每个面使用两个平面)


[[trigger_multiple|triggers]] 甚至 [[hint brush]] 这样的不可见笔刷都计入限制。像 NODRAW 这样的面不计入限制。使用 NODRAW 纹理化的面在编译过程中会被移除,因此仅保留其碰撞、边界和在世界中的位置。请注意,编译器可能会拆分面部,将它们进一步计数到极限。
{{L|trigger_multiple|triggers}} 甚至 {{L|hint brush}} 这样的不可见笔刷都计入限制。像 NODRAW 这样的面不计入限制。使用 NODRAW 纹理化的面在编译过程中会被移除,因此仅保留其碰撞、边界和在世界中的位置。请注意,编译器可能会拆分面部,将它们进一步计数到极限。


{{tip:zh-cn|可以在更改或删除这些限制的情况下编译 VBSP 的自定义版本,但引擎的行为是未定义的。}}
{{tip|可以在更改或删除这些限制的情况下编译 VBSP 的自定义版本,但引擎的行为是未定义的。}}


== 另见 ==
== 另见 ==


* [[Introduction to Editing]]
* {{L|Introduction to Editing}}
* [[Basic Construction]]
* {{L|Basic Construction}}
* [[Model]]
* {{L|Model}}
* [[Displacement]]
* {{L|Displacement}}


[[Category:Level Design:zh-cn]]
{{ACategory|Level Design}}
[[Category:Glossary:zh-cn]]
{{ACategory|Glossary}}

Latest revision as of 05:17, 12 July 2024

English (en)Deutsch (de)Español (es)Português (pt)Português do Brasil (pt-br)Русский (ru)Українська (uk)中文 (zh)Translate (Translate)


本页面由大康翻译。


固体 (brush) 是使用 Hammer(en)'s Block Tool(en) 创建的凸面 3D 形状。关卡设计师使用固体来定义世界(en)的形状(定义可见性(en))并创建固体实体(en)

编译地图时,VBSP(en) 将接触 visleaf(en) 的笔刷面转换为多边形组。生成的“固体模型”存储在 BSP 文件中,并且可以由实体(例如世界或你的固体实体)声明。原始固体保留在 BSP 中,尽管这样做的好处尚不清楚。

模型(en)相比,固体:

编译

  1. 对于每个单独的固体模型,只编译接触到 visleaf 的面。此过程的一些结果如下所示:

    固体及其编译后的相同物体

  2. 如果固体面的某些部分接触到 visleaf 而其他部分不接触,则会将面切分以去除隐藏区域。

这些规则有两个例外:

  • 尽管它们在 Hammer 中是离散的实体,但 func_detail(en) 在编译过程中都会合并为一个。你不需要 nodraw(en) 隐藏“细节与细节(连接)”的面 [但你需要 nodraw 世界与细节(连接)的面和细节与世界(连接)的面]。
  • 应用了 translucent(en) 材质的面永远不会被切碎。不要将它们应用于内部或隐藏的表面,除非你真的打算这样做。

——————
① (detail-to-detail)
② (world-to-detail)
③ (detail-to-world)

限制

VBSP 强制执行以下限制:

  • 8192 个固体 (Garry's Mod中是16384个)
  • 单个固体最大 128 个面
  • 总共 32768 个面(BSP 平面限制的一半,每个面使用两个平面)

triggers(en) 甚至 hint brush(en) 这样的不可见笔刷都计入限制。像 NODRAW 这样的面不计入限制。使用 NODRAW 纹理化的面在编译过程中会被移除,因此仅保留其碰撞、边界和在世界中的位置。请注意,编译器可能会拆分面部,将它们进一步计数到极限。

Tip.png提示:可以在更改或删除这些限制的情况下编译 VBSP 的自定义版本,但引擎的行为是未定义的。

另见