次のシナリオを想像してみてください。PNG形式のRPGキャラクタースプライトシートのセットがあり、それらをOpenGLアプリケーションで使用したいとします。
個別の文字は(通常)16 x 24ピクセルのサイズ(つまり、24ピクセルの高さ)であり、パディングを残さずに任意の幅と高さにすることができます。このようなちょっと:
(出典:kafuka.org)
フレームインデックスとサイズを指定して、整数ベースのクリッピング長方形を決定するコードをすでに持っています。
int framesPerRow = sheet.Width / cellWidth;
int framesPerColumn = sheet.Height / cellHeight;
framesTotal = framesPerRow * framesPerColumn;
int left = frameIndex % framesPerRow;
int top = frameIndex / framesPerRow;
//Clipping rect's width and height are obviously cellWidth and cellHeight.
このコードをで実行すると、幅/高さではなく右/下であると仮定してframeIndex = 11, cellWidth = 16, cellHeight = 24
、cliprectが返されます。(32, 24)-(48, 48)
実際の質問
さて、スプライトを配置するためのクリッピング長方形とX / Y座標が与えられた場合、これをOpenGLで描画するにはどうすればよいですか?左上にゼロ座標を設定することをお勧めします。