計算機圖形學概念/導論
本華夏公益教科書旨在向非技術人員解釋計算機圖形學概念。大多數關於計算機圖形學的書籍都是從程式設計師的角度編寫的,他們試圖完成某些演算法的實現,無論是電腦遊戲、光線追蹤器還是動畫系統。
相反,本華夏公益教科書旨在向沒有實現任何東西的意圖,並且只有基本數學知識(和耐心)的人解釋計算機圖形學概念。這樣的讀者可能是尋求更好地理解其用來製作藝術作品或電子遊戲內容的系統的藝術家,也可能是試圖開始學習計算機圖形學但沒有之前經驗的人,或者僅僅是希望更多瞭解構成我們體驗的媒體的圖形的好奇者。
由於我們從一開始就開始了,我們的第一步將是定義計算機圖形學技術試圖解決的問題。因此,為了開始我們的討論,我們將首先嚐試(笨拙地)解釋這個問題,說計算機圖形學中的主要問題是如何建立所需的影像。
鑑於人們建立影像的不同原因,包含所有計算機圖形學的陳述必然是模糊的。為了更好地理解我們試圖理解的內容,我們將討論計算機圖形學試圖解決的一些具體問題。
計算機圖形學最常見的用途之一是建立看起來像真實照片的影像,但描繪了我們實際上無法拍攝的照片。例如,我們可能想為電影建立一個動畫,描繪外星生物或地點,或者我們可能想建立一個建築渲染,以便了解最終建築的外觀。我們將這種型別的計算機圖形稱為照片逼真。通常,建立這些影像需要花費大量時間,因此這些技術通常試圖儘可能準確地捕捉燈光和表面的特性,以犧牲計算影像所需的時間為代價。
計算機圖形學的另一個常見用途是建立影像非常快,以便它們可以在互動式動畫中使用;大多數人熟悉的這些演算法的應用是電腦遊戲。當用戶控制他們的角色時,我們希望非常快地建立一系列影像(希望每秒 30 張或更多),以響應他們的輸入。我們將這種型別的計算機圖形稱為即時或互動式。我們可能希望這些影像儘可能地逼真,但事實是,如果我們有更多時間用於計算,我們可以建立更好的結果。因此,即時計算機圖形通常關注在幀之間可用的非常短的時間內建立最佳外觀圖片的技術。
計算機圖形學還有許多其他應用。我們可能對自動化我們可以手工製作的複雜圖片感興趣,以方便起見,或者我們可能對建立抽象或隨機的影像感興趣。事實上,計算機圖形學有許多應用介於上述兩個極端之間,例如醫學成像和視覺化系統。但是,對於入門文字來說,介紹實踐中混合和匹配以獲得所需結果的兩種主要技術就足夠了。
在接下來的文字中,我們將首先嚐試瞭解畫素的概念以及計算機如何表示顏色,這是計算機圖形演算法輸出的格式。之後,我們將考慮如何表示計算機圖形學程式使用的輸入資料,即要渲染的 3D 物件。在瞭解了這些基礎知識之後,我們將深入探討照片逼真和即時渲染的技術。