代码之家  ›  专栏  ›  技术社区  ›  mike_haney

glColor3i仅绘制黑色

  •  5
  • mike_haney  · 技术社区  · 15 年前

    为什么这只画黑色?

     glPushMatrix();
     // Check the current color
     glColor3i(255, 0, 255);
     GLint currentColor[4];
     glGetIntegerv(GL_CURRENT_COLOR, currentColor);
     //currentColor[0] = 254, 1 = 0, 2 = 254, 3 = doesn't matter
    
     glBegin(GL_QUADS);
     glLineWidth(1);
      glVertex2f(0, 0);
      glVertex2f(WINDOW_WIDTH * .1, 0);
      glVertex2f(WINDOW_WIDTH * .1, WINDOW_HEIGHT);
      glVertex2f(0, WINDOW_HEIGHT);
     glEnd();
     glPopMatrix();
    
    2 回复  |  直到 15 年前
        1
  •  14
  •   mikera    15 年前

    从内存中,我认为glColor3i使用的颜色值是按比例缩放的,以覆盖整个整数范围。因此,你的255个值大约等于零。。。。。

    改为2147483647。

        2
  •  3
  •   user487158    15 年前

    glColor的常见变体是glColor{3,4}{u,b}和glColor{3,4}f。

    在您的情况下,应该坚持使用0xFF值,并使用glColor3ub(255,0,255)或更简单的glColor3f(1.0f,0.0f,1.0f)。