2009-08-24 52 views
17

我想知道什麼樣的數學通常是3D遊戲引擎編程所必需的?任何具體的數學運算(例如矢量幾何)或計算算法(如快速傅里葉變換),還是全部使用DirectX/OpenGL抽象出來,以便高度複雜的數學不再是真正必要的?在3D(遊戲)引擎編程中使用的數學

+1

3D圖形編程需要對線性代數有相當的理解。 [3D計算機圖形矢量數學教程](http://chortle.ccsu.edu/vectorlessons/vectorindex.html)是迄今爲止學習矢量和矩陣的最佳資源。這也是互動的,每節結束時都有一個測試問題來驗證和密封對該主題的理解。 – legends2k 2013-10-26 05:17:19

+0

這個問題應該轉移到其他堆棧交換站點之一,例如遊戲開發或數學。 (不知道這是對的,因爲這個問題包括編程) – Andreas 2017-08-27 14:19:43

回答

14

矩陣,三角函數,幾何形狀大多是和一個位線性代數

的拿這裏看看http://www.essentialmath.com/

+5

和向量​​,很多向量! – Marius 2009-08-24 04:08:47

+2

這麼多的載體...... :( – 2009-08-24 04:23:24

+0

事實上,你可以擺脫載體,並有一些重要的優點,張量更好用。 – ima 2009-08-24 06:01:18

1

複雜的數學也發揮了作用,但最重要的是這樣的數學和背後往往概念的理解不是數學本身。只要你明白它們是如何結合在一起的,那麼對於許多你需要的計算來說,通常都會有幫助方法。當然,這在很大程度上取決於您使用的開發平臺。

+0

你有什麼建議來學習概念以及它們如何應用於遊戲編程,大多數材料I找到跳躍教學/如何/做數學而不是/何時/你應該使用它。 – TheGeoff 2012-12-04 03:56:25

+0

@ TheGeoff:3D圖形編程需要對線性代數有相當的理解。 [3D計算機圖形矢量數學教程](http://chortle.ccsu.edu/vectorlessons/vectorindex.html)是迄今爲止學習矢量和矩陣的最佳資源。這也是互動的,每節結束時都有一個測試問題來驗證和密封對該主題的理解。 – legends2k 2013-10-26 05:19:21

4

大部分線性代數和計算幾何;四元數被廣泛使用,如果你正在研究物理引擎,數值分析是必要的。

你每天使用的東西多少取決於你在做什麼。如果你是圖形程序員,因此自己構建3D圖形引擎,那麼你可能會實現或維護實際執行數學運算的類庫和函數的實現,因此知道血淋淋的細節將是相對重要的。如果你使用庫作爲客戶端或者在遊戲引擎的其他部分(AI,音頻,UI,相機等)上工作,那麼你需要從概念上理解數學,但是你肯定會不知道如何實現在頭頂上的白板上逆矩陣。

圖形API並不排除需要有人知道這個數學;它們僅限於繪圖,所以所有的場景管理和世界模擬都需要在圖形API之外實現。當然,這裏也有中間件選項,但許多工作室都推出了自己的系統。

有相當數量的資源針對這個市場。例如,在亞馬遜,有像3D Math Primer For Graphics and Game Development這樣的書籍,網上也可能有很多東西。

16

線性代數!很多線性代數!

這裏只是類和你需要他們

  • 矢量例如情況 - 位置,速度,法線
  • 矩陣 - 轉換
  • 四元 - 旋轉(偉大的骨動畫)
  • Ray - 彈丸碰撞檢測
  • 平面 - 彈丸碰撞檢測
  • 截錐體 - 渲染撲殺
  • - 渲染撲殺,快速碰撞測試
  • 軸對準包圍盒 - 撲殺,碰撞測試,空間分區
  • 定向包圍盒 - 碰撞測試
  • 凸包 - 碰撞,空間分區

你應該用向量和矩陣開始,他們將在發動機使用無處不(圖形,物理,AI等)

+0

看起來大部分是四處移動和碰撞檢測。 – 2016-09-08 00:43:28