有没有办法以渐变方式混合 2 个纹理?前任。第一个纹理从顶部开始并到达底部,第二个纹理从底部开始并到达顶部。我想让它们像渐变一样不透明,以创建平滑的连接。可能吗?
也许还有其他方法可以创建这样的纹理?问题是我的地形中的高度差异看起来不太好 - 在一个正方形区域中,一个三角形的纹理与另一个不同。
有没有办法以渐变方式混合 2 个纹理?前任。第一个纹理从顶部开始并到达底部,第二个纹理从底部开始并到达顶部。我想让它们像渐变一样不透明,以创建平滑的连接。可能吗?
也许还有其他方法可以创建这样的纹理?问题是我的地形中的高度差异看起来不太好 - 在一个正方形区域中,一个三角形的纹理与另一个不同。
对于每个地形纹理,在地形顶点中存储一个额外的混合量。这个混合量只是一个float
到 范围内的值0
,1
其中0
表示零不透明度,1
表示纹理完全不透明。
在像素着色器中,您可以使用此数量在基础纹理的采样像素和混合像素之间进行插值。
在这张图片中,您可以看到一个 3*3 的地形,上面有地面纹理和草纹理。数字代表每个顶点的混合量:
使用着色器。您可以使用两个 sampler2D 纹理,也可以使用一个 sampler2DArray 纹理。GLSL 内置了线性 ( mix
) 和 Hermite ( smoothstep
) 插值函数。