基于OpenGL的三维建模技术.ppt

  1. 1、本文档共26页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
基于OpenGL的三维 建模技术 王 鹏 目 录 1 . 三维显示的基本方法 2. OpenGL基本原理 3. OpenGL编程的基本方法 1 . 三维显示的基本方法 三维显示就是将立体图像以平面投影图或透视图的形式在平面上表现出来的过程。 三维显示的理论基础是计算机图形学。 实现的主要方法: DirectX 和OpenGL两个函数库。 DirectX是微软独自开发的API。DirectX由显示部分、声音部分、输入部分和网络部分四大部分组成。 OpenGL “开放图形库”,由SGI公司开发,主要针对3D图像处理。它与硬件无关,并且独立于操作系统之外。 相比之下,OpenGL更容易被初学者掌握。 三维显示在地球物理方面的应用: 三维可视化软件有:Landmark EarthCube模块和 GeoProbe模块,GeoFrame,Paradigm VoxelGeo等等。实际上,三维显示功能已经成为大型地学软件不可或缺的一部分。 2. OpenGL基本原理 在实际摄影拍摄时,我们可以改变拍摄位置和角度,相机的焦距,改变景物的位置等等。 在OpenGL中,提供对应的函数来实现这些功能。这些函数(也称为变换)是通过矩阵计算来实现的。同时,OpenGL是一个状态机,设置了某种状态而不改变,OpenGL将一直保持这个状态。 投影变换 由于显示器只能用二维图象显示三维物体,因此就要靠投影来降低维数。 投影变换的目的就是定义一个视景体,使得视景体外多余的部分裁剪掉,最终绘制图像的只是视景体内的有关部分。投影包括透视投影(Perspective Projection)和正交投影(Orthographic Projection)两种。 透视投影 void gluPerspective(fovy,aspect,zNear,zFar) 正交投影 void glOrtho(left,right,bottom,top,near,far) 建立模型 任何复杂的图形都是由基本的图元点、线和多边形组成的。 glBegin(…); ……//描述一组顶点,用于建构某种几何对象 glEnd(); 模型的平移与旋转 平移变换 void glTanslate{fd}(TYPE x, TYPE y, TYPE z); 旋转变换 void glRotate{fd}(TYPE angle, TYPE x, TYPE y, TYPE z); 需要特别指出的是,实际的变换顺序与指定的顺序是相反的。 光 照 为了增强模型的立体效果,可以给场景加入光源。 上色和纹理贴图 3. OpenGL编程的基本方法 1. 利用GLUT实现 2. 利用MFC实现 3. 高级图像库 1 利用GLUT实现 因为 OpenGL独立于任何窗口系统和操作系统之外。所以OpenGL不能直接用来打开窗口以及从键盘或鼠标读取事件。GLUT库简化Windows窗口操作,它提供了非常简单的方法来实现窗口操作。 int main(int argc, char** argv) { glutInit(argc, argv);//初始化GLUT glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB); glutInitWindowSize(640, 480); //设置窗口大小 glutInitWindowPosition(0, 0);//设置窗口起始位置 glutCreateWindow(Basic);//设置窗口标题 init();//初始化OpenGL glutDisplayFunc(display);//设置显示回调函数 glutReshapeFunc(reshape);//设置重绘回调函数 glutKeyboardFunc(keyboard);//设置键盘回调函数 glutMainLoop();//进入主循环 return 0; } 2 利用MFC实现 MFC是一种应用程序框架。我们可以利用它非常快速的开发Windows程序。简单的说,MFC是Win API与C++的结合。它具有完善的消息处理机制。 3 高级图形库 GLUT和Open Inventor对比 汇报完毕,请批评指正 * * 三维显示和 摄影类似 相机镜头 视点 三角架 视点位置 视野大小 视景体 景物 模型 视点变换:确定视点的位置和方向。 投影变

文档评论(0)

junjun37473 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档