地形纹理

时间:2013-01-31 16:45:11

标签: opengl textures texture-mapping texturing

有没有办法以渐变方式混合2个纹理?恩。第一个纹理从顶部开始,然后到达底部,第二个纹理从底部开始并向上移动。我想让它们像渐变中那样松散不透明,以创建平滑的连接。有可能吗?

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

2 个答案:

答案 0 :(得分:5)

对于每个地形纹理,在地形顶点中存储额外的混合量。此混合金额仅为float0范围内的1值,其中0表示零不透明度,1表示纹理完全不透明。

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

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

Terrain with blended textures

答案 1 :(得分:2)

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