2013-07-30 92 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