2011-08-20 96 views
4

我使用cocos2d绘制游戏的自定义形状。我有一个用于使用下面的opengl代码绘制多边形边界的多边形点阵列。在iphone上加入opengl的虚线

glEnable(GL_LINE_SMOOTH); 
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); 
glLineWidth(4); 
glVertexPointer(2, GL_FLOAT, 0, polyVertices); 
glDrawArrays(GL_LINE_LOOP, 0, polyVertexCount); 

不过,我得到这个结果(LINK)上的模拟器。

看来问题是线段应该加入的地方。我该如何解决这个问题?在opengl中创建不同的连接类型有哪些选择?有没有我可以使用的绘图库?

回答

3

OpenGL中的线宽不允许连续线之间的斜接线彼此连接。所以,如果你有一条直线与左边的直线相连,如果直线宽度大于1,会出现非常明显的不连续点。

如果您认真对待线宽,并且您需要连接的定位器,那么您不需要使用OpenGL的线条绘制。您需要创建一个多边形网格,以表示您正在尝试绘制的图形,并自己执行斜角计算。

+0

感谢您的回复。这证实了我需要朝着什么方向前进。因此,如果我创建一个多边形网格,以便可以用GL_TRIANGLE_STRIP填充它,那么这将是一个开始吗? – maulik13