は、これは私が私のプログラムで矩形を描画するために使用するコードです:ボーダー、OpenGLの
glBegin(GL_QUADS);
glTexCoord2f(0.0f, maxTexCoordHeight); glVertex2i(pos.x, pos.y + height);
glTexCoord2f(0.0f, 0.0f); glVertex2i(pos.x, pos.y);
glTexCoord2f(maxTexCoordWidth, 0.0f); glVertex2i(pos.x + width, pos.y);
glTexCoord2f(maxTexCoordWidth, maxTexCoordHeight); glVertex2i(pos.x + width, pos.y + height);
glEnd();
それは例えば、指定されたテクスチャを持つ単純な四角形を描画しますそれは、このように境界効果を達成するためにOpenGLで可能かどう
私がお願いしたいと思います:このようにあなたは、このタイルの内側に見たよう
別々に処理することができ、単なる青の背景があります - テクスチャのサイズを自動的に変更します。これは私が与えたコードスニペットで簡単に達成できますが、問題は境界線にあります。
境界線が1色であると思われる場合は、テクスチャの周りにGL_LINES
を使用して、空の塗りつぶされていない矩形を描画することができますが、そうではありません。
また、タイルが常に固定サイズの場合は、それに一致するテクスチャを用意できますが、テクスチャとして使用するビットマップファイルを変更しなくても簡単にサイズを変更できます。
したがって、基本的なOpenGL関数では不可能な場合、この効果を達成するためのアプローチは最も効率的かつ/または簡単でしょうか?
EDIT:2Dでなければなりません。
2dにする必要がある場合を除いて、3Dで台形yの形状を作成し、必要な陰影効果を得るために照明を使用して実際に斜面効果を作成してみませんか? – Quetzalcoatl
@Quetzalcoatl答えをありがとうございますが、はい、それは2Dでなければなりません。この情報を追加するために質問を編集します。 –
境界を追加するためにフラグメントシェーダーを書くことができます。しかし、あなたがまだ '即時モード(glVertex'のような古くなった関数)を使っているのであれば、おそらくOpenGL 2.0以降の素晴らしい世界に追いつくのに時間がかかるでしょう。 –