2Dゲームで動くスプライトの解像度に依存しないレンダリングをしようとしています。私の計画は私の世界の固定座標系(たとえば960x540)で作業し、正投影を使用してビューポートに合わせて拡大または縮小します。レターボックス化して、さまざまなアスペクト比を処理します。
ほとんどのチュートリアルによると、私はビューフラスタムに好きな次元を自由に使用できますが、多くの場合、ビューポートでサブピクセル値を使用することになるという問題につながることがわかりました。たとえば、960 x 540の座標系の(62,62)にある頂点は、寸法800 x 450のビューポートの(51.6666667,51.6666667)に終わります。
私はそれに2種類の問題に気づきました:
- テクスチャサンプリングは、動いているオブジェクトの場合、頂点がピクセルの中心に関連する場所に応じて常に変化します
- 丸めが原因で、オブジェクトが水平または垂直に1ピクセルずつ伸びる
これを回避するためのベストプラクティスは何ですか(移動速度などに関して解像度の独立性を維持しながら)?そして、これに対処するのに最適な場所はどこですか?頂点をシェーダーに渡す前、または頂点シェーダー内に?