我绘制了一个线框型不规则球体,现在希望显示的时候将后面的线框隐藏起来。本人初学,希望高手指点。
目前绘图代码如下:
glClearColor(0.8f, 0.8f, 0.8f, 0.8f);
glClearDepth(1.0f);
glShadeModel(GL_SMOOTH);
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
glClear (GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT);
glEnable(GL_DEPTH_TEST);
glLightfv(GL_LIGHT1, GL_DIFFUSE, LightDiffuse);
glLightfv(GL_LIGHT0,GL_SPECULAR,LightDiffuse);
glLightModelfv(GL_LIGHT_MODEL_AMBIENT,lmodel);
glLightfv(GL_LIGHT1, GL_POSITION,LightPosition);
glEnable(GL_LIGHTING);
glEnable(GL_LIGHT1);
glEnable(GL_NORMALIZE);
glEnable(GL_COLOR_MATERIAL);
glColorMaterial(GL_FRONT, GL_AMBIENT_AND_DIFFUSE);
glBlendFunc(GL_ONE_MINUS_SRC_COLOR,GL_SRC_COLOR);
glEnable(GL_BLEND);
/*其他绘图代码*/
glDisable(GL_BLEND);
rotate(); //旋转
DrawCurve(); //绘制曲面
glFlush();
::SwapBuffers(m_pDC->GetSafeHdc()); //交互缓冲区
目前绘图代码如下:
glClearColor(0.8f, 0.8f, 0.8f, 0.8f);
glClearDepth(1.0f);
glShadeModel(GL_SMOOTH);
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
glClear (GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT);
glEnable(GL_DEPTH_TEST);
glLightfv(GL_LIGHT1, GL_DIFFUSE, LightDiffuse);
glLightfv(GL_LIGHT0,GL_SPECULAR,LightDiffuse);
glLightModelfv(GL_LIGHT_MODEL_AMBIENT,lmodel);
glLightfv(GL_LIGHT1, GL_POSITION,LightPosition);
glEnable(GL_LIGHTING);
glEnable(GL_LIGHT1);
glEnable(GL_NORMALIZE);
glEnable(GL_COLOR_MATERIAL);
glColorMaterial(GL_FRONT, GL_AMBIENT_AND_DIFFUSE);
glBlendFunc(GL_ONE_MINUS_SRC_COLOR,GL_SRC_COLOR);
glEnable(GL_BLEND);
/*其他绘图代码*/
glDisable(GL_BLEND);
rotate(); //旋转
DrawCurve(); //绘制曲面
glFlush();
::SwapBuffers(m_pDC->GetSafeHdc()); //交互缓冲区
解决方案 »
- 求拟合方程的方法
- 怎么让listview中某一指定行显示在正中间?
- 在mfc程序中存储一个结构体的集合,要求能不重复,和数学中的集合概念差不多,请问怎么写
- 关于TextOut输出中文的问题?急!急!急!----在线等
- 如何快速的删除NNN多的小文件?
- 谁知道追捕或者QQ的IP数据库格式是怎样的,如何利用它?
- 初学VC,很多不懂,请指导关于EDIT box。很菜的问题。谢谢大哥们了。
- 请问:(人机)游戏中设定对手级别是如何实现的?谢谢。
- 急!如何使得web browser 控件显示*.bmp文件
- Windows2000端口問題!
- 怎样通过对话框建表
- MFC 怎么用ADO连接Mysql ??(救命啊,个位大侠)
我看网上有贴说应该关闭光源,开深度测试,但是没有效果。
glDepthFunc(GL_LESS);
glEnable(GL_DEPTH_TEST);
glEnable(GL_DEPTH_TEST);
//具体的显示在这儿加
glDisable(GL_DEPTH_TEST);