关于opengl画正面半透明立方体问题?

morningl_77 2010-12-08 10:05:25
我用opengl画了个立方体,大致如下:
glLightModeli(GL_LIGHT_MODEL_TWO_SIDE, GL_TRUE);
useColor(); //给材料设置颜色
glPolygonMode(GL_FRONT_AND_BACK, GL_FILL);
materials.apply();//正面材料定义(glMaterialfv(GL_FRONT, GL_DIFFUSE, _diffuse.rgba()))正面0.5 materials.apply_back();//背面材料定义(glMaterialfv(GL_BACK, GL_DIFFUSE, d.rgba()))背面1.0
glBegin(GL_QUADS);
glNormal3f(0.0f,0.0f,1.0f);//front
glVertex3f(pointD.getX(), pointD.getY(), pointD.getZ());
glVertex3f(pointC.getX(), pointC.getY(), pointC.getZ());
glVertex3f(pointB.getX(), pointB.getY(), pointB.getZ());
glVertex3f(pointA.getX(), pointA.getY(), pointA.getZ());

glNormal3f(0.0f,0.0f,-1.0f);//back
glVertex3f(pointH.getX(), pointH.getY(), pointH.getZ());
glVertex3f(pointG.getX(), pointG.getY(), pointG.getZ());
glVertex3f(pointF.getX(), pointF.getY(), pointF.getZ());
glVertex3f(pointE.getX(), pointE.getY(), pointE.getZ());

glNormal3f(-1.0f,0.0f,0.0f);//legt
glVertex3f(pointG.getX(), pointG.getY(), pointG.getZ());
glVertex3f(pointD.getX(), pointD.getY(), pointD.getZ());
glVertex3f(pointA.getX(), pointA.getY(), pointA.getZ());
glVertex3f(pointF.getX(), pointF.getY(), pointF.getZ());

glNormal3f(1.0f,0.0f,0.0f);//right
glVertex3f(pointC.getX(), pointC.getY(), pointC.getZ());
glVertex3f(pointH.getX(), pointH.getY(), pointH.getZ());
glVertex3f(pointE.getX(), pointE.getY(), pointE.getZ());
glVertex3f(pointB.getX(), pointB.getY(), pointB.getZ());

glNormal3f(0.0f,1.0f,0.0f);//top
glVertex3f(pointA.getX(), pointA.getY(), pointA.getZ());
glVertex3f(pointB.getX(), pointB.getY(), pointB.getZ());
glVertex3f(pointE.getX(), pointE.getY(), pointE.getZ());
glVertex3f(pointF.getX(), pointF.getY(), pointF.getZ());

glNormal3f(0.0f,-1.0f,0.0f);//bottom
glVertex3f(pointC.getX(), pointC.getY(), pointC.getZ());
glVertex3f(pointD.getX(), pointD.getY(), pointD.getZ());
glVertex3f(pointG.getX(), pointG.getY(), pointG.getZ());
glVertex3f(pointH.getX(), pointH.getY(), pointH.getZ());
glEnd();
可是看到的立方体确实正反面都是半透明的,问什么??我忘了设置什么了吗??
...全文
421 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
peng_weida 2011-02-16
  • 打赏
  • 举报
回复
是不是要开深度测试哦
Swkjd 2011-02-16
  • 打赏
  • 举报
回复
上次画了一个平面,也是想一面透明一面不透明。。结果也是遇到这个问题。。最后不得不画了两个法向相反的平面,并且只显示正面。。不理解是什么问题。。
const001 2010-12-12
  • 打赏
  • 举报
回复
刚刚开始学,友情顶贴
morningl_77 2010-12-09
  • 打赏
  • 举报
回复
等待中!!!!!!

19,469

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 图形处理/算法
社区管理员
  • 图形处理/算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧