什么是計算機圖形學?


一、什么是計算機圖形學?

計算機圖形學(Computer Graphics,簡稱 CG)的內容比較豐富,與很多學科都有交叉,因此認為是無法嚴格定義的。

在 “Wiki百科” 和 “百度百科” 上,對 “計算機圖形學” 的解釋為:計算機圖形學是一種使用數學算法將二維或三維圖形轉化為計算機顯示器的柵格形式的科學。簡單地說,計算機圖形學的主要研究內容就是研究如何在計算機中表示圖形、以及利用計算機進行圖形的計算、處理和顯示的相關原理與算法。雖然通常認為 CG 是指三維圖形的處理,事實上也包括了二維圖形及圖像的處理。

狹義地理解,計算機圖形學是數字圖象處理或計算機視覺的逆過程:計算機圖形學是用計算機來畫圖像的學科,數字圖象處理是把外界獲得的圖象用計算機進行處理的學科,計算機視覺是根據獲取的圖像來理解和識別其中的物體的三維信息及其他信息。


二、計算機圖形學的主要內容

計算機圖形學主要包含四大部分的內容:建模(Modeling)、渲染(Rendering)、動畫(Animation)和人機交互(Human–computer Interaction, HCI)。


2.1 建模(Modeling)

要在計算機中表示一個三維物體,首先要有它的幾何模型表達。因此,三維模型的建模是計算機圖形學的基礎,是其他內容的前提。表達一個幾何物體可以是用數學上的樣條函數或隱式函數來表達;也可以是用光滑曲面上的采樣點及其連接關系所表達的三角網格來表達(即連續曲面的分片線性逼近),如下圖所示。

img


三維建模方法主要包含如下的一些方法:

  • 計算機輔助設計(CAD)中的主流方法是采用 NURBS(非均勻有理B-樣條、Bezier曲線曲面)方法(已成為 CAD 工業領域的標准),這也是計算機輔助幾何設計(CAGD)所研究的主要內容。此類表達方法有一些難點問題仍未解決,比如非正規情況下的曲面光滑拼合,復雜曲面表達等。這部分涉及的數學比較多,國內做這塊的學者比較多些。
  • 細分曲面(Subdivision surface)造型方法,作為一種離散迭代的曲面構造方法,由於其構造過程朴素簡單以及實現容易,是一個方興未艾的研究熱點。經過十多年的研究發展,細分曲面造型取得了較大的進展,包括奇異點處的連續性構造方法以及與 GPU 圖形硬件相結合的曲面處理方法。
  • 利用軟件的直接手工建模。現在主流的商業化的三維建模軟件有 Autodesk 3D Max 和 Maya。其他還有面向特定領域的商業化軟件,比如面向建築模型造型的 Google Sketchup,面向 CAD/CAM/CAE 的 CATIA 和 AutoCAD,面向機械設計的 SolidWorks,面向造船行業的 Rhino 等。這些軟件需要建模人員有較強的專業知識,而且需要一定時期的培訓才能掌握,建模效率低而學習門檻高,不易於普及和讓非專業用戶使用。
  • 基於筆划或草圖交互方式的三維建模方法。草圖交互方式由於其符合人類原有日常生活中的思考習慣,交互方式直觀簡單,是最近幾年研究的熱點建模方法。其難點是根據具體的應用場合,如何正確地理解和識別用戶的交互所表達的語義,構造出用戶所希望的模型。
  • 基於語法及規則的過程式建模方法。特別適合具有重復特征和結構化的幾何物體與場景,比如建築、樹木等。最近幾年有較多的論文及較大的發展。
  • 基於圖像或視頻的建模方法。這是傳統的計算機視覺所要解決的基本問題。在計算機圖形學領域,這方面的發展也很迅速。有一些商業化軟件或雲服務(比如 Autodesk 的 123D),已經能從若干張照片重建出所拍攝物體的三維模型。該方法的問題是需要物體本身已經存在,而且重建的三維模型的精度有限。
  • 基於掃描點雲(深度圖像如 Kinect、結構光掃描、激光掃描、LiDAR 掃描等)的建模(Reconstruction)方法。隨着深度相機的出現及掃描儀的價格迅速下降,人們采集三維數據變得容易,從采集到的三維點雲來重建三維模型的工作在最近幾年的 Siggraph(Asia) 上能常見到。但是,單純的重建方式存在精度低、穩定性差和運算量大等不足,遠未能滿足實際的需求。
  • 基於現有模型來合成建模的方法。隨着三維模型的逐漸增多,可以利用現有的三維模型通過簡單的操作,比如 cut and paste,或者分析及變形等手段,來拼接或合成新的三維模型。這種通過“學習”模型數據庫的知識來進行建模的手段在近 3-5 年里研究得非常熱門。從某方面來講,就是“大數據時代”背景下計算機圖形學領域中的一個具體的表現。

雖然有上述所提到的這么多的三維建模方式,但是至今為止,仍沒有適合一般家庭用戶的輕松簡單的建模工具。現有的電子設備(比如相機,手機等)能夠幫助人們輕松獲得圖像和視頻,但是,不是人人都有能力來構建三維幾何模型。如何讓大眾能夠像獲取圖像那樣能夠隨時隨地地獲取或者構建三維模型,仍然是計算機圖形學的任重道遠的主要任務之一!


2.2 渲染(Rendering)

有了三維模型或場景,怎么把這些三維幾何模型畫出來,產生令人賞心悅目的真實感圖像?這就是傳統的計算機圖形學的核心任務,在計算機輔助設計,影視動漫以及各類可視化應用中都對圖形渲染結果的高真實感提出了很高的要求。

上個世紀 80-90 年代研究的比較多些,包含了大量的渲染模型,包括局部光照模型(Local Illumination Model)、光線跟蹤算法(Ray Tracing)、輻射度(Radiosity)等,以及到后面的更為復雜、真實、快速的渲染技術,比如全局光照模型(Global Illumination Model)、Photo mapping、BTF、BRDF、以及基於 GPU 的渲染技術等。

現在的渲染技術已經能夠將各種物體,包括皮膚、樹木、花草、水、煙霧、毛發等渲染得非常逼真。一些商業化軟件(比如 Maya, Blender, Pov Ray 等)也提供了強大的真實感渲染功能,在計算機圖形學研究論文中作圖中要經常用到這些工具來渲染漂亮的展示圖或結果圖。

然而,已知的渲染實現方法,仍無法實現復雜的視覺特效,離實時的高真實感渲染還有很大差距,比如完整地實現適於電影渲染(高真實感、高分辨率)制作的 RenderMan 標准,以及其他各類基於物理真實感的實時渲染算法等。因此,如何充分利用 GPU 的計算特性,結合分布式的集群技術,從而來構造低功耗的渲染服務是發展趨勢之一。

http://www.ozone3d.net/public/jegx/201107/skin_rendering_sssss.jpg

http://www.rhythm.com/~ivan/images/hair/tabby.yuv.jpg


2.3 動畫(Animation)

動畫是采用連續播放靜止圖像的方法產生物體運動的效果。計算機動畫借助於編程或動畫制作軟件生成一系列的景物畫面,是計算機圖形學的研究熱點之一。

研究方向包括:人體動畫,關節動畫,運動動畫,腳本動畫,具有人的意識的虛擬角色的動畫系統等。另外,高度物理真實感的動態模擬,包括對各種形變、水、氣、雲、煙霧、燃燒、爆炸、撕裂、老化等物理現象的真實模擬,也是動畫領域的主要問題。

這些技術是各類動態仿真應用的核心技術,可以極大地提高虛擬現實系統的沉浸感。計算機動畫的應用領域廣泛,比如動畫片制作,廣告、電影特技,訓練模擬,物理仿真,游戲等。


2.4 人機交互(Human–Computer Interaction, HCI)

人機交互(Human-Computer Interaction,簡寫 HCI)是指人與計算機之間以一定的交互方式或交互界面,來完成確定任務的人與計算機之間的信息交換過程。簡單來講,就是人如何通過一定的交互方式告訴計算機來完成他所希望完成的任務。

在早期(上個世紀 60-70 年代),只有以鍵盤輸入的字符界面;到了 80 年代,以 WIMP(窗口、圖符、菜單、鼠標)為基礎的圖形用戶界面(GUI)逐漸成為當今計算機用戶界面的主流。

近年來,以用戶為中心的系統設計思想,增進人機交互的自然性,提高人機交互的效率是用戶界面的主要研究方向。陸續提出了多通道用戶界面的思想,它包括語言、姿勢輸入、頭部跟蹤、視覺跟蹤、立體顯示、三維交互技術、感覺反饋及自然語言界面等。

事實上,人體的表面本身就是人機界面。人體的任何部分(姿勢,手勢,語言,眼睛,肌肉電波,腦波等)都可以成為人機對話的通道。

以下是一些人機交互設備的應用:

  • Microsoft Kinect:由微軟於 2010 年推出的 XBOX360 體感外設,它不需要使用任何控制器,僅依靠相機捕捉三維空間中玩家的運動,同時它導入了即時動態捕捉、影像辨識、麥克風輸入、語音辨識、社群互動等功能。Kinect 徹底顛覆了游戲的單一操作。使人機互動的理念更加徹底的展現出來。之后,基於 Kinect 的各種應用像雨后春筍般的冒出來,包括人機交互,手勢識別,幾何建模等。
  • Google Glass:為 Google 公司在 2012 的 I/O 開發者大會上正式公布的,在看起來普普通通的眼鏡上配置強大的計算機和顯示器。這款設備小巧而不顯眼,可以在任何時間地點使用,即用戶想要專注於周圍環境時不會礙事。
  • Apple Watch:蘋果公司推出的一款智能手表,界面極其炫酷。

2.5 其他內容

上述所提到的只是計算機圖形學的主要的四個內容。事實上,與計算機圖形學相關的學科還有很多,以下僅介紹幾個最為相關的研究方向:

  • 虛擬現實(Virtual Reality):利用計算機圖形產生器,位置跟蹤器,多功能傳感器和控制器等有效地模擬實際場景和情形,從而能夠使觀察者產生一種真實的身臨其境的感覺。虛擬現實技術主要研究用計算機模擬(構造)三維圖形空間,並使用戶能夠自然地與該空間進行交互。對三維圖形處理技術的要求特別高。

  • 可視化(Visualization):利用計算機圖形學和圖像處理技術,將數據轉換成圖形或圖像在屏幕上顯示出來,並進行交互處理的理論、方法和技術。現已成為研究數據表示、數據處理、決策分析等一系列問題的綜合技術。

  • 醫學圖像處理(Medical Imaging):隨着醫學成像技術的發展與進步,圖像處理在醫學研究與臨床醫學中的應用越來越廣泛。與一般意義上的圖像處理比較,醫學圖像處理有其特殊性和不同的側重點。醫學圖像處理由生物醫學成像(X射線、CT、MRI)和生物醫學圖像處理兩部分組成,在生命科學研究、醫學診斷、臨床治療等方面起着重要的作用。醫學圖像分析中涉及的兩個最為重要的內容為圖像分割與圖像配准。

  • 計算機藝術(Computational Arts):計算機圖形學的發展也提供給了藝術家發揮和實現想象的豐富的技術手段。計算機藝術的發展速度遠遠超出了人們的想象,在代表計算機圖形研究最高水平的歷屆 SIGGRAPH 年會上,精彩的計算機藝術作品層出不窮。


三、 學習計算機圖形學需要哪些基礎?

計算機圖形學是一門與很多學科都交叉的學科方向。因此,要學好計算機圖形學和做好計算機圖形學方面的研究,除了計算機圖形學的基礎知識以外,你還需要有其他方面的一些知識。當然你懂得越多當然會越好。


3.1 數學

計算機圖形學進入我國大概在上個世紀 70 年代末和 80 年代初,那時國內還沒有計算機學科。於是,開始學習和研究計算機圖形學的大部分都是搞數學的一些學者和教授。由此可見,計算機圖形學是需要數學知識較多的一門計算機應用技術學科,在我國也是應用數學的一個重要分支(國內的很多高校和科研院所的數學專業都有計算機圖形學方向)。

計算機圖形學里面用到的數學比較多,列舉一些常用的,包括:微積分、線性代數、矩陣計算、微分幾何、數值計算和分析、計算方法、偏微分方程、微分方程數值解、最優化、概率、統計、計算幾何等。

關於計算機圖形學與數學的關系,歸納起來就是以下幾個原則:

  • 計算機圖形學的研究需要用到較多的數學知識,有較好數學功底的學生從事計算機圖形學有一定優勢;
  • 即使沒有學太多的數學也不要緊。數學的知識不需要都學會了再去做問題,在解決問題的過程中去學習數學是最快的學習方法。即,研究過程中若遇到什么數學知識再去學相關的知識,學習起來會更有興趣,掌握起來會更快更扎實;
  • 學習數學要結合圖形,即“數形結合”,需要有圖形的想象能力;數學公式不重要,是“紙老虎”,重要的是背后的思想及其所表達的概念,公式只是它們的一個抽象表達。

3.2 編程

在計算機圖形學中,大部分的想法都要通過實際例子來驗證的,再好的理論也要拿實際例子來得到驗證和應用。因此,利用編程語言來實現想法或算法是必須要有的能力。

C/C++ 是計算機圖形學最常用的編程語言。網上的大部分的資源、類庫、算法代碼基本上都是 C++ 寫的,因此,你若需要利用這些資源,必須掌握甚至精通 C++ 語言。

關於計算機圖形學所需要的編程能力的幾點看法:

  • 從事計算機圖形學和圖像處理的研究需要有較強的編程能力,要對編程有極大的興趣和熱情;
  • 如果你對編程比較“感冒”或“厭惡”,則建議你不要選擇計算機圖形學方向;

3.3 其他

  • 英語基礎要好,因為需要大量閱讀相關的英文文獻;
  • 計算機圖形學中的很多算法是真實物理世界的模擬,因此,如果你要進行基於物理的建模和仿真,一些物理知識和理論也需要的,比如力學(動力學,運動學,流體力學)和光學等;
  • 其他學科的知識,根據具體研究的需要去學習即可,不必刻意去提前學多少。

參考:

什么是計算機圖形學?



免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM