いつも拝見させて頂いております。
konoと申します。
OpenGLでhdpi端末(800*480)を基準に
Xhdpi端末(1280*720)でも同様の表示をさせたいと思っているのですが
下記のような状態で、画像を切り出して2D表示させた所、
hdpiでは正常で、Xhdpiで切り出し範囲をかたどるように線が出て困っております。
どうか助言等を頂けないでしょうか・・・
(添付のSSが問題の表示になります)
■画面
横画面固定
■画面の描画領域
gl.glViewport(0, 0, 端末画面サイズWidth, 端末画面サイズHeight);
※hdpi端末画面サイズ Width:800px height:480px
※Xhdpi端末画面サイズ Width:1280px height:720px
■平行投影変換
gl.glOrthof(-1.5f, 1.5f, -1.0f, 1.0f, 0.5f, -0.5f);
(画面に対して 3:2の比率)
■描画したいint値を平行投影用に値変換 (基準サイズに対する画像比率)
int w = 描画したいwidth値
int h = 描画したいheight値
int HDPI_WIDTH = 800
int HDPI_HEIGHT = 480
描画width値 = (w / (float) HDPI_WIDTH) * 3.0f; (比率横 3)
描画height値 = (h / (float) HDPI_HEIGHT) * 2.0f; (比率縦 2)
■画像切出し計算
int cutX = 画像切出し x位置
int cutY = 画像切出し y位置
int cutW = 画像切出し width範囲
int cutH = 画像切出し height範囲
int imageWidth = 画像サイズ width
int imageHeight = 画像サイズ height
・切出し位置
cX = (float)cutX / (float) imageWidth
cY = (float)cutY / (float) imageHeight
・切出し範囲
cW = (float)cutW / (float) imageWidth
cH = (float)cutH / (float) imageHeight
以上が画像切出しと描画の計算です。
上記計算で描画すると添付画像のようになるのですが
Xhdpi端末で切出し範囲に線が出ており
切出し範囲に隣接する部分がにじみ出ている感じがします。
切出し範囲を隣接部分から離すと発生しないようですが
対策としてもっと良い方法はございますでしょうか。
長文となり申し訳ありませんでした。
自分なりに必要そうな情報を記載したつもりですが
内容がわからないという場合はご指摘頂けると嬉しいです。
ご助力頂けるかたがいらっしゃいましたら
何卒よろしくお願いいたします。