我已经在 OpenGL 中实现了一个高度图。目前它只是一个正弦/余弦曲线地形。目前我在白色的“冰”和较暗的“石头”纹理之间进行插值。这样做是这样的:
color = mix(texture2D(ice_layer_tex, texcoord), texture2D(stone_layer_tex, texcoord), (vertex.y + amplitude) / (amplitude * 2))
结果:
它工作正常,但如果我想添加更多纹理,例如草纹理,我该怎么办,以便插值顺序为“冰、石、草”?我想,没有像mix(sampler2D[], percentages[])
? 我怎么能按照这个逻辑编写一个 GLSL 方法?