1 / 19

复习题

复习题. 1. Siggraph 是() a. 图形学的杂志 b. 图形学的组织及其会议 c. 图形学的标准 d. 图形学的某个算法 2. 列举三个以上图形学的应用领域 3. 计算机图形学的三大主题是 、 和 。 4. 分辨率为 1024×1024 的显示器需要多少字节位平面数为 24 的帧缓存? A. 512KB ; B. 1MB ; C. 2MB ; D. 3MB ;. 第 0 章 导论. Windows 环境下的图形生成: OpenGL.

pabla
Download Presentation

复习题

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 复习题 1. Siggraph是() a. 图形学的杂志 b. 图形学的组织及其会议c. 图形学的标准 d. 图形学的某个算法 2. 列举三个以上图形学的应用领域 3. 计算机图形学的三大主题是 、 和 。 4.分辨率为 1024×1024 的显示器需要多少字节位平面数为 24 的帧缓存?A. 512KB; B. 1MB; C. 2MB; D. 3MB ;

  2. 第0章 导论

  3. Windows环境下的图形生成:OpenGL • OpenGL是SGI公司开发的一个跨平台的开放式图形编程工具,用户可以很方便的利用它开发出有多种特殊视觉效果的三维图形 • 作为图形硬件的软件接口,OpenGL集成了所有曲面造型、图形变换、光照、材质、纹理、融合、反走样等复杂的计算机图形学算法,将用户从具体的硬件和操作系统中解放了出来 • 现在 OpenGL 已经成为最主要的二、三维交互式图形应用程序开发环境

  4. Windows环境下的图形生成:OpenGL • Microsoft把OpenGL集成到Windows中 • OpenGL本身是一个底层库,但在编程实践中还需要一些能简化编程任务、易于在窗口系统上执行的高层库 • Windows平台所支持的OpenGL库函数主要有五类: 核心函数、实用库函数、 辅助库函数、 Windows专用函数、Win32 API函数

  5. Windows环境下的图形生成:OpenGL • OpenGL核心函数 • 核心函数以 gl 开头,主要实现创建二维和三维几何形体、设置视点、几何变换、设置颜色及材质、灯光、纹理映射、反走样、雾化场景、位图和文字处理等最最基本的功能。独立于工作平台。 • OpenGL实用库函数 • 实用库函数以 glu 开头,是基于核心函数而比其更高一层的函数,包括纹理映射、坐标变换、多边形分化、绘制一些如椭球、圆柱、茶壶等简单多边形实体等。独立于工作平台。

  6. Windows环境下的图形生成:OpenGL • 辅助库函数 • 辅助库函数以 aux 开头,这些函数本来是用于初学者做简单的练习之用。由于简化,支持平台较少,不适合产品开发 • windows专用函数 • 以 wgl 开头,用于连接Windows窗口系统和OpenGL。能够进行渲染着色,在窗口内绘制位图字体以及把文本放在窗口的某一位置等。用于WindowsNT环境下。 • Win32 API函数 • 用于处理象素存储格式和双缓冲区。只能用于Win32系统

  7. VS2008(VC) 中使用OpenGL • 第一步,选择一个编译环境; • 第二步,安装GLUT工具包; • 1、将下载的压缩包解开,将得到5个文件2、把解压得到的glut.h放到VS2008安装目录下面的“VC\include\glut”文件夹。3、把解压得到的glut.lib和glut32.lib放到静态函数库所在文件夹,VS 安装目录下面的“VC\lib”文件夹)。4、把解压得到的glut.dll和glut32.dll放到操作系统目录下面的system32文件夹内。(典型的位置为:C:\Windows\System32) • 第三步,建立一个OpenGL工程。以VisualStudio2008为例。选择File->New->Project(VC),然后选择Win32 Console Application,选择一个名字,然后按OK。在谈出的对话框左边点Application Settings,找到Empty project并勾上,选择Finish。然后向该工程添加一个代码文件,取名为“xyz.c”,注意用.c来作为文件结尾。 以VC6.0为例,使用Microsoft Visual Studio\Common\MsDev98\bin\MSDev.exe 打开 .c 文件,编译\自动创建工程\运行。

  8. 局部坐标 模型变换 世界坐标 取景变换 视点坐标 投影变换 投影坐标 设备变换 屏幕坐标 三维变换流程图 三维变换的流程图

  9. 三维变换的基本概念 • 场景造型 • 坐标系:场景坐标系=世界坐标系+局部坐标系 • 变换:模型变换 • 放置虚拟照相机 • 坐标系:视点坐标系(虚拟照相机的位置、朝向以及向上的方向) • 变换:取景变换 (在视域四棱锥进行裁剪和背面剔除) • 二维显示: • 坐标系:投影坐标系和屏幕坐标系 • 变换:投影变换、二维变换

  10. 三维变换中的各种坐标系

  11. 场景坐标系和模型变换 • 几何场景建立于世界坐标系中 • 场景中的具体物体与局部坐标系相联系 • 局部坐标系可以简化物体的定义 • 物体建立=标准体素+变换 • 模型变换:物体从局部坐标系到世界坐标系的变换,平移、放缩、旋转等

  12. 三维变换中的各种坐标系

  13. 视点坐标系和取景变换 • 视点坐标系 • 视点坐标系定义于世界坐标系中; • 其过程类似于拍照片: • 照相机的位置 • 照相机镜头的朝向:视线方向 • UP方向 • 由世界坐标系到视点坐标系的取景变换(在视域四棱锥进行裁剪和背面剔除)

  14. 视点坐标系的交互建立 • 坐标原点C=(Cx,Cy,Cz):相机的位置 • 单位向量N=(Nx,Ny,Nz):镜头的朝向 • 与N不平行的向量UP: 得到两个向量 U=(Ux,Uy,Uz) 和V=(Vx,Vy,Vz),然后单位化。 • 四个矢量C、U、V、N组成了视点坐标系

  15. 三维变换中的各种坐标系

  16. 屏幕坐标系和设备变换 • 在投影平面上,有一个矩形区域称为视窗,见上图坐标系中vovxvy的矩形和“视域四棱锥” 图中的矩形 • 设备变换 • 二维变换:将定义在视窗中的投影结果转换到以像素为单位的屏幕坐标系 • 扫描转换:将连续的几何物体转换为离散的光栅表示

  17. 三维几何和几何流水线 模型变换(旋转、平移、缩放) 视图变换 (眼睛的位置、观察的目标点、视图向上方向) 裁剪 投影(正交、透视) 窗口到视口映射

  18. 观察过程 • projection(viewing(modeling(geometry)))) • (projection * viewing * modeling) (geometry) • 在定义几何模型之前,先定义投影操作,然后是视图变换,最后是模型变换。 • OpenGL将模型变换与视图变换结合成一个变换(modelview transformation)

  19. 一个简单的OpenGL程序 Figure0.7.c • 使用GLUT工具包 • GLUT(OpenGL Utility Toolkit),用于隐藏不同窗口系统API的复杂性,是一个学习OpenGL编程的一个良好开端 • main()函数结构int main(int argc, char** argv) { glutInit(&argc,argv); glutInitDisplayMode (GLUT_DOUBLE | GLUT_RGB | GLUT_DEPTH); glutInitWindowSize(700,700); glutInitWindowPosition(0,0); glutCreateWindow("Temperature in bar"); glutDisplayFunc(display); glutReshapeFunc(reshape); glutIdleFunc(animate); myinit(); glutMainLoop(); /* enter event loop */ } 模型视图变换 回调(callback)函数的注册p163 新窗口下投影

More Related