- 1、本文档共11页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
2016学年杭州电子科技大学
《实时三维图像绘制》考试
红色标记表示考到了,都是简答题,有超纲的(老师给的提纲)
超纲题:
【1】写出至少三种OpenGL矩阵堆栈,并说明作用?
【2】请完整写出用glut和OpenGL编写的程序:绘制一个平面正三角形,使它绕着过它中心的垂直于平面的轴自动旋转。
OpenGL中能渲染的基本元素是什么?GLU 可以渲染哪些基本元素?
答: OPENGL基本元素:
GL_POINTS、
GL_LINES、GL_LINE_STRIP 、GL_LINE_LOOP
GL_TRIANGLES、GL_TRIANGLE_STRIP 、GL_TRIANGLE_FAN
GL_QUADS、GL_QUAD_STRIP、GL_POLYGON
GLU基本元素:
NURBS曲线曲面,二次曲面等
简述OpenGL函数的语法特点?
答: OpenGL函数以前缀gl开头,并把组成函数的每个单词首字母用大写形式表示(如glClearColor)。类似地,还定义了一些以前缀GL_开头的常量,所有单词都使用大写形式,并以下划线分隔(如GL-COLOR-BUFFER-BIT)。
3、用框图说明OpenGL的渲染流程,并简要说明每个坐标系。
写出OpenGL中局部光照的方程,要包含的系数有光源参数、材料参数、聚光灯的参数、衰减参数等,方程要表示是多个光源的。
答: 顶点颜色=顶点处的材料发射颜色+全局环境光(在顶点处根据材料环境颜色属性进行缩放)+经过适当衰减的来自所有光源的环境、散射、镜面光成分
5、在OpenGL中,使用光照的步骤是什么?
答: 1、定义每个物体的每个顶点的法线向量。
2、创建和选择一个或多个光源,并设置它们的位置。
3、创建和选择一种光照模型。
4、定义场景中物体的材料属性。
6、分析程序并计算
请看下面的一段程序,并计算三个顶点、和处的光照的颜色值。
void init(void)
{
GLfloat mat_ambient[] = { 0.2, 0.2, 0.2, 1.0 };
GLfloat mat_diffuse[] = { 0.8, 0.8, 0.8, 1.0 };
GLfloat mat_emission[] = { 0.0, 0.0, 0.0, 1.0 };
GLfloat mat_specular[] = { 0.3, 0.3, 0.3, 1.0 };
GLfloat mat_shininess[] = { 2.0 };
GLfloat light_position[] = { 1.0, 1.0, 1.0, 0.0 };
GLfloat light_ambient[] = {0.2, 0.2, 0.2, 1.0};
GLfloat light_diffuse[] = {1.0, 1.0, 1.0, 1.0};
GLfloat light_specular[] ={1.0, 1.0, 1.0, 1.0};
GLfloat lmodel_ambient[] = {0.2, 0.2, 0.2, 1.0};
glClearColor (0.0, 0.0, 0.0, 0.0);
glShadeModel (GL_SMOOTH);
glMaterialfv(GL_FRONT, GL_AMBIENT, mat_ambient);
glMaterialfv(GL_FRONT, GL_DIFFUSE, mat_diffuse);
glMaterialfv(GL_FRONT, GL_SPECULAR, mat_specular);
glMaterialfv(GL_FRONT, GL_EMISSION, mat_emission);
glMaterialfv(GL_FRONT, GL_SHININESS, mat_shininess);
glLightfv(GL_LIGHT0, GL_POSITION, light_position);
glLightfv(GL_LIGHT0, GL_AMBIENT, light_ambient);
glLightfv(GL_LIGHT0, GL_DIFFUSE, light_diffuse);
glLightfv(GL_LIGHT0, GL_SPECULAR, light_specular);
glLightMo
文档评论(0)