Zh/Displacement: Difference between revisions

From Valve Developer Community
< Zh
Jump to navigation Jump to search
(Created page with '{{otherlang2 | en = Displacement }} {{DISPLAYTITLE:置换表层(地形)}} thumb|right|一个简单的置换表层。 '''置换表层'''…')
 
m (Multipage removal)
 
(19 intermediate revisions by 10 users not shown)
Line 1: Line 1:
{{otherlang2
{{LanguageBar}}
| en = Displacement
}}
{{DISPLAYTITLE:置换表层(地形)}}


[[Image:hammer_displacements1.jpg|thumb|right|一个简单的置换表层。]]
[[File:hammer_displacements1.jpg|thumb|right|一个简单的表层位移。]]


'''置换表层'''是被转化成一系列由网格构成的多边形面[[brush|笔刷]],能够被自由变形和雕刻成多种形状。置换表层常被用来创造各种地形:山脉、峡谷、沟道、斜坡等等,又称'''置换地形'''。
'''表层位移'''是被转化成一系列由网格构成的多边形{{L|brush|固体}}表面,能够被自由变形和雕刻成多种形状。表层位移常被用来创造各种地形:山脉、峡谷、沟道、斜坡等等,又称'''地形位移'''。
 
{{Bug|4阶的表层位移与物理对象接触可能导致程序崩溃(除了{{csgo}})。而且它们可能偶尔导致物理对象从棱上穿过去,该现象可以在{{csgo}}官方地图de_dust2中观察到。}}
{{Bug|在{{insurgency}}和{{doi}}中,应确保「表层位移批量渲染(Batch displacement rendering)」没有选中,否则操作表层位移可能导致Hammer莫名地崩溃。}}
{{Todo|检验其他与CSGO相似分支的游戏(如{{portal2}})是否免于程序崩溃的Bug。}}


== 优点 ==
== 优点 ==
 
* 它们是批量渲染的,使得其很「{{L|cheap|廉价}}」(运行时能极快处理):每个多边形表面实际上要比标准固体廉价许多!
* 它们被批量渲染,使得其很“[[cheap|廉价]]”(运行时能极快处理):每个多边形表面实际上要比标准几何体笔刷要廉价许多!
* 它们可以通过使用[[Hammer Face Edit Disps#Paint Geometry|几何体绘制工具]]创造出多变的形状,完全超越普通固体所能创造的。
* 它们可以通过使用 [[Hammer Face Edit Disps#Paint Geometry|几何体绘制工具]]创造出多变的形状,完全超越普通笔刷所能创造的。
* 每个顶点都能赋予alpha通道值,这样可以在置换表层上混合两种纹理。可以创造出诸如沙石混合的效果来。
* 每个顶点都能赋予alpha通道值,这样可以在置换表层上混合两种纹理。可以创造出诸如沙石混合的效果来。
* 能被自动附着[[Detail Props|精细道具]](细化地图表现的实体,例如草丛)。
* 能自动附着上{{L|Detail Props|细节道具}}(细化地图表现的实体,例如草丛)。


== 局限 ==
== 局限 ==
* 必须是建立在四边形之上的。
* 必须是建立在四边形之上的。
* 必须是静态的,无法附属于任何实体。
* 必须是静态的,无法附属于任何实体。无法把置换表层设为{{L|Brush entity|固体实体}}。
* 不能够封住地图中的[[leak|裂缝]]
* 无法封住地图中的{{L|leak|裂缝}}
* 在起源2013中,一张地图的表层位移数量上限为2048个。{{insurgency}}的上限为4096个。{{csgo}}的上限为32768个。{{GMOD}}的上限为16384个。
* 比较大的表层位移无法使用很小的lightmap。
* 通常的编译器无法压缩4阶的表层位移。


== 其他特征 ==
== 其他特征 ==
 
* 表层位移有三个等级的分辨率,但是多边形的数量最终还是取决于表层位移的尺寸。需要更精细的表面时请进行剪切({{key|Ctrl+X}})
* 有三个等级的分辨率决定修改密度,但是多边形的数量最终还是取决于置换表层的尺寸。需要更精细的表面时请剪切({{key|Ctrl+X}})不需要的。
* 不可见的背面不会阻挡光线。
* 光线不会被不可见的隐面所阻挡。
* 一个固体所能具有的表层位移数量等于它的面数(固体本身不会被编译)。
* 一个笔刷能具有多个置换表层(笔刷自身没有被编译)。


== 构造 ==
== 构造 ==
 
表层位移是通过使用固体笔刷的''基本面''来创建的。一旦创建了表层位移的面,使用了这个基本面的固体表面便''不会被编译器编译''。而且,如果一个固体包含了''任何''表层位移面,所有其他未被置换的表面也不会被编译器编译。换句话说,一旦你将某个固体转化成了包含表层位移的固体,它就不再是一个固体物件,并且在运行地图时会被移除。
置换表层通过使用固体笔刷中的''基本面''来创建。一旦置换表层的表面被创建,使用了这个基本面的笔刷表面便会''在地图编译时被抛弃''。而且,如果一个固体笔刷包含了''任何的''置换表层面,所有其他未被置换的表面也会在地图编译时被抛弃。换句话说,一旦你将某个固体笔刷转化成了包含置换表层的固体笔刷,它就不再是一个'''固体'''物件,并且在运行地图时会被移除。


以下图片描述了这个特征::
以下图片描述了这个特征::


[[Image:hammer_displacements2.jpg|frame|left|置换表层没有添加时候的基本面。]]
[[File:hammer_displacements2.jpg|frame|left|表层位移没有添加时候的基本面。]]
[[Image:hammer_displacements3.jpg|frame|left|这里的笔刷侧面(灰色部分)将不会被渲染。]]{{clr}}
[[File:hammer_displacements3.jpg|frame|left|这里的固体侧面(灰色部分)将不会被渲染。]]{{clr}}


== 基本的置换表层建立 ==
== 基本的表层位移创建 ==
[[File:hammer_displacements4.jpg|frame|right|具有不同密度等级的表层位移。]]


[[Image:hammer_displacements4.jpg|frame|right|具有不同密度等级的置换表层。]]
以下是如何创建和绘制表层位移表面:


以下是如何创建和绘制置换表层表面:
# 使用{{L|Hammer Block Tool|固体工具}}绘制一个固体作为创建表层位移的基础。
 
# 点击纹理应用工具(''Texture Application Tool'')打开'''Face Edit'''对话框,选择 {{L|Hammer_Face_Edit_Disps|Displacement}}标签页。
# 使用[[Hammer Block Tool|Block Tool]]绘制一个笔刷作为创建置换表层的基础。
# 点击纹理应用工具(''Texture Application Tool'')打开'''Face Edit'''对话框,选择 [[Hammer_Face_Edit_Disps|Displacement]]标签页。
# 在3D视角,点击笔刷表面以选择面。使用CTRL+单击将面加入或移出选择范围。
# 在3D视角,点击笔刷表面以选择面。使用CTRL+单击将面加入或移出选择范围。
# 在Displacement标签页中点击[[Hammer_Face_Edit_Disps#Paint_Geometry|Create]]。输入介于2-4之间的值选定置换表层的密度,点击 '''OK'''。
# 在Displacement标签页中点击[[Hammer_Face_Edit_Disps#Paint_Geometry|Create]]。输入一个2到4之间的值,选定表层位移的密度,点击 '''OK'''。{{warning|4阶的表层位移可能造成错误,通常不推荐使用。}}{{Note|你可以在「属性」中更改表层位移的密度。}}
# 在'''Displacement'''标签页中选择'''Paint Geometry'''工具。'''[[Hammer_Face_Edit_Disps#Paint_Geometry|Paint Geometry]]'''将会打开。
# 在'''Displacement'''标签页中选择'''Paint Geometry'''工具。'''[[Hammer_Face_Edit_Disps#Paint_Geometry|Paint Geometry]]'''将会打开。
# 在3D视角, 左键单击一个表面以提升其海拔高度,右键降低。在'''Paint Geometry'''面板中使用'''Radius'''滑动条控制绘制范围尺寸。
# 在3D视角, 左键单击一个表面以提升其顶点高度,右键降低。在'''Paint Geometry'''面板中使用'''Radius'''滑动条控制绘制范围尺寸。


参见[[Hammer_Face_Edit_Disps#Paint_Geometry|绘制几何体]]获取更多有关置换表层的信息。{{clr}}
参见[[Hammer_Face_Edit_Disps#Paint_Geometry|绘制几何体]]获取更多有关表层位移的信息。{{clr}}


== 置换表层选项 ==
== 表层位移选项 ==
[[File:hammer_displacements5.jpg|thumb|300px|left|固体能拥有多个具有表层位移的表面。]]
[[File:hammer_displacementmaskicon.jpg]]&nbsp;
使用'''表层位移遮罩'''(''Displacement Mask'')按钮(在{{L|Hammer_Map_Operations_Toolbar|地图操作}}工具栏中)开关显示固体中非表层位移的面。


[[Image:hammer_displacements5.jpg|thumb|300px|left|固体笔刷能拥有多个具有置换表层的表面。]]
你可以在每个固体中绘制多于一个的表层位移面,如左图所示。只要一个面拥有四条棱,你便可以在上面创建一个表层位移面。
[[Image:hammer_displacementmaskicon.jpg]]&nbsp;
使用'''置换表层遮罩'''(''Displacement Mask'')按钮(在[[Hammer_Map_Operations_Toolbar|地图操作]]工具栏中)开关显示笔刷中非置换表层的面。


你可以在每个笔刷中绘制多于一个的置换表层面,如左图所示。只要一个面拥有四条棱,你便可以在上面创建一个置换表层面。
参见{{L|Hammer_Face_Edit_Disps|Face Edit, Displacements}}了解你所有能在表层位移面上绘制的几何形状的描述。{{clr}}


参见[[Hammer_Face_Edit_Disps|Face Edit, Displacements]]了解你所有能在置换表层面上绘制的几何形状的描述。{{clr}}
== 缝合表层位移 ==
'''缝合'''('''Sew''')按钮(在'''Displacement'''标签页中)可以被使用来连接两个或更多选择的表层位移面的边缘。你可以在以下情况使用缝合功能:


== 缝合置换表层 ==
* 任意两个表层位移的''基本面''享有一条端点重合的棱(例1)。
* 一个表层位移和非位移表层的基本面享有一条端点重合的棱(例3)。
* 一个表层位移A和另一表层位移B享有一条棱,当一条棱'''正好'''是另一条棱长的一半。(称为''T型接合'')(例4)。


'''缝合'''('''Sew''')按钮(在'''Displacement'''标签页中)可以被使用来连接两个或更多选择的置换表层面的边缘。你可以在以下情况使用缝合功能:
你可以缝合具有不同分辨率设置的表层位移——高分辨率的表层位移的顶点将会适应低分辨率(例2)。


* 任意两个置换表层的''基本面''享有一条端点重合的棱(例1)。
以下是'''缝合'''能被使用的例子:
* 一个置换表层和非置换表层的基本面享有一条端点重合的棱(例3)。
* 一个置换表层A和另一置换表层B享有一条棱,当一条棱'''正好'''是另一条棱长的一半。(称为''T型接合'')(例4)。


你可以缝合具有不同分辨率设置的置换表层——高分辨率的置换表层的顶点将会适应低分辨率(例2)。
[[File:hammer_displacements6.jpg|thumb|300px|left|1.相邻两个表层位移的基本面共享一条边。]] [[File:hammer_displacements7.jpg|thumb|300px|left|2.具有不同分辨率的表层位移。]]{{clr}}
[[File:hammer_displacements8.jpg|thumb|300px|left|3.表层位移的基本面与固体笔刷共享一条边。]] [[File:hammer_displacements9.jpg|thumb|300px|left|4.两个表层位移共享的棱具有一个'''恰好'''的中点。]]{{clr}}


以下是'''缝合'''能被使用的例子:
如果表层位移的基本面没有共享一条棱表面将''不能''被缝合。


[[Image:hammer_displacements6.jpg|thumb|300px|left|1.相邻两个置换表层的基本面共享一条边。]] [[Image:hammer_displacements7.jpg|thumb|300px|left|2.具有不同分辨率的置换表层。]]<br style="clear:both">
[[File:hammer_displacements10.jpg|frame|left|表层位移的基本面没有共享一条棱将不能被连接。]]{{clr}}
[[Image:hammer_displacements8.jpg|thumb|300px|left|3.置换表层的基本面与固体笔刷共享一条边。]] [[Image:hammer_displacements9.jpg|thumb|300px|left|4.两个置换表层共享的棱具有一个'''恰好'''的中点。]]{{clr}}


如果置换表层的基本面没有共享一条棱表面将''不能''被缝合。
如果两个面没有共享同一「'''高度标识'''('''Elev''')」属性,表面也不能被缝合(在'''Displacement'''标签页下的'''Power'''和'''Scale'''之间)。


[[Image:hammer_displacements10.jpg|frame|left|置换表层的基本面没有共享一条棱将不能被连接。]]{{clr}}
== 细分表层位移 ==


如果两个面没有共享同一“'''高度标识'''('''Elev''')”属性,表面也不能被缝合(在'''Displacement'''标签页下的'''Power'''和'''Scale'''之间)。
{{Todo|从英文版中补充。}}


== 其他修改置换表层的方法 ==
== 其他修改表层位移的方法 ==
 
除了表层位移绘制工具外,一些标准的固体操作工具也能用于表层位移。
除了置换表层绘制工具外,一些标准的笔刷操纵工具也能工作于置换表层。


=== 变换 ===
=== 变换 ===
[[Image:hammer_selectiontoolicon.jpg]]&nbsp;
[[File:Hammer_select.png‎]]&nbsp;
置换表层能被自由移动、缩放、旋转、修剪(使用[[Hammer Selection Tool|Selection Tool]]),如同标准的笔刷。对基本面的变换对置换表层同样有效。
表层位移能被自由移动、缩放、旋转、修剪(使用{{L|Hammer Selection Tool|选择工具}}),如同标准的固体。对基本面的变换对表层位移同样有效。


=== 切割 ===
=== 切割 ===
[[Image:hammer_clippingtoolicon.jpg]]&nbsp;
[[File:Hammer_ClippingTool.png]]&nbsp;
切割工具([[Hammer Clipping Tool|Clip Tool]])也能用来切割置换表层。可以用来剔除不需要的置换表层部分,或将一个表面一分为二而不改变其形状。
切割工具({{L|Hammer Clipping Tool|Clip Tool}})也能用来切割置换表层。可以用来剔除不需要的表层位移部分,或将一个表面一分为二而不改变其形状。


{{note|切割操作'''必须'''留下一个四边形才能成为合法的置换表层。}}
{{note|切割操作'''必须'''留下一个四边形才能成为合法的表层位移。}}


下面例子展示了切割工具如何修剪一个置换表层:
下面例子展示了切割工具如何修剪一个表层位移:


[[Image:hammer_displacements11.jpg|thumb|300px|left|切割操作之前的置换表层。]]
[[File:hammer_displacements11.jpg|thumb|300px|left|切割操作之前的表层位移。]]
[[Image:hammer_displacements12.jpg|thumb|300px|left|在2D视图中使用切割工具画线后的预览结果。]]
[[File:hammer_displacements12.jpg|thumb|300px|left|在2D视图中使用切割工具画线后的预览结果。]]
[[Image:hammer_displacements13.jpg|thumb|300px|left|切割后的结果。]]{{clr}}
[[File:hammer_displacements13.jpg|thumb|300px|left|切割后的结果。]]{{clr}}


=== 顶点编辑(技巧) ===
=== 顶点编辑(技巧) ===
[[Image:hammer_vertextoolicon.jpg]]&nbsp;
[[File:Hammer_VertexTool.png]]&nbsp;
'''顶点工具'''([[Hammer Vertex Tool|Vertex Tool]])同样可以用来修改置换表层。顶点编辑能有效将置换表层的角与棱结合(参见缝合),或者用来提高整个地形的海拔而不用通过在置换表层中手动绘制山脉或提升表面。
'''顶点工具'''({{L|Hammer Vertex Tool|Vertex Tool}})同样可以用来修改表层位移。顶点编辑能有效将表层位移的角与棱结合(参见缝合),或者用来提高整个地形的最大高度而不用通过在置换表层中手动绘制山脉或提升表面。


当使用顶点编辑工具编辑置换表层时有一些重要的限制:
当使用顶点编辑工具编辑表层位移时有一些重要的限制:
* 顶点编辑只对基本面有效,而不是置换表层本身。
* 顶点编辑只对基本面有效,而不是置换表层本身。
* 不允许删除或添加顶点,这样会破坏附着于基本面上的置换表层。
* 不允许删除或添加顶点,这样会破坏附着于基本面上的表层位移。
* 顶点编辑结束后必须是'''平坦的''',构造非法表面会破坏附着的置换表层。
* 顶点编辑结束后必须是'''平坦的''',构造非法表面会破坏附着的表层位移。
 
下面的例子展示了顶点编辑工具如何被使用来提高置换表层的海拔:
 
[[Image:hammer_displacements14.jpg|thumb|300px|left|一组四个置换表层,被选中进行顶点编辑。]]
[[Image:hammer_displacements15.jpg|thumb|300px|left|进入顶点编辑模式,显示了基本笔刷上的顶点。]]<br style="clear:both">
[[Image:hammer_displacements16.jpg|thumb|300px|left|选择一系列顶点一起提升高度。]]
[[Image:hammer_displacements17.jpg|thumb|300px|left|顶点编辑后的状态。]]{{clr}}


=== 在置换表层上挖洞 ===
下面的例子展示了顶点编辑工具如何被使用来提高表层位移的海拔:


有时候因为各种原因需要在置换表层上挖洞或沟,参见[[Creating Holes in Displacements]]获取更多如何在置换表层几何体上挖洞的信息。
[[File:hammer_displacements14.jpg|thumb|300px|left|一组四个表层位移,被选中进行顶点编辑。]]
[[File:hammer_displacements15.jpg|thumb|300px|left|进入顶点编辑模式,显示了基本笔刷上的顶点。]]{{clr}}
[[File:hammer_displacements16.jpg|thumb|300px|left|选择一系列顶点一起提升高度。]]
[[File:hammer_displacements17.jpg|thumb|300px|left|顶点编辑后的状态。]]{{clr}}


=== 混合的置换表层材质(Alpha通道绘制) ===
=== 在表层位移上挖洞 ===
有时候因为各种原因需要在表层位移上挖洞或沟,参见{{L|Creating Holes in Displacements|在表层位移上挖洞}}获取更多如何在置换表层几何体上挖洞的信息。


[[Image:hammer_displacements18.jpg|thumb|right|280px|绿色盒子是绘制alpha工具的绘制笔刷中心。]]
=== 混合的表层位移材质(阿尔法通道绘制) ===
'''绘制Alpha'''('''Paint Alpha''')工具允许你在置换表层通过绘制alpha通道混合两种不同的纹理。Alpha通道包含了两种纹理在表面上所分配的可见程度。这使得能创造纹理间的过渡效果,例如草地和尘土、沙子和石子,等等。要使用Alpha通道材质混合,必须使用为实现此目的而特定的混合材质,只有这些材质能被用于混合。如果使用一种标准材质,'''绘制Alpha'''工具将没有可视效果。
[[File:hammer_displacements18.jpg|thumb|right|280px|绿色盒子是绘制阿尔法工具的绘制笔刷中心。]]
'''绘制阿尔法'''('''Paint Alpha''')工具允许你在置换表层通过绘制阿尔法通道混合两种不同的纹理。阿尔法通道包含了两种纹理在表面上所分配的可见程度。这使得能创造纹理间的过渡效果,例如草地和尘土、沙子和石子,等等。要使用阿尔法通道材质混合,必须使用为实现此目的而特定的混合材质,只有这些材质能被用于混合。如果使用一种标准材质,'''绘制阿尔法'''工具将没有可视效果。


要在置换表层添加添加混合材质并绘制Alpha通道数据以混合纹理:
要在表层位移添加添加混合材质并绘制阿尔法通道数据以混合纹理:


# 选择'''Texture Application Tool'''打开[[Hammer_Face_Edit_Dialog|Face Edit]]对话框。
# 选择'''Texture Application Tool'''打开{{L|Hammer_Face_Edit_Dialog|Face Edit}}对话框。
# 在'''3D视角'''中左键单击你想要混合材质的置换表层。
# 在'''3D视角'''中左键单击你想要混合材质的表层位移。
# 在'''Face Edit'''对话框的'''Material'''标签页下点击'''Browse'''按钮。
# 在'''Face Edit'''对话框的'''Material'''标签页下点击'''Browse'''按钮。
# 当[[Hammer Texture Browser|Texture Browser]]出现时, 在底部的'''过滤器'''('''filter''')中输入 <code>blend</code>。
# 当{{L|Hammer Texture Browser|Texture Browser}}出现时, 在底部的'''过滤器'''('''filter''')中输入 <code>blend</code>。
# 双击以选择某一个混合材质并关闭'''Texture Browser'''。
# 双击以选择某一个混合材质并关闭'''Texture Browser'''。
# 在'''Face Edit'''对话框中点击'''Apply'''按钮将材质应用到选择的置换表层。
# 在'''Face Edit'''对话框中点击'''Apply'''按钮将材质应用到选择的表层位移。
# 在'''Face Edit'''对话框中点击[[Hammer_Face_Edit_Disps|Displacement]]标签页。
# 在'''Face Edit'''对话框中点击{{L|Hammer_Face_Edit_Disps|Displacement}}标签页。
# 在'''Displacement'''标签页中点击Paint Alpha按钮打开绘制Alpha([[Hammer_Face_Edit_Disps#Paint_Alpha|Paint Alpha]])工具.
# 在'''Displacement'''标签页中点击Paint Alpha按钮打开绘制阿尔法([[Hammer_Face_Edit_Disps#Paint_Alpha|Paint Alpha]])工具.
# 在Value滑动条旁边的框中输入100。确认'''Effect'''下的'''Raise/Lower'''被选中。数值越小alpha通道数据改变越慢,越大则越快。
# 在Value滑动条旁边的框中输入一个30到100之间的值。确保'''Effect'''下的'''Raise/Lower'''被选中。数值越小阿尔法通道数据改变越慢,越大则越快。
# 在'''3D视角'''中左键点击某个置换表层的顶点以添加alpha通道数据。右键点击移除。
# 在'''3D视角'''中左键点击某个置换表层的顶点以添加阿尔法通道数据。右键点击移除。


参见[[Hammer_Face_Edit_Disps#Paint_Alpha|Paint Alpha]]获取更多有关alpha绘制工具的信息。{{clr}}
参见[[Hammer_Face_Edit_Disps#Paint_Alpha|Paint Alpha]]获取更多有关阿尔法绘制工具的信息。{{clr}}


== 快捷键 ==
== 快捷键 ==
; Alt+鼠标右键
; Alt+鼠标右键
: 当几何体轴心设定为面法线时,将轴心设定为你所点击面的垂直方向。
: 当几何体轴心设定为面法线时,将轴心设定为你所点击面的垂直方向。
Line 152: Line 149:


== 另见 ==
== 另见 ==
* [[Hammer_Face_Edit_Disps|Face Editing, Displacements]]
* {{L|Hammer_Face_Edit_Disps|Face Editing, Displacements}}
* [[Creating Holes in Displacements|Creating Holes in Displacements]]
* {{L|Creating Holes in Displacements}}


== 外部链接 ==
== 外部链接 ==
* [http://www.hl2world.com/wiki/index.php/Tunnels Tunnels] - 使用置换地形挖隧道。
* [http://www.hl2world.com/wiki/index.php/Tunnels Tunnels] - 使用地形位移挖隧道。
* [http://forums.tf2maps.net/showthread.php?t=798 Youme's guide to displacement cliffs]
* [http://forums.tf2maps.net/showthread.php?t=798 Youme's guide to displacement cliffs]
* [http://www.interlopers.net/tutorials/16891 Practical Cliffs (interlopers.net)]
* [http://www.interlopers.net/tutorials/16891 Practical Cliffs (interlopers.net)]
* [http://halflifestorm.com/?page_id=225 Smooth Corners] - 用置换地形构造光滑的圆角。
* [http://halflifestorm.com/?page_id=225 Smooth Corners] - 用地形位移构造光滑的圆角。
* [http://halflifestorm.com/?page_id=141 Destroyed Walls] - 用置换地形构造毁坏的墙。
* [http://halflifestorm.com/?page_id=141 Destroyed Walls] - 用地形位移构造毁坏的墙。
* [http://sdknuts.net/?sdk=tutdisp Displacement series (sdknuts)] 柱子、拐角、立方体等基本要素。
* [http://sdknuts.net/?sdk=tutdisp Displacement series (sdknuts)] 柱子、拐角、立方体等基本要素。<!-- For editors, please use the other "edit" button instead. -->
 
{{envart}}
{{envart}}
[[Category:Glossary]]
{{ACategory|Glossary}}
[[Category:Displacements]]
{{ACategory|Displacements}}
[[Category:Chinese]]

Latest revision as of 17:09, 12 July 2024

English (en)Español (es)Русский (ru)中文 (zh)Translate (Translate)
一个简单的表层位移。

表层位移是被转化成一系列由网格构成的多边形固体(en)表面,能够被自由变形和雕刻成多种形状。表层位移常被用来创造各种地形:山脉、峡谷、沟道、斜坡等等,又称地形位移

Icon-Bug.png错误:4阶的表层位移与物理对象接触可能导致程序崩溃(除了反恐精英:全球攻势)。而且它们可能偶尔导致物理对象从棱上穿过去,该现象可以在反恐精英:全球攻势官方地图de_dust2中观察到。  [todo tested in ?]
Icon-Bug.png错误:InsurgencyDay of Infamy中,应确保「表层位移批量渲染(Batch displacement rendering)」没有选中,否则操作表层位移可能导致Hammer莫名地崩溃。  [todo tested in ?]
待完善: 检验其他与CSGO相似分支的游戏(如传送门2)是否免于程序崩溃的Bug。

优点

  • 它们是批量渲染的,使得其很「廉价(en)」(运行时能极快处理):每个多边形表面实际上要比标准固体廉价许多!
  • 它们可以通过使用几何体绘制工具创造出多变的形状,完全超越普通固体所能创造的。
  • 每个顶点都能赋予alpha通道值,这样可以在置换表层上混合两种纹理。可以创造出诸如沙石混合的效果来。
  • 能自动附着上细节道具(en)(细化地图表现的实体,例如草丛)。

局限

  • 必须是建立在四边形之上的。
  • 必须是静态的,无法附属于任何实体。无法把置换表层设为固体实体(en)
  • 无法封住地图中的裂缝(en)
  • 在起源2013中,一张地图的表层位移数量上限为2048个。Insurgency的上限为4096个。反恐精英:全球攻势的上限为32768个。Garry's Mod的上限为16384个。
  • 比较大的表层位移无法使用很小的lightmap。
  • 通常的编译器无法压缩4阶的表层位移。

其他特征

  • 表层位移有三个等级的分辨率,但是多边形的数量最终还是取决于表层位移的尺寸。需要更精细的表面时请进行剪切(Ctrl+X)。
  • 不可见的背面不会阻挡光线。
  • 一个固体所能具有的表层位移数量等于它的面数(固体本身不会被编译)。

构造

表层位移是通过使用固体笔刷的基本面来创建的。一旦创建了表层位移的面,使用了这个基本面的固体表面便不会被编译器编译。而且,如果一个固体包含了任何表层位移面,所有其他未被置换的表面也不会被编译器编译。换句话说,一旦你将某个固体转化成了包含表层位移的固体,它就不再是一个固体物件,并且在运行地图时会被移除。

以下图片描述了这个特征::

表层位移没有添加时候的基本面。
这里的固体侧面(灰色部分)将不会被渲染。

基本的表层位移创建

具有不同密度等级的表层位移。

以下是如何创建和绘制表层位移表面:

  1. 使用固体工具(en)绘制一个固体作为创建表层位移的基础。
  2. 点击纹理应用工具(Texture Application Tool)打开Face Edit对话框,选择 Displacement(en)标签页。
  3. 在3D视角,点击笔刷表面以选择面。使用CTRL+单击将面加入或移出选择范围。
  4. 在Displacement标签页中点击Create。输入一个2到4之间的值,选定表层位移的密度,点击 OK
    Warning.png警告:4阶的表层位移可能造成错误,通常不推荐使用。
    Note.png注意:你可以在「属性」中更改表层位移的密度。
  5. Displacement标签页中选择Paint Geometry工具。Paint Geometry将会打开。
  6. 在3D视角, 左键单击一个表面以提升其顶点高度,右键降低。在Paint Geometry面板中使用Radius滑动条控制绘制范围尺寸。

参见绘制几何体获取更多有关表层位移的信息。

表层位移选项

固体能拥有多个具有表层位移的表面。

Hammer displacementmaskicon.jpg  使用表层位移遮罩Displacement Mask)按钮(在地图操作(en)工具栏中)开关显示固体中非表层位移的面。

你可以在每个固体中绘制多于一个的表层位移面,如左图所示。只要一个面拥有四条棱,你便可以在上面创建一个表层位移面。

参见Face Edit, Displacements(en)了解你所有能在表层位移面上绘制的几何形状的描述。

缝合表层位移

缝合Sew)按钮(在Displacement标签页中)可以被使用来连接两个或更多选择的表层位移面的边缘。你可以在以下情况使用缝合功能:

  • 任意两个表层位移的基本面享有一条端点重合的棱(例1)。
  • 一个表层位移和非位移表层的基本面享有一条端点重合的棱(例3)。
  • 一个表层位移A和另一表层位移B享有一条棱,当一条棱正好是另一条棱长的一半。(称为T型接合)(例4)。

你可以缝合具有不同分辨率设置的表层位移——高分辨率的表层位移的顶点将会适应低分辨率(例2)。

以下是缝合能被使用的例子:

1.相邻两个表层位移的基本面共享一条边。
2.具有不同分辨率的表层位移。
3.表层位移的基本面与固体笔刷共享一条边。
4.两个表层位移共享的棱具有一个恰好的中点。

如果表层位移的基本面没有共享一条棱表面将不能被缝合。

表层位移的基本面没有共享一条棱将不能被连接。

如果两个面没有共享同一「高度标识Elev)」属性,表面也不能被缝合(在Displacement标签页下的PowerScale之间)。

细分表层位移

待完善: 从英文版中补充。

其他修改表层位移的方法

除了表层位移绘制工具外,一些标准的固体操作工具也能用于表层位移。

变换

Hammer select.png  表层位移能被自由移动、缩放、旋转、修剪(使用选择工具(en)),如同标准的固体。对基本面的变换对表层位移同样有效。

切割

Hammer ClippingTool.png  切割工具(Clip Tool(en))也能用来切割置换表层。可以用来剔除不需要的表层位移部分,或将一个表面一分为二而不改变其形状。

Note.png注意:切割操作必须留下一个四边形才能成为合法的表层位移。

下面例子展示了切割工具如何修剪一个表层位移:

切割操作之前的表层位移。
在2D视图中使用切割工具画线后的预览结果。
切割后的结果。

顶点编辑(技巧)

Hammer VertexTool.png  顶点工具Vertex Tool(en))同样可以用来修改表层位移。顶点编辑能有效将表层位移的角与棱结合(参见缝合),或者用来提高整个地形的最大高度而不用通过在置换表层中手动绘制山脉或提升表面。

当使用顶点编辑工具编辑表层位移时有一些重要的限制:

  • 顶点编辑只对基本面有效,而不是置换表层本身。
  • 不允许删除或添加顶点,这样会破坏附着于基本面上的表层位移。
  • 顶点编辑结束后必须是平坦的,构造非法表面会破坏附着的表层位移。

下面的例子展示了顶点编辑工具如何被使用来提高表层位移的海拔:

一组四个表层位移,被选中进行顶点编辑。
进入顶点编辑模式,显示了基本笔刷上的顶点。
选择一系列顶点一起提升高度。
顶点编辑后的状态。

在表层位移上挖洞

有时候因为各种原因需要在表层位移上挖洞或沟,参见在表层位移上挖洞(en)获取更多如何在置换表层几何体上挖洞的信息。

混合的表层位移材质(阿尔法通道绘制)

绿色盒子是绘制阿尔法工具的绘制笔刷中心。

绘制阿尔法Paint Alpha)工具允许你在置换表层通过绘制阿尔法通道混合两种不同的纹理。阿尔法通道包含了两种纹理在表面上所分配的可见程度。这使得能创造纹理间的过渡效果,例如草地和尘土、沙子和石子,等等。要使用阿尔法通道材质混合,必须使用为实现此目的而特定的混合材质,只有这些材质能被用于混合。如果使用一种标准材质,绘制阿尔法工具将没有可视效果。

要在表层位移添加添加混合材质并绘制阿尔法通道数据以混合纹理:

  1. 选择Texture Application Tool打开Face Edit(en)对话框。
  2. 3D视角中左键单击你想要混合材质的表层位移。
  3. Face Edit对话框的Material标签页下点击Browse按钮。
  4. Texture Browser(en)出现时, 在底部的过滤器filter)中输入 blend
  5. 双击以选择某一个混合材质并关闭Texture Browser
  6. Face Edit对话框中点击Apply按钮将材质应用到选择的表层位移。
  7. Face Edit对话框中点击Displacement(en)标签页。
  8. Displacement标签页中点击Paint Alpha按钮打开绘制阿尔法(Paint Alpha)工具.
  9. 在Value滑动条旁边的框中输入一个30到100之间的值。确保Effect下的Raise/Lower被选中。数值越小阿尔法通道数据改变越慢,越大则越快。
  10. 3D视角中左键点击某个置换表层的顶点以添加阿尔法通道数据。右键点击移除。

参见Paint Alpha获取更多有关阿尔法绘制工具的信息。

快捷键

Alt+鼠标右键
当几何体轴心设定为面法线时,将轴心设定为你所点击面的垂直方向。
Shift
忽略距离的设置,自由拖动截面的海拔高度。
鼠标右键
反转几何体绘制工具的方向。

另见

外部链接

环境相关的文章
天空和环境地图 起源 起源: 天空盒 (2D)天空盒 (3D)HDR 天空带有 Terragen 的天空盒带有 Terragen 的 Skybox - 高级天空列表


起源2 起源2: 天空盒 (3D)

地形和置换表层制作 置换表层Creating Holes in Displacements|在置换表层中打孔数字高程模型使用 Worldmachine 创建自定义地形