用鼠标绘制OpenGL

时间:2012-06-26 12:15:19

标签: objective-c xcode cocoa opengl

如果我尝试使用加载的纹理纹理绘制线

glLineWidth(10);
glEnable(GL_TEXTURE_2D);
glEnable(GL_BLEND);
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
glBindTexture(GL_TEXTURE_2D, brushTextura);
glEnable(GL_LINE_SMOOTH);
glBegin(GL_LINES);
glVertex2f(location.x, location.y);
glVertex2f(prevLocation.x, prevLocation.y);
glEnd();
glFlush();
glDisable(GL_LINE_SMOOTH);
glDisable(GL_BLEND);
glDisable(GL_TEXTURE_2D);
它没有任何吸引力。当我使用相同的代码,但绘制不是GL_LINES,但GL_POINTS一切正常,因为它应该工作。 Image link here

如果我不在这里使用纹理,并使用GL_LINES,它会绘制线条,但它看起来不太好。 Image link here。有什么解决方案可以画出漂亮,光滑的纹理线条?

1 个答案:

答案 0 :(得分:2)

一条线不会“神奇地”使用纹理作为沿线路径应用的一种画笔。你实际上必须提供一些纹理坐标,但那些只会从纹理中取出切片而不是将它作为“画笔”应用。

如果点适合你,只有当点精灵被启用时,因为一个点只会采样一个纹理像素并将其分布在整个区域上。

老实说,我认为你的整个尝试都是有缺陷的。通常在使用拉丝进行绘制时,您可以在常规的小距离处将其绘制为大量纹理四边形。