在高版本的opengl没有glLineStipple 这个函数。绘制虚线似乎有点束手无策了。实际上使用最简单的GL_LINES的方式就能绘制虚线了。
比如绘制一条从(0, 0, 0)到(140, 140, 140)的线。首先需要将线分段成如下的顶点:
float points[24] =
{
0.0f, 0.0f, 0.0f,
20.0f, 20.0f, 20.0f,
40.0f, 40.0f, 40.0f,
60.0f, 60.0f, 60.0f,
80.0f, 80.0f, 80.0f,
100.0f, 100.0f, 100.0f,
120.0f, 120.0f, 120.0f,
140.0f, 140.0f, 140.0f,
};
如果有线和无线部分的长度不是等比例的则需要自己计算一下。
然后调用glDrawArrays(GL_LINES, 0, 8); 。此时绘制出来的就是一条虚线了。这条虚线相当于从(0, 0, 0)到(20, 20, 20)绘制一条实线,然后在(40, 40, 40)到(60, 60, 60)绘制一条实线......