计算机图形学【笔记】
- 格式:pdf
- 大小:1.70 MB
- 文档页数:18


计算机图形学的基础和应用
计算机图形学是指利用计算机来处理和生成图像的学科。它是计算机科学的一个重要分支领域,也是多个行业的重要应用之一。计算机图形学的基础点主要包括: 算法、数据结构、线性代数和几何基础、图形学渲染、计算机视觉等。而计算机图形学的应用范围却非常广泛,主要包括电影、游戏、建筑、逆向工程、医学等领域。
一、计算机图形学的基础
1. 算法
计算机图形学的算法主要分为两个方面:在计算机内部绘制图像的算法以及从外部数据得到模型的算法。前者有数据结构、扫描线算法、射线追踪、阴影、光照、纹理映射等,后者包括骨骼动画、目标追踪和形状重建等算法。这些算法的基本原理来源于大量的数学和物理学知识,同时需要基于计算机技术进行优化实现。
2. 数据结构
计算机图形学中的数据结构主要包括树、网格结构和点云三种。其中网格结构和点云通常是三维多边形模型的数据承载方式,树则主要用于建立场景图等数据结构。每种数据结构都具有自己的优势和局限性,这需要根据具体应用场景进行选择。 3. 线性代数和几何基础
计算机图形学中,线性代数和几何基础是非常重要的理论基础。在图形学的应用中,通常需要进行向量和矩阵的计算,并利用几何理论去解决许多问题。例如,在渲染过程中需要对于光线和交点进行计算,采用线性代数方法可以快速实现。
4. 图形学渲染
图形学渲染是计算机图形学的重要子领域,常被用在电影和游戏制作中。计算机图形学的渲染方式分为四类:光线追踪、栅格化绘制、体绘制和可编程渲染管线。光线追踪渲染可以模拟光线的传播过程,且能够计算真实的光照效果。实际上,这种渲染方式是一种“暴力”的方式,需要在计算机上运行庞大的计算量。栅格化绘制则是采用直接面绘制,常被用于二维和三维场景的渲染。可编程管线渲染则是当前最流行的渲染方式,其开发程度非常高。而体绘制则尚处于发展初期,其主要应用于医学成像领域。
5. 计算机视觉
计算机视觉是计算机图形学的重要子领域之一,主要研究计算机能够通过图像或视频获取和识别包括物体、人物、场景在内的视觉信息。计算机视觉常用的技术包括特征提取、图像分割、分类和识别等。随着计算机视觉技术的不断发展,其在许多应用领域得到了广泛的应用,例如安防、自动驾驶、智能医疗等。 二、计算机图形学的应用
计算机图形学——计算机图形系统及硬件基础
⼀、概述
1、计算机及系统中的图形设备
计算机图形系统⽤来⽣成、处理和显⽰图形,通常由以下三部分构成:
图形输⼊设备
中央处理器
图形输出设备
常⽤的图形输⼊设备:
键盘、⿏标
此外还有
跟踪球、空间球、光笔、触摸板、 图形扫描仪、数字化仪、⼿写输⼊板、语⾳输⼊、数据⼿套
中央处理器:
中央处理器完成对图形的描述、建⽴、修改等各种计算,并对图形实现有效的存储。
许多外设所增加的固化的图形处理功能,可接受更⾼级的绘图命令,实现图形的缓冲,以及完成⼤部分图形函数的功能,从⽽⼤⼤减轻了CPU的负担。
图形输出设备:
图形显⽰设备和图形绘制设备
图形显⽰设备: ⽤于在屏幕上输出图形。基于阴极射线管的监视器、液晶显⽰器、等离⼦显⽰器
图形绘制设备: ⽤于把图形画在纸上,也称硬拷贝。打印机、绘图仪
2、图形系统的基本功能
⼀个计算机图形系统⾄少应具有计算、存储、输⼊、输出、交互等基本功能,各功能关系如下:
输⼊功能: 通过图形输⼊设备可将基本的图形数据(如点、线等)和各种绘图命令输⼊到计算机中,从⽽构造更复杂的⼏何图形。
计算功能:1) 图形的描述、分析和设计;--建模
2) 图形的平移、旋转、投影、透视等⼏何变换;
3) 曲线、曲⾯的⽣成;
4) 图形之间相互关系的检测等。--隐藏线隐藏、⾯消除、碰撞检测
存储功能: 图形数据库可以存放各种图形的⼏何数据及图形之间的相互关系,并能快速⽅便地实现对图形的删除、增加、修改等操作。
输出功能: 图形数据经过计算后可在显⽰器上显⽰当前的状态以及经过图形编辑后的结果,同时还能通过绘图仪、打印机等设备实现硬拷贝输出,以
便长期保存。
交互功能: 设计⼈员可通过显⽰器或其他⼈机交互设备直接进⾏⼈机通信,对计算结果和图形利⽤定位、拾取等⼿段进⾏修改,同时对设计者或操作
员输⼊的错误给以必要的提⽰和帮助。
图形的基本处理流程
利⽤各种图形输⼊设备及软件或其他交互设备将图形输⼊到计算机中,以便进⾏处理;
2。1。1 生成直线的DDA算法
数值微分法即DDA法(Digital Differential Analyzer),是一种基于直线的微分方程来生成直线的方法.
一、直线DDA算法描述: 设(x1,y1)和(x2,y2)分别为所求直线的起点和终点坐标,由直线的微分方程得
= m =直线的斜率 (2-1)
可通过计算由x方向的增量△x引起y的改变来生成直线:
xi+1=xi+△x (2-2)
yi+1=yi+△y=yi+△x·m (2-3)
也可通过计算由y方向的增量△y引起x的改变来生成直线:
yi+1=yi+△y (2-4)
xi+1=xi+△x=xi+△y/m (2-5)
式(2-2)至(2-5)是递推的.
二、直线DDA算法思想:
选定x2-x1和y2-y1中较大者作为步进方向(假设x2-x1较大),取该方向上的增量为一个象素单位(△x=1),然后利用式(2-1)计算另一个方向的增量(△y=△x·m=m)。通过递推公式(2-2)至(2-5),把每次计算出的(xi+1,yi+1)经取整后送到显示器输出,则得到扫描转换后的直线。
之所以取x2-x1和y2-y1中较大者作为步进方向,是考虑沿着线段分布的象素应均匀,这在下图中可看出。
另外,算法实现中还应注意直线的生成方向,以决定Δx及Δy是取正值还是负值。
三、直线DDA算法实现:
1、已知直线的两端点坐标:(x1,y1),(x2,y2)
2、已知画线的颜色:color
3、计算两个方向的变化量:dx=x2-x1
dy=y2-y1
4、求出两个方向最大变化量的绝对值:
steps=max(|dx|,|dy|)
5、计算两个方向的增量(考虑了生成方向): xin=dx/steps
yin=dy/steps
计算机图形学的数学基础
计算机图形学的数学基础
计算机图形学是研究计算机图像的生成、处理和显示的学科。它在电影、游戏、虚拟现实等领域起着重要的作用。而要理解计算机图形学,必须掌握其数学基础。
计算机图形学的数学基础主要包括几何学、线性代数、微积分和概率论等。
几何学是计算机图形学不可或缺的基础。它研究的是空间中的点、线、面以及它们之间的关系和性质。在计算机图形学中,我们需要了解基本的几何概念,如点、向量、坐标系等,以及几何变换,如平移、旋转和缩放等。几何学为计算机图形学提供了建立模型和描述物体形状的工具。
线性代数是计算机图形学中的另一个重要数学基础。它研究向量空间和线性变换的性质。在计算机图形学中,我们经常需要进行矩阵运算,如矩阵相乘、矩阵求逆等。线性代数还能帮助我们理解和处理三维空间中的旋转、投影和变换等操作。线性代数提供了描述和处理图形变换和投影的工具。
微积分在计算机图形学中也扮演着重要的角色。它研究函数的极限、导数和积分等。在计算机图形学中,我们需要通过微积分来处理曲线和曲面的描述和生成。微积分还可用于光线追踪、三角形剖分和曲线插值等算法的实现。微积分为计算机图形学提供了处理连续性和光滑性的工具。
概率论在计算机图形学中的应用也非常广泛。它研究随机事件和概率分布等。在计算机图形学中,我们经常需要模拟随机现象,如粒子系统、纹理生成和光线追踪中的采样等。概率论为计算机图形学提供了处理随机性和噪声的工具。
总之,计算机图形学的数学基础是几何学、线性代数、微积分和概率论等。掌握这些数学基础,可以帮助我们理解和实现计算机图形学中的各种算法和技术。无论是生成逼真的图像,还是实现虚拟现实体验,数学基础都是不可或缺的。因此,学习和掌握计算机图形学的数学基础对于从事相关领域的人来说是非常重要的。