制作灰色块测试卡模式

时间:2016-10-02 19:13:02

标签: java opengl jogl

我需要做以下事情,我不确定如何归档这个。

我需要它看起来像这样:

Image of what i need

这是我到目前为止所做的:

     float tempHeight = height * 0.20f;
     float tempWidth = width * 0.20f;
     float increase = 0;
     float colour = 0.20f;
     float temp = 0;
     tempHeight = tempHeight / 3;

for(int y = 0; y < 5; y++) {            
             gl2.glBegin(GL2.GL_QUADS);
               gl2.glColor3f(colour, colour, colour);    // Set the current drawing color 
               gl2.glVertex3f(0, height * 0.20f + temp, 0.0f);  // Top Left
               gl2.glVertex3f(width * 0.20f , height * 0.20f + temp, 0.0f);   // Top Right
               gl2.glVertex3f(width * 0.20f , temp, 0.0f);  // Bottom Right
               gl2.glVertex3f(0, temp, 0.0f); // Bottom Left
           gl2.glEnd();


         for(int a = 0; a < 4; a++) {

                 gl2.glBegin(GL2.GL_QUADS);
                    gl2.glColor3f(colour,colour,colour);

                if (a == 0 || a == 2 || a == 3) {
                    gl2.glColor3f(1f, 0f, 0f);
                }   
              gl2.glVertex3f(tempWidth, tempHeight + increase, 0.0f);  // Top Left
               gl2.glVertex3f(tempWidth * 2 ,  tempHeight + increase, 0.0f);   // Top Right
               gl2.glVertex3f(tempWidth * 2 , tempHeight * a , 0.0f);  // Bottom Right
               gl2.glVertex3f(tempWidth, tempHeight * a , 0.0f); // Bottom Left
           gl2.glEnd();
             }            
            increase = tempHeight;              
            colour = colour + 0.20f;
        //    tempWidth = tempWidth + width * 0.20f;
            temp = temp + height * 0.20f; 
          //  tempHeight = tempHeight + height * 0.20f;
           for(int b = 0; b < 5; b++) {

           }
        }

}

1 个答案:

答案 0 :(得分:0)

首先,你应该避免deprecated OpenGL。如果你想要,你可以从mine的问候三角形开始并进行实验。

其次,你要问的是相对容易的,你必须声明你想要的那个形状的顶点几何,即:

enter image description here

然后,您需要渲染五次(在此示例中),并且每次需要:

  • 通过上传一个矩阵来改变位置,该矩阵将与几何体的每个顶点相乘

  • 设置片段着色器用于遮蔽几何体的不同颜色

如果您有任何其他问题,请随时提出