Nvidia (基于游戲)性能測試 實習(xí)崗位面試整理

一面:電話面試 一個人

第二個人
1.測試性能分析表格 得出結(jié)論(控制變量法) FPS 輸入輸出延遲
2.游戲參數(shù)設(shè)置 影響
3.V-Sycn G-Sycn介紹
4.抗鋸齒
5.各向異性過濾
6.平時玩的游戲(?

二面:視頻面試 一共三個人
第一個人
1.自我介紹
2.詢問家常
3.介紹項目 人員分工 具體邏輯代碼 樣式等處理
4.算法題 冒泡排序

第二個人 (和電話面基本一致)
1.測試性能分析表格 得出結(jié)論(控制變量法) FPS 輸入輸出延遲
2.游戲參數(shù)設(shè)置 影響
3.V-Sycn G-Sycn介紹
4.抗鋸齒
5.各向異性過濾
6.平時玩的游戲(?

第三個人 電話面試的那個人
職業(yè)規(guī)劃 未來發(fā)展
有什么問題嗎

筆記

游戲性能指標(biāo)

FPS:顯卡1s可以渲染的幀數(shù)

輸入延遲:用戶輸入到輸入結(jié)果反映到顯示器上的時長

它們?nèi)Q于

  • 顯卡計算能力

  • 內(nèi)存頻率

  • CPU&GPU主頻等因素

  • 場景復(fù)雜度

  • 抗鋸齒優(yōu)化程度

  • 屏幕刷新率

  • 垂直同步

  • 幀生成時間

OpenGL渲染管線

什么是OpenGL:開放圖形庫的應(yīng)用編程API 由各個硬件廠商進(jìn)行硬件加速的實現(xiàn)又碌,專注于圖形的渲染长捧,不包括輸入等其他功能

整個過程是

  1. 用戶輸入

  2. CPU進(jìn)行邏輯運算 準(zhǔn)備渲染內(nèi)容并交給GPU

  3. GPU執(zhí)行渲染管線(pipeline)

  4. 生成幀緩存等待輸出

  5. 輸出到顯示器

渲染管線流程

  1. 頂點數(shù)據(jù)

  2. 頂點變換 (頂點著色器)

    1. 三維坐標(biāo)變換成二維坐標(biāo)

      1. 模型頂點構(gòu)建

      2. 變換到世界坐標(biāo)

      3. 變換到相機坐標(biāo)

      4. 變換到屏幕坐標(biāo)

      5. 三維到二維

  3. 形狀(圖元)裝配 面處理 這個階段是根據(jù)索引將頂點連接在一起胧谈,組成線蒜田、面單元

  4. 幾何著色器 將頂點著色器的輸出值執(zhí)行裁剪、透視分割、視口變換后進(jìn)入光柵化階段。

  5. 光柵化 將連續(xù)的物體結(jié)構(gòu)(頂點信息&線面方程芝发?)映射到離散的像素級別,確定需要被繪制的像素苛谷,完成插值工作(像素值插值)

  6. 片段著色器 對光柵化后的像素進(jìn)行著色工作辅鲸,產(chǎn)生每個像素值的顏色,alpha值腹殿,z-depth值 景深

  7. 測試與混合

    1. 裁剪測試

    2. 透明度測試

    3. 模板測試

    4. 深度測試

    5. 混合測試

  8. 輸出到幀緩沖

  9. mesh(模型)從磁盤中讀取到內(nèi)存

  10. CPU對每一個mesh設(shè)置渲染狀態(tài)独悴,調(diào)用draw call讓GPU渲染所有使用同一個渲染狀態(tài)的mesh

    1. 渲染狀態(tài)包括 頂點著色器 像素著色器 材質(zhì) 紋理等

    2. 相同渲染狀態(tài)的mesh可以在一個batch中讓GPU處理,因此可以通過合并draw call來進(jìn)行優(yōu)化锣尉,因為設(shè)置渲染狀態(tài)是一件比較耗時的工作

  11. 設(shè)置渲染狀態(tài)的同時將mesh信息從內(nèi)存全部拷貝到顯存

    1. mesh信息包括 定點位置 法線 切線等
  12. 頂點著色器對所有頂點進(jìn)行坐標(biāo)轉(zhuǎn)換 最終轉(zhuǎn)換到camera坐標(biāo)

  13. 根據(jù)camera的可視視角對頂點信息進(jìn)行裁剪刻炒,去掉視野外的

  14. 執(zhí)行Culling,去掉所有非朝向camera的頂點(面自沧?) 屏幕映射

  15. 光柵化坟奥,將連續(xù)的物體結(jié)構(gòu)(頂點信息&線面方程?)映射到離散的像素級別拇厢,確定需要被繪制的像素爱谁,完成插值工作(像素值插值)

    光柵化的本質(zhì)是坐標(biāo)變換、幾何離散化孝偎。就是將幾何信息轉(zhuǎn)換成一個個的柵格組成的圖像的過程访敌。

    1. 確定需要被繪制的像素:通過對每個像素點進(jìn)行采樣,判斷采樣點是否在三角形內(nèi)部來決定是否需要繪制

    2. 紋理信息的插值在這一步完成衣盾,為每一個像素得到正確的紋理坐標(biāo)

    3. 基于采樣的抗鋸齒就在這一步執(zhí)行:SSAA, MSAA等寺旺,越好的抗鋸齒會導(dǎo)致越高的計算量

  16. 像素著色器/片段著色器:對光柵化后的像素進(jìn)行著色工作,產(chǎn)生每個像素值的顏色势决,alpha值阻塑,z-depth值

    1. 陰影的渲染在這一步進(jìn)行,越多的細(xì)節(jié)會需要進(jìn)行越多次的著色過程
  17. 產(chǎn)生的每個像素值經(jīng)過

    • z-test深度測試(去除所有被覆蓋的像素)果复,

    • 通過的像素再進(jìn)行混合測試(可以用于透明材質(zhì))陈莽,

    • 模板測試(一個掩膜,可以用于限制畫面范圍)据悔,

    • color mask(對顏色通道進(jìn)行控制)后传透,得到最終顏色耘沼,放進(jìn)顏色緩沖區(qū)

    1. 顏色緩沖區(qū)即幀緩沖

    2. 基于后處理的抗鋸齒在這一步之后進(jìn)行极颓,主要通過對像素信息的分析以及一些緩沖信息得出邊緣信息,并對邊緣進(jìn)行重著色

垂直同步

垂直同步主要聚焦在生成幀緩沖之后

需要解決的問題:

顯卡輸出幀與顯示器顯示不同步導(dǎo)致的畫面撕裂

產(chǎn)生理由:

顯示器與顯卡的幀率不同群嗤,在顯示器從前緩沖區(qū)讀取像素信息還沒有讀取完的時候菠隆,顯卡完成了新的一幀并向前緩沖區(qū)寫入,導(dǎo)致顯示器從前緩沖區(qū)讀到兩幀不同的畫面

解決辦法:

垂直同步強制將GPU與顯示器的刷新率保持一致,在顯示器讀完一幀之前骇径,不允許顯卡寫入前緩沖區(qū)

問題:

延遲&輸入延遲變高躯肌,F(xiàn)PS降低

三重緩存

使用前中后三個幀緩沖區(qū)來解決鎖FPS的問題,當(dāng)垂直同步信號來之前破衔,顯卡產(chǎn)生的幀在中&后緩沖區(qū)交替緩存清女,當(dāng)同步信號來了之后,將最新的幀緩沖與前緩沖區(qū)交換晰筛,保證了低延遲嫡丙,同時不會有畫面撕裂的問題,但是會對顯存大小有要求

G-Sync和Adaptive-Sync(Free Sync)

搭載G-sync和Free sync的顯示器可以動態(tài)調(diào)整他們的刷新率而不是固定的1/60秒或者1/144秒掃描完一張畫面读第,他會去適應(yīng)顯卡的輸出幀曙博,而不是在這里等著,說白了就是:顯示器刷新率變頻技術(shù)怜瞒。這樣的話不僅可以解決畫面撕裂父泳,解決錯幀,還可以保證幾乎沒有的鼠標(biāo)延遲吴汪。

抗鋸齒

主要有基于采樣的抗鋸齒和基于后處理的抗鋸齒惠窄,還要了解一下最新的DLSS,以及這些抗鋸齒會對游戲產(chǎn)生的影響(一般而言抗鋸齒等級越高浇坐,游戲FPS越低睬捶,DLSS是例外,開了DLSS后游戲的FPS可能會升高)可以參考下面兩篇文章

https://blog.csdn.net/fishmai/article/details/61916766

https://www.beyond3d.com/content/articles/122

失真

  • 幾何失真

    • 幾何體邊緣和一個像素部分覆蓋
  • 透明失真

    • 貼圖包含透明圖案,由于貼圖本身由個數(shù)有限的像素陣列所組成,當(dāng)判斷被渲染幾何體透明與否的時候會將貼圖的柵格化特性帶入最后的渲染結(jié)果.
  • 子像素失真

    • 柵格化物體小于一像素
  • 紋理失真

    • 包含大量高頻信號的紋理未被充分采樣
  • 渲染失真

    • 像素渲染器在對每個像素進(jìn)行顏色填充時產(chǎn)生的失真.

基于采樣的反鋸齒技術(shù)

提高渲染時的采樣數(shù)來減少鋸齒.

其中,采樣數(shù)量,采樣位置,采樣類型和采用或和模式,影響畫面質(zhì)量

采樣位置

  • OGAA(理想的四點采樣) 規(guī)整的采樣點排列 (不是最優(yōu)解)

  • SGAA 稀疏擺放-任意兩個采樣點不會再N x N網(wǎng)格的同一行 列以及對角線上.(N皇后問題)

采樣類型

  • SSAA 超采樣抗鋸齒 每個采樣點都進(jìn)行獨立計算

  • MSAA 多重采樣抗鋸齒 每個像素點僅計算1次,對深度和模板值仍計算n次(降低性能開銷)

  • CSAA (Nvidia 2006) 覆蓋采樣抗鋸齒 保留MSAA像素點計算,深度和模板值處理方式的通識,增加了覆蓋采樣.后者并不存儲任何著色,深度或模板信息,而是存儲了一個二進(jìn)制的Coverage值作為參考(增加了少量性能開銷但在輸出質(zhì)量上更高),剝離覆蓋率這個特性,針對地增加覆蓋采樣信息,更高的狂鋸齒效率.

  • [圖片上傳失敗...(image-ef8655-1592376782781)]

采樣混合模式

  1. 常見或和方法 相同權(quán)重混合 box filter (傳統(tǒng)MSAA采用

  2. (AMD 2007 HD2900) 可編程的混合能力 根據(jù)采樣點離像素中心的距離決定相應(yīng)的混合權(quán)重

雖然基于采樣的抗鋸齒算法不僅原理簡單近刘,在采樣點足夠的情況下也有很優(yōu)秀的效果择镇,但在性能方面仍然會帶來巨大的開銷

后處理抗鋸齒(分析抗鋸齒)

渲染出未使用抗鋸齒的原始畫面(無任何采樣和縮放),隨后嘗試通過對成品畫面的分析來減少鋸齒和失真苹丸。

延遲渲染中先不進(jìn)行光照計算,而是在所有的緩沖區(qū)都計算完成(法線,色彩,深度信息等)最后融合這些緩沖區(qū)結(jié)果,在融合郭崇中剔除掉被遮蓋的物體,進(jìn)行針對性的光照運算,避免大量額外運算.

  • 復(fù)雜度由O(mn) m代表總的幾何體的像素總量 降低到O(m'n) m'代表屏幕分辨率 n代表光照數(shù)量座咆。由于在很多情況下m'<<m,延遲渲染的性能優(yōu)勢就尤為明顯案淋。

沖突

MSAA的原理座韵,我們可以發(fā)現(xiàn)MSAA之所以能節(jié)省性能是因為它僅僅處理幾何體邊緣相關(guān)的那些像素——計算混合完相關(guān)像素信息后覆蓋到原有值上。但現(xiàn)在由于渲染管線被打亂踢京,特別是由于最終的合成渲染是針對數(shù)個緩沖區(qū)執(zhí)行誉碴,那些幾何體原始信息已經(jīng)丟失,便無法在最終渲染中判斷到底哪些是邊緣而哪些不是瓣距。這樣一來MSAA只能對所有的像素進(jìn)行采樣黔帕,和SSAA已經(jīng)沒有什么區(qū)別了。

多重采樣抗鋸齒的缺失一直是延遲渲染的一個痛點蹈丸,當(dāng)然也有一些科學(xué)家試圖引入額外的信息來輔助MSAA在這種渲染流程中判斷邊緣信息成黄,但出于各種各樣的原因應(yīng)用并不廣泛呐芥。

RTX20系列特性

  • 實時光線追蹤性能提高

  • DirectX12 Ultimate

  • 可變速率著色集中處理細(xì)節(jié)豐富的區(qū)域,從而提高性能

  • 同步浮點和整數(shù)處理使Turing GPU 性能提高

  • DLSS 深度學(xué)習(xí)超級采樣 訓(xùn)練GPU渲染清晰的游戲圖像

    • 顯卡性能不足以支持高分辨率流暢運行的時候

    • 用低分辨率的硬件要求,實現(xiàn)了接近于高分辨率的顯示效果

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末奋岁,一起剝皮案震驚了整個濱河市思瘟,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌闻伶,老刑警劉巖滨攻,帶你破解...
    沈念sama閱讀 212,454評論 6 493
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異蓝翰,居然都是意外死亡铡买,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,553評論 3 385
  • 文/潘曉璐 我一進(jìn)店門霎箍,熙熙樓的掌柜王于貴愁眉苦臉地迎上來奇钞,“玉大人,你說我怎么就攤上這事漂坏【鞍#” “怎么了?”我有些...
    開封第一講書人閱讀 157,921評論 0 348
  • 文/不壞的土叔 我叫張陵顶别,是天一觀的道長谷徙。 經(jīng)常有香客問我,道長驯绎,這世上最難降的妖魔是什么完慧? 我笑而不...
    開封第一講書人閱讀 56,648評論 1 284
  • 正文 為了忘掉前任,我火速辦了婚禮剩失,結(jié)果婚禮上屈尼,老公的妹妹穿的比我還像新娘。我一直安慰自己拴孤,他們只是感情好脾歧,可當(dāng)我...
    茶點故事閱讀 65,770評論 6 386
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著演熟,像睡著了一般鞭执。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上芒粹,一...
    開封第一講書人閱讀 49,950評論 1 291
  • 那天兄纺,我揣著相機與錄音,去河邊找鬼化漆。 笑死估脆,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的获三。 我是一名探鬼主播旁蔼,決...
    沈念sama閱讀 39,090評論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼疙教!你這毒婦竟也來了棺聊?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,817評論 0 268
  • 序言:老撾萬榮一對情侶失蹤贞谓,失蹤者是張志新(化名)和其女友劉穎限佩,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體裸弦,經(jīng)...
    沈念sama閱讀 44,275評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡祟同,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,592評論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了理疙。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片晕城。...
    茶點故事閱讀 38,724評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖窖贤,靈堂內(nèi)的尸體忽然破棺而出砖顷,到底是詐尸還是另有隱情,我是刑警寧澤赃梧,帶...
    沈念sama閱讀 34,409評論 4 333
  • 正文 年R本政府宣布滤蝠,位于F島的核電站,受9級特大地震影響授嘀,放射性物質(zhì)發(fā)生泄漏物咳。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 40,052評論 3 316
  • 文/蒙蒙 一蹄皱、第九天 我趴在偏房一處隱蔽的房頂上張望览闰。 院中可真熱鬧,春花似錦巷折、人聲如沸焕济。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,815評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽晴弃。三九已至,卻和暖如春逊拍,著一層夾襖步出監(jiān)牢的瞬間上鞠,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,043評論 1 266
  • 我被黑心中介騙來泰國打工芯丧, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留芍阎,地道東北人。 一個月前我還...
    沈念sama閱讀 46,503評論 2 361
  • 正文 我出身青樓缨恒,卻偏偏與公主長得像谴咸,于是被迫代替她去往敵國和親轮听。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 43,627評論 2 350