OpenGL ES 2.0を使い始めたばかりですが、256x256の画像を描画し、ビューポート全体(320x460のサイズ)を塗りつぶすことができました。以下のスクリーンショットのように画像が拡大縮小されますが、これは望ましくありません。指定した2D座標から、たとえば座標(10、10)から座標(266、266)に、元のサイズで画像を描画する必要があります。 、ある種のプロジェクションが必要なようですが、プロジェクションについてはよくわからず、どのように始めればよいのかわかりません。
アドバイスをいただければ幸いです。
編集
これを見つけたところですが、指定した頂点がビューポート全体を埋めているためだとわかりました。今私の質問は、どのように画像をテクスチャ座標系にマッピングするかということです。X
4つの頂点のそれぞれの座標とY
座標を計算して、画像を拡大縮小せずにテクスチャサーフェスにぴったりと合わせるにはどうすればよいですか?
EDIT2
どうもありがとうございました、@ Slartibartfast、それはとても簡単です、私はとても愚かで、そもそもそれを正しく理解できませんでした。
他の誰かがこれを必要とする場合に備えて、左上隅からその小さなかわいいロバを描くために指定した頂点は次のとおりです。
typedef struct {
float position[2];
float textureCoor[2];
} Vertex;
const Vertex vertices[] = {
{{-1, 1}, {0, 0}},
{{0.6, 1}, {1, 0}},
{{0.6, -0.113}, {1, 1}},
{{-1, -0.113}, {0, 1}},
};
const GLubyte indices[] = {
0, 1, 2,
2, 3, 0
};