OpenGL棋子

OpenGL棋子,opengl,graphics,glut,Opengl,Graphics,Glut,我需要在OpenGL中制作一个国际象棋集,并想知道这是否是正确的方法 这是典当品的代码: void pawn(void) { glClear (GL_COLOR_BUFFER_BIT); DrawArc(xc+6, yc-3,1.3,M_PI/2,M_PI/2,25); DrawArc(xc+6.7, yc-3,1.3,M_PI/2,-M_PI/2,25); DrawArc(xc+6, yc-0.9,0.8,M_PI/2,M_PI,25); DrawA

我需要在OpenGL中制作一个国际象棋集,并想知道这是否是正确的方法

这是典当品的代码:

void pawn(void)
{

    glClear (GL_COLOR_BUFFER_BIT);

    DrawArc(xc+6, yc-3,1.3,M_PI/2,M_PI/2,25);
    DrawArc(xc+6.7, yc-3,1.3,M_PI/2,-M_PI/2,25);
    DrawArc(xc+6, yc-0.9,0.8,M_PI/2,M_PI,25);
    DrawArc(xc+6.7, yc-0.9,0.8,M_PI/2,-M_PI,25);
    DrawArc(xc+6.35, yc+0.25,0.5,(7*M_PI)/4,(3*M_PI)/2,25);
    glBegin(GL_LINE_LOOP);
        glVertex2d(xc+4.7,yc-3);
        glVertex2d(xc+8,yc-3);
    glEnd();

    glFlush ();
}

有更好的方法吗?

在代码中创建几何体并不是最有效的方法

常见的方法是:

  • 在三维建模工具(如Blender)中创建模型(免费)
  • 将其保存到文件中,例如
    .ply
    .obj
  • 将几何图形加载到图形卡存储器(a)
  • 使用
    glDrawArrays
    glDrawElements

    • 在代码中创建几何体并不是最有效的方法

      常见的方法是:

      • 在三维建模工具(如Blender)中创建模型(免费)
      • 将其保存到文件中,例如
        .ply
        .obj
      • 将几何图形加载到图形卡存储器(a)
      • 使用
        glDrawArrays
        glDrawElements

      使用模型?在3D建模程序中制作一个棋子应该不会太难,然后允许您使用OpenGL中更高效的功能,如顶点缓冲区对象,并在中加载模型。您仍然可以从代码中使用顶点缓冲区或VBO。。。只是意味着你必须在内存中填充一些缓冲区。除非你的代码产生了一些特定的问题,“更好”是一个非常模糊的术语。使用模型?在3D建模程序中制作一个棋子应该不会太难,然后允许您使用OpenGL中更高效的功能,如顶点缓冲区对象,并在中加载模型。您仍然可以从代码中使用顶点缓冲区或VBO。。。只是意味着你必须在内存中填充一些缓冲区,除非你的代码产生了一些特定的问题,“更好”是一个非常模糊的术语。有一些很好的现代OpenGL教程,包括使用
      Assimp
      library加载模型我知道这一点,但重点是在代码中创建它。这是家庭作业。你问这是否是一个好方法:-)让我知道我如何能提供更多的帮助好的,我想画整个棋子,并用白色填充里面(所以我得到一个白色的棋子)。我该怎么做?:)使用白色三角形绘制棋子,或绘制一个带有棋子图像纹理的矩形。有一些很好的现代OpenGL教程,包括使用
      Assimp
      library加载模型我知道这一点,但重点是在代码中创建它。这是家庭作业。你问这是否是一个好方法:-)让我知道我如何能提供更多的帮助好的,我想画整个棋子,并用白色填充里面(所以我得到一个白色的棋子)。我该怎么做?:)使用白色三角形绘制棋子,或绘制一个带有棋子图像纹理的矩形。