下载此文档

MFC框架下OpenGL程序的实现步骤.doc


文档分类: | 页数:约14页 举报非法文档有奖
1/14
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/14 下载此文档
文档列表 文档介绍
MFC框架下OpenGL程序的实现步骤
2008-01-08 10:39 636人阅读评论(0) 收藏举报
  
   本文主要介绍如何在MFC框架下编写OpenGL程序。现有的OpenGL参考书多是介绍基于AUX库,或是基于GLUT库的Win32 OpenGL程序。这类程序结构非常简单,主要目的是让读者熟悉OpenGL语言的用法及功能。然而不得不承认,编写可视化程序MFC框架有其独到的优势,本文就是针对这种需求,详细介绍MFC框架下OpenGL程序的实现步骤。
编译器:Microsoft Visual 2003(中文版)
准备工作:下载OpenGL非标准额外GLUT库文件nload/(, , )。将glut./Vc7/PlatformSDK/Include/gl下,glut32./Vc7/PlatformSDK/Lib下,,最后设置编译器的链接:【项目】-【属性页】-【链接器】-【输入】-【附加依赖项】-。
具体实现步骤:
1.       新建MFC多文档应用程序,项目名取为Render。
2.       ,并将这两个文件放入项目文件夹内。具体代码见附录。两文件的功能:创建类CWSDView,它继承自CView,成员函数包括设置像素格式,创建渲染描述表,各类鼠标消息相应函数如鼠标左键拖动,右键拖动及滚轴转动等。
3.       【文件】-【添加现有项】,, 。
4.       #include "",
将class CRenderView : public CView修改为class CRenderView : public CWSDView
(CRenderView, CView)为IMPLEMENT_DYNCREATE(CRenderView, CWSDView);修改  BEGIN_MESSAGE_MAP(CRenderView, CView)为BEGIN_MESSAGE_MAP(CRenderView, CWSDView)
5.       在CRenderView类中添加虚拟函数virtual void RenderScene(void)。实际上它是继承自父类CWSDView。
6.       在CRenderView::OnDraw(CDC* /*pDC*/)内添加代码:
// TODO: 在此处为本机数据添加绘制代码
//双缓存应用
static BOOL bBusy = FALSE;
if(bBusy) return;
bBusy = TRUE;
//背景色
glClearColor(, , ,);
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);//清缓存
glMatrixMode(GL_MODELVIEW);//启动模型矩阵
glLoadIdentity();//初始化模型矩阵
// 绘制动作
glTranslatef(, , -); //将场景移至可视区
RenderScene();//绘制场景
glFinish();//完成绘制
SwapBuffers(wglGetCurrentDC());//双缓存应用:更新缓存
bBusy = FALSE;
7.       在CRenderView::RenderScene(void)内添加代码:
       glPushMatrix();
//控制操作如下,与鼠标消息相应函数相关:
glTranslatef(m_translateX, m_translateY, );
glRotatef(rotate_x, , , );
glRotatef(rotate_y, , , );
glScalef(m_scale, m_scale, m_scale);
//绘制实体例如茶壶
glPushMatrix();
glColor3f(, , );
glutSolidTeapot();
glPopMatrix();
       glPopMatrix()

MFC框架下OpenGL程序的实现步骤 来自淘豆网www.taodocs.com转载请标明出处.

非法内容举报中心
文档信息
  • 页数14
  • 收藏数0 收藏
  • 顶次数0
  • 上传人mh900965
  • 文件大小75 KB
  • 时间2018-03-17