我正在完成作业,我只需要使用GL_POINTS画画。我意识到这是一种昂贵的方法,但它适用于家庭作业,所以没有GL_TRIANGLES / GL_POLYGON / GL_LINES等。
首先,我试图理解仅使用点的概念。假设我想绘制一个100 x 100像素的正方形。我是否需要四个for-loops以直线绘制每个100像素来创建正方形?如果我想用正方形填充颜色怎么办?
我理解使用GL_POLYGON画一个正方形,因为它相当直接。我们只是使用GLUT库来绘制带点的形状。
答案 0 :(得分:0)
我认为这项任务基本上会迫使你编写自己的渲染器。因此,例如,您需要针对三角形的线和扫描线光栅化实施Bresenham算法。完成后,您可以对每个形状进行三角测量,并将栅格化为多个三角形。
答案 1 :(得分:-1)
要绘制宽度为100x100像素的正方形,您只需在应用程序中使用:
glEnable(GL_PROGRAM_POINT_SIZE);
然后在您的顶点着色器中找到您需要的唯一顶点(正方形的中心):
gl_PointSize = pixel_size;
在你的情况下:
gl_PointSize = 100;