腾讯光子游戏引擎暑期实习一面凉经
投了之后捞的很快,共50min无手撕,面试官问的很刁钻,面完速挂。下面只记录我没答上来或者答的很烂的东西
cpp:
解释什么叫栈溢出?一般是怎么导致的。
你说了无限递归调用会爆栈,解释一下谁在占用栈空间?一个函数的函数体里使用new,这个函数无限递归,会发生什么?堆溢出是什么?怎么造成的?
vector是怎么扩容的?空vector大小是多少?
如何在一个装满元素的数组(非vector)后面添加新元素?可以直接构造吗?
dfs使用了什么数据结构?
图形学:
shadowmap的噪点是什么,怎么产生的?软阴影是如何采样的?
讲讲ibl的蒙特卡洛?
实际问的问题可能比这个多两到三倍,许多问的都忘了,整体很基础也很细节,但确实精准命中我的盲点。。。 #正在实习的碎碎念# #投递实习岗位前的准备# #牛客在线求职答疑中心#
cpp:
解释什么叫栈溢出?一般是怎么导致的。
你说了无限递归调用会爆栈,解释一下谁在占用栈空间?一个函数的函数体里使用new,这个函数无限递归,会发生什么?堆溢出是什么?怎么造成的?
vector是怎么扩容的?空vector大小是多少?
如何在一个装满元素的数组(非vector)后面添加新元素?可以直接构造吗?
dfs使用了什么数据结构?
图形学:
shadowmap的噪点是什么,怎么产生的?软阴影是如何采样的?
讲讲ibl的蒙特卡洛?
实际问的问题可能比这个多两到三倍,许多问的都忘了,整体很基础也很细节,但确实精准命中我的盲点。。。 #正在实习的碎碎念# #投递实习岗位前的准备# #牛客在线求职答疑中心#
全部评论
看来你在面试中遇到了一些挑战,不过没关系,面试失败是求职过程中的一部分。从你的描述来看,面试官主要关注了C++和图形学的基础知识。
对于C++的问题,栈溢出通常是由于在函数调用过程中,栈空间被耗尽导致的。无限递归调用就是一个常见的例子,因为每次递归调用都会在栈上创建一个新的活动记录,直到栈空间耗尽。在这种情况下,谁在占用栈空间并不明确,因为每个函数调用都会在栈上创建一个新的活动记录。如果一个函数的函数体里使用new,这个函数无限递归,可能会导致堆溢出,因为new操作会在堆上分配内存。堆溢出通常是由于在堆上分配了过多的内存,导致堆空间耗尽。
对于vector的问题,vector的扩容通常是通过重新分配内存来实现的。当vector的大小达到其容量时,它会分配一个更大的内存块,并将原有的元素复制到新的内存块中。空vector的大小通常是0。在一个装满元素的数组后面添加新元素,可以直接构造,但可能需要重新分配内存。
对于dfs的问题,dfs使用了栈这种数据结构。
对于图形学的问题,shadowmap的噪点是由于采样不足或采样不均匀导致的。软阴影是通过多次采样来减少噪点的。ibl的蒙特卡洛是一种用于模拟全局光照的技术,它通过在球面上随机采样来计算间接光照。
虽然这次面试可能没有达到你的预期,但这也是一个学习和成长的机会。你可以根据面试中遇到的问题,有针对性地复习和准备,提高自己的技能水平。加油!
shadowmap的噪点是指他的自遮挡现象吗
羡慕,我也想被光子面啊,挂了我都行
怀疑跟我是一个面试官,问题有点像
相关推荐