(部分考题存在重合,会标上重复次数)
(试卷偏多,未整理完)
1、(1)头戴显示器是怎样让用户看到立体3D图像的?
利用了双眼视觉,每只眼睛由于瞳孔间距而看到略有不同的图像,产生了对深度的感知。通过为每只眼睛显示不同的图像,模拟了深度感知,创建了3D图像。
(2)什么是四重缓冲?
使用了四个缓冲区而非传统的双缓冲,通过给每只眼睛分配两个缓冲区(前缓冲区负责显示图像,后缓冲区负责喧嚷下一张图像),创建了平滑的过渡并减少了闪烁。
(3)为什么视场角对这些设备非常重要?
因为视场角定义了“给定时刻可观测到的世界范围”。
更大的视场角可以提供更身临其境的体验,使人们感觉虚拟环境更广阔、真是。
而较窄的视场角则会导致“隧道视野”效果,破坏沉浸感,并有可能引起不适。
2、三刺激理论是什么?
也称为“三色视觉理论”,阐述了人类通过视网膜中的三种视锥细胞来感知颜色。
这些视锥细胞分别对不同波长的光敏感:短波(对蓝色敏感,S锥细胞)、中波(对绿色敏感,M锥细胞)、长波(对红色敏感,L锥细胞)。不同组合的信号响应能使大脑能感知到广泛的颜色。
3、在AR(增强现实显示)中,为什么RGBA颜色空间的Alpha通道如此重要?
在RGBA颜色空间中,Alpha通道表示颜色的透明度。在AR中,虚拟对象能否自然地融进现实世界取决于虚拟元素的透明程度。调整Alpha值能帮助AR达到更好的虚拟现实融合效果。
4、光线追踪是什么?是如何生成计算机图形的?
定义:是一种模拟了光与物体的交互以生成高逼真图像的渲染技术。
生成方式:从眼睛(也就是相机)开始沿着每个像素追踪光线进入场景的路径,并确定光线遇到的物体,然后通过考虑光照、阴影、反射、折射等光学效果来计算像素的颜色,从而实现详细且逼真的视觉效果。
5、混合渲染是什么?
结合了传统的光栅化、光线追踪技术各自的优势,可在不影响性能的情况下提高视觉质量。
具体操作:对于场景的大部分实时渲染,用光栅化,因为速度快且效率高。而对于反射、折射、全局照明等需要更精确的光照计算的特效,则采用光线追踪技术。
6、硬件加速的光线追踪技术如何改变计算机图形?
提升了光线追踪算法的计算力,使先前仅能在预渲染中实现的光照、阴影、反射等效果可在实时应用程序中实现。为创造出身临其境的实时互动体验开辟了新的可能性。
7、CMYK颜色空间是什么?
是一种用于彩色印刷的减色模型。CMYK分别代表青色(Cyan)、品红色(Magenta)、黄色(Yellow)和关键色(黑色,Key)。
该模型通过按照不同比例组合这四种颜色来产生广泛的颜色范围。"Key"成分(黑色)用于增强对比度和深度,这是仅混合三种原色无法实现的。
8、Phong光照模型是什么?【未编辑完,还在理解Phong光照模型的公式】
是用于模拟光与表面交互的一种反射模型。它主要包括3部分:环境光、漫反射、镜面反射。
- 环境光:是来自各个方向的均匀散射光。提供了一个基本的照明水平,以确保即使没有直接光线照射,物体也能被看见。
- 漫反射:能模拟光线撞击粗糙表面后向各个方向散射的情况。漫反射的强度与光源方向和表面法线之间角度的余弦成正比,遵循朗伯余弦定律。
- 镜面反射:表示出现在光滑表面上的亮点。镜面反射依赖于观察者的位置、表面法线和入射光的方向。强度通常使用Phong镜面反射公式进行建模,通过将反射光方向与观察者方向之间角度的余弦提升到一定幂次(称为光泽系数)来控制高光的大小。
9、如何使用、为何使用表面法线和眼睛位置来计算镜面反射?【未编辑完,还在理解Phong光照模型的公式】
如何使用:通过表面法线向量得到反射光向量,再通过眼睛(或相机)相对于表面的位置用于确定观察者方向与反射光方向之间的角度。
为何使用:用于通过【公式】计算镜面反射。角度越小,镜面反射的高光越亮。(垂直于表面射入,则镜面反射高光最亮。)
10、模态界面和非模态界面有什么区别?
区别在于:弹出特定窗口或对话框时,模态界面会阻止用于与应用程序的其他部分进行交互,而非模态界面则不会阻止。
例子:模态界面--word的确认保存弹窗,需要用户点击对话框的“确认”或“取消/关闭”后,才能与word的其他部分交互。非模态界面--用户可以同时开多个网页并分屏,允许多任务处理,并使工作流程更加顺畅
11、以一个视频游戏的菜单为例,用画图和描述来解释这个控件的视觉层次结构。
图例:
主菜单
|---->游戏开始
| |--->新游戏
| |--->加载存档
| |--->多玩家模式
|---->设置
| |--->声音
| |--->画面
| |--->控制
|---->退出游戏
解释:
视频游戏菜单这类控件的视觉层次往往遵循父子关系。主菜单是父节点,子菜单和项目是子节点。其中,“主菜单”是最高级的父节点;“游戏开始”“设置”“退出”是用户可使用的主要选项;“游戏开始”和“设置”分别具有“新游戏”“加载存档”“多玩家模式”“声音”“画面”“控制”等子选项。
12、举一个电脑游戏中涉及事件循环的例子,阐释如何用事件循环创建非模态界面?
电脑游戏的例子:
while game_is_running:
handle_input() // 处理用户输入(键盘、鼠标)
update_game_state() // 更新游戏状态(物理、AI等)
render_frame() // 绘制并渲染当前的帧
在这个例子中,三个函数分别用于响应输入、更新世界、渲染图形,从而向用户提供无缝衔接的画面体验。
13、(1)什么是逆运动学?
是一种用于确定机器人动画所需的末端执行器的位置和关节参数的方法。通过从终点向后计算(比如手或脚为终点),来确定能实现该位置所需的关节位置和角度是多少。
重要性:能指定机器人或角色所要摆出的姿势的具体位置,对于创建逼真且自然的运动非常重要。
(2)仿真是如何支持动画的?
仿真可以通过测试不同的运动、交互、物理力,来辅助动画师、开发人员去预测并可视化出动画对象在各种条件下的行为,使人们无需手动去调整每一帧。既节省了时间,也确保了动画一致性和真实感。
14、OpenGL中的glPush()、glPop()方法是如何应用于动画制作中的?
glPush()用于保存当前的矩阵状态,它可将当前的变换状态保存至一个栈中,继而对场景的特定部分应用特定变换(比如平移、旋转、缩放)。
glPop()用于恢复当前的矩阵状态。往往是在应用完glPush()的变换后,用glPop()恢复回以前的变换状态。
这两个方法可以让多个对象或对象的特定部分进行独立运动,同时保持它们的相对位置和方向,这对于分层建模和动画制作而言十分重要。
15、为什么关节的自由度对动画制作来说很重要?
关节自由度(定义):关节可以独立地运动的数量。(比如沿不同周旋转、平移)
重要的原因:
- 关节自由度决定着角色或对象的运动范围、运动复杂性。 更高的自由度则意味着可以表现出细微的动作(比如弯曲、扭转、伸展),能制作出更逼真、更复杂的动画。
- 动画师可以通过了解各关节的自由度来模拟真实的物理行为和交互,使动画既合理又具表现力。
16、画家算法是什么?有什么用?在什么情况下会失效?
定义:是一种从远到近绘制并渲染场景的技术。通过把视野中的对象按照深度进行排序,再按从远到近的距离去绘制并渲染。
用处:像画家先画背景再画前景一样,确保较近的对象能显示在较远的对象前面。
失效的情况:
- 循环重叠:对象之间以非线性的顺序重叠了起来,使无法简单地通过深度排序来解决。
- 交叉的对象:对象之间相互交叉,无法确定“从后到前”的具体顺序。
- 大且复杂的场景:难以管理所有对象,以及对它们进行排序的计算代价过高。
17、深度缓冲区是如何在投影渲染中使用的?
使用方式:在投影渲染中,深度缓冲区(也叫“Z缓冲区”)存储着3D图形中的图像深度坐标。作用是正确地处理对象之间的遮挡关系。
具体阐释:深度缓冲区存储着每个像素到最近对象的距离,记为深度值。在渲染场景时,如果渲染的新对象的深度小于该像素深度缓冲区中记录的值,则像素更新为新对象的颜色和深度,否则就丢弃。(有点像最小生成树,比较最近距离,如果存在则更新,不存在则保留旧值)
18、“Alberti的窗口”这个概念指什么?
出处:是意大利文艺复兴时期建筑师和艺术家莱昂·巴蒂斯塔·阿尔贝蒂在他的著作《论绘画》中提出的概念。
含义:描述了一种在绘画中创造出透视的方法。将画布看作是一个透明窗口,把看某张画想象成是通过该窗口来观察窗外的场景。
意义:这个概念允许艺术家按照透视原则(比如使用消失点、汇聚线等),将三维世界准确地投射到二维表面上。
未完结。。。