怎样用OpenGL画只有一个面不透明的正方体
随便哪个面不透明,剩下的5个面都是透明的。这个应该怎么做啊?我调了好久都调不出来,哪位大哥大姐帮帮忙啦。...
随便哪个面不透明,剩下的5个面都是透明的。这个应该怎么做啊?我调了好久都调不出来,哪位大哥大姐帮帮忙啦。
展开
1个回答
展开全部
你可以把朝向立方体内部的面切除,但是你要自己确定正面还是反面
glPolygonMode(GL_FRONT_AND_BACK,GL_POLYGON);//
glEnable(GL_CULL_FACE);
glInterleavedArrays(GL_C3F_V3F,3*sizeof(GLfloat), vertexs);
glCullFace(GL_BACK);
glDrawElements(GL_QUADS, 4, GL_UNSIGNED_BYTE, backIndexs);
glCullFace(GL_FRONT);
glDrawElements(GL_QUADS, 4, GL_UNSIGNED_BYTE, frontIndexs);
glCullFace(GL_FRONT);
glDrawElements(GL_QUADS, 4, GL_UNSIGNED_BYTE, leftIndexs);
glCullFace(GL_BACK);
glDrawElements(GL_QUADS, 4, GL_UNSIGNED_BYTE, rightIndexs);
glCullFace(GL_FRONT);
glDrawElements(GL_QUADS, 4, GL_UNSIGNED_BYTE, topIndexs);
glCullFace(GL_FRONT);
glDrawElements(GL_QUADS, 4, GL_UNSIGNED_BYTE, bottomIndexs);
glDisable(GL_CULL_FACE);
glPolygonMode(GL_FRONT_AND_BACK,GL_POLYGON);//
glEnable(GL_CULL_FACE);
glInterleavedArrays(GL_C3F_V3F,3*sizeof(GLfloat), vertexs);
glCullFace(GL_BACK);
glDrawElements(GL_QUADS, 4, GL_UNSIGNED_BYTE, backIndexs);
glCullFace(GL_FRONT);
glDrawElements(GL_QUADS, 4, GL_UNSIGNED_BYTE, frontIndexs);
glCullFace(GL_FRONT);
glDrawElements(GL_QUADS, 4, GL_UNSIGNED_BYTE, leftIndexs);
glCullFace(GL_BACK);
glDrawElements(GL_QUADS, 4, GL_UNSIGNED_BYTE, rightIndexs);
glCullFace(GL_FRONT);
glDrawElements(GL_QUADS, 4, GL_UNSIGNED_BYTE, topIndexs);
glCullFace(GL_FRONT);
glDrawElements(GL_QUADS, 4, GL_UNSIGNED_BYTE, bottomIndexs);
glDisable(GL_CULL_FACE);
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询