- 1
- 0
- 约3.13万字
- 约 9页
- 2016-10-09 发布于贵州
- 举报
用Visual6实现OpenGL编程
一、OpenGL简介 众所周知,OpenGL原先是Silicon?Graphics?Incorporated(SGI公司)在他们的图形工作站上开发高质量图像的接 口。但最近几年它成为一个非常优秀的开放式三维图形接口。实际上它是图形软件和硬件的接口,它包括有120多个图形函数,GL是 GRAPHIC?LIBRARY的缩写,意思是“图形库”。OpenGL的出现使大多数的程序员能够在PC机上用C语言开发复杂的三维图形。微软在 Visual?C++?5中已提供了三个OpenGL的函数库(glu32.lib,?glau.lib,OpenGL32.lib),可以使我们方便地 编程,简单、快速地生成美观、漂亮的图形。例如,Windows?NT中的屏幕保护程序中的花篮和迷宫等都给人们留下了深刻的印象。二、生成OpenGL程序的基本步骤和条件 本文将给出一个例子,这个例子是一个用OpenGL显示图像的Windows程序,通过这个程序我们也可以知道用OpenGL编程的基本要求。我们知 道,GDI是通过设备句柄(Device?Context以下简称DC)来绘图,而OpenGL则需要绘制环境 (Rendering?Context,以下简称RC)。每一个GDI命令需要传给它一个DC,与GDI不同,OpenGL使用当前绘制环境 (RC)。一旦在一个线程中指定了一个当前RC,所有在此线程中的OpenGL命令都使用相同的当前RC。虽然在单一窗口中可以使用多个RC,但在单一线 程中只有一个当前RC。本例将首先产生一个OpenGL?RC并使之成为当前RC,分为三个步骤:设置窗口像素格式;产生RC;设置为当前RC。 1、首先创建工程 用AppWizard产生一个EXE文件,选择工程目录,并在工程名字中输入GLSample1,保持其他的不变;第一步、选单文档(SDI); 第二步、不支持数据库;第三步、不支持OLE;第四步、不选中浮动工具条、开始状态条、打印和预览支持、帮助支持的复选框(选中也可以,本文只是说明最小 要求),选中三维控制(3D?Controls);第五步、选中产生源文件注释并使用MFC为共享动态库;第六步、保持缺省选择。按Finish结束,工 程创建完毕。 2、将此工程所需的OpenGL文件?和库加入到工程中 在工程菜单中,选择Build下的Settings项。单击Link标签,选择General目录,在 Object/Library?Modules的编辑框中输入OpenGL32.lib?glu32.lib?glaux.lib(注意,输入双引号 中的内容,各个库用空格分开;否则会出现链接错误),选择OK结束。然后打开文件stdafx.h,将下列语句插入到文件中(划下划线的语句为所 加语句): #define?VC_EXTRALEAN?//?Exclude?rarely-used?stuff?from?Windows?headers #include??//?MFC?core?and?standard?components #include??//?MFC?extensions #include? #include? #ifndef?_AFX_NO_AFXCMN_SUPPORT #include??//?MFC?support?for?Windows?95?Common?Controls #endif?//?_AFX_NO_AFXCMN_SUPPORT 3、改写OnPreCreate函数并给视?类添加成员函数和成员变量 OpenGL需要窗口加上WS_CLIPCHILDREN(创建父窗口使用的Windows风格,用于重绘时裁剪子窗口所覆盖的区域)和 ?WS_CLIPSIBLINGS(创建子窗口使用的Windows风格,用于重绘时剪裁其他子窗口所覆盖的区域)风格。把OnPreCreate改写成 如下所示: ?BOOL?CGLSample1View::PreCr-?eateWindow(CREATESTRUCT?cs) { ?cs.style?|=?(WS_CLIPCHI-?LDREN?|?WS_CLIPSIBLINGS); ?return?CView::PreCreate-?Window(cs); } ?产生一个RC的第一步是定义窗口的像素格式。像素格式决定窗口着所显示的图形在内存中是如何表示的。由像素格式控制的参数包括:颜色深度、缓冲模式 和所支持的绘画接口。在下面将有对这些参数的设置。我们先在CGLSample1View的类中添加一个保护型的成员函数 BOOL?SetWindowPixel-Format(HDC?hDC)(用鼠标右键添加),并编辑其中的代码,见程序1
您可能关注的文档
- 瓯海区实验小学创温州市素质教育学校台帐.doc
- 甘南城镇化及牦牛业化项目建设框架方案.doc
- 瓦斯实时监测监控生产调度指挥系统.doc
- 甘孜日报手机WA网站建设方案.doc
- 甘肃伊阳自动化设有限公司简介.doc
- 甘肃农业大学文科验室管理办法.doc
- 甘肃大唐国际连城电有限责任公司锅炉炉膛起吊装置管理制度.doc
- 甘肃广播电视大学西分校班主任手册1.doc
- 甘肃定西市马铃薯业发展情况汇报(2011.6.2).doc
- 甘肃盛朝建华房地开发有限公司经营管理制度汇编.doc
- 2026年在线教育行业政策调整对教师培训的转型发展策略研究.docx
- 2026年在线教育行业政策调整对教育公平的转型发展策略分析.docx
- 2026年在线教育行业政策调整对市场竞争影响报告.docx
- 2026年在线教育行业政策调整及转型发展策略评估策略报告.docx
- 2026年在线教育行业政策调整对学习效果评估的转型发展策略研究.docx
- 2026年在线教育行业政策调整背景下的转型发展策略研究.docx
- 2026年在线教育行业教师培训与专业发展策略报告.docx
- 2026年在线教育行业教师培训与人才发展研究报告.docx
- 2026年在线教育行业政策调整对用户体验的转型发展策略研究.docx
- 2026年在线教育行业政策风险与合规应对策略分析报告.docx
原创力文档

文档评论(0)