基于OpenGL3D建模与编程.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于OpenGL3D建模与编程

基于OpenGL3D建模与编程   摘要:3D建模与编程技术是3D应用软件中的关键技术,目前应用比较广泛的有OpenGL、Direct3D、Java3D和VRML等,本文对OpenGL的运行原理、实现机制和程序结构等作了探讨,讨论了使用OpenGL技术进行了具体编程的步骤以及有效利用3D建模软件快速开发可视化系统。   关键词:OpenGL;3D建模      一、引言      我们生活在一个充满三维物体的三维世界中,为了使计算机能精确的再现这些物体,我们必须在三维空间描绘这些物体。机械工程师可以从二维平面图中解放直接进入三维世界;医生可以从病人的三维扫描图像分析病人的病灶;军事指挥员可以面对用三维图形技术生成的战场地形,指挥具有真实感的三维飞机、军舰、坦克向目标开进并分析战斗方案的效果。这些三维应用已涉及建筑、产品设计、医学、地球科学、流体力学等人们生活的各个领域。要实现这些领域的应用软件,展现三维形体的魔力,需要一种实现技术,即3D图形语言。   目前较为广泛使用的3D语言有OpenGL、Direct3D、Java3D和VRML,用他们可以方便的实现3D模型的构造,可以制作各种各样的3D图形,方便的实现各种三维图形的交互操作。   下面就OpenGL的运行原理和实现机制做出介绍,并给出OpenGL编程的部分程序实现例子。      二、OpenGL      OpenGL 是由 SGI 公司在其 GL(graphics library)基础上发展起来的三维图形库,作为三维图形 API 的标准,它已被广泛地应用于图形与动画绘制、虚拟现实技术和计算机可视化等领域。   OpenGL作为硬件和图形的软件接口,与硬件无关,使用简单,执行效率高,实际上是一个三维图形和模型库,是一个API,可以在不同的平台上加以实现。利用它提供的基本图形操作函数可以实现几何建模、图形变换、渲染、光照和材质、反走样、混合、雾化、位图和图像、纹理映射、交互操作以及动画制作等功能。OpenGL并不提供三维造型的高级命令,他只提供一些基本图元:点、线、多边形。在这种情况下,如果完全通过基本的几何图元―点、线、多边形来构建模型,势必十分困难;另一方面,由于3D图形技术的发展,形成了非常多的3D建模软件,用这些软件建模一般比较方便,但又难以对其进行控制和交互。因此,如何有效地利用这些资源,对于快速开发可视化系统具有非常现实的意义。      OpenGL只是一个图形函数库,而不是一种程序设计语言,因而只有与其他程序设计语言相结合才能发挥作用。VC是Windows操作系统中广泛使用的可视化编程应用程序,它能提供可视窗口界面和基本输入输出功能,弥补了OpenGL的不足,是当前一种比较流行的工作平台。   (一)OpenGL原理和运行机制   在 Windows中作图必须通过“设备上下文”DC,调用相应的函数来完成;用OpenGL作图与其类似,OpenGL函数通过“渲染上下文”RC,完成三维图形的绘制。Windows下的窗口和“设备上下文”DC是支持“像素格式”属性的,和RC有着像素结构上的一致。只要在创建RC时与一个DC建立联系(RC也只能通过已经建立好的像素格式的 DC来创建),OpenGL的函数就可以通过RC对应的 DC画到相应的显示设备上。但需注意:   1、程序中的一个线程只能拥有一个“渲染上下文”RC,与此对应,一个 RC也只能属于一个线程,不能被不同线程同时共享。   2、设定“设备上下文”DC格式等于设定了相应的窗口的格式,并且 DC和窗口的像素格式一旦确定就不能再改变。   3、一个 RC虽然可以更换一个DC,并且在任何时刻只能利用当前的一个 DC,但由于一个窗口可以让多个 DC 作图,从而可以让多个线程利用多个 RC在该窗口上执行 OpenGL 操作。   (二)在VC中进行OpenGL编程   编程的主要步骤和关键技术:   在窗口的创建过程中,设置好显示的像素格式,并按照OpenGL的要求设置好窗口属性和风格;   首先获得 Windows设备描述表,然后将其与事先设置好的OpenGL绘制描述表联系起来;   调用 OpenGL命令进行图形绘制;   退出OpenGL图形窗口时,释放OpenGL绘制描述表RC和 Windows设备描述表DC。   简化流程图如右图所示:   结合编程实现,下面给出了具体实施步骤。具体细节的代码就不做赘述了。   编程具体实施步骤   用 AppWizard生成应用程序框架。   修改stdAfx.h文件。在该文件中添加使用到的OpenGL头文件。   在视图类的头文件和源文件中,添加和编制用户成员变量和成员函数。   在文档和视图类结构中,视

文档评论(0)

3471161553 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档