2011-05-18 88 views
1

我正在爲iPhone開發一個應用程序。OpenGL ES單元

我使用OpenGL顯示在屏幕的3D對象,與相機視圖作爲背景。

我想知道我怎麼能OpenGL ES的單位改爲釐米/米。

我該怎麼做?

回答

3

你不。

思想實驗的時間!

首先想象你的球體直徑爲1釐米。你有一個10釐米的相機。你會在畫面中央看到一個小球。

現在想象一下,你在直徑的球1公里,照相機10公里。你會如何期待圖像有所不同?

正確的答案是你會而不是期待圖像改變。真正重要的是事物的相對大小。所以你所屬的單位類型只對程序員有用,而對程序不重要。

所以只需精神上宣佈,一個單位等於一釐米,按照該範圍內創造你的對象和世界。沒有代碼級別更改來實現此目的。這僅僅是一種慣例,你可以用它來幫助你以相互正確的尺寸建立事物。

+0

好的,那就是我正在做的。但我想知道是否有其他方法。謝謝!! – saimonx 2011-05-18 17:23:19

2

OpenGL沒有單位的概念。它只是使用無單位值。這些值意味着什麼取決於你。他們只需要保持一致。因此,如果您的對象座標和查看參數都是以米爲單位指定的,並且您的對象的座標以釐米爲單位,則只需將該對象縮放0.1倍即可。

+0

所以,我必須將GLFloat縮放到0.1到釐米?謝謝 – saimonx 2011-05-18 17:12:50

+0

不,我不會縮放對象的座標,而是調整它的變換矩陣(例如使用固定函數時的glScale)。如果你不知道我到底在說什麼,現在應該是瞭解更多關於OpenGL和實時圖形的好時機,尤其是轉換。 – 2011-05-18 19:06:56

+0

是的,我明白了。 GlScale。謝謝 – saimonx 2011-05-18 21:04:56