2011-10-07 99 views
2

這是問題所在,我有一個ModelViewProjection(MVP)矩陣,它是將ModelView與Projection相乘而成的;我做了一些與glOrtho和gluPerspective一樣的功能來擺脫OpenGL棄用堆棧功能。我的函數返回double值。我的着色器使用modelviewprojection作爲float。有沒有必要對透視矩陣進行雙倍操作,因爲最終成爲MVP中的花車?矩陣由float [16]或double [16]組成;如果在double中沒有顯着的好處,那麼我會在投影矩陣double上騰出一些cpu資源以便在着色器之前浮動。爲什麼投影矩陣必須是雙倍的?

回答

2

你可以堅持float

典型的DX10/GL3.x級硬件(例如我的Geforce 9800GT)根本不支持雙精度浮點運算。早期的DX9級ATI卡甚至沒有在硬件中正確支持單精度浮點運算(如果我沒有記錯的話,它們支持類似fp24的東西)。

儘管如此,在任何這樣的卡片上,投影在各方面都很好。這表明在這種情況下不需要額外的精度。

1

您可以使用其中之一或兩者,出於性能原因,人們通常只使用浮點進行圖形處理。