C++ OpenGL和GL_与GLD元素的混合
通过添加glDepthFunc(GL_始终)解决强> 我正在尝试将高度场上的两种纹理与C++ OpenGL和GL_与GLD元素的混合,c++,opengl,multitexturing,C++,Opengl,Multitexturing,通过添加glDepthFunc(GL_始终)解决 我正在尝试将高度场上的两种纹理与gldrawerelements混合。Normalpointer和vertexpointer数据相同,但这两种纹理的TexCoordPointer不同。无论我尝试哪种BlendFunc,始终只有一种纹理可见,尽管纹理的大部分是透明的。glDraweElements是否与gl\u blend配合使用,还是我做错了 glEnable(GL_BLEND); glBlendFunc(GL_ONE, GL_ONE_MINUS
gldrawerelements
混合。Normalpointer和vertexpointer数据相同,但这两种纹理的TexCoordPointer不同。无论我尝试哪种BlendFunc,始终只有一种纹理可见,尽管纹理的大部分是透明的。glDraweElements
是否与gl\u blend配合使用,还是我做错了
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);
多谢各位 您需要通过
glDepthFunc
使用包含“equals”(可能是GL_LEQUAL
)的内容设置适当的深度函数,因为您在同一深度绘制了两次
你也可以考虑将纹理本身混入片段着色器中。
你需要通过使用代码“>GeldthFunc”中的“相等”来设置一个适当的深度函数(很可能是你也可以考虑将纹理本身混入片段着色器中。
你需要通过使用代码“>GeldthFunc”中的“相等”来设置一个适当的深度函数(很可能是你也可以考虑将纹理本身混入片段着色器中。
你需要通过使用代码“>GeldthFunc”中的“相等”来设置一个适当的深度函数(很可能是你也可以考虑在一个片段着色器中混合纹理。
尝试使用一个“相等”的东西,通过<代码> GLDETHFUNC来设置深度函数,因为你用相同的深度绘制了两次。如果这不起作用,请至少在给定的代码示例中包含深度函数。谢谢!!!我使用了glDepthFunc(GL_始终);现在它工作得很好!发布了我的评论的一个稍加修改的版本作为答案。请尝试通过glDepthFunc
使用包含“等于”的内容设置深度函数,因为您正在使用相同的深度绘制两次。如果这不起作用,请至少在给定的代码示例中包含深度函数。谢谢!!!我使用了glDepthFunc(GL_始终);现在它工作得很好!发布了我的评论的一个稍加修改的版本作为答案。请尝试通过glDepthFunc
使用包含“等于”的内容设置深度函数,因为您正在使用相同的深度绘制两次。如果这不起作用,请至少在给定的代码示例中包含深度函数。谢谢!!!我使用了glDepthFunc(GL_始终);现在它工作得很好!发布了我的评论的一个稍加修改的版本作为答案。请尝试通过glDepthFunc
使用包含“等于”的内容设置深度函数,因为您正在使用相同的深度绘制两次。如果这不起作用,请至少在给定的代码示例中包含深度函数。谢谢!!!我使用了glDepthFunc(GL_始终);现在它工作得很好!发布了我的评论的一个稍加修改的版本作为回答。