Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/opengl/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
OpenGL虚线_Opengl_Graphics_2d_Stipple - Fatal编程技术网

OpenGL虚线

OpenGL虚线,opengl,graphics,2d,stipple,Opengl,Graphics,2d,Stipple,我试图在opengl中绘制一个包含虚线的二维网格。我正在使用glEnble(GL\u LINE\u STIPPLE)/glLineStipple(…)这样做。问题是,当我试图拖动场景时,破折号开始沿直线移动,这相当烦人,特别是当我画一个圆或一个圆弧时——这看起来像是催眠!有人知道如何摆脱这种影响吗?线条点画已被弃用,并已从现代OpenGL中删除。现在,人们使用片段着色器来实现这一点。这种效果也可以通过纹理来实现。是的,我知道,但我不得不处理一段旧代码。我相信,如果你使用恒定的纹理坐标和适当的纹理

我试图在opengl中绘制一个包含虚线的二维网格。我正在使用
glEnble(GL\u LINE\u STIPPLE)
/
glLineStipple(…)
这样做。问题是,当我试图拖动场景时,破折号开始沿直线移动,这相当烦人,特别是当我画一个圆或一个圆弧时——这看起来像是催眠!有人知道如何摆脱这种影响吗?

线条点画已被弃用,并已从现代OpenGL中删除。现在,人们使用片段着色器来实现这一点。这种效果也可以通过纹理来实现。是的,我知道,但我不得不处理一段旧代码。我相信,如果你使用恒定的纹理坐标和适当的纹理,当你移动线条时,你或多或少可以实现同样的效果,而不会出现不希望出现的行为。您所需要的只是一个类似于1D棋盘格的纹理,即使不使用着色器的实现也支持这种纹理。这是纯2D的,对吗?如果你试着按照我描述的方式来做,透视投影可以带来另一种“催眠”,但如果所有东西都有相同的Z坐标,那就没有问题了。@AndonM.Coleman,你能给我举个例子吗?@MikhailZimka如果你没有性能问题,想要完全控制风格,那么看看这里,只需将
int
重写为
GLfloat
或你使用的任何东西,而不是使用2x
glVertex
。。。内部
glBegin(GL_行)。。。格伦德()不要忘记将步长和长度更改为您的值。。。(从像素到世界坐标单位)