2013-07-30 140 views
0

我正在使用LWJGL來封裝Java中的OpenGL,但顯然所有顏色都被轉換爲基本陰影。我不是100%肯定的英語措辭這裏的,所以要儘量說得清楚,如果我設置:如何讓OpenGL支持顏色陰影?

glClearColor(0.3, 0.3, 0.6, 1.0) 

我拿到到底是相當於

glClearColor(1.0, 1.0, 1.0, 1.0) 

基本上,只要我在某種顏色的紅/綠/藍分量中使用不是0.0的東西,就會得到與使用1.0時相同的行爲。

// clear buffer 
    GL11.glClearColor(0x46, 0x82, 0xb4, 1.0f); 
    GL11.glClear(GL11.GL_COLOR_BUFFER_BIT | GL11.GL_DEPTH_BUFFER_BIT); 

基本上背景應該:渲染我只是試圖清除與背景顏色中

GL11.glMatrixMode(GL11.GL_PROJECTION); 
    GL11.glLoadIdentity(); 
    GL11.glOrtho(0, DisplayManager.getWidth(), DisplayManager.getHeight(), 0, 1, -1); 
    GL11.glMatrixMode(GL11.GL_MODELVIEW); 

和:

在OpenGL的初始化我幾乎只設置透視是藍色的,但我得到的是白色(1.0,1.0,1.0,1.0)。

有什麼(OpenGL標誌或什麼),我需要爲此設置發生?我只是在某處愚蠢,我無法弄清楚在哪裏? :)

預先感謝

+0

你檢查,你不投的花車爲int?在Java中它可能隱式地發生......而且這些 - 0x46是整數,所以你如何期望它們是浮動的? –

回答

1
GL11.glClearColor(0x46, 0x82, 0xb4, 1.0f); 

0×46是大於1.0,因此它被鉗位到1.0。白色。

glClearColor預計浮點範圍爲0.0到1.0作爲輸入,而不是從0到255(0xFF)的整數。

試試這個:

GL11.glClearColor(0x46/255.0f, 0x82/255.0f, 0xb4/255.0f, 1.0f); 
+0

我知道我是愚蠢的:) – DMB3