考虑二个不同光栅系统.docx
《考虑二个不同光栅系统.docx》由会员分享,可在线阅读,更多相关《考虑二个不同光栅系统.docx(15页珍藏版)》请在冰豆网上搜索。
![考虑二个不同光栅系统.docx](https://file1.bdocx.com/fileroot1/2022-12/15/5d34595f-4b61-4478-8d40-03f596203510/5d34595f-4b61-4478-8d40-03f5962035101.gif)
考虑二个不同光栅系统
●考虑二个不同的光栅系统,分辨率依次为1024*768和1280*1024,如果每个像素存储24位,这二个系统各需要多大的帧缓存?
如果每个像素存储32位呢?
答:
第1个系统:
24像素
32像素
第2个系统:
24像素
32像素
●如果每秒能传输105位,每个像素有12位,装入1024*768的帧缓存需要多长时间?
如果每个像素有24位,装入1280*1024的帧缓存需要多长时间?
答:
1):
2)
●考虑1024*768和1280*1024的两个光栅系统。
若刷新频率为每秒60帧,在各系统中每秒能访问多少像素?
各系统访问每个像素的时间是多少?
答:
1)
个,1/(
)S
2)
个,1/(
)S
●假设真彩色(每像素24位)系统有512*512的帧缓存,那么可以使用多少种不同得颜色选择(亮度等级)?
在任意时刻可以显示多少种不同的颜色?
答:
1)224
2)512*512
●帧缓存必须足够快才能避免闪烁问题。
一图形工作站分辨率为1280x1024,如果刷新频率为每秒75帧,内存要多快?
即从内存中读取一个像素需要多少时间?
答:
1/(
)S
1、比较DDA算法与Bresenham算法的优缺点
DDA算法
☞Advantage优点:
-消除乘法.
☞Disadvantage缺点:
-浮点数相加积累误差,对长线段而言,引起像素点位置与理想位置的偏移.
-需要圆整操作和浮点计算,消耗时间。
Bresenham算法
●优点:
●只有整数增量运算
●准确有效
●对圆和其他曲线同样有效
●计算机图形学领域使用最广泛的直线扫描转换方法
2、OpenGL绘制函数中一般来说第一句和最后一句应该写什么?
第一句清屏:
例如:
glClear(GL_COLOR_BUFFER_BIT);
最后一句刷新
例如:
glutSwapBuffers();//双缓冲的刷新模式;
glFlush();//单缓冲的刷新模式;
3、用自己的话描述“扫描转换”的概念
●将应用程序给出的图形定义数字化为一组像素强度值,并存放在帧缓存中。
这个数字化过程称为扫描转换(scanconversion)
4、用自己的话描述数学递推方法
已知起始条件
已知相邻步骤的递推关系
已知终止条件
可求解出问题的答案
5、从圆的对称性来说,我们已知圆上的一个点,还可以画出圆上其他几个点?
7
1、试描述直线段反走样算法策略
☺将一个像素分为若干子像素,计数有多少个子像素穿过直线路径.
☺每个像素的亮度等级和该像素区域内的穿过直线的子像素的总数成正比。
☺锯齿(阶梯)效应可由这某种程度的模糊直线路径来消除,以达到光滑效果
2、中点画圆法的核心思想主要是通过判断下一候选点的中点位置,当中点位置在_圆内___时,下一候选点为Xi+1=Xi+1__,Yi+1=Yi_,当中点位置在__圆外___时,下一候选点为Xi+1=___Xi+1___,Yi+1=Yi-1_____。
3、画出鼠标响应函数参数获取的鼠标坐标(intx,inty)的位置示意图,它的原点在什么位置?
已知鼠标响应函数voidmyMouse(intbutton,intstate,intx,inty)
获取的鼠标位置x=150,y=120
绘图窗口大小300X300
视区glViewport(0,0,w,h);//设置视区大小?
裁剪窗口gluOrtho2D(0,100,0,80);//设置裁剪窗大小?
试问鼠标获取点对应的世界坐标等于多少?
4、什么叫凸多边形?
z凸多边形Convexpolygon
☞一个多边形所有的内角都小于等于180o
☞多边形内部完全位于任意一边所在直线的一边
☞连接多边形内任意两点的线段仍位于多边形内
☞满足以上任意一个条件
5、多边形扫描转换算法中,一般来说,扫描线上区间点的前面有数个交点,如果交点的个数
奇数对,则填___前景色;偶数对,则填_____背景色
6、采用活性边表的多边形转换算法的目的和方法是?
☞目的
提高效率
☞方法
利用边的连贯性和扫描线的连贯性
7、逐点法与采用活性边表的多边形转换算法的比较
●逐点法简单,速度慢,效率低
采用活性边表的多边形转换算法相对复杂,利用边的连贯性加速求交运算,利用AET避免了盲目求交,利用扫描线的连贯性避免逐点判别,速度快,效率高。
1、什么叫凸多边形?
z凸多边形Convexpolygon
☞一个多边形所有的内角都小于等于180o
☞多边形内部完全位于任意一边所在直线的一边
☞连接多边形内任意两点的线段仍位于多边形内
☞满足以上任意一个条件
2、多边形扫描转换算法中,一般来说,扫描线上区间点的前面有数个交点,如果交点的个数
奇数对,则填___前景色;偶数对,则填_____背景色
3、采用活性边表的多边形转换算法的目的和方法是?
☞目的
提高效率
☞方法
利用边的连贯性和扫描线的连贯性
4、逐点法与采用活性边表的多边形转换算法的比较
●逐点法简单,速度慢,效率低
采用活性边表的多边形转换算法相对复杂,利用边的连贯性加速求交运算,利用AET避免了盲目求交,利用扫描线的连贯性避免逐点判别,速度快,效率高。
1、通常图形在方向、尺寸方面的变化是通过图形的___几何变换_______来完成的
2、为什么采用齐次坐标?
使用齐次坐标,可将所有变换矩阵可转换成矩阵连乘形式,从而可将图形应用中的所有变换矩阵组合成一个复合矩阵,最后根据初始坐标和复合变换矩阵直接计算最终坐标,无需计算中间点,从而提高计算效率。
3、2D几何变换齐次矩阵要求______3_________阶的矩阵?
4、
矩阵描述的是___平移_____变换。
5、分别写出齐次2D平移、旋转和比例缩放变换矩阵的一般形式
6、写出对任意直线作对称变换步骤
1、沿X轴方向平移,使直线通过原点
2.绕原点旋转角度,使直线与x轴相重合
3.绕x轴对称变换
4.绕原点旋转角度,使直线转回原来的角度
5.X轴方向平移回原来的位置
7、P2435.2证明R(Q1)R(Q2)=R(Q1+Q2)
R(θ2)R(θ1)=
经整理后得
R(θ2)R(θ1)=
=R(θ1+θ2)
8、3D旋转时,什么方向转为正旋转角方向?
假定我们从坐标轴的正向朝着原点观看,绕坐标轴逆时针方向旋转为正角。
1、二维图形显示流程有哪些坐标?
参见教材第六章二维观察图
2、窗口与视区相似和不相似的情况,对输出的图形有何影响?
⏹窗口与视区的形状相似,即二者的长与宽之比相同,变换后在视区产生均匀缩小或均匀放大的图形。
窗口与视区的形状不相似,即二者的长与宽之比不相等,变换后在视区产生畸变的图形。
图形将沿水平及垂直方向以不同比例发生变化——畸变。
3、已知顶点的世界坐标为(50,40),用OpenGL画图时,设置窗口window和视区的位置如下,glutInitWindowSize(600,500),
glutOrtho2D(-30,70,-20,60),
glViewport(10,10,500,400),试求顶点在视区中的位置(xv,yv),已知视区坐标原点在窗口左下角。
写出计算依据、步骤和结果,并画图表示。
xv=410,yv=310
3.编码裁剪算法将平面分成几个区域?
每个区域的编码是多少?
编码裁剪算法将平面分成9个区域。
区域码如下图
4、什么是直线的参数方程?
在直线的参数方程中直线段的起始点和终止点的参数分别等于多少?
x=x1+t∆x
y=y1+t∆y0<=t<=1
∆x=x2–x1,∆y=y2–y1
x1,y1和x2,y2分别为直线段起始点和终止点的坐标,t为参数。
直段的起始点和终止点的参数分别为0和1
5、Liang-Baskey是一种什么算法?
它与Cohen-Sutherland算法相比有什么优势?
Liang-Baskey是一种直线裁剪算法
它与Cohen-Sutherland算法相比经过与裁剪窗口边界的4次判断,一次求得直线段与裁剪窗口的交点坐标。
而Cohen-Sutherland算法需要循环才能求出交点坐标。
相比之下,Liang-Baskey算法计算速度更快,更有效率。
1、三维观察流水线是怎样的?
中有多少坐标系?
多少个图形变换?
6个坐标系,5个变换
2、简述光照明模型中反射光一般分为哪几个分量,这些分量跟哪些因素有关?
分为环境光、漫反射光和镜面反射光
环境反射光计算公式
环境反射光与环境光的强度
和Ka为物体对环境光的反射系数
环境光的强度越强,环境反射光越强。
漫反射光计算公式
漫反射光与入射光的强度成正比、入射光和物体表面法向量的夹角余弦和物体材质有关。
镜面反射光计算公式
镜面反射光与入射光的强度成正比、与视线方向、入射光方向、物体表面法向方向有关和物体材质有关。
3、试写出Phong光照明模型的数学公式,并指出其中的项目含义
环境反射光
:
环境光的强度。
Ka为物体对环境光的反射系数
漫反射光计算公式
Ip:
入射光的强度、
CosQ:
入射光和物体表面法向量的夹角余弦
Kd:
入射光的漫反射系数
镜面反射光计算公式
☐Ip入射光的强度
☐α:
视线与镜面反射线的角度,
☐n:
镜面反射指数,(1~2000)物体表面越光滑,其值就越大.
☐Ks物体表面的反射率,也称镜面反射系数
1、平行投影和透视投影的区别?
⏹平行投影parallelprojection
☐平行光源
☐物体的投影线相互平行
☐物体的大小比例不变,精确反映物体的实际尺寸
⏹透视投影perspectiveprojection
☐点光源
☐物体的投影线汇聚成一点:
投影中心
☐离投影面近的物体生成的图像大,真实感强
2、什么是正平行投影和斜平行投影?
⏹正平行投影Orthogonalprojection
☐投影方向垂直投影平面
⏹斜平行投影Obliqueparallelprojection
☐投影方向不垂直于投影平面
3、用图描述透视投影近大远小的特性?
略
4、什么叫灭点?
灭点:
任何一束不平行于投影平面的平行线的透视变换将汇聚为一点
5、试用图画出一点透视、二点透视和三点透视
1、什么是纹理坐标s,t表示什么意思?
一般来说纹理坐标s,t的取值范围是?
纹理图像的横坐标和纵坐标
0~1之间
2、纹理映射问题。
几何物体顶点如何与纹理坐标对应?
编程绘制一个正方形(边长为edge),使得其充满整个窗口画面,并贴上纹理。
写出绘制部分和窗口改变函数(Reshape函数)部分代码及其注释。
绘制部分
绘制部分
glClear(GL_COLOR_BUFFER_BIT);//清屏
glMatrixMode(GL_MODELVIEW);//矩阵模式变换
glLoadIdentity();//设置单位矩阵
glBegin(GL_QUADS);//画四边形
glTexCoord2f(0.0f,0.0f);glVertex2f(-edge/2,-edge/2);//四边形顶点及其纹理坐标
glTexCoord2f(1.0f,0.0f);glVertex2f(edge/2,-edge/2);同上
glTexCoord2f(1.0f,1.0f);glVertex2f(edge/2,edge/2);
glTexCoord2f(0.0f,1.0f);glVertex2f(-edge/2,edge/2);
glEnd();
glutSwapBuffers();//刷新命令
窗口改变部分
glViewport(0,0,(GLsizei)w,(GLsizei)h);//视区变换
glMatrixMode(GL_PROJECTION);//矩阵模式变换
glLoadIdentity();//单位矩阵
gluOrtho2D(-edge/2,edge/2,-edge/2,edge/2);//裁剪窗口设置
glMatrixMode(GL_MODELVIEW);//矩阵模式变换
glLoadIdentity();//单位矩阵
绘制部分
glClear(GL_COLOR_BUFFER_BIT);//清屏
glMatrixMode(GL_MODELVIEW);//矩阵模式变换
glLoadIdentity();//设置单位矩阵
glBegin(GL_QUADS);//画四边形
glTexCoord2f(0.0f,0.0f);glVertex2f(0,0);//四边形顶点及其纹理坐标
glTexCoord2f(1.0f,0.0f);glVertex2f(edge,0);同上
glTexCoord2f(1.0f,1.0f);glVertex2f(edge,edge);
glTexCoord2f(0.0f,1.0f);glVertex2f(0,edge);
glEnd();
glutSwapBuffers();//刷新命令
窗口改变部分
glViewport(0,0,(GLsizei)w,(GLsizei)h);//视区变换
glMatrixMode(GL_PROJECTION);//矩阵模式变换
glLoadIdentity();//单位矩阵
gluOrtho2D(0,edge,0,edge);//裁剪窗口设置
glMatrixMode(GL_MODELVIEW);//矩阵模式变换
glLoadIdentity();//单位矩阵
1、曲线曲面大致可以分为2类,一类是_____规则曲线曲面____________,包括平面、圆柱面,圆锥面、球面、圆环面等;一类是____自由曲线曲面____________,如飞机汽车轮船外形等。
2、试分别举出曲面的显示表示和隐式表示的实例
显示:
隐式:
3、什么是曲线曲面的型值点和控制点?
⏹型值点:
通过计算得到曲线曲面上的点
⏹控制点:
控制曲线曲面形状的点
4、什么是曲线曲面的参数连续性和几何连续性?
参数连续性
几何连续性
5、试用图表示插值和逼近的不同
6、基函数为什么一般使用3次多项式?
保持曲面光滑的最低次多项式为3次
7、Bezier方法的局限性?
控制点的数目决定曲线的阶次,n+1个顶点产生n次曲线
没有局部性
逼近的方法
8、两段相邻曲线Ci(t)和Ci+1(t),若在连接点P处满足Ci(t)=Ci+1(t),则表示两端曲线在连接点P处_______C0_连续___。
若两段曲线在满足以上条件的基础上,还满足条件___C’i(t)=C’i+1(t)___________,则表示两段曲线是C1连续的。
9、两条曲线(曲面)要保证光滑连接,则在连接点必须保证___C2_连续______
10、n个控制点可构造出最高____n-1__________次Bezier曲线。
一段n次Bezier曲线有_____n+1_________个控制点。
如果100个控制点要构成3次Bezier曲线,则必须对这些控制点进行_____分段(分组)_________,每____4________个控制点为一组。
11、已知控制点P0=(-4,0,0),P1=(-6,4,0),P2=(6,-4,0),P3=(4,0,0),试计算Bezier曲线参数t=0,和t=1的端点坐标,以及两端点的切矢量。
C(0)=P0=(-4,0,0)
C
(1)=P3=(4,0,0)
C’(0)=n(P1-P0)=3(-2,4,0)=(-6,12,0)
C’
(1)=n(P3-P2)=3(-2,4,0)=(-6,12,0)
12、Bspline曲线与Bezier曲线方法比较有何不同?
保留了Bezier方法的优点
克服了Bezier方法的一些局限性
曲线的阶数不随控制点增加而增加
具有局部性
但仍然是一种逼近的方法
13、NURBS曲线曲面造型方法有何优点?
⏹统一表达自由曲线曲面和二次曲线曲面
⏹保留了B样条函数的基本性质