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

上传人:tia****nde 文档编号:11673258 上传时间:2020-05-01 格式:PPT 页数:26 大小:4.38MB
返回 下载 相关 举报
基于OpenGL的三维建模技术.ppt_第1页
第1页 / 共26页
基于OpenGL的三维建模技术.ppt_第2页
第2页 / 共26页
基于OpenGL的三维建模技术.ppt_第3页
第3页 / 共26页
点击查看更多>>
资源描述
基于OpenGL的三维建模技术,王鹏,目录,1.三维显示的基本方法2.OpenGL基本原理3.OpenGL编程的基本方法,1.三维显示的基本方法,三维显示就是将立体图像以平面投影图或透视图的形式在平面上表现出来的过程。,三维显示的理论基础是计算机图形学。实现的主要方法:DirectX和OpenGL两个函数库。DirectX是微软独自开发的API。DirectX由显示部分、声音部分、输入部分和网络部分四大部分组成。OpenGL“开放图形库”,由SGI公司开发,主要针对3D图像处理。它与硬件无关,并且独立于操作系统之外。相比之下,OpenGL更容易被初学者掌握。,三维显示在地球物理方面的应用:三维可视化软件有:LandmarkEarthCube模块和GeoProbe模块,GeoFrame,ParadigmVoxelGeo等等。实际上,三维显示功能已经成为大型地学软件不可或缺的一部分。,2.OpenGL基本原理,三维显示和摄影类似,相机镜头,视点,三角架,视点位置,视野大小,视景体,景物,模型,在实际摄影拍摄时,我们可以改变拍摄位置和角度,相机的焦距,改变景物的位置等等。在OpenGL中,提供对应的函数来实现这些功能。这些函数(也称为变换)是通过矩阵计算来实现的。同时,OpenGL是一个状态机,设置了某种状态而不改变,OpenGL将一直保持这个状态。,视点变换:确定视点的位置和方向。,投影变换:定义一个视景体,使得视景体外多余的部分裁剪掉,确定视野范围。,模型变换:对模型进行平移,旋转和缩放处理。,视点变换,voidgluLookAT(GLdoubleeyex,GLdoubleeyey,GLdoubleeyez,/视点GLdoublecx,GLdoublecy,GLdoublecz,/目标点GLdoubleupx,GLdoubleupy,GLdoubleupz,/视点朝上的方向),投影变换,由于显示器只能用二维图象显示三维物体,因此就要靠投影来降低维数。投影变换的目的就是定义一个视景体,使得视景体外多余的部分裁剪掉,最终绘制图像的只是视景体内的有关部分。投影包括透视投影(PerspectiveProjection)和正交投影(OrthographicProjection)两种。,透视投影,voidgluPerspective(fovy,aspect,zNear,zFar),取景体是一个截头锥体,在这个体积内的物体这个锥体的顶点也就是视点的位置。,正交投影,voidglOrtho(left,right,bottom,top,near,far),取景体是一个各面均为矩形的六面体,透视投影,正交投影,建立模型,任何复杂的图形都是由基本的图元点、线和多边形组成的。glBegin();/描述一组顶点,用于建构某种几何对象glEnd();,例如:glBegin(GL_LINES)/画线glVertex2f(0.0,0.0,0.0);glVertex2f(1.0,1.0,1.0);glEnd();,模型的平移与旋转,平移变换voidglTanslatefd(TYPEx,TYPEy,TYPEz);旋转变换voidglRotatefd(TYPEangle,TYPEx,TYPEy,TYPEz);,模型总是在原点处绘制完成以后,再通过适当的平移变换和旋转变换到恰当的空间位置。,需要特别指出的是,实际的变换顺序与指定的顺序是相反的。,程序代码顺序:,实现顺序:,原始模型,先平移,再旋转45度,先旋转45度再平移,光照,为了增强模型的立体效果,可以给场景加入光源。,OpenGL将光线分为辐射光、环境光、漫反射光和镜面反射光4种独立的成分。,上色和纹理贴图,现实世界中的物体表面往往有各种纹理,因此要绘制逼真的三维模型,除了对模型进行光照处理外,还需要加上纹理贴图,使物体看起来更真实。,3.OpenGL编程的基本方法,1.利用GLUT实现2.利用MFC实现3.高级图像库,1利用GLUT实现,因为OpenGL独立于任何窗口系统和操作系统之外。所以OpenGL不能直接用来打开窗口以及从键盘或鼠标读取事件。GLUT库简化Windows窗口操作,它提供了非常简单的方法来实现窗口操作。,intmain(intargc,char*argv)glutInit(,glBegin(GL_TRIANGLES);glColor3f(1.0,1.0,1.0);glVertex3f(-1,-1,0.0);glColor3f(0.0,1.0,0.0);glVertex3f(1,0.0,0.0);glColor3f(0.0,0.0,1.0);glVertex3f(0.0,1,0.0);glEnd();,2利用MFC实现,MFC是一种应用程序框架。我们可以利用它非常快速的开发Windows程序。简单的说,MFC是WinAPI与C+的结合。它具有完善的消息处理机制。,3高级图形库,OpenGL提供的功能是比较基本和底层,直接利用OpenGL来构建复杂的3D图像是很困难的。在OpenGL的基础上还有OpenInventor、Cosmo3D、Optimizer等多种高级图形库,来适应不同应用。OpenInventor广泛地应用于机械工程设计与仿真、医学和科学图像、地理科学、石油钻探、虚拟现实、科学数据可视化等领域。,GLUT和OpenInventor对比,GLUT,OpenInventor,汇报完毕,请批评指正,
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!