圖形學入門第八課:抗鋸齒

2021-02-14 丹尼的雜貨鋪

上一節課,我們學習了兩個主要知識

Viewing:View + Projection + Viewport

Rasterinig Triagles

今天我們重點學習Antialiasing反走樣或者叫抗鋸齒)。

我們先看看這張圖的問題.

首先我們回顧一下採樣這個概念,它本質就是把圖像的不同位置進行離散化,變成像素。採樣本身存在一些問題:叫做採樣瑕疵(Sampling Artifacts)。

上圖的鋸齒就是一種artifact(這裡artifact翻譯成瑕疵)。下圖是另外一種採樣的Artifact,叫做摩爾紋

接下來我們看另外一個採樣問題:Wagon Wheel Illusion.

下圖中這個圓盤其實是順時針旋轉的,但是有些內部的圓環看起來又像是逆時針旋轉。這其實也是採樣的瑕疵,問題出在我們的人眼。人眼的採樣速度跟不上圓輪旋轉的速度。我們生活中也會經常遇到這樣的問題。例如我們經常看到路上跑的車的輪子,有些輪子看起來像是往迴轉的。 

所以採樣是具有很多瑕疵的,以上只是我們舉出的幾個例子。我們來總結一下:

其走樣的本質就是信號的變化太快,以至於採樣的速度跟不上它,也至於造成採樣的走樣。這就是採樣的artifact。



在採樣之前做個模糊,也叫做Filtering(濾波)。

我們還是以三角形為例:在沒有做模糊時,我們採樣是紅和白,如下圖:

那我們先做一個模糊處理,然後再針對這個模糊的三角形做採樣:

那我們來看一下結果的對比。

抗鋸齒處理前:

抗鋸齒處理後:

看到以上效果後,我們來回顧一下我們的上面的內容:

為什麼採樣會出現走樣?

為什麼Filtering然後再採樣可以反走樣

為了徹底理解這兩個問題:我們先來科普一下Frequence Domain,這裡需要先科普一些頻率方面的知識。

大家還記得高中時期學的正弦函數和餘弦函數嗎?兩者的區別就是他們的相位略有不同。

那什麼是頻率呢?如果我們引入一個f,當我們調整f的值,就會發現,波的頻率不同。所以這裡的f就是表示頻率,表示這個餘弦波的變化有多快。那麼有了f,就可以來定義周期T,周期就是表示每隔多久重複一次。

這裡要給大家介紹另一個數學概念:傅立葉基數展開。

傅立葉基數展開:任何一個周期函數,都可以寫成一系列正弦和餘弦函數的線性組合加上一個常數。

例如下圖,我們想要描述圖中的黑色的框框形狀的函數,可以通過疊加多個正弦和餘弦函數來無限接近的描述這個框框形狀的周期函數

傅立葉基數展開跟另外一個概念:傅立葉變換有著緊密相連。什麼是傅立葉變換呢?看下邊的 一個公式:圖左邊有個函數f(x),右邊有一個函數F(X),左邊和右邊兩個函數可以經過中間一個非常複雜的函數來回變換。這裡中間這個複雜的操作函數暫且不需要理解。

那我們介紹傅立葉基數展開,和變換有什麼用呢?

大家可以注意到,傅立葉基數展開都可以由不同的正弦函數和餘弦函數展開。那我們可以留意到這樣一個細節,在傅立葉函數展開過程中,有1tw,2tw,3tw..。這些數字看起就很像我們之前介紹的頻率。

那我們就可以總結出這樣一個規律:任何一個周期性函數,都可以分解成不同頻率,由從低到高的頻率展開。那麼,這裡就可以結合傅立葉變換了。

例如,我們有五個這樣的函數:

我們用同一種採樣的方式來對這五個函數採樣,首先我們採樣頻率低的f(x),當我們連起來採樣的點,這些連起來的點還可以基本描述出這個函數的形狀。但是當我們用同樣的方法採樣頻率高的函數f5(x)時,我們的採樣點明顯跟不上採樣的頻率,那麼我們就無法通過採樣點來恢復f5這個函數。

思考:那我們學習了頻率傅立葉基數展開,和傅立葉變換,那跟我們採樣走樣有什麼關係?

答案:通過頻率這個概念,我們就可以明白,當對兩個完全不同的頻率的函數進行同樣的採樣方法,如果採樣點來描述出的函數不是唯一的,那麼這就是採樣走樣的出現的根本原因。例如下圖:我們有兩個函數,藍色函數和黑色函數。我們對其都做了同樣間隔的採樣點。但是這些採樣點即在藍色函數上,也在黑色函數上,雖然採樣結果相同,但是同樣的採樣法無法區分藍色函數和黑色函數,這種現象就是採樣走樣。

Filtering: Getting Rid of certain frequency contents. 所謂,(filtering)濾波,就是去掉一些頻率。

所以,傅立葉變換幫我們理解了這些採樣的問題的本質。它幫著一個函數或者圖像從時域變成了頻域

我們來看下邊這張圖:

上圖中左邊是個正常的照片,我們稱作時域圖

上圖中右邊的是左邊這張圖的頻域圖。在頻域圖的中間我們定義成低頻率區域;周圍我們定義為高頻區域。在不同位置的信息多少用亮度來表示。亮度越高說明信息越多。 這個圖中表示的是大部分信息都集中在圖的中間,就是低頻信息最多。

這種頻率的描述圖,也稱作頻譜

那我們再接下來下邊這個實驗:我們把右邊的頻譜圖的低頻的區域去掉,然後通過傅立葉還原成原來的圖,我們就得到左邊的圖,這個時候,我們就會發現,左邊的圖大概只剩下了衣服的一些輪廓。這種濾波手法叫做高通濾波器。

接下來我們再做第二個試驗:我們只留下低頻信息,抹掉所有高頻信息,還原後,我們得到了左邊的圖。這種手法叫做低通濾波器。

最後我們再做一個試驗:我們把高和低的頻率都去掉,然後留下中間一部分頻率後再做還原得到了左邊的圖片是長這個樣子的。



接下來我們再來介紹卷積

卷積定理


Sampling = Repeating Frequency Contents



經過前面的鋪墊,方便了我們理解為什麼要先模糊,再採樣。也就是說,懂了頻率後,我們理解它實際的本質是:先把高頻信息拿掉,然後再採樣。

我們來看一個例子:

上邊的圖中我們就可以發現,經過對高頻的濾波,那麼交叉的部分就被幹掉了,這樣就減少了不必要的幹擾。之後再進行採樣就可以達到反走樣的效果。

那麼今天,在工業內,抗鋸齒的方案有很多種:我們這節課只介紹了其中的基本原理。感興趣的同學可以自己進行更多的拓展學習。

相關焦點

  • 和平精英抗鋸齒在哪裡?抗鋸齒有用嗎
    和平精英抗鋸齒在哪裡?抗鋸齒有用嗎 和平精英中的抗鋸齒,這個就是用開啟對應的設置,玩家可以在遊戲中開啟抗鋸齒的玩法,那麼抗鋸齒在哪裡?下面我帶大家了解一下。和平精英抗鋸齒在哪裡?
  • 絕地求生刺激戰場抗鋸齒有什麼用 抗鋸齒怎麼設置
    絕地求生刺激戰場抗鋸齒怎麼用: 抗鋸齒功能其實算是一個雞肋功能,但是對於一些性能好的手機而言,抗鋸齒還是很給力的。 抗鋸齒功能的作用就是把地圖和人物的描邊做的更細緻,使得畫面更加逼真。 刺激戰場抗鋸齒功能相關介紹: 我是一個完美主義者,抗鋸齒也能開啟的話,刺激戰場一定是我心中最優秀的手遊! 雞友這麼誇咱們刺激戰場,當然要盡力滿足大家啦!
  • 抗鋸齒taa和fxaa區別
    18183首頁 抗鋸齒taa和fxaa區別 抗鋸齒taa和fxaa區別 來源:網絡
  • 《古劍奇譚》抗鋸齒補
    《古劍奇譚》抗鋸齒補使用說明:1.解壓縮2.把補丁文件(不是文件夾)複製進遊戲根目錄GuJian\Bin下例如:我的古劍安裝在E盤game文件下E:\game\GuJian\
  • 全軍出擊抗鋸齒什麼意思 開了有什麼好處
    絕地求生全軍出擊怎麼開啟抗鋸齒以及標準畫面呢?
  • 抗鋸齒技術革命:FX/TXAA畫質性能實測
    這種方法能有效的改進圖像邊緣的表現效果,換一種說法就是實現了「抗」鋸齒的作用。    抗鋸齒(Anti-aliasing):標準翻譯為「抗圖像摺疊失真」。由於在3D圖像中,受分辨的制約,物體邊緣總會或多或少的呈現三角形的鋸齒,而抗鋸齒就是指對圖像邊緣進行柔化處理,使圖像邊緣看起來更平滑,更接近實物的物體。它是提高畫質以使之柔和的一種方法。
  • 玩遊戲時,你注意到抗鋸齒選項了嗎?
    遊戲的畫質設置中,有很多選項可以調節,比如粒子特效、高光、貼圖材質、陰影、抗鋸齒等等,那麼你知道抗鋸齒是什麼嗎?它有什麼作用呢?今天就來給大家簡單講講,遊戲的抗鋸齒特效究竟是什麼。屏幕中的像素排列方式都是水平和垂直的,所以當屏幕顯示斜線或者有彎曲的圖像時,就會出現鋸齒狀,俗稱滿屏狗牙,因為像素點都是正方形小方塊,而抗鋸齒的作用很簡單,就是優化這些鋸齒畫面,讓線條看起來更加平滑。
  • 拒絕「狗牙」:六種抗鋸齒性能大檢測
    拒絕「狗牙」:六種抗鋸齒性能大檢測 對於PC遊戲玩家,特別是高端玩家來說,AA抗鋸齒是一個永恆的話題,如何選擇適合自己的抗鋸齒類型和級別也往往讓大家非常頭疼。Tom's Hardware近日組織了一個大型專題,集中考察了六種抗鋸齒技術的遊戲性能表現,相信看過之後大家就能找到自己的方向了。
  • 高清無碼但是更卡 抗鋸齒的原理究竟是什麼?
    抗鋸齒究竟是什麼原理:手機用戶點此觀看  因為大家屏幕裡的像素點都是垂直和水平排列,因此在顯示傾斜或者曲形的物體時就會出現鋸齒。鼓搗過畫面設置的玩家都會有這樣的經歷,在調高了某個畫面選項後,遊戲的幀數會顯著下降,有時候甚至會導致遊戲卡死,而這些「吃幀數大戶」中,抗鋸齒就是其中之一。
  • 遊戲裡抗鋸齒這個選項有什麼用?
    相信有不少玩家不管是在電腦還是手機上都會看見抗鋸齒這個選項,我們先來了解一下它的具體含義。抗鋸齒,也叫反鋸齒,它的作用是邊緣柔化,可以消除混疊等。因為在遊戲中,受到一些分辨的制約,會導致一些物體的邊緣多少會呈現一些三角形狀的鋸齒,而抗鋸齒這個選項就是對遊戲內3D圖像邊緣實施柔化處理,這麼看起來會顯得平滑一些,最終呈現的效果都比較接近與實體。所以,這也是提高畫質的一種途徑。
  • 保守形態抗鋸齒 (CMAA) - 2014 年 3 月更新
    本文摘自英特爾公司的 Leigh Davies 在 IDZ 發表的一篇博文,重點介紹了 Leigh 及其同事 Filip Strugar 被稱為保守形態抗鋸齒的全新抗鋸齒技術工作成果。 以下為博文內容以及可供您檢查的項目 本例演示了一項被稱為保守形態抗鋸齒的基於圖像的全新抗鋸齒技術,可在此處下載。
  • 抗鋸齒也能無損性能 FXAA特性遊戲實測
    抗鋸齒可以說是對任何遊戲都會造成性能衝擊的特性設置,無論是DirectX 9還是DirectX 11,無論是畫面粗糙如樂高還是精緻如Crysis2,只要你在遊戲中開啟抗鋸齒選項,任何顯卡都會出現幅度不同但卻明顯的性能下降。而如果關閉抗鋸齒設置,無論人物建模還是場景物體的邊緣都會因為鋸齒問題而變得「狗牙密布」。
  • NVIDIA用光線追蹤改進TAA時間抗鋸齒:畫質完美 幀率流暢
    最近,AMD、NVIDIA針對DLSS深度學習超採樣抗鋸齒技術打了一次口水戰。AMD認為這種技術是私有的、封閉的,不會有前途,而且有自己的技術缺陷,NVIDIA則反駁說DLSS會不斷優化,AMD堅守的SMAA(增強型子像素形態抗鋸齒)、TAA(時間抗鋸齒)技術則已經過時了。
  • GTX 770抗鋸齒性能...
    下面是MSAA(多重採樣抗鋸齒)x8,就是把遊戲解析度提高,之後在縮小到屏幕上。抗鋸齒效果非常好,不過也非常損害性能,開了之後幀數驟然降到了30幀左右。  CSAA(覆蓋採樣抗鋸齒)x16,是NVIDIA G80系列出現時一併出現的抗鋸齒技術,CSAAx16的抗鋸齒效果和MSAAx8差不多,但是性能的消耗要比MSAAx8略低。
  • 書單 | 計算機圖形學必讀的10本書
    作為一門計算機應用科學,計算機圖形學近年來的快速發展極大地促進了計算機輔助設計、虛擬實境、遊戲、動畫、影視特效等行業的發展。為了幫助同學們更好地學習計算機圖形學,我們邀請微軟亞洲研究院網絡圖形組主管研究員董悅為大家推薦了該領域相關的經典書籍,內容涵蓋圖形學基礎原理、渲染基礎與算法、計算幾何與幾何處理、表觀建模等。
  • 抗鋸齒技術的新節點:深度學習超級採樣(DLSS)到底是什麼
    因為畫面的生成原理問題,畫面是無法完全避免鋸齒的,而在如何消除鋸齒方面,簡單來說有兩種手段,一種是通過更多的像素採樣,生成更加精細的畫面,然後超採樣到屏幕裡,因為解析度的原因,更加精細的畫面能夠實現消除鋸齒的效果,這種抗鋸齒效果比較好,而且要實現沒有太多技術難度,但是對於性能的要求非常高,其中的代表就是簡單粗暴的超級採樣抗鋸齒(SSAA)、多重採樣抗鋸齒(MSAA)。
  • 零基礎如何學習計算機圖形學?
    希望通過默然同學的講解,能夠給想入門或者正在入門圖形學的同學以啟發。我不建議上來就逮著一本Direct3D或OpenGL的書往死了看。這些API只是圖形學的一部分。上來就看這種東西,把握不住細節的輕重。
  • 論畫質與幀數如何兼得,MFAA多幀採樣抗鋸齒簡單測試
    NVIDIA的Maxwell架構給玩家帶來了DSR動態超級解析度以及MFAA多幀採樣抗鋸齒兩項新技術,其中DSR技術已經可以在GeForce 500/600/700/900系列顯卡上啟用,而MFAA則是在最新的GeForce 344.75 WHQL驅動中正式登陸,目前僅支持GTX 970/980/970M/980M顯卡。
  • 《實況足球2012》高清畫質抗鋸齒處理工具 v1.0
    《實況足球2012(Pro Evolution Soccer 2012)》高清畫質抗鋸齒處理工具 v1.0使用說明:1.解壓縮2.把文件夾下的所有文件複製到遊戲安裝目錄中,運行FXAA_Tool.exe
  • 深度學習抗鋸齒雖好,但是使用它的解析度、光追限制很複雜……
    雖然很緩慢但是逐漸的,支持光線追蹤、深度學習抗鋸齒的遊戲已經開始增多,《地鐵:離去》在明天發布後就能夠體驗到這兩樣技術,《戰地V》同樣在昨天迎來好消息:二月更新搭配最新的GeForce Game Ready 418.91驅動能夠開啟深度學習抗鋸齒(DLSS)技術,同時繼續優化光線追蹤的性能