我已经在OpenGL中实现了高度图。目前它只是一个正弦/余弦曲线的地形。 目前,我正在白色“冰”和较暗的“石头”纹理之间进行插值。 操作如下:
color = mix(texture2D(ice_layer_tex, texcoord), texture2D(stone_layer_tex, texcoord), (vertex.y + amplitude) / (amplitude * 2))
结果如下:
结果:
这个方法运行正常,但是如果我想添加更多的纹理,比如草地纹理,使插值顺序为“冰、石头、草地”该怎么办? 我认为没有像mix(sampler2D[], percentages[])
这样的函数? 我该如何编写遵循此逻辑的GLSL方法?
w1 + w2 = 1.0
”,但是GLSL v4.6规范(§8.3,p148)并没有将其作为要求。虽然我不想过于追究细节,但这确实是该函数的出色解释。 - AnOccasionalCashew