介绍下自己,双非二本,大二暑期有过一个月实习经历,做过联网项目,做过剧情类项目
去腾讯面试最初就是看看自己够不够格去实习
- 5.07 云证
- 5.11 oc
以下是时间线
魔方
魔术师工作室
3.19 一面(120mins)
c++
- struct和union区别?
- 指针和引用的区别?
- 左值和右值?
- 字节对齐的作用?
- 什么情况下需要自定义new?
- malloc和new的区别?
- 析构函数声明为虚函数有什么好处?虚函数放在内存中的哪个地方?(后面哪次面试也问到这个问题)
- 抽象类和接口类的区别?
- 多态的实现?
- 内联函数?
- 动态链接和静态链接区别?
- 野指针?悬空指针?
Unity
- 知道AssetBuddle吗?AB是如何工作的?
- 知道Lua吗?Lua的基本类型?(问的时候没详细用过Lua,于是答知道一点Lua热更的基本原理,然后简单说了一下,面试官点了点头)
- 有美术资源优化的经验吗?
- 图集使用过吗?Unity是怎么打包图集的?打包的格式了解吗?(Master图集没实际用过,处于口嗨阶段)
- 动态合批的规则?Unity怎么动态合批?(答得不是很好,后来了解到是Texture ID和Material ID以及渲染顺序那一块影响渲染队列,然后影响合批顺序)
- UI合批的最小单元和理解?
- 怎么理解Editor编辑器?
- 序列化和反序列化?
- .Net和Unity的区别?(硬扯皮Unity的编译过程C#和MonoBehviour编译成IL那一部分,感觉面试官对我的回答还行?)
- Resources文件夹的作用?
- meta文件?meta丢失怎么做?
操作系统
- 进程和线程?区别?
- 物理内存和虚拟内存?虚拟内存如何实现的?分页?
计算机网络
- TCP和UDP区别?
- TCP拥塞控制?
计算机图形学
- 光栅化?
- 说下可编程渲染管线?
- 说下固定渲染管线?之间的区别?
项目
- 遇到了什么问题?如何解决的?
- 项目中联网部分逻辑交互是怎么做的?
- 用过哪些设计模式?如何用的?
代码部分
- 说下快排原理并且手撕(15mins)
其他
什么时候能实习?喜欢玩游戏吗?
考研吗?为什么不考研?
反问工作室的氛围?
我喜欢什么类型的游戏?比如?这里聊到了面试官也喜欢黑魂游戏?问我鬼泣5和黑魂的区别在什么地方?
工作室是喜欢做赚钱的游戏还是喜欢做喜欢的游戏?(面试官说你这个问题有点刁钻(心中:怎么提个憨批问题,我一定不能讲实话))
面试体验最好的一场,虽然有时我说话有点不利索,但基本都是面试官仔细听我的回答并且给予我肯定
3.24 二面(110mins)
C++
- 左值和右值?左值引用和右值引用?
- 虚函数是怎么实现多态的?虚函数表存放的形式和位置?
Unity
- 如何在UI上显示3D模型?
- 如何在UI上显示粒子效果?(答了用新Camera单独照3D模型然后摄像机画面混在一起)假如UI会同时显示10个,并且彼此独立怎么做?Unity的层序顺序讲一下?
- PBR了解吗,说一下?(硬扯高光和Blinn Phong一些概念)用过URP吗?
线性代数
- 点乘和叉乘?
- 矩阵如何求逆?被面试官怼这是数学的做法
计算机图形学
- 怎么判断空间内三角形和射线是否有交点?(后续才知道Möller-Trumbore算法)
- 说下渲染管线?介绍下每个步骤?
代码部分(60mins)
- 个人觉得是七面中考的最多的算法面试题了,直接三道动态规划算法题
- 如何选取4个砝码的重量能够在天平上称起1~40克的物体?(口述)一开始不理解题目,面试官讲了几分钟,后面才提醒要用动态规划的思想...
- 手撕无序n个元素取k个最大值(n很大,k很小),不改变顺序删这些元素(建堆)
- 手撕Leetcode最大连续子元素和(力扣难度简单)
- 手撕Leetcode.332 零钱兑换变种题(力扣难度中等,刚好之前做过说了下简单思路然后上手)
反问
- 工作室是做什么的?怎么学好图形学?
3.26 三面(60mins)
C++
- 字节对齐的作用?(一面也问到了)
- dynamic_cast作用和使用场景?
C#和Unity
- 说下GC?垃圾回收原理是什么?怎么减少内存泄漏?怎么优化gc?如果第一次gc后内存还是不够呢,会怎么做?以为不是问分代回收策略,直接乱说了,面试官直接说我不理解gc(脑阔疼)
- UI适配?适配不同的手机?刘海屏和曲面屏?因为没做过手游,所以面试官说我方法不行,我怀疑你在为难我胖虎
- 知道哪些Unity的优化方式?
- NGUI和UGUI区别和使用?
计算机图形学
- 空间中已知入射光线和法线求反射光线?
- 做过哪些图形学项目?被质疑:你这是课程作业么?
代码部分
- 手撕字符计数压缩和合并有序链表(对应Leetcode简单难度,六七分钟两道题就做出来了)
- 手撕rand(1,7)实现rand(10),要求等概率均匀分布。只知道rand(a,b)怎么用rand(0,1)实现,所以直接说不会
反问
- 我这是三面么,这是最后一面么?面试官突然诧异,原来我在面三面,对的是最后一面,当晚直接流程灰了
体验最差的一场,面试官那边网络不好并且有同事说脏话的声音传过来,而且我写的是熟悉C++结果一直问C#(那时还没补起来)
魔镜工作室(前台开发)
没错,又是魔方 换个工作室捞起来再面
3.31 一面(40mins)
自我介绍
问了学校问题
项目介绍和在项目中担任的角色工作是什么?遇到哪些问题,如何解决的?
听我吹水建模比赛
说一下A*算法的原理?启发函数怎么算?
反问
- 为什么不问我C++?(因为问题实在是太水了,我怕面试要求低,把我拉过去干苦力)面试官说前面的面试官问过我C++了,说我C++和数学还可以,才知道有面试评价这个东西...
- 项目用什么引擎?在UE4做大世界项目
4.02 二面(30mins)
实习经历
- 之前实习做了啥?项目用的UDP还是TCP?理由?
期间二面结果等了四到五天灰了...
接着就是正式批阶段了
光子
4.21 一面(40mins)
C++
- 如何学习c++?是系统学过吗?
- c++11之后有了解么?
- 左值和右值?左值引用和右值引用?
- 移动拷贝作用和使用场景?Vector3类需不需要有移动拷贝函数?什么情况下需要
- 栈和堆的区别?为什么栈比堆高效?
- 虚函数原理和机制?虚函数表存放位置?
项目
- 项目中遇到的问题和做法?
代码部分
- 给了个带虚函数的类进行代码分析
- 手撕洗牌算法,并且验证等概率随机
反问
- 如何学好图形学?面试官说,英文好的话 直接看Real Time Render,不够好的话,就看LearnOpengl或games101(顺嘴提了一句,这些广度够了,但深度不够,alright面试官是个大佬无疑了)
4.30 二面(40mins)
数据结构
- 判断链表有环?你讲到哈希表,说说原理和使用场景?哈希冲突的两种解决方法和优缺?
线性代数
- 点乘和叉乘的数学意义和区别?
Unity
- FixedUpdate?Unity生命周期?
- material和sharedmaterial的区别?
计算机图形学
- 法线贴图原理?在哪个着色器做?
- shadowmapping原理?
项目
- 项目中为什么用UDP?乱序问题怎么解决?(突然想起用的是TCP...)
其他
你觉得你是什么性格的人?为什么大二选择实习?
喜欢玩游戏吗?玩什么游戏?
5.06 hr面(30mins)
- 你最喜欢的3A游戏是什么?(因为自我介绍说我想做3A游戏所以被反问)
实习
- 实习做了哪些事?有什么收获?
项目
- 遇到什么技术的问题?如何发现问题并解决的?
- 项目之间你感受的差异是什么?
意愿
- 为什么想来腾讯?来腾讯能学到什么?(想实现梦想,做3A游戏!)
其他
- 说说你对笔试的感受?(很惭愧说,笔试发挥的不是很好,有些题目意思理解不清楚)
- 现阶段是想考研还是找工作?
题外话
网易雷火(引擎开发)
5.09 一面(60mins)
不得不说网易效率不如腾讯高,4.22号的笔试处理完后,过了快两周多才约面
- 上来第一个问题,有没有做过渲染方面的东西(本来想走的就是客户端,可能手误投了引擎,直接说没做过)
C++
- move函数和用处?移动拷贝?拷贝构造的小例子判断是拷贝构造还是赋值运算?
- 给个例子判断占用字节?
- 一个C++的代码例子说说结果是什么?
- const的定值和定向问题?
- static的作用?
- 内联函数的作用?
操作系统
- 说下大小端模式?(直接把如何判定和用处说了下)
- 字节对齐作用?
- 数组for a for b data[a][b]和for a for b data[b][a]哪个高效?(说了一维数组元素地址连续访问缓存命中问题)
数学
- 点乘与叉乘的数学意义和区别?
- 在xy坐标系上的点坐标如何转成uv坐标系?
- 4乘4矩阵变换的作用?如果不让平移矩阵方便表示怎么做,怎么转换?
- exp ln 实现 power(x, y) (不会,甚至看不懂符号,后面才发现是一些shader方面的符号)
计算机图形学
- 顶点着色器和片元着色器是否一一对应?
- 裁剪空间的作用?怎么变换的?
渲染
- alpha test和alpha blend说一下(all right 不会...)
- mipmap了解吗?(说了减少CPU渲染压力,增大内存占用,被面试官问 除了这个还知道什么吗(可能是想问具体算法怎么实现的?))
反问
- 主要用什么语言(C++、C#)
- 面试过程因为设备不好,并且腾讯那边已经云证,所以没有什么太大的兴趣继续提问了
总结
- 自从去年9月后,发誓要进游戏行业,不停的看C++、计网、Unity、shader、闫老的games101,虽然累,但是有时也会觉得自己学到了东西
- 给自己总结一下好了,腾讯面试会很深挖基础知识,图形学的面试题有些都是偏实际的(之前没有了解过,所以吃了个大亏- -),边面边看面经边做Unity手游项目,一遍感叹自己如此之菜,幸得一些面试官对我的肯定,也算给自己一个比较好的慰藉