介紹下自己,雙非二本,大二暑期有過一個月實習經歷,做過聯網專案,做過劇情類專案
去騰訊面試最初就是看看自己夠不夠格去實習
- 5.07 雲證
- 5.11 oc
以下是時間線
魔方
魔術師工作室
3.19 一面(120mins)
c++
- struct和union區別?
- 指標和引用的區別?
- 左值和右值?
- 位元組對齊的作用?
- 什麼情況下需要自定義new?
- malloc和new的區別?
- 解構函式宣告為虛擬函式有什麼好處?虛擬函式放在記憶體中的哪個地方?(後面哪次面試也問到這個問題)
- 抽象類和介面類的區別?
- 多型的實現?
- 行內函數?
- 動態連結和靜態連結區別?
- 野指標?懸空指標?
Unity
- 知道AssetBuddle嗎?AB是如何工作的?
- 知道Lua嗎?Lua的基本型別?(問的時候沒詳細用過Lua,於是答知道一點Lua熱更的基本原理,然後簡單說了一下,面試官點了點頭)
- 有美術資源優化的經驗嗎?
- 圖集使用過嗎?Unity是怎麼打包圖集的?打包的格式瞭解嗎?(Master圖集沒實際用過,處於口嗨階段)
- 動態合批的規則?Unity怎麼動態合批?(答得不是很好,後來瞭解到是Texture ID和Material ID以及渲染順序那一塊影響渲染佇列,然後影響合批順序)
- UI合批的最小單元和理解?
- 怎麼理解Editor編輯器?
- 序列化和反序列化?
- .Net和Unity的區別?(硬扯皮Unity的編譯過程C#和MonoBehviour編譯成IL那一部分,感覺面試官對我的回答還行?)
- Resources資料夾的作用?
- meta檔案?meta丟失怎麼做?
作業系統
- 程式和執行緒?區別?
- 實體記憶體和虛擬記憶體?虛擬記憶體如何實現的?分頁?
計算機網路
- TCP和UDP區別?
- TCP擁塞控制?
計算機圖形學
- 光柵化?
- 說下可程式設計渲染管線?
- 說下固定渲染管線?之間的區別?
專案
- 遇到了什麼問題?如何解決的?
- 專案中聯網部分邏輯互動是怎麼做的?
- 用過哪些設計模式?如何用的?
程式碼部分
- 說下快排原理並且手撕(15mins)
其他
-
什麼時候能實習?喜歡玩遊戲嗎?
-
考研嗎?為什麼不考研?
反問 -
工作室的氛圍?
-
我喜歡什麼型別的遊戲?比如?這裡聊到了面試官也喜歡黑魂遊戲?問我鬼泣5和黑魂的區別在什麼地方?
-
工作室是喜歡做賺錢的遊戲還是喜歡做喜歡的遊戲?(面試官說你這個問題有點刁鑽(心中:怎麼提個憨批問題,我一定不能講實話))
面試體驗最好的一場,雖然有時我說話有點不利索,但基本都是面試官仔細聽我的回答並且給予我肯定
3.24 二面(110mins)
C++
- 左值和右值?左值引用和右值引用?
- 虛擬函式是怎麼實現多型的?虛擬函式表存放的形式和位置?
Unity
- 如何在UI上顯示3D模型?
- 如何在UI上顯示粒子效果?(答了用新Camera單獨照3D模型然後攝像機畫面混在一起)假如UI會同時顯示10個,並且彼此獨立怎麼做?Unity的層序順序講一下?
- PBR瞭解嗎,說一下?(硬扯高光和Blinn Phong一些概念)用過URP嗎?
線性代數
- 點乘和叉乘?
- 矩陣如何求逆?被面試官懟這是數學的做法
計算機圖形學
- 怎麼判斷空間內三角形和射線是否有交點?(後續才知道Möller-Trumbore演算法)
- 說下渲染管線?介紹下每個步驟?
程式碼部分(60mins)
- 個人覺得是七面中考的最多的演算法面試題了,直接三道動態規劃演算法題
- 如何選取4個砝碼的重量能夠在天平上稱起1~40克的物體?(口述)一開始不理解題目,面試官講了幾分鐘,後面才提醒要用動態規劃的思想...
- 手撕無序n個元素取k個最大值(n很大,k很小),不改變順序刪這些元素(建堆)
- 手撕Leetcode最大連續子元素和(力扣難度簡單)
- 手撕Leetcode.332 零錢兌換變種題(力扣難度中等,剛好之前做過說了下簡單思路然後上手)
反問
- 工作室是做什麼的?怎麼學好圖形學?
3.26 三面(60mins)
C++
- 位元組對齊的作用?(一面也問到了)
- dynamic_cast作用和使用場景?
C#和Unity
- 說下GC?垃圾回收原理是什麼?怎麼減少記憶體洩漏?怎麼優化gc?如果第一次gc後記憶體還是不夠呢,會怎麼做?以為不是問分代回收策略,直接亂說了,面試官直接說我不理解gc(腦闊疼)
- UI適配?適配不同的手機?劉海屏和曲面屏?因為沒做過手遊,所以面試官說我方法不行,我懷疑你在為難我胖虎
- 知道哪些Unity的優化方式?
- NGUI和UGUI區別和使用?
計算機圖形學
- 空間中已知入射光線和法線求反射光線?
- 做過哪些圖形學專案?被質疑:你這是課程作業麼?
程式碼部分
- 手撕字元計數壓縮和合並有序連結串列(對應Leetcode簡單難度,六七分鐘兩道題就做出來了)
- 手撕rand(1,7)實現rand(10),要求等概率均勻分佈。只知道rand(a,b)怎麼用rand(0,1)實現,所以直接說不會
反問
- 我這是三面麼,這是最後一面麼?面試官突然詫異,原來我在面三面,對的是最後一面,當晚直接流程灰了
體驗最差的一場,面試官那邊網路不好並且有同事說髒話的聲音傳過來,而且我寫的是熟悉C++結果一直問C#(那時還沒補起來)
魔鏡工作室(前臺開發)
沒錯,又是魔方 換個工作室撈起來再面
3.31 一面(40mins)
-
自我介紹
-
問了學校問題
-
專案介紹和在專案中擔任的角色工作是什麼?遇到哪些問題,如何解決的?
-
聽我吹水建模比賽
-
說一下A*演算法的原理?啟發函式怎麼算?
反問
- 為什麼不問我C++?(因為問題實在是太水了,我怕面試要求低,把我拉過去幹苦力)面試官說前面的面試官問過我C++了,說我C++和數學還可以,才知道有面試評價這個東西...
- 專案用什麼引擎?在UE4做大世界專案
4.02 二面(30mins)
實習經歷
- 之前實習做了啥?專案用的UDP還是TCP?理由?
期間二面結果等了四到五天灰了...
接著就是正式批階段了
光子
4.21 一面(40mins)
C++
- 如何學習c++?是系統學過嗎?
- c++11之後有了解麼?
- 左值和右值?左值引用和右值引用?
- 移動拷貝作用和使用場景?Vector3類需不需要有移動拷貝函式?什麼情況下需要
- 棧和堆的區別?為什麼棧比堆高效?
- 虛擬函式原理和機制?虛擬函式表存放位置?
專案
- 專案中遇到的問題和做法?
程式碼部分
- 給了個帶虛擬函式的類進行程式碼分析
- 手撕洗牌演算法,並且驗證等概率隨機
反問
- 如何學好圖形學?面試官說,英文好的話 直接看Real Time Render,不夠好的話,就看LearnOpengl或games101(順嘴提了一句,這些廣度夠了,但深度不夠,alright面試官是個大佬無疑了)
4.30 二面(40mins)
資料結構
- 判斷連結串列有環?你講到雜湊表,說說原理和使用場景?雜湊衝突的兩種解決方法和優缺?
線性代數
- 點乘和叉乘的數學意義和區別?
Unity
- FixedUpdate?Unity生命週期?
- material和sharedmaterial的區別?
計算機圖形學
- 法線貼圖原理?在哪個著色器做?
- shadowmapping原理?
專案
- 專案中為什麼用UDP?亂序問題怎麼解決?(突然想起用的是TCP...)
其他
-
你覺得你是什麼性格的人?為什麼大二選擇實習?
-
喜歡玩遊戲嗎?玩什麼遊戲?
5.06 hr面(30mins)
- 你最喜歡的3A遊戲是什麼?(因為自我介紹說我想做3A遊戲所以被反問)
實習
- 實習做了哪些事?有什麼收穫?
專案
- 遇到什麼技術的問題?如何發現問題並解決的?
- 專案之間你感受的差異是什麼?
意願
- 為什麼想來騰訊?來騰訊能學到什麼?(想實現夢想,做3A遊戲!)
其他
- 說說你對筆試的感受?(很慚愧說,筆試發揮的不是很好,有些題目意思理解不清楚)
- 現階段是想考研還是找工作?
題外話
網易雷火(引擎開發)
5.09 一面(60mins)
不得不說網易效率不如騰訊高,4.22號的筆試處理完後,過了快兩週多才約面
- 上來第一個問題,有沒有做過渲染方面的東西(本來想走的就是客戶端,可能手誤投了引擎,直接說沒做過)
C++
- move函式和用處?移動拷貝?拷貝構造的小例子判斷是拷貝構造還是賦值運算?
- 給個例子判斷佔用位元組?
- 一個C++的程式碼例子說說結果是什麼?
- const的定值和定向問題?
- static的作用?
- 行內函數的作用?
作業系統
- 說下大小端模式?(直接把如何判定和用處說了下)
- 位元組對齊作用?
- 陣列for a for b data[a][b]和for a for b data[b][a]哪個高效?(說了一維陣列元素地址連續訪問快取命中問題)
數學
- 點乘與叉乘的數學意義和區別?
- 在xy座標系上的點座標如何轉成uv座標系?
- 4乘4矩陣變換的作用?如果不讓平移矩陣方便表示怎麼做,怎麼轉換?
- exp ln 實現 power(x, y) (不會,甚至看不懂符號,後面才發現是一些shader方面的符號)
計算機圖形學
- 頂點著色器和片元著色器是否一一對應?
- 裁剪空間的作用?怎麼變換的?
渲染
- alpha test和alpha blend說一下(all right 不會...)
- mipmap瞭解嗎?(說了減少CPU渲染壓力,增大記憶體佔用,被面試官問 除了這個還知道什麼嗎(可能是想問具體演算法怎麼實現的?))
反問
- 主要用什麼語言(C++、C#)
- 面試過程因為裝置不好,並且騰訊那邊已經雲證,所以沒有什麼太大的興趣繼續提問了
總結
- 自從去年9月後,發誓要進遊戲行業,不停的看C++、計網、Unity、shader、閆老的games101,雖然累,但是有時也會覺得自己學到了東西
- 給自己總結一下好了,騰訊面試會很深挖基礎知識,圖形學的面試題有些都是偏實際的(之前沒有了解過,所以吃了個大虧- -),邊面邊看面經邊做Unity手遊專案,一遍感嘆自己如此之菜,幸得一些面試官對我的肯定,也算給自己一個比較好的慰藉