0

有没有办法以渐变方式混合 2 个纹理?前任。第一个纹理从顶部开始并到达底部,第二个纹理从底部开始并到达顶部。我想让它们像渐变一样不透明,以创建平滑的连接。可能吗?

也许还有其他方法可以创建这样的纹理?问题是我的地形中的高度差异看起来不太好 - 在一个正方形区域中,一个三角形的纹理与另一个不同。

4

2 回答 2

5

对于每个地形纹理,在地形顶点中存储一个额外的混合量。这个混合量只是一个float到 范围内的值01其中0表示零不透明度,1表示纹理完全不透明。

在像素着色器中,您可以使用此数量在基础纹理的采样像素和混合像素之间进行插值。

在这张图片中,您可以看到一个 3*3 的地形,上面有地面纹理和草纹理。数字代表每个顶点的混合量:

具有混合纹理的地形

于 2013-01-31T16:56:21.090 回答
2

使用着色器。您可以使用两个 sampler2D 纹理,也可以使用一个 sampler2DArray 纹理。GLSL 内置了线性 ( mix) 和 Hermite ( smoothstep) 插值函数。

于 2013-01-31T16:51:13.770 回答