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 に答える