当前位置:文档之家› 计算机图形学必考知识点

计算机图形学必考知识点

Phong Lighting该模型计算效率高、与物理事实足够接近。

Phong模型利用4个向量计算表面任一点的颜色值,考虑了光线和材质之间的三种相互作用:环境光反射、漫反射和镜面反射。

Phong模型使用公式:I s=K s L s cosαΦα:高光系数。

计算方面的优势:把r和v归一化为单位向量,利用点积计算镜面反射分量:I s=K s L s max((r,v)α,0),还可增加距离衰减因子。

在Gouraud着色这种明暗绘制方法中,对公用一个顶点的多边形的法向量取平均值,把归一化的平均值定义为该顶点的法向量,Gouraud着色对顶点的明暗值进行插值。

Phong着色是在多边形内对法向量进行插值。

Phong着色要求把光照模型应用到每个片元上,也被称为片元的着色。

颜色模型RGB XYZ HSVRGB:RGB颜色模式已经成为现代图形系统的标准,使用RGB加色模型的RGB三原色系统中,红绿蓝图像在概念上有各自的缓存,每个像素都分别有三个分量。

任意色光F都可表示为F=r [ R ] + g [ G ] + b [ B ]。

RGB颜色立方体中沿着一个坐标轴方向的距离代表了颜色中相应原色的分量,原点(黑)到体对角线顶点(白)为不同亮度的灰色XYZ:在RGB 系统基础上,改用三个假想的原色X、Y、Z建立了一个新的色度系统, 将它匹配等能光谱的三刺激值,该系统称为视场XYZ色度系统,在XYZ空间中不能直观地评价颜色。

HSV是一种将RGB中的点在圆柱坐标系中的表示法,H色相S饱和度V明度,中心轴为灰色底黑顶白,绕轴角度为H,到该轴距离为S,沿轴高度为S。

RGB优点:笛卡尔坐标系,线性,基于硬件(易转换),基于三刺激值,缺点:难以指定命名颜色,不能覆盖所有颜色范围,不一致。

HSV优点:易于转换成RGB,直观指定颜色,’缺点:非线性,不能覆盖所有颜色范围,不一致XYZ:覆盖所有颜色范围,基于人眼的三刺激值,线性,包含所有空间,缺点:不一致交互式计算机程序员模型(应用模型<->应用程序<->图形库)->(图形系统<->显示屏).应用程序和图形系统之间的接口可以通过图形库的一组函数来指定,这和接口的规范称为应用程序编程人员接口(API),软件驱动程序负责解释API的输出并把这些数据转换为能被特定硬件识别的形式。

API提供的功能应该同程序员用来确定图像的概念模型相匹配。

建立复杂的交互式模型,首先要从基本对象开始。

良好的交互式程序需包含下述特性:平滑的显示效果。

使用交互设备控制屏幕上图像的显示。

能使用各种方法输入信息和显示信息。

界面友好易于使用和学习。

对用户的操作具有反馈功能。

对用户的误操作具有容忍性。

Opengl并不直接支持交互,窗口和输入函数并没有包含在API中。

简单光线跟踪、迭代光线跟踪光线跟踪是一种真实感地显示物体的方法,该方法由Appel在1968年提出。

光线跟踪方法沿着到达视点的光线的相反方向跟踪,经过屏幕上每一象素,找出与视线所交的物体表面点P0,并继续跟踪,找出影响P0点光强的所有的光源,从而算出P0点上精确的光照强度。

光线跟踪器最适合于绘制具有高反射属性表面的场景。

优缺点:原理简单,便于实现,能生成各种逼真的视觉效果,但计算量开销大,终止条件:光线与光源相交光线超出视线范围,达到最大递归层次。

一般有三种:1)相交表面为理想漫射面,跟踪结束。

2)相交表面为理想镜面,光线沿镜面反射方向继续跟踪。

3)相交表面为规则透射面,光线沿规则透射方向继续跟踪。

描述光线跟踪简单方法是递归,即通过一个递归函数跟踪一条光线,其反射光想和折射光线再调用此函数本身,递归函数用来跟踪一条光线,该光线由一个点和一个方向确定,函数返回与光线相交的第一个对象表面的明暗值。

递归函数会调用函数计算指定的光线与最近对象表面的交点位置。

图形学算法加速技术BVH, GRID, BSP, OCTree加速技术:判定光线与场景中景物表面的相对位置关系,避免光线与实际不相交的景物表面的求交运算。

加速器技术分为以下两种:Bounding Volume Hierarchy 简写BVH,即包围盒层次技术,是一种基于“物体”的场景管理技术,广泛应用于碰撞检测、射线相交测试之类的场合。

BVH的数据结构其实就是一棵二叉树(Binary Tree)。

它有两种节点(Node)类型:Interior Node 和Leaf Node。

前者也是非叶子节点,即如果一个Node不是Leaf Node,它必定是Interior Node。

Leaf Node 是最终存放物体/们的地方,而Interior Node存放着代表该划分(Partition)的包围盒信息,下面还有两个子树有待遍历。

使用BVH需要考虑两个阶段的工作:构建(Build)和遍历(Traversal)。

另一种是景物空间分割技术,包括BSP tree,KD tree Octree GridBSP:二叉空间区分树OCTree:划分二维平面空间无限四等分Z-buffer算法算法描述:1、帧缓冲器中的颜色设置为背景颜色2、z缓冲器中的z值设置成最小值(离视点最远)3、以任意顺序扫描各多边形a) 对于多边形中的每一个采样点,计算其深度值z(x,y) b) 比较z(x, y)与z缓冲器中已有的值zbuffer(x,y)如果z(x, y) >zbuffer(x, y),那么计算该像素(x, y)的光亮值属性并写入帧缓冲器更新z缓冲器zbuffer(x, y)=z(x, y)Z-buffer算法是使用广泛的隐藏面消除算法思想为保留每条投影线从COP到已绘制最近点距离,在投影后绘制多边形时更新这个信息。

存储必要的深度信息放在Z缓存中,深度大于Z缓存中已有的深度值,对应投影线上已绘制的多边形距离观察者更近,故忽略该当前多边形颜色,深度小于Z缓存中的已有深度值,用这个多边形的颜色替换缓存中的颜色,并更新Z缓存的深度值。

void zBuffer() {int x, y;for (y = 0; y < YMAX; y++)for (x = 0; x < XMAX; x++) {WritePixel (x, y, BACKGROUND_VALUE);WriteZ (x, y, 1);}for each polygon {for each pixel in polygon’s projection {//plane equationdoubl pz = Z-value at pixel (x, y); if (pz < ReadZ (x, y)) {// New point is closer to front of viewWritePixel (x, y, color at pixel (x, y))WriteZ (x, y, pz);}}}}优点:算法复杂度只会随着场景的复杂度线性增加、无须排序、适合于并行实现缺点:z缓冲器需要占用大量存储单元、深度采样与量化带来走样现象、难以处理透明物体着色器编程方法vert. frag 着色器初始化:1、将着色器读入内存2、创建一个程序对象3、创建着色器对象4、把着色器对象绑定到程序对象5、编译着色器6、将所有的程序连接起来7、选择当前的程序对象8、把应用程序和着色器之间的uniform变量及attribute变量关联起来。

Vertex Shader:实现了一种通用的可编程方法操作顶点,输入主要有:1、属性、2、使用的常量数据3、被Uniforms使用的特殊类型4、顶点着色器编程源码。

输入叫做varying变量。

被使用在传统的基于顶点的操作,例如位移矩阵、计算光照方程、产生贴图坐标等。

Fragment shader:计算每个像素的颜色和其他属性,实现了一种作用于片段的通用可编程方法,对光栅化阶段产生的每个片段进行操作。

输入:Varying 变量、Uniforms-用于片元着色器的常量,Samples-用于呈现纹理、编程代码。

输出:内建变量。

观察变换建模变换是把对象从对象标架变换到世界标架观察变换把世界坐标变换成照相机坐标。

VC是与物理设备无关的,用于设置观察窗口观察和描述用户感兴趣的区域内部分对象,观察坐标系采用左手直角坐标系,可在用户坐标系中的任何位置、任何方向定义。

其中有一坐标轴与观察方向重合同向并与观察平面垂直。

观察变换是指将对象描述从世界坐标系变换到观察坐标系的过程。

(1):平移观察坐标系的坐标原点,与世界坐标系的原点重合,(2):将x e,y e轴分别旋转(-θ)角与x w、y w轴重合。

规范化设备坐标系规范化设备坐标系是与具体的物理设备无关的一种坐标系,用于定义视区,描述来自世界坐标系窗口内对象的图形。

光线与隐式表面求交将一个对象表面定义为f(x,y,z)=f(p)=0,来自P0,方向为d的光线用参数的形式表示为P(t)=P0+td. 交点位置处参数t的值满足:f(P0+td)=0,若f是一个代数曲面,则f是形式为X i Y j Z k的多项式之和,求交就转化为寻求多项式所有根的问题,满足的情况一:二次曲面,情况二:品面求交,将光线方程带入平面方程:p*n+c=0可得到一个只需做一次除法的标量方程p=p0+td。

可通过计算得到交点的参数t的值:t=(p0*n+c)/(n*d).几何变换T R S矩阵表示三维平移T 三维缩放S旋转绕z轴Rz( )100dx010dy001dz0001Sx0000Sy0000Sz00001cos-sin00sin cos0000100001θθθθ旋转绕x轴Rx(θ) 旋转绕y轴Ry(θ)10000cos-sin00sin cos00001θθθθcos0sin00100-sin0cos00001θθθθ曲线曲面Bezier曲线性质:Bezier曲线的起点和终点分别是特征多边形的第一个顶点和最后一个顶点。

曲线在起点和终点处的切线分别是特征多边形的第一条边和最后一条边,且切矢的模长分别为相应边长的n倍;(2)凸包性;(3)几何不变性(4)变差缩减性。

端点插值。

均匀B样条曲线的性质包括:凸包性、局部性、B样条混合函数的权性、连续性、B样条多项式的次数不取决于控制函数。

G连续C连续C0连续满足:C1连续满足:(1)(0)p(1)=(1)(0)(0)(1)(0)px qxpy q qypz qz==⎡⎤⎡⎤⎢⎥⎢⎥⎢⎥⎢⎥⎣⎦⎣⎦(1)(0)p'(1)=(1)'(0)(0)(1)(0)p x q xp y q q yp z q z==⎡⎤⎡⎤⎢⎥⎢⎥⎢⎥⎢⎥⎣⎦⎣⎦C0(G0)连续:曲线的三个分量在连接点必须对应相等C1连续:参数方程和一阶导数都对应相等G1连续:两曲线的切线向量成比例三维空间中,曲线上某点的导数即是该点的切线,只要求两个曲线段连接点的导数成比例,不需要导数相等,即p’(1)=aq’(0) 称为G1几何连续性。

相关主题