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

投了之后捞的很快,共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 浙江

相关推荐

游戏客户端    暑期实习1.Blinn Phone模型 计算光照强度是怎么做的吗?2.给出法线,平行光方向,怎么计算平行光强度呢?3.点乘叉乘区别4.MSAA抗锯齿的实现原理是什么?5.MSAA可以在延迟渲染上做吗?6.MSAA带宽为什么会增加?7.使用MSAA要避免什么操作?8.深度测试,模板测试具体是做了什么?9.法线贴图的作用是什么?法线贴图里面存的数据是什么?在Shader里面怎么用法线计算光照的?10.阴影贴图,深度值是怎么生成的?11.阴影抖动是什么问题导致的?12.阴影粉刺?13.数组和链表的区别?14.vector,添加元素到vector超过最大数目后会发生什么?15.介绍一下红黑树,有哪些数据结构用红黑树实现的16.智能指针,弱指针,假如共享指针已经释放掉了,弱指针会怎么样呢?17.共享指针的计数器是怎么实现的?18.两个共享指针指向一个对象,有几个计数器?    C++并发编程部分(简历上有提到)19.什么是原子操作?20.i++是原子操作吗?++i是原子操作吗?21.线程同步的方法?线程1需要线程2的结果,怎么操作?22.new和malloc的区别?23.如果有多层for循环,如何从最里层跳出来。(我说break,然后说只能跳出一层,然后goto,要求列举风险)24.有20多个bool值数据,如果有一个是true,则满足条件,怎么只判断一次就成立?性能优化25.多态怎么实现?怎么实现虚函数的?怎么通过指针找到派生类的虚函数?26.C++怎么实现RTTI?27.静态类型转换和动态类型转换区别?我真是个傻子,上次面试有点吓到我了,第一题都没听明白什么意思,听录音才知道我有多么傻更新,已挂,但不是秒挂,比起上次有进步
点赞 评论 收藏
转发
5 36 评论
分享
牛客网
牛客企业服务