使用鼠标绘制 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一切都可以正常工作。图片链接在这里。

如果我在这里不使用纹理,而是使用GL_LINES,它会画出应有的线条,但它看起来并不好。图片链接在这里。有什么解决方案可以绘制漂亮、光滑的纹理线条吗?

线条不会"神奇地"将纹理用作沿线条路径应用的画笔。您实际上必须提供一些纹理坐标,但这些坐标只会从纹理中取出切片,而不是将其作为"画笔"应用。

如果点对您有用,则仅当启用了点精灵时,因为点将仅对单个纹理像素进行采样并将其分布到其整个区域。

老实说,我认为你的整个尝试都是有缺陷的。通常,使用画笔绘制时,在规则的小距离上将其绘制为大量带纹理的四边形。

最新更新