游戲卡幀深入探索!揭開渲染延時面紗
分享
本來幾乎被認定有罪的CPU和內存,現在突然都有了不在場證明,看來之前所有的推理并不成立。線索斷了以后,我們還得老老實實從頭分析——還有那些因素會造成個別幀渲染時間超長呢?
想要明察秋毫,還得案情重組,回過頭逐步分析渲染的步驟,才有可能找出蛛絲馬跡。
游戲的幀數完全是實時渲染而成的。每一幀從生成到渲染完畢,過程非常復雜。
簡單一點來說,先要生成三維圖像模型(幾何模型),將它們保存在自身的建模空間,然后通過模型變換將單獨的幾何模型移動到世界坐標系中,然后通過被稱為“相機變換”的過程,將幾何模型的世界坐標系轉換為攝像機坐標。相機坐標的參數包括投影方式、近平面、遠平面、視野和屏幕的長寬比例,它們決定了物體從相機坐標系投影變換到屏幕坐標系的位置。
這些參數實際上定義了一個視域四棱錐,也叫做視錐體。然后通過裁剪優化算法,通過投影到平面生成最初的二維畫面。接著通過消隱、光照計算、紋理映射、顏色融合等光柵化操作來算出相對正確的像素顏色,呈現出凹凸感、陰影、景深等效果,生成最后的游戲畫面。一幀畫面的誕生,至少包含了上述所有步驟,而其中每一步出現問題和延遲,都會對最終成像速度造成影響。
了解了渲染成像的步驟,我們將目光再次鎖定在了顯卡上。逼近整個渲染過程基本都是顯卡一力承擔,可以大膽猜測一下,可能是其中某些環節的不正常遲滯造成了個別幀渲染時間過長,最后導致畫面卡頓,于是下面我們將地毯式搜索顯卡的每一個零部件……
0人已贊
關注我們



