快手游戏图形一面凉经
211硕,计算机科班,面试时间整整一小时,嘴都说干了,整体难度不大,问的全都是其他面经里问的内容
一开始问的C++
上来先手写一个拷贝构造函数,要求这个类有2个成员变量,int和char *;写完之后面试官提醒深浅拷贝,然后把char指针的拷贝改为深度拷贝,这里提醒char指针通常用来存储字符串,需要读取字符串长度,这里我手写的方法,在判断指针到字符串尾部的时候我写成了(*c)=='\n',这里面试官提醒了应该是'\0',这里确实紧张给忘了,然后顺带问我\n是什么意思,2333,然后就是使用new[]分配内存,然后调用strcpy拷贝字符串内容。
内存对齐,这个类中有int和char*占多少内存,那如果加上一个虚函数呢
哪些函数不能用虚函数
析构函数需要用成虚函数吗
虚拟内存的作用,这里只说了原理是分页存储,因为内存不够所以使用虚拟内存,记不清楚了
三种智能指针
如何实现共享指针(这里引用计数答得不对之前看了给忘了,我说用static,面试官说这样不对)
内存分区,哪些是在栈上
对象的初始化方法,这里我说的构造函数,然后说的拷贝构造和移动构造,记不清了
B树和B+树(这里真难受,昨天在看这东西,以为不会问结果问了,就只说了B+树在叶子节点上有个串联起来的链表)
十大排序(这个昨天也在看,结果问哪些是稳定和不稳定的,我记不清楚了,然后让我说稳定性是怎么判断的)他们想要显示一个榜单,也就是前100名,需要排序的数据很多,问应该怎么排序(我只记得大数排序是用归并排序)但前100没想起来
然后是图形学
详细说一下渲染管线,越详细越好(这里我在说MVP矩阵推导的时候面试官打断我说详细推导放在后面,先说过程)
alphatest在哪个阶段
模板测试在哪个阶段
BVH加速结构,对场景中的物体怎么划分的(这里我说的是按照xyz轴进行划分,面试官说那如果所有的物体全都在x轴上呢,这里我临场发挥的。。。我说把他们的x坐标给加上去,面试官好像算我对了其实我也不知道怎么处理,感觉这样应该对吧)
说一下msaa
延迟渲染
延迟渲染能不能使用msaa
然后是一道简单的手撕算法题:给一个链表,把他的偶数下标和奇数下标分别放在链表的前面和后面
希望给二面,
已挂
#面经##面经快手##游戏##图形学#