基于opengl的三维建模技术.ppt_第1页
基于opengl的三维建模技术.ppt_第2页
基于opengl的三维建模技术.ppt_第3页
基于opengl的三维建模技术.ppt_第4页
基于opengl的三维建模技术.ppt_第5页
已阅读5页,还剩25页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、基于OpenGL的三维建模技术,王 鹏,目 录,1 . 三维显示的基本方法 2. OpenGL基本原理 3. OpenGL编程的基本方法,1 . 三维显示的基本方法,三维显示就是将立体图像以平面投影图或透视图的形式在平面上表现出来的过程,三维显示的理论基础是计算机图形学。 实现的主要方法: DirectX 和OpenGL两个函数库。 DirectX是微软独自开发的API。DirectX由显示部分、声音部分、输入部分和网络部分四大部分组成。 OpenGL “开放图形库”,由SGI公司开发,主要针对3D图像处理。它与硬件无关,并且独立于操作系统之外。 相比之下,OpenGL更容易被初学者掌握,三维

2、显示在地球物理方面的应用: 三维可视化软件有:Landmark EarthCube模块和 GeoProbe模块,GeoFrame,Paradigm VoxelGeo等等。实际上,三维显示功能已经成为大型地学软件不可或缺的一部分,2. OpenGL基本原理,三维显示和 摄影类似,相机镜头,视点,三角架,视点位置,视野大小,视景体,景物,模型,在实际摄影拍摄时,我们可以改变拍摄位置和角度,相机的焦距,改变景物的位置等等。 在OpenGL中,提供对应的函数来实现这些功能。这些函数(也称为变换)是通过矩阵计算来实现的。同时,OpenGL是一个状态机,设置了某种状态而不改变,OpenGL将一直保持这个状

3、态,视点变换:确定视点的位置和方向,投影变换:定义一个视景体,使得视景体外多余的 部分裁剪掉 ,确定视野范围,模型变换:对模型进行平移,旋转和缩放处理,视点变换,void gluLookAT ( GLdouble eyex, GLdouble eyey, GLdouble eyez,/视点 GLdouble cx, GLdouble cy, GLdouble cz, /目标点 GLdouble upx, GLdouble upy, GLdouble upz,/视点朝上的方向,投影变换,由于显示器只能用二维图象显示三维物体,因此就要靠投影来降低维数。 投影变换的目的就是定义一个视景体,使得视景体

4、外多余的部分裁剪掉,最终绘制图像的只是视景体内的有关部分。投影包括透视投影(Perspective Projection)和正交投影(Orthographic Projection)两种,透视投影,void gluPerspective(fovy,aspect,zNear,zFar,取景体是一个 截头锥体,在这 个体积内的物体 这个锥体的顶点 也就是视点的位 置,正交投影,void glOrtho(left,right,bottom,top,near,far,取景体是一 个各面均为矩 形的六面体,透视投影,正交投影,建立模型,任何复杂的图形都是由基本的图元点、线和多边形组成的。 glBegin

5、(); /描述一组顶点,用于建构某种几何对象 glEnd(,例如: glBegin(GL_LINES) /画线 glVertex2f(0.0,0.0,0.0); glVertex2f(1.0,1.0,1.0); glEnd(,模型的平移与旋转,平移变换 void glTanslatefd(TYPE x, TYPE y, TYPE z); 旋转变换 void glRotatefd(TYPE angle, TYPE x, TYPE y, TYPE z,模型总是在原点处绘制完成以后,再通过适 当的平移变换和旋转变换到恰当的空间位置,需要特别指出的是,实际的变换顺序与指定的顺序是相反的,程序代码顺序,

6、实现顺序,原始模型,先平移,再旋 转45度,先旋转45度 再平移,光 照,为了增强模型的立体效果,可以给场景加入光源,OpenGL将光线分为辐射光、环境光、漫反射光 和镜面反射光 4 种独立的成分,上色和纹理贴图,现实世界中的物体 表面往往有各种纹理, 因此要绘制逼真的三 维模型,除了对模型 进行光照处理外,还 需要加上纹理贴图, 使物体看起来更真实,3. OpenGL编程的基本方法,1. 利用GLUT实现 2. 利用MFC实现 3. 高级图像库,1 利用GLUT实现,因为 OpenGL独立于任何窗口系统和操作系统之外。所以OpenGL不能直接用来打开窗口以及从键盘或鼠标读取事件。GLUT库简

7、化Windows窗口操作,它提供了非常简单的方法来实现窗口操作,int main(int argc, 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是

8、Win API与C+的结合。它具有完善的消息处理机制,3 高级图形库,OpenGL提供的功能是比较基本和底层,直接利用OpenGL来构建复杂的3D图像是很困难的。在OpenGL的基础上还有Open Inventor、Cosmo3D、Optimizer等多种高级图形库,来适应不同应用。Open Inventor 广泛地应用于机械工程设计与仿真、医学和科学图像、地理科学、石油钻探、虚拟现实、科学数据可视化等领域,GLUT和Open Inventor对比,GLUT,Open Inventor,汇报完毕,请批评指正,宝山壁画,宝山壁画是引人注目的昂贵文物。此壁画发现于阿鲁科尔沁旗东沙布乡境内。1994年列为“全国十大考古新发现”之一。宝山壁画中最引人注目的是杨贵妃教鹦鹉图。该画高0.7米、宽2.3米,用于笔重彩绘制,最突出的表现了 晚唐风格。唐代擅长绘贵妇仕女的大师周昉绘制了杨贵妃教鹦鹉图,不仅享誉中原,而且还影响全国各地。发现于阿

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论