10_计算机图形学
来源:互联网 发布:山东临沂知历代书法家 编辑:程序博客网 时间:2024/06/05 14:06
1、计算机图形学愈来愈多的被用来指一个称之为3D图形学的特定领域;
2、处理平面二维图形和图像的操作有两个相关领域:一个是2D图形学,一个是图像处理
二者的区别是:2D图形学着重于把二维图形转化为像素模式,产生图像;而图像处理着重分析图像中的像素,进行模式识别,以达到增强或理解图像的目的。
简言之,就是2D图形学处理生成图像,而图像处理分析图像。
3、3D图形学:将三维图形转化为图像,过程是:建造三维场景的模型,然后模拟照相的过程,产生这些场景的图像;
使用3D图形创建图像要经历两个不同的步骤:
一是创建、编码、存储以及操作被拍摄出来的场景;
另一个是生成图像的过程;前者是创造性、艺术的过程;而后者则是以计算为主的过程。
4、创建3D图形的过程
(1)建模
与传统电影产业中的设计和构造一个场景类似,不同之处在于3D图形场景是用数据结构和算法构造的,所以构造出来的场景永远不存在;
(2)渲染
通过计算场景中的物体如何显示在由特定位置的相机拍摄的照片中,来生成场景的二维图像,即渲染;渲染的概念是运用解析几何,来计算场景中的物体到一个称为投影平面的面上会形成的投影,这种方式与相机将场景投影到胶卷上的方式类似,这种投影称为透视投影;在这种投影方式下,所有的目标都沿着一条称为投影线的直线向前延伸,这条直线是从一个投影中心或者视点的公共点延伸出来的;这与平行投影不同,顾名思义,平行投影线是平行的,透视投影产生的投影类似于人类眼睛所看到的,而平行投影产生的是物体“真正”的剖面。
用来定义最终图像边界的投影平面,其中受限的部分称为图像窗口。它对应于显示在大多数相机取景器上的矩形,指明潜在图像的边界;实际上,大多数相机的取景器允许用户看到相机投影平面上更大的区域,而不仅仅是图像窗口;
一旦投影到图像窗口的场景确定,就可以计算出最终图像上每个像素点的显示情况,这种逐个像素的计算过程可能会很复杂,因为他需要确定场景中的物体如何与光线融合。
(3)显示
当确定每个像素的显示方式后,结果被集中的表示成图像的位图,并存储在称为帧缓冲区的存储区中,这个缓冲区可能是主存中的一个区域,或当有专门处理图形应用的硬件时,他可能是专用存储电路中的一个快。
最后,存储在帧缓冲区的图像或者为了观看而显示,或者为以后的显示而传送给更永久的存储器。如果生成的图像将用于电影画面,那他可能在最终显示前被存储或者甚至是被修改。
5、建模
在计算机图形学中,布景称为场景,道具称为物体。3D图形场景是虚拟的,因为组成它的物体是由数字化模型构建而成的,并不是实际的物理结构。
(1)单个物体的建模
形状:
在3D图形物体的形状通常描述成称为平面片的小平面的集合,其中每一个都是一个多边形;这些多边形形成了多边形网格,它近似于被描述的物体形状,通过使用小平面片,近似可以达到所需要的精确度。
多边形网格中的平面片通常选择为三角形,因为每个三角形能用它的3个定见来表示,这个在三维空间中确定一个平面所需的最少点的数目;在任何情况下,多边形网格都表示成这些平面片定点的集合。
分型:是Hausdorff维度大于其拓扑维度的几何物体,直观上讲,这意味着物体是通过低纬度物体的副本打包形成的。
分形在3D图形领域经常是程序化模型的主干;实际上,他们已经被用来生成逼真的山脉、蔬菜、云和烟等图像。
另一种构建程序化模型方法是将物体的基础结构模拟为一个大的粒子集合,这种模型称为粒子系统,粒子系统通常会应用某些预定义的规则去移动系统中的粒子,来生成所需的形状。
程序化模型的输出通常是近似于物体形状的多边形网格。
表面特征:
仅由多边形网格构成的模型只捕获了物体的形状;
寻求逼真:
(2)整个场景的建模
一个场景中的物体已经得到充分的描述和数字化,他们就被赋予了场景内的位置、大小和方向,将这些信息集合并连接起来形成一个数据结构,称为场景图。
此外,场景图还包含了与表示光源及相机的特殊物体的链接,其中记录了相机的位置、方向和焦点等。
6、渲染
渲染决定了当场景图中的物体投影到投影平面时,将如何显示。
(1)光-表面交互
反射
折射
(2)裁剪、扫描转化和隐藏面的消除
现在着重考虑从场景图生成图像的过程,目前使用的方法正是在大多数交互式视频游戏系统中使用的技术;综合应用这些技术,形成一个效果较好的方法,称为渲染流水线。
渲染流水线首先确定包含相机能看到的物体的三维场景的区域,这个区域称为视体,它是角锥内的一个空间,这个角锥是由从投影中心发向图像窗口边界延伸的直线所定义的。
一旦视体被确定,接下来就不用考虑那些与视体不相交的物体或物体部分了,毕竟,那部分的场景投影将落在图像窗口的外面,因此不会出现在最终的图像中;第一步就是去除完全在视体外面的物体。
确定和去除那些与视体不相交的物体后,剩余的物体通过称为裁剪的操作加以整理,它实际上就是去掉每个物体处在视体外面的部分。
渲染流水线的下一步是确定剩余平面片的点;这些点与最终图像中的像素位置相对应,只有这些点将会对最终图像产生影响,认识到这一点是很重要的。
把像素位置与场景中的点相关联的过程称为扫描转换,因为它涉及到把面片转化为水平的一行像素点,称为扫描线或光栅化,因为一组像素称为光栅。
扫描转换时从投影中心出发穿过图像窗口汇总的每个像素的射线来完成的,然后找到这些投影线与平面片的焦点,最后,更具这些焦点我们得到物体在图像上的显示;实际上,这些点在最终图像上是基于像素显示的。
识别和去除场景中被遮挡的点的处理称为隐藏面消除。
隐藏面消除的一个具体方法是使用后面消除法,也就是不考虑那些在多边形网格中表示物体后面的面片。
解决“前景/后景”问题的一个简单办法就是画家算法:就是根据相机到物体的距离,在场景中一次放置物体,然后先扫描转换最远的物体,允许较近的物体的扫描转换结果覆盖先前的任何结果。
对于前景/后景问题的更彻底的解决方案是集中考虑单个像素,而不是整个场景。一种常用的技术就是使用一个称为Z缓冲区的额外存储区域,它包含图像中每个像素的通道。
(3)着色
一旦扫描转换已经确定了要显示在最终图像中的平面片上的点之后,渲染任务就变成了决定这些点的显示方式的处理。这个过程称为着色。
2、处理平面二维图形和图像的操作有两个相关领域:一个是2D图形学,一个是图像处理
二者的区别是:2D图形学着重于把二维图形转化为像素模式,产生图像;而图像处理着重分析图像中的像素,进行模式识别,以达到增强或理解图像的目的。
简言之,就是2D图形学处理生成图像,而图像处理分析图像。
3、3D图形学:将三维图形转化为图像,过程是:建造三维场景的模型,然后模拟照相的过程,产生这些场景的图像;
使用3D图形创建图像要经历两个不同的步骤:
一是创建、编码、存储以及操作被拍摄出来的场景;
另一个是生成图像的过程;前者是创造性、艺术的过程;而后者则是以计算为主的过程。
4、创建3D图形的过程
(1)建模
与传统电影产业中的设计和构造一个场景类似,不同之处在于3D图形场景是用数据结构和算法构造的,所以构造出来的场景永远不存在;
(2)渲染
通过计算场景中的物体如何显示在由特定位置的相机拍摄的照片中,来生成场景的二维图像,即渲染;渲染的概念是运用解析几何,来计算场景中的物体到一个称为投影平面的面上会形成的投影,这种方式与相机将场景投影到胶卷上的方式类似,这种投影称为透视投影;在这种投影方式下,所有的目标都沿着一条称为投影线的直线向前延伸,这条直线是从一个投影中心或者视点的公共点延伸出来的;这与平行投影不同,顾名思义,平行投影线是平行的,透视投影产生的投影类似于人类眼睛所看到的,而平行投影产生的是物体“真正”的剖面。
用来定义最终图像边界的投影平面,其中受限的部分称为图像窗口。它对应于显示在大多数相机取景器上的矩形,指明潜在图像的边界;实际上,大多数相机的取景器允许用户看到相机投影平面上更大的区域,而不仅仅是图像窗口;
一旦投影到图像窗口的场景确定,就可以计算出最终图像上每个像素点的显示情况,这种逐个像素的计算过程可能会很复杂,因为他需要确定场景中的物体如何与光线融合。
(3)显示
当确定每个像素的显示方式后,结果被集中的表示成图像的位图,并存储在称为帧缓冲区的存储区中,这个缓冲区可能是主存中的一个区域,或当有专门处理图形应用的硬件时,他可能是专用存储电路中的一个快。
最后,存储在帧缓冲区的图像或者为了观看而显示,或者为以后的显示而传送给更永久的存储器。如果生成的图像将用于电影画面,那他可能在最终显示前被存储或者甚至是被修改。
5、建模
在计算机图形学中,布景称为场景,道具称为物体。3D图形场景是虚拟的,因为组成它的物体是由数字化模型构建而成的,并不是实际的物理结构。
(1)单个物体的建模
形状:
在3D图形物体的形状通常描述成称为平面片的小平面的集合,其中每一个都是一个多边形;这些多边形形成了多边形网格,它近似于被描述的物体形状,通过使用小平面片,近似可以达到所需要的精确度。
多边形网格中的平面片通常选择为三角形,因为每个三角形能用它的3个定见来表示,这个在三维空间中确定一个平面所需的最少点的数目;在任何情况下,多边形网格都表示成这些平面片定点的集合。
分型:是Hausdorff维度大于其拓扑维度的几何物体,直观上讲,这意味着物体是通过低纬度物体的副本打包形成的。
分形在3D图形领域经常是程序化模型的主干;实际上,他们已经被用来生成逼真的山脉、蔬菜、云和烟等图像。
另一种构建程序化模型方法是将物体的基础结构模拟为一个大的粒子集合,这种模型称为粒子系统,粒子系统通常会应用某些预定义的规则去移动系统中的粒子,来生成所需的形状。
程序化模型的输出通常是近似于物体形状的多边形网格。
表面特征:
仅由多边形网格构成的模型只捕获了物体的形状;
寻求逼真:
(2)整个场景的建模
一个场景中的物体已经得到充分的描述和数字化,他们就被赋予了场景内的位置、大小和方向,将这些信息集合并连接起来形成一个数据结构,称为场景图。
此外,场景图还包含了与表示光源及相机的特殊物体的链接,其中记录了相机的位置、方向和焦点等。
6、渲染
渲染决定了当场景图中的物体投影到投影平面时,将如何显示。
(1)光-表面交互
反射
折射
(2)裁剪、扫描转化和隐藏面的消除
现在着重考虑从场景图生成图像的过程,目前使用的方法正是在大多数交互式视频游戏系统中使用的技术;综合应用这些技术,形成一个效果较好的方法,称为渲染流水线。
渲染流水线首先确定包含相机能看到的物体的三维场景的区域,这个区域称为视体,它是角锥内的一个空间,这个角锥是由从投影中心发向图像窗口边界延伸的直线所定义的。
一旦视体被确定,接下来就不用考虑那些与视体不相交的物体或物体部分了,毕竟,那部分的场景投影将落在图像窗口的外面,因此不会出现在最终的图像中;第一步就是去除完全在视体外面的物体。
确定和去除那些与视体不相交的物体后,剩余的物体通过称为裁剪的操作加以整理,它实际上就是去掉每个物体处在视体外面的部分。
渲染流水线的下一步是确定剩余平面片的点;这些点与最终图像中的像素位置相对应,只有这些点将会对最终图像产生影响,认识到这一点是很重要的。
把像素位置与场景中的点相关联的过程称为扫描转换,因为它涉及到把面片转化为水平的一行像素点,称为扫描线或光栅化,因为一组像素称为光栅。
扫描转换时从投影中心出发穿过图像窗口汇总的每个像素的射线来完成的,然后找到这些投影线与平面片的焦点,最后,更具这些焦点我们得到物体在图像上的显示;实际上,这些点在最终图像上是基于像素显示的。
识别和去除场景中被遮挡的点的处理称为隐藏面消除。
隐藏面消除的一个具体方法是使用后面消除法,也就是不考虑那些在多边形网格中表示物体后面的面片。
解决“前景/后景”问题的一个简单办法就是画家算法:就是根据相机到物体的距离,在场景中一次放置物体,然后先扫描转换最远的物体,允许较近的物体的扫描转换结果覆盖先前的任何结果。
对于前景/后景问题的更彻底的解决方案是集中考虑单个像素,而不是整个场景。一种常用的技术就是使用一个称为Z缓冲区的额外存储区域,它包含图像中每个像素的通道。
(3)着色
一旦扫描转换已经确定了要显示在最终图像中的平面片上的点之后,渲染任务就变成了决定这些点的显示方式的处理。这个过程称为着色。
0 0
- 10_计算机图形学
- 计算机图形学_矩形的旋转
- 计算机图形学_复习整理(1)
- 计算机图形学_复习整理(2)
- 计算机图形学_复习整理(3)
- 计算机图形学
- 计算机图形学
- 计算机图形学
- 计算机图形学
- 计算机图形学
- 计算机图形学
- 计算机图形学
- 计算机图形学
- 计算机图形学
- 计算机图形学
- 计算机图形学
- 计算机图形学
- 计算机图形学
- OpenGL编程低级错误及常见问题解答
- windows下如何配置Git
- Windows下使用静态库和动态库
- 一款FireBird3的GUI编辑器:FireBird Maestro V15.11.0.4
- C语言指针的概念
- 10_计算机图形学
- 线程的状态
- 多线程基础
- C++上机作业5
- Android开发工具之Android Studio----版本控制SVN使用(一)
- GDOI2016总结
- 动态规划C++
- 11_人工智能
- 剑指offer之面试题9菲波那切数列