0

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

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,它会按应有的方式绘制线条,但看起来不太好。图片链接在这里。任何绘制漂亮、平滑纹理线条的解决方案?

4

1 回答 1

2

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

如果点对您有用,则仅在启用点精灵的情况下,因为一个点将仅对单个纹理像素进行采样并将其分布在其整个区域上。

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

于 2012-06-26T12:31:24.890 回答