计算机图形学_第二章_第1页
计算机图形学_第二章_第2页
计算机图形学_第二章_第3页
计算机图形学_第二章_第4页
计算机图形学_第二章_第5页
已阅读5页,还剩68页未读 继续免费阅读

下载本文档

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

文档简介

1、第一章、计算机图形学综述回顾v计算机图形学概念v计算机图形学简史v计算机图形学的应用v计算机图形系统的功能与结构v图形显示设备回顾v概念:Computer graphics is the art or science of producing graphical image with the aid of computer.v研究对象:图形v试图从非图像形式的图形数据描述来生成(逼真的)图像。 回顾v参数法: 以计算机中所记录图形的形状参形状参数数与属性参数属性参数来表示图形的一种方法。 形状参数(几何要素):方程或分析表达式的系数,线段的端点坐标等 属性参数(非几何要素):颜色、材质、线型等

2、图形(图形(Graphics)直线A的端点为(x1, y1), (x2, y2),红色,实线,宽度2个象素回顾v计算机图形系统的功能与结构计算输出输入图形输出设备存储数据库图形输入设备交互显示器回顾v光栅扫描显示器的特点 可把光栅图像显示器看做许多离散点组成的矩阵,每个点都可以发光。除非特殊情况,一般在矩阵中是不能直接从一个点到另一个点画一条笔直的直线,但可以用一系列的点来近似的表示这条直线。回顾v显然,只有画水平、垂直或正方形的对角线时,才能用点或像素画出一条真正的直线,其他情况下的直线均呈阶梯状,这种现象称为走样或锯齿(如下图所示)。采用反走样技术可适当减轻阶梯效果。CABDAB回顾v双缓

3、存(双缓冲):一个缓存用来刷新的同时,另一个写入数据信息,而后这两个缓存可互换角色。这种方式称为双缓存,它可以使得显示的动画更流畅。回顾v屏幕坐标系。第二章、图形系统概述v3D视觉是如何产生的v电脑屏幕上的3D是如何产生的v坐标系介绍v三维观察流水线vOpenGL图形库简介vOpenGL渲染管线简介计算机图形软件系统v3D概念 3D是指被描述或显示的对象具有三个维度:宽度、高度和深度。 人有两只眼,两只眼有一定距离,这就造成物体的影象在两眼中有一些差异,大脑会根据这种差异感觉到立体的景象。计算机图形软件系统 计算机图形软件系统v三维立体画的原理计算机图形软件系统 计算机图形软件系统 计算机图形

4、软件系统 计算机图形软件系统 计算机图形软件系统 计算机图形软件系统v计算机屏幕上的3D 2D+透视=3D着色v颜色+明暗。纹理贴图v把存储在内存里的位图包裹到3D渲染物体的表面。纹理贴图给物体提供了丰富的细节,用简单的方式模拟出了复杂的外观。 混合(Blending)v将不同的颜色混在一起。 计算机图形软件系统v坐标表示 笛卡尔坐标系 模型坐标系(物体坐标系) 世界坐标系 观察坐标系(摄像坐标系) 规范化坐标系 设备坐标或屏幕坐标计算机图形软件系统v笛卡尔坐标系在数学里,笛卡儿坐标系笛卡儿坐标系(Cartesian坐标系),也称直角坐标系直角坐标系,是一种正交坐标系。v左手坐标系与右手坐标系

5、任何两个2D笛卡尔坐标都可以通过平移和旋转使两个坐标系重合,但是3D笛卡尔坐标就不一定了,实际上存在两种完全不同的3D笛卡尔坐标系,左手系和右手系。计算机图形软件系统v 左手坐标系与右手坐标系计算机图形软件系统v模型坐标系(物体坐标系) 和特定物体相关联的坐标系 每个物体都有它们独立的坐标系。当物体移动或者改变方向时,和该物体相关联的坐标系就随之移动或者改变方向。 “前”“后”“左”“右”只有在物体坐标系中才有意义 物体坐标系也能像指定方向一样指定位置3D游戏中常用的坐标系v世界坐标系(全局坐标系宇宙坐标系)建立了描述其他坐标系所需要的参考框架。从非技术意义上讲,它是我们关心的的最大坐标系,所

6、以世界坐标系不必是整个世界世界坐标的典型问题:每个物体的位置和方向摄像机的位置和方向世界中每一点的地形是什么物体从那里来到那里去。3D游戏中常用的坐标系v摄像机坐标系是和观察者密切相关的坐标系。该坐标系定义在摄像机的屏幕可视区域。摄像坐标系的典型问题:摄像坐标系的典型问题:3D空间中给定点在摄像机前方吗?3D空间中的给定点在视锥区域内还是在视锥区域外?物体是完全在视锥内还是部分在视锥内?两个物体,谁在前面?计算机图形软件系统v设备坐标(DC)或屏幕坐标:显示设备的坐标系称为设备坐标,该坐标系依赖于具体的显示设备。v规范化坐标系:指独立于具体物理设备的一种坐标系,它的坐标范围在x和y上的范围都是

7、0到1,主要用于在计算机内部处理图形,对一个具体物理设备,规范化坐标和设备坐标仅仅相差一个比例因子,规范化坐标可以看成是一个抽象的图形设备。三维观察流水线拍照流程拍照流程在摄影棚中布置场景确定照相机位置调焦拍照冲洗照片计算机图形软件系统v观察流水线模型坐标系绘制流水线v 图形子系统的图形绘制功能常常采用流水线结构绘制。v 绘制流水线的基本结构从概念上包括三个阶段 应用程序阶段 几何阶段 光栅阶段应用程序阶段几何阶段光栅阶段OpenGL简介vOpenGL(Open Graphics Library)是一个跨编程语言、跨平台的程序接口它用于生成二维、三维图像。v其前身是SGI公司为其图形工作站开发

8、的IRIS GL。为了能够更加容易的移植到不同的硬件平台和操作系统,SGI开发了OpenGLvOpenGL已成为开放的国际图形标准。OpenGL简介vSGI( Silicon Graphics 、硅图、硅图):侏罗纪公园 、玩具总动员、泰坦尼克号vSGI图形工作站、IRIS操作系统、IRIS GL。OpenGL简介vOpenGL并非是一种语言,而是一种图形开发API与微软的Directx类似。v利用这些API能够方便的描述二维和三维几何物体,并控制这些物体按某种方式绘制到显示缓存中。vAPI集提供了物体描述、平移、旋转、缩放、关照、纹理、材质、像素、位图、文字、交互以及提高显示性能等方面的功能

9、,基本涵盖了开发二维、三维图形程序所需的各个方面。OpenGL与DirectX OpenGL的实现方式v软件实现 Mesa 3DOpenGL的实现方式v硬件实现OpenGL相关库vOpenGL核心库:gl opengl32.lib opengl32.dll gl.hvOpenGL实用程序库:gluglu32.lib glu32.dll glu.hvOpenGL编程辅助库:auxglaux.lib glaux.dll glaux.hvOpenGL实用程序工具包:glutglut32.lib glut32.dll glut.hOpenGL命名规则v OpenGL函数都遵循一个命名约定,采用如下格式

10、:例如函数glColor3f(),gl表示这个函数来自库gl.h,根命令是Color表示该函数用于颜色设定,3f表示这个函数采用三个浮点数为参数。v 符号常量的表示:GL开头,下划线“_”分开,大写。例如:GL_RGB,GL_POLYGONOpenGL数据类型 OpenGL安装1、将OpenGL文件夹拷到某一路径下2、打开VS2012开发环境, 新建项目,或打开已有项目OpenGL安装3、打开属性对话框,选择VC+目录OpenGL安装4、打开“包含目录”配置对话框,并加入你的OpenGL安装路径中“include”文件夹的路径。注意:如果是win8系统需要加入以下路径:C:Program Fi

11、les (x86)Microsoft SDKsWindowsv7.1AIncludeOpenGL安装5、打开“库目录”配置对话框,并加入你的OpenGL安装路径中“Lib”文件夹的路径。注意:如果是win8系统需要加入以下路径:C:Program Files (x86)Microsoft SDKsWindowsv7.1ALibOpenGL状态机v OpenGL是一种状态机模式v 状态机是一个抽象的模型,表示一组状态变量的集合。v 打开状态 glEnable(GLenum capability)v 关闭状态 glDisable(GLenum capability)OpenGL渲染管线 OpenG

12、L渲染管线v顶点准备(Vertex)v顶点着色(Vertex Shader)v细分曲面着色(Tessellation Shader)v几何着色(Geometry Shader)v图元装配(Primitive Setup)v裁剪(Clipping)v光栅化(Rasterization)v片段着色(Fragment Shader)v最终图像生成渲染的概念概念v渲染(Rendering) 渲染是指:计算机根据图形信息(顶点坐标、法向量、视点、纹理以及照明信息等)生成图像的过程。v预渲染(pre-rendering/ offline rendering) 预渲染的计算强度很大,需要大量的服务器运算完成

13、,通常被用于电影制作,对渲染速度没有限制。v实时渲染(real-time rendering/ online rendering) 常用于三维视频游戏,要求最少每秒渲染24帧图像顶点 顶点v顶点(Vertex) 构成三维模型的基本要素,简单来说,顶点就是空间中的一个点。顶点上通常会包含位置信息,也可以附加其它信息,如纹理坐标(如何映射纹理)、发向量(如何计算光照)、颜色等。顶点着色器 着色器(Shader)v什么是着色器?v什么是顶点着色器?v什么是顶点变换和投影变换?着色器(Shader)vShader(着色器)是用来实现图像渲染的替代固定渲染管线的可编辑程序。程序员将着色器应用于图形处理器

14、(GPU)的可编程流水线,来实现三维应用程序v着色器替代了传统的固定渲染管线,可以实现3D图形学计算中的相关计算,由于其可编辑性,可以实现各种各样的图像效果而不用受显卡的固定渲染管线限制。这极大的提高了图像的画质。顶点着色器(Vertex Shader)v顶点着色器运行于GPU上,会作用于每个顶点,其用途主要有两个: 对顶点进行坐标变换,例如将世界坐标系中的点变换到观察坐标系(模型视图变换)。 将三维空间中的点投影到二维空间,即投影变换。顶点着色器(Vertex Shader) 变换(Transformation)和投影(Projection)v变换矩阵 对顶点进行旋转平移等操作。v投影矩阵

15、投影意味着降低维度,在计算机图形学中,投影矩阵用于将3D 坐标转换成二维屏幕坐标。曲面细分着色器 细分曲面着色器(Tessellation Shader)v 光栅化图形渲染技术的核心是绘制大量三角形来组成3D模型,而Tessellation技术就是利用GPU硬件加速,将现有3D模型的三角形拆分得更细小、更细致,也就是大大增加三角形数量,使得渲染对象的表面和边缘更平滑、更精细。几何着色(Geometry Shader) 几何着色(Geometry Shader)v 几何着色器以完整的图元作为输入数据。例如,当我们绘制三角形列表时,输入到几何着色器的数据是构成三角形的三个点。(注意,这三个点是从顶

16、点着色器传递过来的。)几何着色器的主要优势是它可以创建或销毁几何体。例如,输入图元可以被扩展为一个或多个其他图元,或者几何着色器可以根据某些条件拒绝输出某些图元。这一点与顶点着色器有明显的不同:顶点着色器无法创建顶点,只要输入一个顶点,那么就必须输出一个顶点。几何着色器通常用于将一个点扩展为一个四边形,或者将一条线扩展为一个四边形。几何着色(Geometry Shader) 图元装配(Primitive Setup) 图元装配(Primitive Setup)v 前几个着色阶段都使用相关的信息操作顶点, 这些信息关于顶点如何被组织成几何图元,继而被送到OpenGL内部。图元装配阶段将顶点装配成

17、它们关联的几何图元,即根据顶点数据生成线段、三角形等基本图元。 裁剪(Clipping) 裁剪(Clipping)v 接着对装配好的图元进行裁剪(clip):保留完全在视锥体中的图元,丢弃完全不在视锥体中的图元,对一半在一半不在的图元进行裁剪;接着再对在视锥体中的图元进行剔除处理(cull):这个过程可编码来决定是剔除正面,背面还是全部剔除。 光栅化 ( Rasterization ) 光栅化 ( Rasterization ) 像素像素 VS 片段片段(Pixel vs. Fragment)v像素 像素是在屏幕上最终呈现的点,是一个二维的网格,有行和列的坐标(X,Y),每个格子中存放的是最终显示像素的RGB颜色信息。整个渲染管线的目的就是生成像素。像素像素 VS 片段片段(Pixel vs. Fragment)v片段 为了生成像素,光栅化器会对图元(三角形)进行光栅扫描,生成最接近图元的网格“片段”,片段同样包含位置信息

温馨提示

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

评论

0/150

提交评论