VR游戏开发面试对于哪些行业老鸟来说自然没有什么困难,但是对于一个职场新手来说还是有一定难度的,加上面试的紧张分为很可能造成面试官即使提问的问题我们知道也回答不出来的情况,那么面试准备对于职场新手来说是必不可少的,今天就让我们来看看哪些VR游戏开发的常见面试题有哪些。
1.请描述游戏动画有哪几种,以及其原理
主要有关节动画、单一网格模型动画(关键帧动画)、骨骼动画。关节动画把角色分成若干独立部分,一个部分对应一个网格模型,部分的动画连接成一个整体的动画,角色比较灵活Quake2中使用了这种动画。单一网络模型动画由一个完整的网格模型构成,在动画序列的关键帧里记录各个顶点的原位置及其改变量,然后插值运算实现动画效果,角色动画较真实。骨骼动画,广泛应用的动画方式,集成了以上两个方式的优点,骨骼按角色特点组成一定的层次结构,由关节相连,可做相对运动,皮肤作为单一网格蒙在骨骼之外,决定角色的外观。皮肤网格每一个顶点都会受到骨骼的影响,从而实现完美的动画。
2.alpha blend 工作原理
实际显示颜色 = 前景颜色*Alpha/255 + 背景颜色*(255-Alpha)/255
3.写光照计算中的diffuse的计算公式
实际光照强度 I= 环境光(Iambient) + 漫反射光(Idiffuse) + 镜面高光(Ispecular);环境光:Iambient= Aintensity* Acolor; (Aintensity表示环境光强度,Acolor表示环境光颜色);漫反射光:Idiffuse = Dintensity*Dcolor*N.L;(Dintensity表示漫反射强度,Dcolor表示漫反射光颜色,N为该点的法向量,L为光源向量)镜面反射光:Ispecular = Sintensity*Scolor*(R.V)^n;(Sintensity表示镜面光照强度,Scolor表示镜面光颜色,R为光的反射向量,V为观察者向量,n称为镜面光指数)
4.lod是什么,优缺点是什么
LOD技术即Levels of Detail的简称,意为多细节层次。LOD技术指根据物体模型的节点在显示环境中所处的位置和重要度,决定物体渲染的资源分配,降低非重要物体的面数和细节度,从而获得高效率的渲染运算。
优点:可根据距离动态地选择渲染不同细节的模型;
缺点:加重美工的负担,要准备不同细节的同一模型,同样的会稍微增加游戏的容量。
5.Vertex Shader是什么,怎么计算?
顶点着色器是一段执行在GPU上的程序,用来取代fixed pipeline中的transformation和lighting,Vertex Shader主要操作顶点。
Vertex Shader对输入顶点完成了从local space到homogeneous space(齐次空间)的变换过程,homogeneous space即projection space的下一个space。在这其间共有world transformation, view transformation和projection transformation及lighting几个过程。
6.MipMap是什么?作用有哪些?
在三维计算机图形的贴图渲染中有一个常用的技术被称为Mipmapping。为了加快渲染速度和减少图像锯齿,贴图被处理成由一系列被预先计算和优化过的图片组成的文件,这样的贴图被称为 MIP map 或者 mipmap。
7.用[color=rgb(85, 85, 85) !important]u3d实现2d游戏,有几种方式?
(1)利用引擎自带的GUI
(2)把摄像机设为Orthographic,用面片作为2d元素
(3)利用第三方插件:NGUI、2dToolkit
8.u3d中碰撞器和触发器的区别?
collider碰撞器会有碰撞的效果,IsTrigger = false,可以调用OnCollisionEnter/Stay/Exit函数
trigger触发器没有碰撞效果,isTrigger = true,可以调用OnTriggerEnter/stay/exit函数
9.物体发生碰撞的必要条件
物体A必须带有(collider+rigidbody)或者CharacterController,另一个物体也必须至少带有collider
10.CharacterController和Rigidbody的区别
Rigidbody具有完全真实物理的特性,而CharacterController可以说是受限的Rigidbody,具有一定的物理效果但不是完全真实的。
11.U3D中,几种施加力的方式,描述出来
rigidbody.AddForce/AddForceAtPosition,都是rigidbody的成员函数
14. 什么叫做链条关节
Hinge Joint ,他可以模拟两个物体间用一根链条连接在一起的情况,能保持两个物体在一个固定距离内部相互移动而不产生作用力,但是达到固定距离后就会产生拉力。
15.物理更新一般在哪个系统函数里?
FixedUpdate,每固定帧绘制时执行一次,和update不 同的是FixedUpdate是渲染帧执行,如果你的渲染效率低下的时候FixedUpdate调用次数就会跟着下降。FixedUpdate比较适用于 物理引擎的计算,因为是跟每帧渲染有关。Update就比较适合做控制。
16.移动相机动作在哪个函数里,为什么在这个函数里。
LateUpdate,,是在所有update结束后才调,比较适合用于命令脚本的执行。官网上例子是摄像机的跟随,都是在所有update操作完才跟进摄像机,不然就有可能出现摄像机已经推进了,但是视角里还未有角色的空帧出现。
17.当游戏中需要频繁创建一个物体对象时,我们需要怎么做来节省内存。
做一个pool,游戏开始时预先实例化足够的数量,然后用的时候取不用的时候收回
18.一个场景放置多个camera并同时处于活动状态,会发生什么
实际看到的画面由多个camera的画面组成,由depth、Clear Flag、Culling Mask都会影响最终合成效果。
19.简述prefab的用处和环境
在游戏运行时实例化,prefab相当于一个模版,对你已有的素材、脚本、参数做一个默认配置,以便于以后修改,同时prefab打包的内容简化了导出的操作,便于团队的交流。
VR游戏开发面试对于哪些行业老鸟来说自然没有什么困难,但是对于一个职场新手来说还是有一定难度的,加上面试的紧张分为很可能造成面试官即使提问的问题我们知道也回答不出来的情况【阅读全文】