‘壹’ 深度缓存算法的算法描述
该算法需要两个缓存器,一个是用来存放颜色的颜色缓存器,另一个是用来存放深度的深度缓存器。利用深度缓存器,可以进行可见性的判断,消除隐藏对象。其具体做法是:
首先对深度缓存器和颜色缓存器进行初始化,把深度缓存器中所有单元置成一个最大可能的深度值,把颜色缓存器中各单元置成背景颜色。然后将场景中的物体不分次序地投影到象平面上去。对于每个投影点(象素),把投影物体在该点处的深度与深度缓存器中相应位置上的深度值进行比较,如果前者小于后者,那么就把当前被投影物体的颜色写到颜色缓存器中去,同时用当前投影物体的深度去更新深度缓存器中相应象素的深度,否则不做任何操作。
‘贰’ 北航09春学期《数字图形设计》作业三
这么多啊!直接把分给我算了,我缺分!别关闭问题啊!
‘叁’ 用c语言来画1个正方体,一个简单的程序。。
void far bar3d(int x1, int y1, int x2, int y2,int depth,int topflag);当
topflag为非0时, 画出一个三维的长方体。当topflag为0时,三维图形不封顶,
实际上很少这样使用。
void far setfillstyle(int pattern, int color); color的值是当前屏幕图形
模式时颜色的有效值,SOLID_FILL 1 以实填充
void far floodfill(int x, int y, int border);
其中:x, y为封闭图形内的任意一border为边界的颜色,也就是封闭图形轮廓的
颜色。调用了该函数后,将用规定的颜色和图模填满整个封闭图形。
#include<stdlib.h>
#include<graphics.h>
main()
{
int gdriver, gmode;
struct fillsettingstype save;
gdriver=DETECT;
initgraph(&gdriver, &gmode, "");
setbkcolor(BLUE);
cleardevice();
setcolor(LIGHTRED);
setlinestyle(0,0,3);
setfillstyle(1,14); /*设置填充方式*/
bar3d(100,200,400,350,200,1); /*画长方体并填充*/
floodfill(450,300,LIGHTRED);
/*填充长方体另外两个面*/
floodfill(250,150, LIGHTRED);
getch();
closegraph();
}
‘肆’ 深度缓存算法的优缺点
深度缓存算法中物体投影到象平面上的次序是任意的,无须将场景中的表面进行排序,物体之间的遮挡关系是通过深度缓存器进行深度比较加以确定的,算法易于实现。
深度缓存算法只能显示距离视点最近的物体,而且这些物体都是不透明的,无法看到被遮挡的物体。
深度缓存算法经常执行一些最终不起作用的中间计算过程。由于对象按任意次序进行处理,因此有些表面进行了颜色计算但事后又被更近的表面所代替。为了缓减这一问题,有些图形软件提供选项让用户调整表面测试的深度范围。例如,通过深度测试排除较远的对象。使用该选项还可以排除非常靠近投影平面的对象。高档计算机图形系统一般集成了深度缓存算法的硬件实现。
‘伍’ 下面关于深度缓存消隐算法的论断哪一条不正确
算法(Algorithm)是指完成一个任务所需要的具体步骤和方法。也就是说给定初始状态或输入数据,能够得出所要求或期望的终止状态或输出数据。
算法常常含有重复的步骤和一些比较或逻辑判断。不同的算法可能用不同的时间、空间或效率来完成同样的任务。一个算法的优劣可以用空间复杂度与时间复杂度来衡量。
凭我的直觉,选c好啦!
‘陆’ 北航09春学期《数字图形设计》作业一
1. a1. 消隐不仅与消隐对象有关而且还与(A )有关
A. 投影方式
B. 消隐算法选择
C. 物体空间
D. 消隐坐标
2. 光强也称光亮度是指既能表示光能(B )有能表示其( )的物理量
A. 大小,强度
B. 色彩,强度
C. 大小,色彩
D. 色彩,亮度
3. 1981年5月,我国国家标准化局发布并实施的“信息、交换用汉字编码字符基本集”中,共收集字符7445个,每个字符均与一个(B )编码相对应
A. ASCII编码
B. 十六进制编码
C. 十进制编码
D. 八进制编码
4. 在交互式图形系统中,一般有( b)个坐标系
A. 1
B. 2
C. 3
D. 4
5. 下列那个不是计算机图形学的应用(b )
A. 计算机艺术
B. 计算机可视化
C. 计算机自动化
D. 计算机动画及广告
6. 镜面发射的特点是(a )
A. 光源来自一个方向,反射光集中在反射方向;
B. 光源来自一个方向,发射光均匀地射向各个方向;
C. 光源来自各个方向,又均匀地向各个方向反射;
D. 光源来自各个方向,反射光集中在反射方向;
7. 计算机图形学是研究通过计算机将( a)转换为图形,并在专用的显示设备上显示的原理、方法和技术的学科。
A. 数据
B. 程序
C. 算法
D. 计算机语言
8. 在基本交互任务的基础上,可以形成(c )种形式的交互任务。
A. 1
B. 2
C. 3
D. 4
9. 在图形软件的各层中,我们一般把(b )级软件成为基本图形软件或称为支撑软件。
A. 0
B. 0,1
C. 0,1,2
D. 0,1,2,3
10. 哪一个不是国际标准化组织(ISO)批准的图形标准( b)
A. GKS;
B. PHIGS;
C. CGM;
D. DXF;
二、多选题(共 4 道试题,共 40 分。)
1. 用户定义矢量字符一般步骤为(a )
A. 写字模
B. 确定字符代码
C. 按一定结构保存字符各端点坐标及前一点到此端点是否划线的标志
D. 将字模写入字符库中
2. 布局的基本原则包括(a )
A. 保持一致
B. 保持平衡
C. 提供反馈
D. 成比例
3. 表现三维图形的方式包括(b )
A. 真实感图形;
B. 投影图形
C. 消隐图
D. 空间模拟图
4. 在交互式图形系统中,一般有( c)坐标系
A. 三维坐标系
B. 二维坐标系
C. 屏幕坐标系
D. 用户坐标系
三、判断题(共 10 道试题,共 20 分。)
1. 一个逻辑输入设备可以对应多个物理输入设备。a
A. 错误
B. 正确
2. 朗伯定律描述为:对于漫反射体,表面的反射光亮度和光源入射角的余弦成反比。b
A. 错误
B. 正确
3. 计算机图形系统应由硬件和相应地程序系统两部分构成。a
A. 错误
B. 正确
4. 现代计算机图形系统与一般的计算机系统最主要的差别是具有图形的输入,输出设备以及必要的交互工具.b
A. 错误
B. 正确
5. 扫描转换填充算法适用于规则边界的区域。a
A. 错误
B. 正确
6. 深度缓存算法是一种最简单的图形空间眠消隐算法,既适应多边形面也适用其它曲面。b
A. 错误
B. 正确
7. Gourand光照模型能够即使出高光部位的亮度。a
A. 错误
B. 正确
8. 用逐点比较法生成圆弧时运算只有加、减和位移运算,无乘除,运算效率高,适用于用硬件实现。b
A. 错误
B. 正确
9. 交互图形的基本交互任务包括:定位,选择,文字输入输出,数值输入输出等。b
A. 错误
B. 正确
10. 在种子填充算法中所提到的八向连通区域算法同时可填充四向连通区a
A. 错误
B. 正确
‘柒’ 深度缓存算法的介绍
深度缓存算法(depth—buffer method)是一种常用的判定对象表面可见性的物空间算法,它在投影面上的每一像素位置比较场景中所有面的深度。由于通常沿着观察系统的z轴来计算各对象距观察平面的深度,该算法也称为z缓存(z-buffer)算法。
‘捌’ 深度缓存算法包括哪些步骤
深度缓存(Z-buffer)算法是一种典型的、简单的图象空间面消隐算法。该算法需要一个深度缓存数组 ZB,此外还 需要一个颜色属性数组 CB ,它们的大小与屏幕上像素点的个数相同。 Z-buffer 算法的步骤如下:
(1)初始化 ZB 和 CB,使得 ZB(i,j)=Zmax,CB(i,j)=背景色,i=1,…, m; j=1,…,n。
(2)对多边形 P,计算它在点(i,j)处的深度值 zi,j。
(3)若 zi,j< ZB(i,j),则 ZB(i,j)=zi,j,CB(i,j)=多边形 P 的颜色。
(4)对每个多边形重复(2) 、 (3)两步,最终在 CB 中存放的就是消隐后的图形。 这个算法的关键在第(2)步,要尽快判断出哪些点落在一个多边形内,并尽快求出一个点的深度值。这里需要应用 多边形点与点之间的相关性,包括水平相关性和垂直相关性。