騰訊游戲客戶端實(shí)習(xí)(天美)
在艱難等待中寫(xiě)面經(jīng)攢攢人品,
3.9
投簡(jiǎn)歷。
3.14
被天美撈起來(lái)。
3.18:一面(30分鐘左右)
1.虛函數(shù)?(虛指針,虛函數(shù)表)說(shuō)了一下詳細(xì)過(guò)程。
2.用過(guò)的STL。(答了vector、map,也講了下其他的list、set)
3.STL中sort()函數(shù)用的是什么排序?
(答的快速排序,面試前看過(guò)一面試就忘)
其實(shí)應(yīng)該根據(jù)情況用了快速排序、堆排序、插入排序。然后面試官就問(wèn)看過(guò)源碼嘛(那自然是沒(méi)有....
4.快速排序的時(shí)間復(fù)雜度(nlogn,還說(shuō)了最壞的情況)
5.基于比較的排序最快時(shí)間復(fù)雜度?(nlogn)
追問(wèn):理由?
答:感覺(jué)基于比較找一個(gè)數(shù)是O(logn),n個(gè)數(shù)就是nlogn,像二叉樹(shù)的感覺(jué)。
面試官:猜的嘛?
答:嗯!
6.生產(chǎn)者消費(fèi)者避免鎖操作的損耗?
(多線程沒(méi)怎么了解,就說(shuō)生產(chǎn)滿了才讓消費(fèi),消費(fèi)完了才讓生產(chǎn)就不用加鎖)太憨批了
面試官接著說(shuō)了想問(wèn)的是無(wú)鎖隊(duì)列:我只能說(shuō)不了解。
7.數(shù)組找出最大和次大。(我說(shuō)遍歷兩次???
面試官問(wèn):能更快嗎??
我想了一下(我居然問(wèn)數(shù)組有序嘛?有序找錘子。)?
然后感覺(jué)不拖時(shí)間了就說(shuō):不知道(其實(shí)只過(guò)了幾十秒)
面試官就笑了一下:就放棄啦。(然后繼續(xù)了)
面完后復(fù)盤(pán):平時(shí)做題都知道維護(hù)兩個(gè)變量遍歷一遍就行了。還是太緊張了,估計(jì)想問(wèn)到topk的被我直接打斷了。
8.shared_ptr原理。(追問(wèn)存在的問(wèn)題:循環(huán)引用(舉出例子)(解決:weak_ptr或者不用智能指針,自己釋放內(nèi)存)
9.BVH樹(shù)的構(gòu)造。(SAH優(yōu)化原理,節(jié)點(diǎn)包含了什么,遍歷過(guò)程)
10.SSAO的原理。
11.CSM的原理。
12.點(diǎn)光源陰影。
12.渲染管線。
13.高斯模糊,具體怎么做。(將濾波拆成x,y兩個(gè)方向分別做一次過(guò)濾)
追問(wèn):為什么能拆?
答:根據(jù)函數(shù)性質(zhì),算出數(shù)據(jù)和二維濾波一樣的結(jié)果。(被說(shuō)不對(duì),就說(shuō)不知道了)
14.渲染時(shí)提高效率的方法(能說(shuō)多少說(shuō)多少)
當(dāng)時(shí)只說(shuō)了:減少if語(yǔ)句的使用(追問(wèn)為什么)
unity中的合批。(我說(shuō)加快了gpu上的速度被指出應(yīng)該減少的是調(diào)用渲染的消耗)
其實(shí)還有剔除、lod技術(shù)等(面試自然忘了
15.用過(guò)什么引擎。(unity,只是用過(guò))
反問(wèn):部門(mén) (賽車(chē)類(lèi)
反問(wèn):意見(jiàn) (基礎(chǔ)要加強(qiáng),多實(shí)踐
本來(lái)覺(jué)得涼了,結(jié)果撈了一手(感謝面試官??
3.20 二面(40分鐘+)
1.多態(tài)(靜態(tài)和動(dòng)態(tài))
2.虛函數(shù)表的時(shí)期和位置(編譯期,常量區(qū))
3.菱形繼承,最下層子類(lèi)沒(méi)有繼承虛函數(shù),兩個(gè)父類(lèi)繼承了他們父類(lèi)的虛函數(shù),問(wèn)最下層子類(lèi)的虛指針數(shù)(答的兩個(gè),只有繼承的兩個(gè)父類(lèi)的虛指針,說(shuō)了一下內(nèi)存布局)
4.移動(dòng)語(yǔ)義,move()的作用。
5.問(wèn)move一個(gè)const變量發(fā)生什么?
(不會(huì)調(diào)用移動(dòng)構(gòu)造函數(shù),因?yàn)閏onst變量不能被更改,會(huì)轉(zhuǎn)成拷貝構(gòu)造函數(shù))
6.寫(xiě)過(guò)移動(dòng)構(gòu)造函數(shù)嗎(照著寫(xiě)過(guò),說(shuō)類(lèi)似剪切和粘貼,直接轉(zhuǎn)移變量)
7.透視投影和正交投影的區(qū)別(透視投影物體大小受遠(yuǎn)近影響
8.透視投影矩陣的推導(dǎo)(簡(jiǎn)單說(shuō)了相似三角形加變換矩陣投影到-1到1,說(shuō)的有點(diǎn)亂,面試官不是很滿意,不過(guò)自己確實(shí)一下子說(shuō)不出具體過(guò)程)
9.著色時(shí)三角形內(nèi)部如何計(jì)算。(三角形重心坐標(biāo)插值)
10. mipmap的原理,gpu是如何層級(jí)選擇。(答根據(jù)像x,y方向分別采樣下一個(gè),估計(jì)出對(duì)應(yīng)到紋理貼圖的大小再取對(duì)數(shù)。被說(shuō)不對(duì),可能想問(wèn)直接求偏導(dǎo)ddx,ddy?)
11.走樣產(chǎn)生的原因(采樣率不足
12.知道的反走樣算法(msaa,ssaa,smaa,taa)
13.shadowmapping會(huì)出現(xiàn)的問(wèn)題和原因。(查找深度時(shí)同一片區(qū)域會(huì)有同樣的深度,實(shí)際上深度不同)
14.PCF的原理。
15.光線追蹤的原理以及光線何時(shí)停下(我的做法是限制了彈射最大次數(shù))
除了到最大彈射次數(shù)還有什么情況(反射到了光源
16.光線追蹤有沒(méi)有什么降噪技術(shù)(沒(méi)用,但是知道可以在時(shí)間上復(fù)用前幾幀加權(quán)進(jìn)行降噪)
又問(wèn):為什么不用 (因?yàn)樘肆??
17.SSAO如何知道結(jié)果是對(duì)的。(先說(shuō)眼睛看出來(lái)的??,后面改口說(shuō)過(guò)程中將環(huán)境光遮擋系數(shù)著色可視化出來(lái),又問(wèn)那怎么確定是正確的,我又回答說(shuō)眼睛看的,角落顏色會(huì)更深。后來(lái)就算了)
18.用unity做過(guò)什么?(說(shuō)沒(méi)學(xué)多久,做了個(gè)地牢的隨機(jī)生成程序,用animator做了下跳躍、翻滾、攻擊)
19.追問(wèn)地牢生成中的Dlaunay三角網(wǎng)算法怎么寫(xiě)的。(最開(kāi)始自己是根據(jù)性質(zhì)每?jī)牲c(diǎn)外接圓不包含別的頂點(diǎn)暴力的,后面果斷下了個(gè)庫(kù))
20.NavMesh看過(guò)源碼嘛(只了解過(guò),沒(méi)看過(guò),然后說(shuō)了下A*)
?
21.遍歷二維數(shù)組行遍歷和列遍歷的區(qū)別(行遍歷順序存儲(chǔ),列遍歷需要地址變換效率更低。追問(wèn)還有嗎?不知道了)
22.硬盤(pán)數(shù)據(jù)到內(nèi)存太慢了用什么解決的(說(shuō)了cache,要再具體點(diǎn),說(shuō)不了解,這里不知道該答什么,有可能問(wèn)題聽(tīng)錯(cuò)了)
反問(wèn):意見(jiàn)(基礎(chǔ)還行 多實(shí)踐
反問(wèn):具體部門(mén)(飛車(chē)部門(mén)
3.24hr面(30分鐘+)
都是常規(guī)問(wèn)題:平時(shí)如何學(xué)習(xí),考不考研,家在哪,有沒(méi)有女朋友(沒(méi)有),有沒(méi)有什么愛(ài)好,實(shí)習(xí)地點(diǎn)有沒(méi)有要求,玩過(guò)哪些游戲(說(shuō)了csgo、lol、原神、巫師三、黑魂等,居然說(shuō)玩的類(lèi)型不太多,我心里想怕都說(shuō)了太浪費(fèi)時(shí)間了,就說(shuō)各類(lèi)游戲都玩)。
反問(wèn):多久出結(jié)果 答實(shí)習(xí)還沒(méi)正式開(kāi)始,大概兩周左右(估計(jì)是還要橫向難受
三面全部面試題有點(diǎn)久有些記不全了,列了大部分。?
3.29云證+測(cè)評(píng)
4.1變錄用評(píng)估
現(xiàn)在大家流程好像大部分都沒(méi)走,希望能有hc都能早日oc。求給個(gè)offer!
4.14
流程結(jié)束 寄
#游戲客戶端開(kāi)發(fā)實(shí)習(xí)##Unity Technologies##實(shí)習(xí)##騰訊##游戲客戶端開(kāi)發(fā)工程師#