【问题标题】:GLUT OpenGL - Drawing Shapes using only GL_POINTSGLUT OpenGL - 仅使用 GL_POINTS 绘制形状
【发布时间】:2015-09-23 16:41:42
【问题描述】:

我正在处理一项作业,我只需要使用 GL_POINTS 进行绘图。我意识到这是一种昂贵的方法,但它是为了家庭作业,所以没有 GL_TRIANGLES / GL_POLYGON / GL_LINES 等。

首先,我试图理解仅使用点的概念。假设我想绘制一个 100 x 100 像素的正方形。我是否需要四个 for 循环以直线绘制 100 个像素来创建正方形?如果我想用颜色填充正方形怎么办?

我理解使用 GL_POLYGON 绘制正方形,因为这相当简单。我们使用 GLUT 库只是为了绘制带有点的形状。

【问题讨论】:

  • 可能应该移到computergraphics.stackexchange。
  • 谢谢,我会在那里发帖的。
  • 我更多的是标记这个问题,以便版主移动它。如果您想自己做,请在此处删除此问题,以免交叉发布。
  • 这是一个非常奇怪的任务;我想不出用点而不是三角形来构成几何的理由。不过,您可以使用glPointSize 修改点的大小。
  • @BartekBanachewicz 那你为什么要使用 OpenGL?至少将您的渲染图像上传到纹理/像素缓冲区对象,而不是绘制数千个点。

标签: opengl graphics glut


【解决方案1】:

我认为这项任务基本上会迫使您编写自己的渲染器。因此,例如,您需要为线条实现 Bresenham 算法,并为三角形实现扫描线光栅化。一旦你有了它,你就可以对每个形状进行三角剖分,然后光栅化为多个三角形。

【讨论】:

    【解决方案2】:

    要绘制一个 100x100 像素宽的正方形,您只需在应用程序中使用:

    glEnable(GL_PROGRAM_POINT_SIZE);
    

    然后在您的顶点着色器中找到您需要的唯一顶点(正方形的中心):

    gl_PointSize = pixel_size;
    

    在你的情况下:

    gl_PointSize = 100;
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-08-21
      • 1970-01-01
      • 2021-01-16
      • 1970-01-01
      相关资源
      最近更新 更多