解像度スケーリング(画面を何倍で表示するか)と、カメラのズーム率(カメラの寄り具合)をセットしたとき、
その手順の違いによって得られる結果が変わることについて。
何をどう質問すればいいのかからいまいち分かってないですが、この疑問をシェアする意味でも投稿しちゃいます。
画像1:何もせずただ単にwindow sizeを2倍にしたもの。
画像2:windowサイズ、viewportサイズ、application surfaceサイズをそれぞれ2倍にしたもの。
両方とも解像度スケーリングは2倍、カメラズーム率(view size)は0.75倍(敢えて半端な倍率)です。
この2つでドットの荒れ度合いが変わる理屈が分かる方いますでしょうか?
半端な倍率にしているのでドットが荒れること自体は当然のことなんですが、荒れ度合いが変わる理由が分かってません。
いじってる項目が違うから結果が変わってるのは分かるんですが、なぜこうなるのかの理屈が分かりません。
あと、今までは画像2の方法でやってきたのですが、application surfaceが2倍(1倍が640*360で作ってるので1280*720になってます)になってるのは普通じゃないのかもしれない?負荷が高い状態なのかもしれない?と心配になっています。この点どうなんでしょうか?
スクロールやキャラの動きにも違いが出ることが分かりました。
1.少しカクついています(サムネクリックで動きます)
2.滑らかに動きます(サムネクリックで動きます)
自分的にはドットの荒れ度合いよりもさらに動きがカクつくことが気になるので、「1は選びたくないなあ、でも2が負荷が高かったら嫌だな…」と思っていました。
そしたらプログラマーの方(著名ゲームを手掛けてる人で信頼しています)から負荷の違いはわずかだから好きな方を選んで大丈夫と教えてもらいました。
というわけで、未だ理屈は分かっていませんが、パフォーマンス面での違いは小さいと分かったので、2の方法を選ぶことにしました。
これ自分もずっと知りたかったやつです。ありがとうございます。
むっちゃ仮説ですが
1の場合は640x360を0.75スケールしたもの
2の場合は640x360を2倍にして0.75でスケールしたもの
2の場合は画像上の1ドットは4pixelで表現されているので、なめらかに動いて見えるし、ドットの崩れも多少抑えられているみたいな感じでしょうか。
たぶんそういう理屈で差が出てるんだと思ってます。
描画パイプライン(と言うのか?)、描画までの内部のプロセスが分からないので、はっきりスッキリさせられないのがもやもやします。