快速业务通道

使用Eclipse RCP进行桌面程序开发(六):向OpenGL进军 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-17

使用Eclipse RCP进行桌面程序开发(六):向OpenGL进军

时间:2011-04-13 海边沫沫

看完这一篇,我们应该可以使用OpenGL绘制如下图的场景了。该场景是一个旋转的三菱锥 矩阵,下面是旋转到不同方位的截图:

使用Eclipse RCP进行桌面程序开发(六):向OpenGL进军 - 编程入门网

使用Eclipse RCP进行桌面程序开发(六):向OpenGL进军 - 编程入门网

使用Eclipse RCP进行桌面程序开发(六):向OpenGL进军 - 编程入门网

使用Eclipse RCP进行桌面程序开发(六):向OpenGL进军(2)

时间:2011-04-13 海边沫沫

我整整花了一个星期的时间来研究SWT中的OpenGL,遇到的第一个困难是找不到传说中的 GL类和GLU类,最后,通过搜索引擎终于找到了,原来使用Eclipse进行OpenGL开发,还需要 另外下载OpenGL插件,如下图:

使用Eclipse RCP进行桌面程序开发(六):向OpenGL进军 - 编程入门网

这里有OpenGL的类库,还有一个示例,把类库下载下来,解压,放到Eclipse的Plugin目 录下,然后在我们的项目中添加依赖项,就可以看到我们需要使用的类了,如下图:

使用Eclipse RCP进行桌面程序开发(六):向OpenGL进军 - 编程入门网

使用Eclipse RCP进行桌面程序开发(六):向OpenGL进军(3)

时间:2011-04-13 海边沫沫

我们需要对OpenGL编程的一些基本概念有点了解,在OpenGL中,3D场景不是直接绘制到操 作系统的窗口上的,而是有一个称为着色描述表(Rendering Context)的东西,我们这里简 称它为context,OpenGL的绘图命令都是在当前context上进行绘制,然后再把它渲染到操作 系统的设备描述表(Device Context)上,这里,我们可以简单的理解成把它渲染到窗口控 件上(其实也可以渲染到全屏幕)。

在Windows中使用OpenGL编程比较麻烦,因为我们需要设置一个叫做象素格式的东西,大 家只要看看下面的这段C代码,就知道我为什么说它麻烦了:

static PIXELFORMATDESCRIPTOR pfd=     //pfd 告诉窗口我们所希望的东 东       {           sizeof(PIXELFORMATDESCRIPTOR),   //上诉格式描述符的大小           1,                  // 版本号           PFD_DRAW_TO_WINDOW |        // 格式必须支持窗口           PFD_SUPPORT_OPENGL |        // 格式必须支持 OpenGL           PFD_DOUBLEBUFFER,          // 必须支持双缓冲           PFD_TYPE_RGBA,           // 申请 RGBA 格式           bits,                // 选定色彩深度           0, 0, 0, 0, 0, 0,          // 忽略的色彩位           0,                 // 无Alpha缓存           0,                 // 忽略Shift Bit           0,                 // 无聚集缓存           0, 0, 0, 0,             // 忽略聚集位           16,                 // 16位 Z-缓存 (深度缓存 )           0,                 // 无模板缓存           0,                 // 无辅助缓存           PFD_MAIN_PLANE,           // 主绘图层           0,                 // 保留           0, 0, 0               // 忽略层遮罩      }; if (!(PixelFormat=ChoosePixelFormat(hDC,&pfd)))   // Windows 找到相应的 象素格式了吗?      {          KillGLWindow();               // 重置显示区          MessageBox(NULL,"Can''t Find A Suitable PixelFormat.",             "ERROR",MB_OK|MB_ICONEXCLAMATION);          return FALSE;             

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号