访谈内容
背景
我是一所比较不知名的211大学的学生,目前是大三学生,专业是计算机科学与技术可视化,比较适合面试,同时自学了UE4引擎,做过一些小项目。
这次面试的部门Photon Studio也比较多使用UE4;
【一边】
UE4部分:
为什么选择 UE4,而不是 Unity
一些常见的类别
棋子 和 角色 有啥区别?
UE4蓝图与C++如何互相调用(宏)
网格动画的原理(骨骼、蒙皮、权重等)
动画蒙太奇介绍
运行时生成对象的函数是什么?
图形:
整个渲染管道
刚才说深度测试放在最后,是不是放在别的地方了?(这个问题我回答不了,面试官说跟移动端什么的有关系。)
实时阴影的原理与算法
如何求矩阵的逆(ORZ不知道)
主要讲了很多我自己的项目
项目中主要用到的方法是否是C++或者Blueprint?
你能告诉我如何在《动物之森》中实现 3D 地形吗?
(好像问的是一些数值驱动,但我不太明白)
IK运动学(刚才说是用了UE4的预览的这个功能,不知道内部具体实现)
C++
多态是如何实现的?(讲了虚表指针,虚表,以及运行时地址确定,看来面试官不太满意。)
虚拟表何时生成(编译时)
内联标识符的作用
算法
如何获取链表中倒数第 k 个数字
给定一个圆心为 (0, 0) 半径为 R 的圆,给出圆内的一个随机点
快速排序的最坏情况时间复杂度是多少?
【第二面】
C++与算法:
多态实现
关于虚拟析构函数的问题
堆和栈的区别
寄存器维护堆或栈
让我们讨论一下智能指针
宏(预编译)和 const(编译)在哪个阶段进行处理?

如何判断链表是否有循环(我说用快慢双指针,然后让我说另外一种方法,提示可以使用额外的内存空间)
让我们谈谈超载
图形:
渲染管道
opengl 中的缓冲区是什么?
让我们来谈谈法线贴图。它们有什么用处?它们是用在顶点着色器还是片段着色器中?
(其他的我忘了)
虚幻引擎4:
Pawn和Actor的区别;
我创建了一个uobject对象,如果没有其他引用,怎么保证它不会被垃圾回收?(根据提示,原来是用UPROERTY宏来标记,可以不被垃圾回收,然后问还有没有其他方法,我还真不知道,他问我怎么用umg,说到add to perspective,他说这个可以用来把引用放到根节点,这样就不会被垃圾回收了。)
我自己做了一个类,没有继承自uobject,请问如何使用UE4自带的垃圾回收机制?(这个我真的不懂)
ActorComponent 和 SceneComponent 的区别
我们如何维护actor内部的层级关系:(SetupAttachment维护了组件之间子类与父类的关系,它的底层方法是调用SetAttachParent(InParent);actor之间则是attachActorToActor)
我们来谈谈动画蒙太奇吧(balabalabala)
让我们讨论一下混合动画(例如混合姿势、两组动作、哪一个更适合作为基本姿势等)
请解释如何创建和销毁 uobject 和 Aactor(生成演员:spawnActor,生成对象:NewObject();销毁演员:destroyActor,销毁对象:conditionalBeginDestroy)
【三面】
第三次面试前真的很紧张,前一天晚上都没睡好,网上说第三次面试很难,不得不说腾讯的面试官人很好,自我介绍完之后就没那么紧张了,哈哈哈
第三轮面试主要是聊聊天,问技术问题,不过我还没到那个水平,也不知道怎么用(原来应届毕业生的水平就停留在会用这个水平,哈哈哈)。问的问题都是主观的,没有标准答案。问题如下:
1.为什么选择UE4?当时的考虑是什么?(这个应该是面试官想知道的)
2. 你学习UE4多久了?
3. 您如何看待自己未来的职业规划?您更喜欢做商业游戏还是做自己理想中的游戏?
4.什么是Shadowmap?
5.你听说过culling吗?是在哪一步进行的?知道culling是用什么算法实现的吗?(不知道最后是怎么实现的)
6.你对UE4底层了解多少?(我说的是UE4自己实现了内存回收和反射功能)
7. 能解释一下内存回收过程吗?对于一款中型游戏来说,回收一次内存需要多长时间?能猜一下吗?(我猜不止一帧,他说会卡死游戏?)
8.说项目,问一开始项目方向怎么确定的,然后人员结构。然后自我介绍的时候带了这个项目参加腾讯比赛复试没通过,总结原因
然后就聊了一下我最近在玩什么游戏,有什么兴趣爱好,然后他问我对腾讯游戏的评价,又给我介绍了他们工作室的一些情况,然后就聊了起来。
【HR面试】
HR面试官主要问了我的职业规划,为什么选择腾讯之类的,总之跟技术关系不大,所以我就正常回答了,这里就不贴了。
总结 1.其实可以发现对应届毕业生的要求真的不是很高,来回一查,C++是会考的,必须有数据结构和算法的基础,感觉有项目是很大的加分项。
2、当然,我面试的职位基本跟我的简历各方面都匹配,你可以看一下要求:
我按照这个要求写了简历,可以说我的技能比较符合 Photon Studio 的要求,面试的时候感觉问的问题跟我了解的领域很相关,所以总体来说很顺利(感觉主要是对 UE4 引擎的兼容性比较好,毕竟 Photon 需要懂 UE4 的人)
3. 不得不说腾讯的面试官人很好,遇到卡住的地方会一步步指导,而且不会太紧张
4.其实面试前我做了很多准备,包括看牛客题目,学图形等等,充分的准备是必须的
5.我会在过程中表达出我有多热爱这项运动,毕竟激情驱使你去做事,远比安排事情给你做更能激发你的潜力;
6.相信自己,发现无限的可能性!
文|牛客网:宠爱与崇拜





























