腾讯光子游戏引擎暑期实习一面凉经

投了之后捞的很快,共50min无手撕,面试官问的很刁钻,面完速挂。下面只记录我没答上来或者答的很烂的东西
cpp:
解释什么叫栈溢出?一般是怎么导致的。
你说了无限递归调用会爆栈,解释一下谁在占用栈空间?一个函数的函数体里使用new,这个函数无限递归,会发生什么?堆溢出是什么?怎么造成的?
vector是怎么扩容的?空vector大小是多少?
如何在一个装满元素的数组(非vector)后面添加新元素?可以直接构造吗?
dfs使用了什么数据结构?
图形学:
shadowmap的噪点是什么,怎么产生的?软阴影是如何采样的?
讲讲ibl的蒙特卡洛?

实际问的问题可能比这个多两到三倍,许多问的都忘了,整体很基础也很细节,但确实精准命中我的盲点。。。 #正在实习的碎碎念# #投递实习岗位前的准备# #牛客在线求职答疑中心#
全部评论
看来你在面试中遇到了一些挑战,不过没关系,面试失败是求职过程中的一部分。从你的描述来看,面试官主要关注了C++和图形学的基础知识。 对于C++的问题,栈溢出通常是由于在函数调用过程中,栈空间被耗尽导致的。无限递归调用就是一个常见的例子,因为每次递归调用都会在栈上创建一个新的活动记录,直到栈空间耗尽。在这种情况下,谁在占用栈空间并不明确,因为每个函数调用都会在栈上创建一个新的活动记录。如果一个函数的函数体里使用new,这个函数无限递归,可能会导致堆溢出,因为new操作会在堆上分配内存。堆溢出通常是由于在堆上分配了过多的内存,导致堆空间耗尽。 对于vector的问题,vector的扩容通常是通过重新分配内存来实现的。当vector的大小达到其容量时,它会分配一个更大的内存块,并将原有的元素复制到新的内存块中。空vector的大小通常是0。在一个装满元素的数组后面添加新元素,可以直接构造,但可能需要重新分配内存。 对于dfs的问题,dfs使用了栈这种数据结构。 对于图形学的问题,shadowmap的噪点是由于采样不足或采样不均匀导致的。软阴影是通过多次采样来减少噪点的。ibl的蒙特卡洛是一种用于模拟全局光照的技术,它通过在球面上随机采样来计算间接光照。 虽然这次面试可能没有达到你的预期,但这也是一个学习和成长的机会。你可以根据面试中遇到的问题,有针对性地复习和准备,提高自己的技能水平。加油!
4 回复
分享
发布于 03-28 19:00 此内容由AI生成
问下佬能具体说说问了啥其他的吗,(也投了引擎想参考一下😭)
1 回复
分享
发布于 03-29 02:54 四川
滴滴
校招火热招聘中
官网直投
shadowmap的噪点是指他的自遮挡现象吗
点赞 回复
分享
发布于 04-02 10:14 安徽
羡慕,我也想被光子面啊,挂了我都行
点赞 回复
分享
发布于 04-02 15:21 安徽
怀疑跟我是一个面试官,问题有点像
点赞 回复
分享
发布于 04-24 10:49 浙江

相关推荐

选择题和多选题,多选题占分还挺多,题量较少但都不算简单mipmap会增加多少显存消耗? 1/4+1/16+1/64.... ~= 1/3 (等比数列求和 n->无穷)指针delete两次的后果? 未定义的行为两个线程同时对vector的操作哪些是线程安全的?大概只有遍历?std::function能够存储什么? lambda函数,函数指针,仿函数functor,成员函数指针bind(这个平常没用过,没想出来)?还有吗?float和double都是科学计数法表示的吗?float和double能够表示32位和64位整数嘛?多项式贝塞尔曲线不能表示的集合元素  圆弧,双曲线,抛物线,直线延迟渲染的优点? 多光照pass,多几何数据源,减少光照计算次数,  缺点:高显存,不好算透明物体,抗锯齿兼容度不好#西山居游戏#两编程题, 额能用本地ideT1 给定一个圆和矩形的坐标,求两者是否相交  sdf + 扫描线检测T2 给定某个顶点在模型空间中的坐标,给出model,camera坐标和R,U,F世界空间方向,以及投影矩阵,求C++如何实现其转换到W H的屏幕坐标上nmd glm库不给用,得手写矩阵乘法和MVP矩阵变化,尝试了,但最后也没ac复查的问题:view视图矩阵计算错误(单位矩阵没初始化好...),左手坐标系Z+轴(应该是DX的NDC坐标系)下的屏幕空间裁剪有问题,当时记不清怎么弄轴向问题了。给的用例只有超出屏幕空间的像素返回{-1,-1},测试不清楚是否正确,懒得debug调试了。问答:渲染卡顿可能导致的原因,解决方案和定位手段
投递西山居等公司7个岗位
点赞 评论 收藏
转发
OC了,感谢牛友们的面经帮助,散点面经回馈一下3.25投递,3.29下午打电话约了一面一面55min(4.1)计算机基础部分1. 什么是栈内存,什么是堆内存,有什么区别?2. 刚你提到了栈的内存比较小,那你说明一下什么是栈溢出3. 为什么堆的分配比较慢?这个问题有没有什么解决方案?4. 游戏引擎有没有什么对内存的管理操作?5. 堆空间只申请不释放会造成什么?(内存泄漏)如何避免(从编程语言的层面上解释)?(Java/C# 内存管理GC, C++智能指针)6. 你知道哪些智能指针?(unique_ptr, shared_ptr)?还有一个你知道吗?(没说出来,面试官提醒能解决循环引用的weak_ptr)7. 栈的访问效率比堆高,你能解释一下吗?8. 垃圾回收内存管理GC机制,能不能深入说一下底层如何实现?9. 说一下什么是虚拟内存?存在的意义是什么?数据结构部分10. 描述一下数组和链表的区别?各自的优缺点11. 说明一下什么是二叉树手撕部分12. 递归前序遍历二叉树写一个函数,输入是二叉树的根结点,返回它结点的前序遍历13. 用BFS遍历树追问:DFS和BFS这两种遍历策略,一般用来解决什么问题?有没有什么优化方案策略?开放问题15. 树这种数据结构在你项目开发中有什么应用?C++中有没有什么容器是用树实现的?16. 说明什么是面向对象,有什么特点?17. C++中可以实现多态,请你从虚函数表的方面描述一下重载一个虚函数的过程?(往虚函数表,虚函数指针上扯)。虚函数指针占多大空间?(就是普通指针,32位机器4,64位机器8)拷打简历18. 开发MOBA项目中遇到的最大难点是什么?19. FPS项目中,NPC巡逻的逻辑?你这种检测方法会把NPC背后的敌人也检测进来,有没有什么改进方法?20. 简单说一下你了解的unity物理引擎?其他问题21. 你平常玩哪些游戏多一些?STEAM上的单机游戏玩过吗?你CF玩得多,你觉得CF哪些功能做的不错?22. 除了游戏开发,你还有哪些其他方面技术上的兴趣?23. 你打过不少算法比赛,你觉得你的算法水平在你们校队能排到top多少?反问面试官人很温柔,聊起来也挺舒服的,面完二十分钟后官网就显示通过了
点赞 评论 收藏
转发
5 36 评论
分享
牛客网
牛客企业服务