天天看點

【轉】3D程式員面試題

【轉】3D程式員面試題

2011年06月13日

  [b]不知道是哪個公司的。。。[/b]

  [b]1.請介紹D3D或OpenGL中渲染對象時需要設定的3個矩陣及它們各自的作用[/b]

  [b]2.請簡單介紹D3D的渲染流水線流程及各步驟的作用,以及實際應用中我們可以在這些步驟做些什麼效果應用?[/b]

  [b]3.ZBuffer有什麼作用,渲染任何物體時是否都一定要打開ZBuffer?為什麼?[/b]

  [b]4.請介紹你所有知道的紋理Alpha混合方式,原理(公式),以及他們的實際應用(做什麼樣的效果時需要這種方式) [/b]

  [b]5.請介紹你所知道的所有3D動畫方式、實作原理,以及他們的實際應用(做什麼樣的效果時需要這種方式) [/b]

  [b]6.現在的顯示卡已經可以每秒渲染上千萬個三角形以上(而一般的遊戲場景也就幾萬個三角形),而已已經有了很多自動的顯示剪裁,是否意味着使用BSP或其他優化方法組織場景資料已經沒有必要了?為什麼? [/b]

  [b]7.使用硬體支援的D3D燈光有什麼優點和缺點,好的3D引擎一般用什麼方法彌補這種缺點?[/b]

  [b]8.GF4 MX系列與GF4 TI系列顯示卡有什麼不同點?這些不同有什麼作用?[/b]

  [b](答案在後面)[/b]

  自己做了一下,1―3題基本沒問題,第4看過但沒刻意記,5―7題能答出一些,第8題完全不會,對硬體沒怎麼研究過。昨天還看了看育碧的筆試題,勉強能答出點,由此看來功力還是不夠啊。。。― ―

  [b]答案:[/b]

  1.世界矩陣(World Matrix)、視圖矩陣(View Matrix)以及投影矩陣(Projection Matirx);

  世界矩陣确定一個統一的世界坐标,用于組織獨立的物體形成一個完整的場景;

  視圖矩陣就是我們能看到的那部分場景,由虛拟錄影機負責拍攝;

  投影矩陣就是3維物體的平面影射.把三維場景在一個二維的平面上顯示.

  2.可分為兩個階段,T&L和光栅化處理;主要步驟包括世界變換、視圖變換、照明、投影變換、裁剪、w切分、視口變換等.通過渲染流水線可以得到視覺上的三維場景及其變換效果.

  3.深度緩沖.作用是確定多邊形能夠正确的顯示在它們本來的深度.對于兩個物體以上的場景來說,一般都要求打開ZBuffer,否則可能出現非正常的立體感觀.

  4. 公式為: Color = (源顔色 * 源系數) OP (目标顔色 * 目标系數);其中OP(混合方式)有

  加,減,反減,取最小,取最大; Alpha混合用于做半透明效果.

  5.主要有關節動畫、單一網格模型動畫(關鍵幀動畫)、骨骼動畫.關節動畫把角色分成若幹獨立部分,一個部分對應一個網格模型,部分的動畫連接配接成一個整體的動畫,角色比較靈活Quake2中使用了這種動畫;單一網絡模型動畫由一個完整的網格模型構成,在動畫序列的關鍵幀裡記錄各個頂點的原位置及其改變量,然後插值運算實作動畫效果,角色動畫較真實;骨骼動畫,廣泛應用的動畫方式,內建了以上兩個方式的優點;骨骼按角色特點組成一定的層次結構,由關節相連,可做相對運動,皮膚作為單一網格蒙在骨骼之外,決定角色的外觀。皮膚網格每一個頂點都會受到骨骼的影響,進而實作完美的動畫.

  6.不是。MMORPG一個特别重要的問題就是同步,如果不使用優化方法組織場景資料,減輕計算負荷,在資料通路量過大時,可能會造成服務響應指令延遲的問題,進而造成玩家異步,嚴重損害網絡遊戲的可玩性。在時效與技術允許的情況下,依賴硬體處理的思想都不值得提倡。

  7.硬體支援的D3D燈光使遊戲逼真,渲染速度快,效果顯著.但并非所有的硬體都支援D3D燈光。遊戲引擎必須檢測顯示卡是否支援D3D燈光以決定是否依賴硬體抽象層(HAL)來完成這個渲染工作.

  8.GF4 TI 是先進的硬體顯示卡,性能好,價格高,完全支援DX8.1,有燈光效果和動态模糊等特效;

  GF4 MX 不支援DX8.1,渲染的圖形品質沒GF4 TI系列高,逼真度較低。

  這個不同将導緻3D程式員不得不考慮是否使用DX8裡的一些已經不繼續更新的内容,比如DirectShow等以及一些特殊動态連結庫的使用問題.

繼續閱讀