渣渣的腾讯秋招面经,游戏研发方向,希望能帮助到大家!
昨天签约的。参加是这次的校招,岗位是PC客户端开发,录取BG是IEG,录取的工作室是天美工作室,唯一不足的地方就是腾讯给的白菜价。下面是我的整个面试经过和经验,希望给有志于游戏开发方向的同学一点帮助。
9月21日,初试(一面),整个过程60分钟左右:
1.自我介绍,由于楼主主要搞游戏开发这方面的东西,一上来就介绍了我自己的游戏开发编程经历,面试官也是搞游戏开发的。
2.C++基础。面试官主要问了这些问题:C++中的cast(4个cast,const_cast,dynamic,reinterpret,static);虚析构函数;构造函数调用虚函数;虚继承;
虚函数是怎么实现的等,都是C++的一些基础问题。
3.算法。链表逆置;实现一个栈,使得push,pop和min()的时间复杂度是O(1),我用的是链表,可以用牛客上的空间换时间(两个栈);手写归并排序;一个很简单的智力题(一个桶装满10斤油,另外有一个能装3斤油的空桶和一个能装7斤油的空桶。试用这三个桶把10斤油平分为两份);
4.DirectX,楼主自己对directx比较熟悉,而且封装过directx sdk,然后面试官也很感兴趣,就问了我几个directx的问题:世界空间和模型空间有什么区别?怎样把物体的法线从模型空间中转换到世界空间中(利用世界矩阵的逆转置矩阵)?光照在哪里计算(很多地方,比如世界空间,相机空间或者tangent space);什么是法线贴图?什么是multirender?msaa发生在什么阶段?
5.图形学方面的东西。楼主介绍了自己做过的一些shader。先后介绍了shadowmap(阴影贴图),详细讲解了算法,主要是光源坐标系的矩阵简历,面试官问了光源坐标系深度和帧缓冲的深度,软阴影和硬阴影的问题。然后介绍了我自己做的一个demo,主要实现了水面,面试官问了一下反射和折射的问题,菲涅尔效应(这个demo实现了菲涅尔效应),水面的波动(噪音纹理来干涉纹理坐标即可)等。
6.面试官问了接下来的我的方向和发展问题:楼主主要讲了再努力完善渲染方面的东西,然后学习游戏引擎u3d(楼主学过u3d,但是并没有讲,怕面试官问问题),dx11等。
9月23日上午,复试(二面),整个过程25-30分钟左右。
1.自我介绍,二面面试官看起来很严厉,问题不难,但是感觉有一点压力。
2.C++基础。智能指针(shared_ptr,unique_ptr,weak_ptr和auo_tr);C++内存模型,栈和堆的区别,栈和堆是怎么实现的;lambda表达式;extern "C"的作用;虚函数的覆写;函数重载等。
3.手写快排。
4.多线程问题(我说了我用C++写过的简单服务器,监听套接字监听访问,然后创建套接字,子线程对话,临界区和互斥变量)。
5.详细介绍3D流水线。vertexshader(mvp矩阵)->光栅化阶段(裁剪空间,背面剔除和透视矫正插值)->pixelshader->(alpha测试,模板测试和深度测试等),楼主主要讲了透视投影(裁剪空间和透视除法),透视矫正插值。面试官问了alpha blend发生在哪个阶段。
6.shader。面试官就问了我hdr是什么,怎么实现的hdr,算法。还问了知不知道pbr,楼主了解过什么是pbr,但是搞的不多,就没敢继续说下午,面试官也就没问了。
7.楼主自己做过很多小游戏,这次带了电脑过去,给面试官看了自己做的游戏,面试官了看了一眼,就问了骨骼动画,其他都没问。然后说面试官说你的情况我大致了解了,让回去等消息。
9月23日下午,HR(面试),整个过程20分钟。
HR面试就问了家庭问题,工作地点,兴趣爱好,成就等等。自己是什么情况,如实回答就好。
感受:一面和二面的面试官感觉很年轻,还是有一定的压力;由于楼主偏向游戏开发,面试官问了很多游戏开发的问题,很多基础比如计算机网络,操作系统,数据库都没问。
希望上面的东西能帮助到大家,能尽快拿到心仪的offer!