2011-01-11 41 views
7

首先,讓我開始我的數學背景。我已經採用微積分I - IV和微分方程。我已經參加了第一學期的計算機圖形課程,在那裏我們實現了我們自己的圖形管道,包括使用Phong的陰影,而不使用任何圖形API。計算機圖形學:數學到代碼

我正在攻讀研究生級這個學期的高級計算機圖形學課程,當讀數學時,它會使我失去。這個類基本上是一個圖像合成類。我們將在我們的第一個項目中構建一個射線追蹤器,並從此開始構建它。

在閱讀先進的計算機圖形學時,我通常會得到一堆數學。我知道計算機圖形學數學很重,但在試圖弄清楚我是如何將數學實現到代碼中時遇到了問題。爲了在CG中脫穎而出,我真的需要掌握這一點。

例如,本文從GPU精粹: http://http.developer.nvidia.com/GPUGems/gpugems_ch01.html 有一堆數學的,但我不知道從哪裏開始實施數學,如果我想。

那麼,有什麼我失蹤? 我想看看數學,並能夠得到代碼? 是否有教程/書籍可以幫助我瞭解我需要做什麼?

+3

你有多少線性代數?大多數計算機圖形學應用了線性代數。 – 2011-01-11 01:09:31

+0

我也採用了線性代數。我忘了提到這一點。我從來沒有遇到線性代數的問題,它是複雜的積分以及如何將它們轉換爲代碼。 – Oscar 2011-01-11 01:13:54

回答

0

該文章使用FFT或實際上反FFT來生成移動高度字段。閱讀FFT。要做一個2D,你首先對行進行1d FFT,然後對列進行FFT。一旦你有了高度場,偏導數可能是通過沿着x或y軸的相鄰高度的差異取決於它的部分。我一眼就看不到積分,但它們出現在一些圖形文件中,並且有評估它們的方法。

我也可以推薦在俯瞰周圍的OMPF論壇: http://ompf.org/forum/

0

一個提示我可以給不僅僅是「學習更多的數學和實踐」是一些數學結構一般在代碼類似的結構,它只是可能並不明顯。

積分(和summations)通常被實現爲代碼中的循環或跨幀的總和(在圖形中通常是這種情況)。衍生物和偏分量是值之間的變化,通常表現爲跨越幀的增量或像像素這樣的離散元素之間的變化。

這些規則不會保持100%,但如果您可以從它們生成的代碼的角度開始查看可怕的數學元素,它將更易於吸收。從堅實的基礎開始工作是非常重要的,所以要確保你的基礎知識有所下降,其餘的要有經驗和實踐。

1

對你在GPU寶石文章中看到的數學編程一般會進行數值分析。數值分析應用的更多方面將在關於數值方法或科學編程的課程或書中得到處理。我建議從維基百科文章numerical analysis開始,看看一些特定的鏈接文章。一旦你知道一些相關方法的名稱,示例代碼很容易找到。

提示:實現派生和積分的很大一部分實際上只是學習如何處理程序中的限制(在數學意義上)。通常情況下,沒有明確說明。