數學之美—電腦圖形學演算法(轉貼)

來源:互聯網
上載者:User
“假如我要打算學習電腦圖形學的話我應該學習那些數學科目?”這大概是關於電腦圖形學的問題裡面學生最經常問我的一個問題,這個問題的答案取決於你打算研究電腦圖形學有多深入。如果你打算僅僅使用現成的圖形軟體那麼這個問題的答案大概就是你根本不需要懂太多的數學。假如你要學習一些入門的電腦圖形學,那麼我建議你首先學習代數學,三角和線性代數。如果你希望有一天成為一個電腦圖形學方面的研究者,那麼你一輩子都得不間斷地學習數學直到你翹辮子。

如果你不太關心數學,那麼還有機會在這個領域裡工作嗎?有,電腦圖形中的少數幾個領域不需要太多的數學思想。你不應該放棄電腦圖形學僅僅因為你不是數學巫師。無論如何,如果你肯積極地學習最近的數學成就的話你就會有更多的自由去選擇你要研究的題目。
關於什麼數學在電腦圖形學裡面是最重要的這個問題沒有絕對的答案。圖形學裡面不同的研究領域和題目需要不同的數學技術,同時你自己的興趣也會帶著你走向某些領域和遠離某些科目。下面是一些我自己認為在圖形學裡面有用的數學科目。但是不要認為為了成為一個圖形學專家你就需要成為所有這些數學領域的專家!因為我在下面盡量給出一個比較全面的數學在電腦圖形中的應用的描述,但是大部分研究者,可能永遠也用不到其中的一些數學工具。

代數和三角

對於圖形學入門來講,高中層級的代數和三角可能是最重要的數學工具。幾乎每天我都需要通過一些等式解算一個或多個未知量,通過某些圖形的已知邊的長度和角度算出未知邊的長度。代數和三角幾乎是你每天都要使用的工具。
那麼你在高中學習的幾何學呢?他幾乎在圖形學研究中很少用上。奇怪吧?其實你在高中學習的幾何主要的目的在於學習如何進行數學證明。當然數學證明是一個很有價值的東西,但它在工程領域很少用得上。
假如你有了較好的代數和三角的底子你就可以準備好閱讀圖形學的入門書籍了。大部分的圖形學入門書籍包含一些線性代數的簡單介紹。而線性代數正是下一個關於圖形學的重要的數學工具。
建議閱讀:
Computer Graphics: Principles and Practice
James Foley, Andries van Dam, Steven Feiner, John Hughes
Addison-Wesley
[一本大部頭的書,但至今還是我的最愛]

線性代數

線性代數的思想在整個圖形學領域都可以用得到。數值化地表示幾何模型需要用到x,y,z座標,這個x,y,z座標常常會集合在一起表示為一個向量,向量和相關的數學對象,一個叫做矩陣(matrix)的東西,在圖形學中每時每刻都要用到。向量和矩陣是最最文雅,端莊的用來表示一個對象的平移,旋轉,和縮放的語言。任何人,想要研究圖形學的話,必須要在這個領域打好堅實的基礎。大部分的圖形學教科書都會對線性代數做一些入門的介紹,一般足夠你做圖形學的入門用。
建議閱讀: Linear Algebra and Its Applications

微積分

對於進階的圖形學領域而言微積分是很重要的工具, 如果你打算投身於圖形學的研究,我強烈地建議你打好微積分的基礎。 這不光是因為微積分有這個領域常常要用的的工具,還因為大部分的研究人員使用微積分的語言描述他們的問題和解決的方法。 另外,許多的數學領域需要微積分作為預備知識。學好微積分它能替你開啟許多圖形學和數學領域的大門。

微分幾何

這個數學領域研究曲線和曲面的方程,如果你想要得到一個光滑曲面上某個點的法線,那麼你需要用到微分幾何。如果你要讓某個點沿著某條曲線以某個精確的速度做運動,那麼你也需要用到微分幾何。如果你要讓某個光滑曲面看來很粗糙(就是傳說中的“bumpping”),這個效果也會招來微分幾何。
如果你打算研究使用曲線和曲面建立造型(傳說中的“modeling”),那麼你至少需要用到基本的微分幾何。多元函數微積分是這個領域的預備知識。
建議閱讀:
Elementary Differential Geometry

數值方法(或科學計算)

幾乎每次我們在電腦內表示和計算數值我們都使用一個近似值替代精確值,所以經常會有錯誤悄悄混進來的可能性。此外,常常會有好幾種方法去解決一個數值計算問題,有的方法比較快,有的比較節省記憶體,有的和其他的比起來又比較精確。數值計算就是研究這裡問題的科學。這是一個非常廣闊的領域,好幾種我將要提到的數學領域,可以看作是處於數值方法這個保護傘保護下的子領域,他們包括:採樣理論, matrix equations, 微分方程的數值解,優選法(Optimization)
建議閱讀:
Numerical Recipes in C: The Art of Scientific Coomputing
[這是一本非常有價值的參考書但是一般不會用來作為教科書]

採樣理論和訊號處理

在電腦圖形學中,某些對象的表達方式譬像,或者曲面,是一系列儲存在兩維陣列裡面的一組離散的數值。無論如何我們做類似的事情的時候我們是在建立一個對象的“採樣”表示。對採樣理論的良好瞭解對於使用和控制使用這樣的表達方式的對象的品質是非常重要的。

矩陣方程(Matrix Equations)
物理
微分方程的數值解
(優選法)Optimization
機率和統計
Computational Geometry
Computational Geometry是研究如何在電腦內有效地描述和操縱幾何模型的學科。比如測試兩個對象是否碰撞,決定如何把多邊形拆解為
三角面等等,這個領域結合了演算法,資料結構和數學。在圖形學領域研究建模這一塊的人特別需要研究這門學問。
Book recommendations:
Computational Geometry in C
Joseph O'Rourke
Cambridge University Press
[undergraduate text]
Computational Geometry: An Introduction
Franco Preparata and Michael Shamos
Springer-Verlag
[the classic text, somewhat dated]

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.