2012-12-25 32 views
6

我正在讀幾本關於OpenGL的書,在其中兩本書中,他們總是定時逆時針定義頂點。從我讀到的這一點非常關鍵,因爲它決定了正面和背面的位置。頂點計數器/順時針

但我也在閱讀教程http://www.arcsynthesis.org/gltut/而且他定義了它們順時針。

const float vertexPositions[] = { 
    0.75f, 0.75f, 0.0f, 1.0f, 
    0.75f, -0.75f, 0.0f, 1.0f, 
    -0.75f, -0.75f, 0.0f, 1.0f, 
}; 

不應該我總是用逆時針符號,因爲那是在OpenGL中默認?

又爲什麼是這種類型的一個float?它不應該是GLfloat

回答

9

不應該我總是用逆時針符號,因爲那是 在OpenGL中默認?

這是您的選擇。您可以使用CCW或CW符號。您始終可以用glFrontFace()覆蓋此行爲。對於硬件來說,沒有什麼區別,但是,我猜,選擇CW會在試圖使用CCW或類似的第三方庫時造成一些意想不到的麻煩。

此外,爲什麼類型是浮動的?它不應該是一個GLfloat?

它應該是GLfloat。另一方面,在大多數平臺上floatGLfloat完全一樣,並且找不到任何區別。從便攜性角度來看,使用GLfloat是更好的做法。另一個考慮:它強調變量用於圖形渲染,所以這是一件好事。