计算机图形学软硬件简介与图元分析
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
对齐 (左对齐、中心对齐、右对齐) 字色 ...
反走样
走样概念:由于低频取样造成的信息失真 反走样:校正不充分取样的过程
感谢聆听与指导
THANK YOU
b = y1-m*x1 y= m* x
x = y/m
Part 05
图元的属性
图元的属性
本章重点讲解内容: 线属性 曲线属性 颜色和亮度等级 区域填充属性 字符属性 反走样
属性参数
定义:任何影响图元显示方法的参数 属性选择设计
➢ 为每个输出图元功能扩充参数表 ➢ 系统当前属性值表
规范化坐标系(NC):指独立于具体物理设备的一种坐标系,它 具有显示空间在x和y上都是0到1,主要用于在计算机内部处理 图形,对一个具体物理设备,NC与DC仅仅是相差一个比例因子, NC可被看成是一个抽象的图形设备
坐标表示
从建模坐标到设备坐标的变换序列为:
(xmc,ymc)-(xwc,ywc)-(xnc,ync)-(xdc,ydc) 为适应比例和纵横比的差别,NC变换到输
坐标表示
笛卡儿坐标:直角坐标系和斜坐标系的统称 建模坐标系/局部坐标系/主坐标系:描述单个
物体的形状、大小、尺寸所采用的坐标系 世界坐标系(WC):把物体放入场景的适当位
置。
坐标表示
设备坐标系(DC)或屏幕坐标系:该场景的世界坐标系描述转换 为一个或多个输出设备参照系来显示。该坐标系依赖于具体的 显示输出设备
25
• 初始化( glutInit ) • 创建窗口( glutCreateWindow) • 设定窗口的显示模式( glutInitDisplayMode) • 指定窗口的位置和大小
( glutInitWindowPosition和glutInitWindowSize ) • 指定窗口的显示内容函数( glutDisplayFunc) • 运行框架( glutMainLoop)
17
14
曲线属性
画笔和笔刷
Eg. 矩形笔 3x3
颜色和亮度属性
颜色属性
➢ 直接存储 ➢ 颜色查找表
亮度属性
颜色和亮度属性
颜色属性
➢ 直接存储 ➢ 颜色查找表
亮度属性
区域填充属性
空
实
图案
字符属性
字体:宋体 仿宋体 楷体 黑体 隶书
字高:宋体 宋体 宋体 宋体 宋体
字宽
字倾斜角:倾斜 倾斜
只有当缓冲区被清空时,缓冲区中的命令和数据都将 传递给流水线的下一个阶段。
调用OpenGL API函数
OpenGL命 令缓冲区
变换、光照
光栅化
帧缓存地址、
像素点值
帧缓存
23
• OpenGL核心库:gl • OpenGL实用程序库: glu • OpenGL编程辅助库:aux • OpenGL实用程序工具包(OpenGL utility
属性是输出图元的特性。属性描述一个特定图元 是怎样显示的,包括强度和彩色设定,线型、文 本类型,以及填充模式
可以使用几何变换(如平移、比例、旋转、投影 等)改变物体的位置、大小或方向
软件标准
标准化图形软件的最初目标是可移植性 国际和许多国家的标准化组织努力合作开发计算机图形 标准。
➢图形核心系统GKS(Graphical Kernel System)。GKS是针对二 维图形软件标准,随后经过扩充,出现三维图形的GKS-3D。 ➢PHIGS(Programmer’s Hierarchical Interactive Graphics System)是出现的第二个图形标准,是对GKS的扩充
许多库支持这些扩展部分。
OpenGL流水线架构
顶点数据
顶点操作
光栅化
片元操作
帧缓存
像素数据
像素操作
纹理内存
相关概念——屏幕坐标系
(0,0)
Y ymax
y
X
xmax x
(X,Y)
y ymax
Y
(0,0)
图2.36 不同显示器的坐标
(X,Y) X xmax x
21
OpenGL的绘制流程——工作方式
软件标准
标准图形函数定义为独立于任何程序设计语言的一组规范。语言 联编(Language binding)则是为特定的高级程序设计语言而给出该 语言去访问各种标准图形函数的语法
CGI(Computer Graphics Interface,计算机图形接口)标准规定对 输出设备图形接口
CGM(Computer Graphics Metafile计算机图形元文件)标准规定图 形存档和传输
点的绘制
➢ glVertex{2,3,4}{sifd}(TYPE coords) ❖参数说明: coords用一个数组或用奇次坐标(x,y,z,w) 赋顶点坐标。
❖四维奇次坐标(x,y,z,w)相当于三次坐标( x/w,y/w, z/w)。
➢ 例如:glBegin(GL_POINTS);
glVertex2i(1,2); glVertex3d(1.23,2.34,3.63); glVertex4f(1.3,2.0,-4.2,1.0); glVertex3sv(array); glEnd( );
线属性
线型:实线、虚线、点线等 线宽: 线色:
线属性
线型:实线、虚线、点线等 线宽: 线色:
曲线属性
像素掩码 eg.11100 根据曲线斜率设置像素掩码的实心段和
空白段像素数目
曲线属性
水平(|m|>1)或垂直 (|m|<1)像素段
曲线属性
填充平行曲线路径之间的区域
Eg. R=16
点的大小
➢ 点的大小默认值是一个像素,可以用函数修改这个值,以设定 点的大小。
➢ void glPointsize(Glfloat size) ❖参数size:指定画点时以像素为单位的近似直径。 ❖注意:系统只支持一定大Fra Baidu bibliotek范围内的点的大小。
图形显示布局及坐标系
图(a):整个屏幕用于绘制图形; 图(b):时下流行的“基于窗口”的系统(如
图形应用数据结构
图形软件
图形应用软件
图
形
图形支撑软件
系
统
图形硬件
图形计算机平台
图形设备
图2.2 计算机图形系统的结构
图形硬件系统
➢显示设备 ➢图形工作站和观察系统 ➢输入设备 ➢硬拷贝设备 ➢网络图形系统
图形软件系统
➢图形软件 ➢OpenGL
Part 02
计算机图形学硬件
1、输入设备:
键盘 鼠标设备 数据手套 触摸板
toolkit,GLUT):glut • Windows专用库:wgl
24
• 利用OpenGL实现图形绘制,首先要引入OpenGL 核心库以及其他需要使用的库的头文件。
• GLUT保证了gl.h和glu.h被正确包含。
#include <gl/glut.h> #include <windows.h>
OpenGL图形开发
OpenGL绘制管线 OpenGL库与编程环境 基本图元绘制 状态机管理 例子学习
OpenGL规范
OpenGL库是在硬件支持标准基础上,提供的一个硬件图 形加速软件库,让应用程序能够高效地访问硬件的功能。
难以用硬件实现的高级特性(如高级图元类型的支持、场 景图形和实用函数等)不是OpenGL规范的一部分。
按键盒 跟踪球 数字化仪 光笔
旋钮 空间球操纵杆 图像扫描仪 语音系统
2、硬拷贝设备
3、图形网络:图形服务器,客户
4、因特网上的图形
Part 03
计算机图形学软件
3.1坐标表示 3.2图形功能 3.3软件标准 3.4其他软件包 3.5OpenGL简介
坐标表示
笛卡尔坐标 建模坐标 世界坐标 规范化设备坐标 设备坐标或屏幕坐标
❖如:
实质上是定义二维正视投影矩阵
直线的绘制
光栅扫描系统 ➢ 屏幕位置以整数值表示; ➢ 以线路径上的离散点来显示线段 ➢ 显示的线段具有阶梯效果
直线的绘制
计算机绘制的直线是由一系列与该直线最近的像素绘制而成 理论直线与计算机绘制的直线之间总有一定的偏差 只能尽量减少偏差 偏差取决于屏幕光栅(分辨率)和光点的运动方向
Windows窗口系统); 图(c):OpenGL“基于窗口”的绘图系统;
点的绘制-示例1
OpenGL基本图元的绘制
第六章 - 38
点的绘制-示例1
建立坐标系统
➢ gluOrtho2D( GLdouble left, GLdouble right, GLdouble
bottom, GLdouble top);
26
• 指定窗口背景色( glClearColor) • 颜色管理,使用RGB颜色模型。一种颜色用红、
绿、蓝三种颜色成分混合而成,每种颜色成分 使用0.0到1.0之间的任意有效浮点数来表示颜 色值。
27
Part 04
输出图元
绝对坐标与相对坐标
目前为止,我们讨论的均为绝对坐标 相对坐标是指相对于前一坐标点的坐标。 相对坐标表示法: 1.相对笛卡尔坐标:@dx,dy相对前一点的坐标增量; 2.@距离<角度 注意:相对坐标是对用户坐标系而言的,是相对前一点的; 绝对坐标是相对世界坐标系原点的
• 一个完整的窗口系统的
应用软件
OpenGL图形处理系统的结 构为:最底层为图形硬件,
OpenGL
第二层为操作系统,第三 层为窗口系统,第四层为
窗口系统
OpenGL,最上面的层为应 用软件。
操作系统
图形硬件 22
OpenGL的绘制流程——流水线
• OpenGL命令将被放在一个命令缓冲区中,这样命令缓 冲区中包含了大量的命令、顶点数据和纹理数据。
画线算法
问题 画线算法
➢ DDA算法 ➢ Bresenham算法
画线算法
问题 已知直线的两个端点P1(x1, y1),P2(x2, y2) 求直线的中间各点
画线算法
已知:P1(x1,y1),P2(x2,y2) 直线的笛卡尔斜率截距方程
y = m*x + b
m = (y2-y1)/(x2-x1)
出设备(DC)的正方形区域,以保持适当的 比例
坐标表示
观察与投影坐标系
建建模模坐坐标标系系 世界坐标系
规规范范化化设设备备 坐坐标标系系
视频监视器 绘图仪
其他输出设备
设备坐标系
图形功能
图形的基本构造块称为图形输出图元(graphics output primitives):包括字符串和几何成分, 如点、直线、曲线、填充区域(多边形、圆等)以 及彩色阵列定义的形状。
计算机图形学
目录 Contents
1 计算机图形学综述 03
2 计算机图形学硬件 10
3 计算机图形学软件 17
4 输出图元 24
5 图元的属性 31
Part 01
计算机图形学概述
计算机图形系统的功能
图形输出设备
输出
显示器
交互
计算 输入
存贮
数据库
图形输入设备
图2.1 计算机图形系统的5个功能
计算机图形系统的结构
输出图元
点绘制 画线算法 圆生成算法 椭圆生成算法 区域填充 字符生成
OpenGL提供的所有图元(点、线、多边形)的绘制, 必须通过glBegin()和glEnd()函数的配对来完成。
➢ void glBegin(Glenum mode) ❖功能:描述一个几何图形顶点序列的开始。 ❖参数说明:mode指图元的类型。
➢ void glEnd(void) ❖功能:标记顶点表的结束。
例如:glBegin(GL_LINES); glVertex2f(50.0,50.0); glVertex2f(100.0,100.0); glEnd( );
几何图元类型和含义
几何图元实体
点的绘制
屏幕坐标 OpenGL中指定二维、三维世界坐标系统 OpenGL画点函数
反走样
走样概念:由于低频取样造成的信息失真 反走样:校正不充分取样的过程
感谢聆听与指导
THANK YOU
b = y1-m*x1 y= m* x
x = y/m
Part 05
图元的属性
图元的属性
本章重点讲解内容: 线属性 曲线属性 颜色和亮度等级 区域填充属性 字符属性 反走样
属性参数
定义:任何影响图元显示方法的参数 属性选择设计
➢ 为每个输出图元功能扩充参数表 ➢ 系统当前属性值表
规范化坐标系(NC):指独立于具体物理设备的一种坐标系,它 具有显示空间在x和y上都是0到1,主要用于在计算机内部处理 图形,对一个具体物理设备,NC与DC仅仅是相差一个比例因子, NC可被看成是一个抽象的图形设备
坐标表示
从建模坐标到设备坐标的变换序列为:
(xmc,ymc)-(xwc,ywc)-(xnc,ync)-(xdc,ydc) 为适应比例和纵横比的差别,NC变换到输
坐标表示
笛卡儿坐标:直角坐标系和斜坐标系的统称 建模坐标系/局部坐标系/主坐标系:描述单个
物体的形状、大小、尺寸所采用的坐标系 世界坐标系(WC):把物体放入场景的适当位
置。
坐标表示
设备坐标系(DC)或屏幕坐标系:该场景的世界坐标系描述转换 为一个或多个输出设备参照系来显示。该坐标系依赖于具体的 显示输出设备
25
• 初始化( glutInit ) • 创建窗口( glutCreateWindow) • 设定窗口的显示模式( glutInitDisplayMode) • 指定窗口的位置和大小
( glutInitWindowPosition和glutInitWindowSize ) • 指定窗口的显示内容函数( glutDisplayFunc) • 运行框架( glutMainLoop)
17
14
曲线属性
画笔和笔刷
Eg. 矩形笔 3x3
颜色和亮度属性
颜色属性
➢ 直接存储 ➢ 颜色查找表
亮度属性
颜色和亮度属性
颜色属性
➢ 直接存储 ➢ 颜色查找表
亮度属性
区域填充属性
空
实
图案
字符属性
字体:宋体 仿宋体 楷体 黑体 隶书
字高:宋体 宋体 宋体 宋体 宋体
字宽
字倾斜角:倾斜 倾斜
只有当缓冲区被清空时,缓冲区中的命令和数据都将 传递给流水线的下一个阶段。
调用OpenGL API函数
OpenGL命 令缓冲区
变换、光照
光栅化
帧缓存地址、
像素点值
帧缓存
23
• OpenGL核心库:gl • OpenGL实用程序库: glu • OpenGL编程辅助库:aux • OpenGL实用程序工具包(OpenGL utility
属性是输出图元的特性。属性描述一个特定图元 是怎样显示的,包括强度和彩色设定,线型、文 本类型,以及填充模式
可以使用几何变换(如平移、比例、旋转、投影 等)改变物体的位置、大小或方向
软件标准
标准化图形软件的最初目标是可移植性 国际和许多国家的标准化组织努力合作开发计算机图形 标准。
➢图形核心系统GKS(Graphical Kernel System)。GKS是针对二 维图形软件标准,随后经过扩充,出现三维图形的GKS-3D。 ➢PHIGS(Programmer’s Hierarchical Interactive Graphics System)是出现的第二个图形标准,是对GKS的扩充
许多库支持这些扩展部分。
OpenGL流水线架构
顶点数据
顶点操作
光栅化
片元操作
帧缓存
像素数据
像素操作
纹理内存
相关概念——屏幕坐标系
(0,0)
Y ymax
y
X
xmax x
(X,Y)
y ymax
Y
(0,0)
图2.36 不同显示器的坐标
(X,Y) X xmax x
21
OpenGL的绘制流程——工作方式
软件标准
标准图形函数定义为独立于任何程序设计语言的一组规范。语言 联编(Language binding)则是为特定的高级程序设计语言而给出该 语言去访问各种标准图形函数的语法
CGI(Computer Graphics Interface,计算机图形接口)标准规定对 输出设备图形接口
CGM(Computer Graphics Metafile计算机图形元文件)标准规定图 形存档和传输
点的绘制
➢ glVertex{2,3,4}{sifd}(TYPE coords) ❖参数说明: coords用一个数组或用奇次坐标(x,y,z,w) 赋顶点坐标。
❖四维奇次坐标(x,y,z,w)相当于三次坐标( x/w,y/w, z/w)。
➢ 例如:glBegin(GL_POINTS);
glVertex2i(1,2); glVertex3d(1.23,2.34,3.63); glVertex4f(1.3,2.0,-4.2,1.0); glVertex3sv(array); glEnd( );
线属性
线型:实线、虚线、点线等 线宽: 线色:
线属性
线型:实线、虚线、点线等 线宽: 线色:
曲线属性
像素掩码 eg.11100 根据曲线斜率设置像素掩码的实心段和
空白段像素数目
曲线属性
水平(|m|>1)或垂直 (|m|<1)像素段
曲线属性
填充平行曲线路径之间的区域
Eg. R=16
点的大小
➢ 点的大小默认值是一个像素,可以用函数修改这个值,以设定 点的大小。
➢ void glPointsize(Glfloat size) ❖参数size:指定画点时以像素为单位的近似直径。 ❖注意:系统只支持一定大Fra Baidu bibliotek范围内的点的大小。
图形显示布局及坐标系
图(a):整个屏幕用于绘制图形; 图(b):时下流行的“基于窗口”的系统(如
图形应用数据结构
图形软件
图形应用软件
图
形
图形支撑软件
系
统
图形硬件
图形计算机平台
图形设备
图2.2 计算机图形系统的结构
图形硬件系统
➢显示设备 ➢图形工作站和观察系统 ➢输入设备 ➢硬拷贝设备 ➢网络图形系统
图形软件系统
➢图形软件 ➢OpenGL
Part 02
计算机图形学硬件
1、输入设备:
键盘 鼠标设备 数据手套 触摸板
toolkit,GLUT):glut • Windows专用库:wgl
24
• 利用OpenGL实现图形绘制,首先要引入OpenGL 核心库以及其他需要使用的库的头文件。
• GLUT保证了gl.h和glu.h被正确包含。
#include <gl/glut.h> #include <windows.h>
OpenGL图形开发
OpenGL绘制管线 OpenGL库与编程环境 基本图元绘制 状态机管理 例子学习
OpenGL规范
OpenGL库是在硬件支持标准基础上,提供的一个硬件图 形加速软件库,让应用程序能够高效地访问硬件的功能。
难以用硬件实现的高级特性(如高级图元类型的支持、场 景图形和实用函数等)不是OpenGL规范的一部分。
按键盒 跟踪球 数字化仪 光笔
旋钮 空间球操纵杆 图像扫描仪 语音系统
2、硬拷贝设备
3、图形网络:图形服务器,客户
4、因特网上的图形
Part 03
计算机图形学软件
3.1坐标表示 3.2图形功能 3.3软件标准 3.4其他软件包 3.5OpenGL简介
坐标表示
笛卡尔坐标 建模坐标 世界坐标 规范化设备坐标 设备坐标或屏幕坐标
❖如:
实质上是定义二维正视投影矩阵
直线的绘制
光栅扫描系统 ➢ 屏幕位置以整数值表示; ➢ 以线路径上的离散点来显示线段 ➢ 显示的线段具有阶梯效果
直线的绘制
计算机绘制的直线是由一系列与该直线最近的像素绘制而成 理论直线与计算机绘制的直线之间总有一定的偏差 只能尽量减少偏差 偏差取决于屏幕光栅(分辨率)和光点的运动方向
Windows窗口系统); 图(c):OpenGL“基于窗口”的绘图系统;
点的绘制-示例1
OpenGL基本图元的绘制
第六章 - 38
点的绘制-示例1
建立坐标系统
➢ gluOrtho2D( GLdouble left, GLdouble right, GLdouble
bottom, GLdouble top);
26
• 指定窗口背景色( glClearColor) • 颜色管理,使用RGB颜色模型。一种颜色用红、
绿、蓝三种颜色成分混合而成,每种颜色成分 使用0.0到1.0之间的任意有效浮点数来表示颜 色值。
27
Part 04
输出图元
绝对坐标与相对坐标
目前为止,我们讨论的均为绝对坐标 相对坐标是指相对于前一坐标点的坐标。 相对坐标表示法: 1.相对笛卡尔坐标:@dx,dy相对前一点的坐标增量; 2.@距离<角度 注意:相对坐标是对用户坐标系而言的,是相对前一点的; 绝对坐标是相对世界坐标系原点的
• 一个完整的窗口系统的
应用软件
OpenGL图形处理系统的结 构为:最底层为图形硬件,
OpenGL
第二层为操作系统,第三 层为窗口系统,第四层为
窗口系统
OpenGL,最上面的层为应 用软件。
操作系统
图形硬件 22
OpenGL的绘制流程——流水线
• OpenGL命令将被放在一个命令缓冲区中,这样命令缓 冲区中包含了大量的命令、顶点数据和纹理数据。
画线算法
问题 画线算法
➢ DDA算法 ➢ Bresenham算法
画线算法
问题 已知直线的两个端点P1(x1, y1),P2(x2, y2) 求直线的中间各点
画线算法
已知:P1(x1,y1),P2(x2,y2) 直线的笛卡尔斜率截距方程
y = m*x + b
m = (y2-y1)/(x2-x1)
出设备(DC)的正方形区域,以保持适当的 比例
坐标表示
观察与投影坐标系
建建模模坐坐标标系系 世界坐标系
规规范范化化设设备备 坐坐标标系系
视频监视器 绘图仪
其他输出设备
设备坐标系
图形功能
图形的基本构造块称为图形输出图元(graphics output primitives):包括字符串和几何成分, 如点、直线、曲线、填充区域(多边形、圆等)以 及彩色阵列定义的形状。
计算机图形学
目录 Contents
1 计算机图形学综述 03
2 计算机图形学硬件 10
3 计算机图形学软件 17
4 输出图元 24
5 图元的属性 31
Part 01
计算机图形学概述
计算机图形系统的功能
图形输出设备
输出
显示器
交互
计算 输入
存贮
数据库
图形输入设备
图2.1 计算机图形系统的5个功能
计算机图形系统的结构
输出图元
点绘制 画线算法 圆生成算法 椭圆生成算法 区域填充 字符生成
OpenGL提供的所有图元(点、线、多边形)的绘制, 必须通过glBegin()和glEnd()函数的配对来完成。
➢ void glBegin(Glenum mode) ❖功能:描述一个几何图形顶点序列的开始。 ❖参数说明:mode指图元的类型。
➢ void glEnd(void) ❖功能:标记顶点表的结束。
例如:glBegin(GL_LINES); glVertex2f(50.0,50.0); glVertex2f(100.0,100.0); glEnd( );
几何图元类型和含义
几何图元实体
点的绘制
屏幕坐标 OpenGL中指定二维、三维世界坐标系统 OpenGL画点函数