优化OpenGL异形点的方法
在OpenGL绘制点的过程中,我们通常使用glPointSize()函数来设置点的大小。但是,由于点的大小是固定的,因此当我们需要画出不同形状的点时,这种方式就不太方便了。本文将介绍一种相对简单的方法,使得我们能够在OpenGL中绘制异形点。
首先,我们需要定义一个新的点类型,该类型包含x、y和size三个属性,用于表示点的坐标和大小。在这里,我们使用C++语言来实现:
struct ShapePoint {
GLfloat x, y;
GLfloat size;
};
接下来,我们需要定义一个绘制点的函数,该函数将一个ShapePoint类型的点作为输入,并根据点的大小和位置来画出一个形状不规则的点。在这里,我们使用glBegin(GL_TRIANGLE_FAN)函数来画出一个多边形,以形成一个异形点的形状。
void drawShapePoint(ShapePoint point) {
int numSegments = 20;
GLfloat angle;
GLfloat radius = point.size/2.0f;
glBegin(GL_TRIANGLE_FAN);
glVertex2f(point.x, point.y); //中心点
for(int i =