Tag: 高度图

GLSL着色器:在两个以上纹理之间插值

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