Displacement/zh

From Valve Developer Community
< Displacement(Redirected from Displacement:zh-cn)
Jump to: navigation, search
一个简单的表层位移。

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

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

优点

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

局限

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

其他特征

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

构造

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

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

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

基本的表层位移创建

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

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

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

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

表层位移选项

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

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

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

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

缝合表层位移

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

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

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

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

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

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

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

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

细分表层位移

Blank image.png待完善: 从英文版中补充。

其他修改表层位移的方法

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

变换

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

切割

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

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

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

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

顶点编辑(技巧)

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

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

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

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

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

在表层位移上挖洞

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

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

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

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

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

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

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

快捷键

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

另见

外部链接