# 着色器系列:land_mesh_combined_decal
## 概述
我们使用多个对象几何体着色器将贴花应用于地形。不要将其与直接应用于地形几何体的简单地面贴花混淆 - 这是一个不同的主题。在这里,我们处理的是 **几何贴花**。
我们什么时候需要使用几何体将贴花应用于地形?当我们想要修改地形的几何体并添加一些新颜色(可能还有细节)时。一个很好的例子是机场。鉴于它们的尺寸较大,将它们渲染为具有独特纹理(或平铺纹理)的全尺寸模型是不切实际的,因为这会导致纹素密度不佳。此外,它们不会与周围的地形无缝融合——纹理之间会有粗糙的过渡。
解决方案是贴花。例如,如果您想在沙漠中建造一个白雪皑皑的机场,您可以使用贴花来实现这一点。所有贴花都是预制件 – 它们被烘焙到关卡的几何体中。
我们可以使用几个着色器来实现此目的:
1. `land_mesh_combined` 及其动态版本 `dynamic_combined_decal`
2. `land_mesh_combined_detailed_decal` 及其动态版本 `dynamic_combined_detailed_decal`
3. `land_mesh_combined_mixed_decal` 及其动态版本 `dynamic_combined_mixed_decal`
```{important}
动态着色器和静态着色器之间的区别归结为两个关键点:
- 静态着色器应用于预制件,而动态着色器应用于动态模型(为简单起见,将它们视为具有动态着色器的模型)。
- 具有动态着色器的对象只能作为单位通过 *MissionEditor* 放置(无论它们是对象组还是动态对象的一部分)。相比之下,静态对象作为实体直接放置在 **Landscape** 中
tab.
```
## land_mesh_combined / dynamic_combined_decal – 基本着色器
这是该系列中最简单的着色器。它没有参数,仅将贴花纹理应用于几何体。典型的材质配置如下所示:
```
material{
name:t="airfield_side"
class:t="land_mesh_combined"
tex0:t="./norway_herdla_airfield_empty_alpha.tif"
}
```
贴花纹理表示我们正在应用的漫反射组件。Alpha 通道控制贴花的透明度。
例如:
Airfield on the Map |
Decal Diffuse |
Decal Alpha |
|---|
目前,这种基本着色器很少使用,因为对更多细节的需求已经增加,即使是与飞机相关的资产也是如此。但是,它有时应用于机场的“manchette”(用于将机场表面与周围地形混合的弯曲边缘)。在这种情况下,具有透明 alpha 纹理的着色器将分配给此几何体:
精细的细节来自细节和微细节纹理。例如,细小纹理(如小裂缝或磨损图案)由细节图层处理,而较大的表面元素(如车辙或路径)则由贴花表示。
## land_mesh_combined_mixed_decal / dynamic_combined_mixed_decal – 具有四个细节层的着色器
这是该系列中最先进的着色器。它的工作原理类似于`land_mesh_combined_detailed_decal`,但最多支持四个细节图层,而不是一个。
```{important}
存在一个已知问题:如果对象在第三个通道中具有映射,则其在地面上的纹理可能会显示为半透明。避免使用不必要的映射通道。
```
```{important}
动态版本不适用于由致密材料(混凝土、沥青等)制成的大面积表面(数百米),因为从远处看它会变得半透明。例如,您可能会注意到,从远处看时,标记和跑道似乎会褪色。
```
### 着色器纹理
着色器适用于 10 种纹理:
- **Slot 1:** 贴花
- **Slot 2:** 细节混合蒙版
- **Slot 4:** 细节图层 1 的漫反射纹理
- **Slot 5:** 细节图层 1 的 `_r` 纹理
- **Slot 6:** 细节图层 2 的漫反射纹理
- **Slot 7:** 细节图层 2 的 `_r` 纹理
- **Slot 8:** 细节图层 3 的漫反射纹理
- **Slot 9:** 细节图层 3 的 `_r` 纹理
- **Slot 10:** 细节图层 4 的漫反射纹理
- **Slot 11:** 细节图层 4 的 `_r` 纹理
混合蒙版是一个 RGB 蒙版,其中:
- R 通道表示细节图层 1
- G 通道表示细节图层 2
- B 通道表示细节图层 3
- 所有通道中亮度低于 100% 的区域将显示细节图层 4。
```{note}
如果第四个细节图层出现在没有细节图层 1、2 或 3 的区域,请不要担心。最终贴花的可见性由贴花的 Alpha 透明度控制,这意味着您可以使用透明度遮罩控制所有细节的外观,包括第四层。
```
例如:
Airfield on the Map |
Decal Diffuse |
|---|
Decal Alpha |
Blending Mask |
|---|
在这种情况下:
- 蓝色通道定义通路。
- Alpha 蒙版可平滑其他细节图层的边缘,使其透明并显示第四个图层。
- 所有通道一起在 T 台上创建多色效果,混合不同类型的沙子、泥土和岩石。
一些示例使用更定义的掩码:
Airfield on the Map |
Decal Diffuse |
|---|
Decal Alpha |
Blending Mask |
|---|