1

画面に正常に表示されているクワッドがいくつかありますが、そのうちの 1 つの色を設定しようとすると、すべての色が設定されます。

GL11.glColor3f(red,green,blue);


    xh = getXsize() / 2;
    yh = getYsize() / 2;
    GL11.glPushMatrix();
    GL11.glTranslated(x, y, 0);
    GL11.glTranslatef(10.0f, 10.5f, -0.0f); 
    GL11.glRotated(rotate, 0.0f, 0.0f, -1.0f); 
    GL11.glTranslatef(-10.0f, -10.5f, 0.0f);
    GL11.glTranslated(-x, -y, 0);
    GL11.glBegin(GL11.GL_QUADS);
    GL11.glVertex2d(x - xh, y - yh);
    GL11.glVertex2d(x - xh, y + yh);
    GL11.glVertex2d(x + xh, y + yh);
    GL11.glVertex2d(x + xh, y - yh);
    GL11.glEnd();
    GL11.glPopMatrix();
4

1 に答える 1

1

私が見る限り、あなたが投稿したコードには1つのクワッドしか描かれていません。とにかく、あなたがそれを呼ぶとき、それはあなたがGL11.glColor3f(red,green,blue)それを呼んだ後にあなたが描く後続のすべてのクワッドに適用されます。基本的に、異なる色のクワッドが必要な場合は、新しいクワッドを描画する前に、毎回異なる値で関数を呼び出す必要があります。

このリソース(JWJGLではなくOpenGL)の 次のセクションを参照してください:色とシェーディングモデルの指定。これは、単純な形状に色がどのように適用されるかを少しよく説明しています。

于 2012-11-10T19:05:30.330 に答える