logo资料库

OpenGL面试题.doc

第1页 / 共4页
第2页 / 共4页
第3页 / 共4页
第4页 / 共4页
资料共4页,全文预览结束
一、一些 3D 问题: (公司使用的是 D3D,如果不熟,用 OpenGL 举例回答也可以) 1.请介绍 D3D 或 OpenGL 中渲染对象时需要设置的 3 个矩阵及它们各自的作用 世界矩阵(World Matrix)、视图矩阵(View Matrix)以及投影矩阵(Projection Matirx); 世界矩阵确定一个统一的世界坐标,用于组织独立的物体形成一个完整的场景; 视图矩阵就是我们能看到的那部分场景,由虚拟摄像机负责拍摄; 投影矩阵就是 3 维物体的平面影射.把三维场景在一个二维的平面上显示. 2.请简单介绍 D3D 的渲染流水线流程及各步骤的作用,以及实际应用中我们可以在这些步 骤做些什么效果应用? 可分为两个阶段,T&L 和光栅化处理;主要步骤包括世界变换、视图变换、照明、投影变 换、裁剪、w 切分、视口变换等.通过渲染流水线可以得到视觉上的三维场景及其变换效果. 3.ZBuffer 有什么作用,渲染任何物体时是否都一定要打开 ZBuffer?为什么? 深度缓冲.作用是确保多边形能够正确的显示在它们本来的深度.对于两个物体以上的场景来 说,一般都要求打开 ZBuffer,否则可能出现非正常的立体感观. 4.请介绍你所有知道的纹理 Alpha 混合方式,原理(公式),以及他们的实际应用(做什么样的 效果时需要这种方式) 公式为: Color = (源颜色 * 源系数) OP (目标颜色 * 目标系数);其中 OP(混合方式)有 加,减,反减,取最小,取最大; Alpha 混合用于做半透明效果. 5.请介绍你所知道的所有 3D 动画方式、实现原理,以及他们的实际应用(做什么样的效果时 需要这种方式) 主要有关节动画、单一网格模型动画(关键帧动画)、骨骼动画.关节动画把角色分成若干独立 部分,一个部分对应一个网格模型,部分的动画连接成一个整体的动画,角色比较灵活 Quake2 中使用了这种动画;单一网络模型动画由一个完整的网格模型构成,在动画序列的关键帧里 记录各个顶点的原位置及其改变量,然后插值运算实现动画效果,角色动画较真实;骨骼动画, 广泛应用的动画方式,集成了以上两个方式的优点;骨骼按角色特点组成一定的层次结构, 由关节相连,可做相对运动,皮肤作为单一网格蒙在骨骼之外,决定角色的外观。皮肤网格 每一个顶点都会受到骨骼的影响,从而实现完美的动画. 6.现在的显卡已经可以每秒渲染上千万个三角形以上(而一般的游戏场景也就几万个三角 形),而已已经有了很多自动的显示剪裁,是否意味着使用 BSP 或其他优化方法组织场景数 据已经没有必要了?为什么? 不是。MMORPG 一个特别重要的问题就是同步,如果不使用优化方法组织场景数据,减轻 计算负荷,在数据访问量过大时,可能会造成服务响应命令延迟的问题,从而造成玩家异步, 严重损害网络游戏的可玩性。在时效与技术允许的情况下,依赖硬件处理的思想都不值得提 倡。 7.使用硬件支持的 D3D 灯光有什么优点和缺点,好的 3D 引擎一般用什么方法弥补这种缺 点?
硬件支持的 D3D 灯光使游戏逼真,渲染速度快,效果显著.但并非所有的硬件都支持 D3D 灯 光。游戏引擎必须检测显示卡是否支持 D3D 灯光以决定是否依赖硬件抽象层(HAL)来完成 这个渲染工作. 8.GF4 MX 系列与 GF4 TI 系列显卡有什么不同点?这些不同有什么作用? GF4 TI 是先进的硬件显示卡,性能好,价格高,完全支持 DX8.1,有灯光效果和动态模糊等特 效; GF4 MX 不支持 DX8.1,渲染的图形质量没 GF4 TI 系列高,逼真度较低。 这个不同将导致 3D 程序员不得不考虑是否使用 DX8 里的一些已经不继续更新的内容,比如 DirectShow 等以及一些特殊动态链接库的使用问题. 4:写出四元数 Q(0.3,0.7,0.8,0.9)的共轭() 5:渲染管道流程() A: 输入组装->顶点->图元->像素->。 B:输入组装->顶点->像素->图元->。 C:输入组装->图元->顶点->像素->。 6:pix 渲染时进行的光照计算() 7:渲染管道 pix 时采用硬件光照不会进行() A: 光照计算。 B:雾化计算。 C:阴影计算。 D:以上都会进行。 填空题: 1,写出 float a 与 0 比较() 2,写出返回值为 float,输入参数为 int 的函数的指针表达() 3,class A,要 set合法,写出 A 的定义()
收藏