Metal框架詳細解析(八) —— 關于GPU Family 4之關于增強的MSAA和Imageblock采樣覆蓋控制(五)

版本記錄

版本號 時間
V1.0 2018.10.06 星期六

前言

很多做視頻和圖像的,相信對這個框架都不是很陌生,它渲染高級3D圖形,并使用GPU執行數據并行計算。接下來的幾篇我們就詳細的解析這個框架。感興趣的看下面幾篇文章。
1. Metal框架詳細解析(一)—— 基本概覽
2. Metal框架詳細解析(二) —— 器件和命令(一)
3. Metal框架詳細解析(三) —— 渲染簡單的2D三角形(一)
4. Metal框架詳細解析(四) —— 關于GPU Family 4(一)
5. Metal框架詳細解析(五) —— 關于GPU Family 4之關于Imageblocks(二)
6. Metal框架詳細解析(六) —— 關于GPU Family 4之關于Tile Shading(三)
7. Metal框架詳細解析(七) —— 關于GPU Family 4之關于光柵順序組(四)

About Enhanced MSAA and Imageblock Sample Coverage Control - 關于增強的MSAA和Imageblock采樣覆蓋控制

了解如何在tile著色器中訪問多重采樣跟蹤數據,啟用自定義MSAA解析算法的開發等。


Overview - 概覽

多重采樣抗鋸齒(MSAA)是一種通過對每個像素使用多個深度和顏色采樣來改善原始邊緣外觀的技術。 圖1顯示了沒有MSAA的三角形。 因為每個像素都有一個采樣位置,所以它被覆蓋或未被三角形覆蓋,導致鋸齒狀邊緣。

Figure 1 Antialiasing using a single sample per pixel

圖2顯示了使用4x MSAA渲染的相同三角形;也就是說,每個像素具有四個采樣位置。 圖形處理單元(GPU)平均像素內的每個樣本的顏色以確定最終顏色。 該過程導致更光滑的外觀并減少鋸齒狀邊緣。

Figure 2 Antialiasing using four samples per pixel

Apple的A系列GPU具有高效的MSAA實施。 硬件跟蹤每個像素是否包含基本邊緣,以便僅在必要時對每個采樣執行混合。 如果像素中的所有采樣都被單個圖元覆蓋,則GPU僅對整個像素進行一次混合。


Imageblock Sample Coverage Control - Imageblock采樣覆蓋控制

A11上的Metal 2跟蹤每個像素的唯一采樣(或顏色)的數量,在渲染新基元時更新此信息。 例如,圖3中的像素包含兩個重疊三角形的邊緣,采樣位置由三種獨特的顏色覆蓋。 在當前的A系列GPU中,該像素混合了三個覆蓋樣本中的每一個。 在A11 GPU上,此像素僅混合兩次,因為兩個覆蓋的樣本共享相同的顏色。 在這種情況下,索引1處的顏色是綠色和粉紅色的混合,索引2處的顏色是粉紅色。

Figure 3 One pixel that contains three unique samples

A11上的Metal 2可以減少像素中唯一顏色的數量。 在圖4中,在早期基元的頂部渲染了另一個不透明的三角形。 由于所有樣本都被新三角形覆蓋并且可以用單一顏色表示,因此A11 GPU將三種顏色合并為一種顏色。

Figure 4 One pixel that contains one unique sample

此外,您可以在tile著色器中訪問和修改樣本覆蓋率數據,以實現自定義分辨率算法。 例如,給定包含不透明和半透明幾何體的單獨渲染階段的復雜場景,您可以添加tile著色器以在混合半透明幾何體之前解析不透明幾何體的樣本數據。 使用A11上的Metal 2,此tile著色器可以處理本地內存中的數據,并且可以是不透明幾何階段的一部分,如圖5所示。

Figure 5 Using a tile shader to implement a custom resolve algorithm

后記

本篇主要講述了增強的MSAA和Imageblock采樣覆蓋控制,感興趣的給個贊或者關注~~~

?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容