glDepthFunc(GL_ALWAYS); を追加することで解決しました。
ハイトフィールドで 2 つのテクスチャをブレンドしようとしていglDrawElements
ます。Normalpointer と vertexpointer データは同じですが、TexCoordPointer は 2 つのテクスチャで異なります。どの BlendFunc を試しても、texture_two の大部分は透明ですが、表示されるテクスチャは常に 1 つだけです。gl_blendglDrawElements
で動作しますか、それとも間違っていますか?
glEnable(GL_BLEND);
glBlendFunc(GL_ONE, GL_ONE_MINUS_SRC_ALPHA);
glBlendEquation(GL_FUNC_ADD);
glDepthFunc(GL_ALWAYS);
glNormalPointer(GL_FLOAT, 0, normals);
glVertexPointer(3, GL_FLOAT, 0, vertices);
glTexCoordPointer(2, GL_FLOAT, 0, texture_ind_one);
glBindTexture(GL_TEXTURE_2D, texture_one);
glDrawElements(GL_TRIANGLES, indicies_num, GL_UNSIGNED_INT, indices);
glNormalPointer(GL_FLOAT, 0, normals);
glVertexPointer(3, GL_FLOAT, 0, vertices);
glTexCoordPointer(2, GL_FLOAT, 0, texture_ind_two);
glBindTexture(GL_TEXTURE_2D, texture_two);
glDrawElements(GL_TRIANGLES, indicies_num, GL_UNSIGNED_INT, indices);
どうもありがとうございました!