计算机图形学_第六章
- 格式:pptx
- 大小:4.70 MB
- 文档页数:50
第六章1.请简述朗伯(Lambert )定律。
设物体表面在P 点法线为N ,从P 点指向光源的向量为L ,两者夹角为θ,则点P 处漫反射光的强度为:I d =I p k d cos θ式中 : I d ——表面漫反射光的亮度;I p ——入射光的光亮度;K d ——漫射系数(决定于表面材料及入射光的波长) 0≤K d ≤l ; θ——入射光线与法线间的夹角,0≤θ≤π/2。
并且,当物体表面垂直于入射光方向时(N 、L 方向一致)看上去最亮,而θ越来越大,接近90°时,则看上去越来越暗。
2.试写出实现哥罗德(Gouraud )明暗处理的算法伪代码。
deltaI = (i2 - i1) / (x2 - x1);for (xx = x1; xx < x2; xx++){ int offset = row * CScene.screenW + xx;if (z < CScene.zBuf[offset]){ CScene.zBuf[offset] = z;CScene.frameBuf[offset] = i1;}z += deltaZ; i1 += deltaI;} 3. 在Phong 模型n s p d p a a V R K I N L K I K I I )()(⋅+⋅+=中,三项分别表示何含义?公式中的各个符号的含义指什么?三项分别代表环境光、漫反射光和镜面反射光。
a I 为环境光的反射光强,p I为理想漫反射光强,a K 为物体对环境光的反射系数,d K 为漫反射系数,s K 为镜面反射系数,n 为高光指数,L 为光线方向,N 为法线方向,V 为视线方向,R 为光线的反射方向。
4.试写出实现Phong (冯)明暗方法的伪代码。
for (xx = x1; xx < x2; xx++){ int offset = row * CScene.screenW + xx;if (z < CScene.zBuf[offset]){ CScene.zBuf[offset] = z;pt = face.findPtInWC(u,v);float Ival = face.ptIntensity;CScene.frameBuf[offset] = Ival;}u += deltaU;z += deltaZ;p1.add(deltaPt);n1.add(deltaN);}5.请简述自身阴影的生成方法。
计算机图形学第一章计算机图形学概论(4)【计算机图形学定义】计算机图形学是研究计算机图形的表示、生成、处理、显示的学科。
计算机图形学是计算机科学中最为活跃、得到广泛应用的分支之一。
1982年国际标准化组织(ISO)的定义:计算机图形学是研究通过计算机将数据转换为图形,并在专门显示设备上显示的原理、方法和技术的学科。
它是建立在传统的图学理论、应用数学和计算机科学基础上的一门边缘学科。
IEEE(Institute of Electrical and Electronics Engineers,美国电气及电子工程师学会)定义:Computer graphics is the art or science of producing graphical images with the aid of computer.计算机图形学是借助计算机产生图形影像的一门艺术或科学。
美国的James Foley在其著作中定义:计算机图形学是运用计算机描述、输入、表示、存储、处理(检索/变换/图形运算)、显示、输出图形的一门学科。
【图形和图像】图形(Figure、Graphic):是构成图像的要素,表示图像中的某一个具体形状。
图形含有几何属性,更强调场景的几何表示,是由场景的几何模型和景物的物理属性共同组成的。
图形主要分为两类:基于线条信息表示;明暗图(Shading)。
图形是指用计算机绘制工具绘制的画面,包括直线、曲线,圆/圆弧,方框等成分。
图形一般按各个成分的参数形式存储,可以对各个成分进行移动、缩放、旋转和扭曲等变换,可以在绘图仪上将各个成分输出。
图像(Image):绘图、照片、影像的总称。
图像纯指计算机内以位图(Bitmap)形式存在的灰度信息。
图像是由输入设备捕捉的实际场景或以数字化形式存储的任意画面。
图像可以用位图或矢量图形式存储。
数字图像(Digital Image)【计算机图形学的研究对象】图形:能在人的视觉系统中产生视觉印象的客观对象,包括自然景物、拍摄到的图片、用数学方法描述的图形等等。
第六章 三维图形变换第一节 三维图形变换基础一、三维坐标系xyzxyz右手坐标系左手坐标系三维图形学中习惯上通常是采用右手坐标系。
xy 平面对应于视平面,z 轴垂直于视平面,指向视平面之外。
二、三维齐次坐标及变换矩阵三维图形变换也是基于矩阵运算进行。
矩阵运算的维数被扩展为四维。
三维坐标点采用4元齐次坐标表示:(x , y , z , 1),三维坐标与三维齐次坐标的相互转换如下:三维坐标(x , y ,z )——齐次坐标(x , y ,z , 1) 齐次坐标(x , y ,z , h )——二维坐标(x /h , y /h ,z /h ) 变换矩阵则为4X4的矩阵:⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎣⎡s nm kr j i h q f e d p c b a 其中:平移变换第二节 三维几何变换一、三维基本变换 1. 平移变换⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎣⎡=1010000100001nmk T )1,,,()1,,,(n z m y k x T z y x +++=⋅2. 比例变换)1,,,()1,,,(1000000000000jz ey ax T z y x j e a T =⋅⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎣⎡= 3. 旋转变换三维的基本旋转变换分为三种,即绕三个坐标轴的旋转变换。
(1)绕z 轴旋转γ角旋转后z 值不变,x,y 值将发生改变,x,y 值的计算公式与平面旋转相同,即:zz y x y y x x ='+='-='γγγγcos sin sin cos 则变换矩阵为:⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎣⎡-=1000010000cos sin 00sin cos γγγγT 有:)1,1,cos sin ,sin cos ()1,,,(γγγγy x y x z y x +-=T(2)绕x 轴旋转α角则旋转后x 的坐标值不变,y 和z 的坐标值将改变,相当于在yz 平面上绕平面原点进行旋转变换。
平面转转变换的公式为:ααααcos sin sin cos y x y y x x +='-='对应而来,这里y 对应于x ,z 对应y ,有:ααααcos sin sin cos z y z z y y +='-='则变换矩阵为:⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎣⎡-=10000cos sin 00sin cos 00001ααααT )1,cos sin ,sin cos ,()1,,,(ααααz y z y x z y x +-=T(3)绕y 轴旋转β角这时,z 对应于x ,x 对应于y 。
计算机图形学第二版(陆枫)课后习题集第一章绪论概念:计算机图形学、图形、图像、点阵法、参数法、图形的几何要素、非几何要素、数字图像处理;计算机图形学和计算机视觉的概念及三者之间的关系;计算机图形系统的功能、计算机图形系统的总体结构。
第二章图形设备图形输入设备:有哪些。
图形显示设备:CRT的结构、原理和工作方式。
彩色CRT:结构、原理。
随机扫描和光栅扫描的图形显示器的结构和工作原理。
图形显示子系统:分辨率、像素与帧缓存、颜色查找表等基本概念,分辨率的计算第三章交互式技术什么是输入模式的问题,有哪几种输入模式。
第四章图形的表示与数据结构自学,建议至少阅读一遍第五章基本图形生成算法概念:点阵字符和矢量字符;直线和圆的扫描转换算法;多边形的扫描转换:有效边表算法;区域填充:4/8连通的边界/泛填充算法;内外测试:奇偶规则,非零环绕数规则;反走样:反走样和走样的概念,过取样和区域取样。
5.1.2 中点 Bresenham 算法(P109)5.1.2 改进 Bresenham 算法(P112)习题解答习题5(P144)5.3 试用中点Bresenham算法画直线段的原理推导斜率为负且大于1的直线段绘制过程(要求写清原理、误差函数、递推公式及最终画图过程)。
(P111)解: k<=-1 |△y|/|△x|>=1 y为最大位移方向故有构造判别式:推导d各种情况的方法(设理想直线与y=yi+1的交点为Q):所以有: y Q-kx Q-b=0 且y M=y Qd=f(x M-kx M-b-(y Q-kx Q-b)=k(x Q-x M)所以,当k<0,d>0时,M点在Q点右侧(Q在M左),取左点 P l(x i-1,y i+1)。
d<0时,M点在Q点左侧(Q在M右),取右点 Pr(x i,y i+1)。
d=0时,M点与Q点重合(Q在M点),约定取右点 Pr(x i,y i+1) 。
所以有递推公式的推导:d2=f(x i-1.5,y i+2)当d>0时,d2=y i+2-k(x i-1.5)-b 增量为1+k=d1+1+k当d<0时,d2=y i+2-k(x i-0.5)-b 增量为1=d1+1当d=0时,5.7 利用中点 Bresenham 画圆算法的原理,推导第一象限y=0到y=x圆弧段的扫描转换算法(要求写清原理、误差函数、递推公式及最终画图过程)。
第六章相机模型在第一章里,我们描述了计算机图形学中常用的针孔相机模型。
这种模型易于描述和模拟,但有严重的缺陷。
例如,用针孔相机所拍摄出的所有景物都在锐聚焦区(sharp focus)中,所得到的图像就像是计算机生成的。
为了使图像更具真实感,有必要更好地模拟真实世界中成像系统的特性。
跟第三章中Shape类一样,在pbrt中,相机也是用一个抽象类来表达的。
本章介绍Camera类及其唯一的函数:Camera::GenerateRay()。
该函数计算图像平面上任一点所对应的世界空间中的光线。
生成光线的方式因成像模型的不同而不同,所以pbrt中的相机可以对同一个三维场景生成不同的图像。
这里我们要介绍Camera接口的几个实现,每个实现的光线生成方法都不同。
6.1 相机模型Camera抽象基类包含相机的通用选项并定义了所有相机实现的共同的接口。
<Camera Declarations> =class COREDLL Camera {public:<Camera Interface><Camera Public Data>protected:<Camera Protected Data>};Camera的子类必须实现函数Camera::GenerateRay(),该函数根据给定的图像采样点生成光线。
注意Camera对所返回的光线的方向向量进行了正规化,因为系统的许多其它部分需要正规化的光线方向。
这个函数还返回一个浮点数的权值,用来控制光沿着所生成的光线到达胶片平面上的效果。
大多数情况下该函数返回1,但那些模拟真实物理透镜系统的相机需要根据虚拟透镜系统的光学和几何性质来设置该值。
<Camera Interface> =virtual float GenerateRay(const Sample &sample, Ray *ray) const = 0;Camera基类的构造器需要几个通用的相机参数,其中包括把相机放置到场景中的变换,在相机空间中决定可见区域的近裁剪面和远裁剪面。