4399面经(一面、二面、三面)
4399一面(技术面)
1.说说渲染管线
高频常问题
2.提到的测试一般有什么?
一般目前使用的测试是深度测试,用来测试物体各个顶点的z值,来判断物体是否有被遮挡,确保最前面的像素正确的显示在屏幕上。
还有模板测试,用来标记像素执行不同的操作,开启后像素会保存一个模板值,然后再次渲染时根据新的值和之前保存的值进行比较,根据结果可以进行绘制,剪切,标记等,可以做到如镜面反射,标记物体边框等。
3.Unity项目主要做了些什么?
4.项目里面的交互有什么?
5.讲讲c++的多态
编译时多态:虚函数
运行时多态:函数重载和模板
6.空类占多少内存?
1字节
7.什么会影响类的大小
虚函数表和非静态成员变量,虚函数表通常一个占4字节(64位为8字节)
8.字符串占多少字节
一个字符占一个字节,stl中的string不确定,32位vs中占28字节
9.有用过什么设计模式吗?
单例模式和装饰者模式
10.还有什么了解的设计模式
工厂模式、观察者模式、适配器模式、桥接模式、建造者模式、代理模式、责任链模式
11.Unity字典数据结构要是你来实现,你会怎么实现?
(没用过字典数据结构,面试官提示键值对后脑子一热说两个数组,结果面试官又问了一下查找才想到哈希表)
使用哈希表实现,通过将键映射到存储的位置来实现快速的查找插入和删除操作。
12.有哪些常见的排序?
13.Unity学了多久了?
14.Unity有什么性能优化的方法?
批处理和合并网格,将相邻网格合并,减少draw call的的调用数量。
使用LoD,根据距离的不同简化模型减少多边形和纹理,从而提高性能。
减少渲染复杂:如遮挡剔除,是椎体剔除等技术调高渲染效率。
优化代码,使用对象池避免频繁的内存分配。
减少分辨率和质量。
15.一共有三扇门,只有一扇门后有宝物,你现在选择了一扇门还没有打开,此时有人帮你开了一扇门发现后面没有宝物,请问你现在如果换另外一扇没开的门找到宝物的概率是否会变化?
会,并且会增加,换了以后的概率为2/3,不换为1/3。
初始情况下,你选择一扇门的概率为1/3,宝物在其中的概率也是1/3。然后,主持人打开了一扇没有宝物的门,这并不改变宝物实际所在的门,但它提供了额外的信息。
现在,你知道宝物不在主持人打开的那扇门后面,所以宝物可能在你最初选择的那扇门后面,或者另外一扇没有打开的门后面。
因此,如果你换另外一扇没有打开的门,你找到宝物的概率将变为2/3,而如果你坚持最初的选择,你找到宝物的概率仍然是1/3。所以换门会增加你找到宝物的机会。这个问题被称为蒙提霍尔问题(Monty Hall problem),它展示了概率推理中的一个有趣现象。
16.为什么要选这个岗位?
比较喜欢玩游戏,研究一些游戏制造的方法
17.还有什么兴趣爱好?
动画和音乐
18.喜欢健身吗?
19.你对加班的看法?
20.喜欢的玩的游戏类型?
21.有看黑神话的相关内容吗?有什么看法?
反问:
在做游戏项目的,要是有出现一些问题不知道怎么解决,然后上网搜索也没有发现一些好的解决方案怎么办?
回答:其实他们主要也是上网查,用ChatGPT,但是unity这个国内较为泛用的引擎还是比较好查到解决方案的。
之后就是我项目里的一些问题,和面试官聊了一下,他给了我一些解决方案。
二面为HR面,就不记录了
4399三面(主管面)
面试官比较和蔼,整体氛围还是很不错的,形式比较偏向于聊天,主要聊聊项目不会甩出很多特定的技术问题,一般是从你项目或者聊天内容引出的一些问题。
1.项目里最有挑战的地方
2.学校中学的比较好的课程
3.大学生活中最有成就感的事情
4.谈谈喜欢的游戏的技术点
5.将来的一个学习规划
6.实现一个随机算法,要求每次返回1-100中的一个数,每次都不重复,每个数返回的几率均等,并且每次只能使用一次random函数
实现:使用一个长度为100的数组,保存1-100这100个数,然后使用random随机下标,比如返回了50,则取出数组中下标为50的数与数组最后一个数进行交换,然后返回这个数。之后再次获取下标时则通过random随机0-98这99个数,然后将取出的这个数与倒数第二个数交换,以此类推。
面完挺久了,没有消息,也不知道是凉了还是怎么了。。。
#我的实习求职记录#