opengl for windows nt及其程序设计论文

opengl for windows nt及其程序设计论文

ID:25102722

大小:55.00 KB

页数:5页

时间:2018-11-18

opengl for windows nt及其程序设计论文_第1页
opengl for windows nt及其程序设计论文_第2页
opengl for windows nt及其程序设计论文_第3页
opengl for windows nt及其程序设计论文_第4页
opengl for windows nt及其程序设计论文_第5页
资源描述:

《opengl for windows nt及其程序设计论文》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、OpenGLforWindowsNT及其程序设计论文.freel90以上、16MBRAM、520MB以上硬盘容量的PC机以及一台43cm以上的大屏幕监视器和一块OpenGL三维图形加速卡组成的系统,.freelittedLight)、环境光(AmbientLight)、漫反射光(DiffuseLight)和镜面光(SpecularLight)。材质是用光反射率来表示。场景(Scene)中物体最终反映到人眼的颜色是光的红绿蓝分量与材质红绿蓝分量的反射率相乘后形成的颜色。(5)纹理映射(TexureMapping)利用OpenGL纹理映射功能

2、可以十分逼真地表达物体表面细节。(6)位图显示和图像增强图像功能除了基本的拷贝和像素读写外,还提供了融合(Blending)、反走样(Antialiasing)和雾(fog)的特殊图像效果处理。(7)双缓存(DoubleBuffering)动画双缓存即前台缓存和后台缓存,简而言之,后台缓存计算场景、生成画面,前台缓存显示后台缓存已画好的画面。此外,利用OpenGL还能实现深度暗示(DepthCue)、运动模糊(MotionBlur)等特殊效果。二、OpenGLforask;}PIXELFORMATDESCRIPTOR,*PPIXELFOR

3、MATDESCRIPTOR,FAR*LPPIXELFORMATDESCRIPTOR;(2)初始化PIXELFORMATDESCRIPTOR结构PIXELFORMATDESCRIPTOR中每个变量值的具体含义和设置可以参考有关资料,下面举出一个PIXELFORMATDESCRIPTOR初始化例子来简要说明相关变量的意义。定义PIXELFORMATDESCRIPTOR结构的pfd如下:PIXELFORMATDESCRIPTORpfd={sizeof(PIXELFORMATDESCRIPTOR),//结构尺寸l,//结构版本PFD-DRAAIN

4、-PLANE,//主层类型0,//保留结构数0,0,0,//不支持结构数};在这个结构里,前两个变量的含义十分明显。第三个变量dAlphaBits都设置为0;深度缓存设置为32位,这个缓存能解决三维场景的消隐问题;变量cAuxBuffers设置为0,在ATDESCRIPTOR结构的地址。如果调用失败则返回0;否则返回像素格式索引号。第三行调用SetPixelFormat()设置像素格式,三个参数分别是设备描述表的句柄、像素格式索引号和PIXELFORMATDESCRIPTOR结构的地址。如果调用成功则返回TURE;否则返回FALSE。3.

5、创建图形操作描述表正如前所述,必须创建图形操作描述表并启用它后,才能调用OpenGL函数在窗口内进行各种图形操作。一般说来,利用MFC中增补的管理图形操作描述表方法来编程比较方便。下面举一例:intCopenglVieberPFD-DRAAIN-PLANE,//mainlayertype0,//reserved0,0,0//unsupported};CClientDCclientDC(this);intpixelFormat=ChoosePixelFormat(clientDC.m-hDC,pfd);BOOLresult=SetPixel

6、Format(clientDC.m-hDC,pixelFormat,pfd);m-hRC=-hRC);return0;}voidCOpenglVieent();ASSERT-VAILD(pDoc);//TODO:adddra-hDC,m-hDC);Dra-hDC,NULL);}voidCOpenglVieessagehandlercodehere-hRC);}在程序中,响应-CREATE消息的函数OnCreate()仅仅只创建一个临时的DC,当函数返回时,它自动删除。因此,在这里不可能启用图形操作描述表。当应用程序的窗口内容得到更新后,M

7、FC就调用OnDraakeCurrent()有效。然后,再调用自己用OpenGL写的绘图函数DrayOpenGL(),则程序就可进行任意的OpenGL图形操作了。当绘图结束后,再调用一次akeCurrent(),但第二个参数设为NULL,意思是启用图形操作描述表无效,关闭图形操作描述表。最后,当应用程序结束时,MFC就调用OnDestroy()函数来响应-DESTROY消息,其中只需调用-PAINT消息,所以在程序的末尾没有删除DC。以上介绍的是OpenGLforWindowsNT的基本程序框架,有兴趣的读者不妨试一试。OpenGL具有很

8、大的发展前途,尤其OpenGLforWindowsNT或OpenGLforWindows95以及不久将来的OpenGLforDOS都是令广大PC用户感到十分高兴和开拓眼界的事情,但愿OpenG

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。