1

固定解像度(たとえば800x600)でウィンドウまたはフルスクリーンで実行されるDirect3Dアプリがあります。ワイドスクリーンモードをサポートするために、800x600でバックバッファーにレンダリングしてから、Bltを使用してフロントバッファーの一部(通常は1280x720など)に最終フレームを描画します。したがって、800x600の画像は960x720に引き伸ばされ、アスペクト比。

これは正常に機能しますが、一部のビデオカード/ OS /ドライバーの組み合わせ(nVidia Quadro、DX11、Windows 7)では、ブリットがポイントサンプリングを使用して行われているように見え、エッジがギザギザになり、最終的な画像が全体的に滑らかになりません。

これを回避する方法はありますか?たとえば、スケールアップするときにBltに線形フィルターを使用するように強制しますか?

(注:元の800x600アセットを最後にストレッチする代わりに960x720にレンダリングできることはわかっていますが、他にも欠点があるため、最後にストレッチすることをお勧めします)

4

2 に答える 2

0

シーンをテクスチャにレンダリングし、そのテクスチャをストレッチされたバックバッファにレンダリングすることを検討しましたか? これにより、ビラーピングが発生します。

一部のマシンで機能する理由は、これがまさにドライバーによって blit が実装される方法だからです。

ただし、最良の結果を得るには、適切なサイズのバックバッファーにレンダリングするだけで十分です。つまり、1280x720 が必要な場合 ... 適切な視野とアスペクト比の変更を加えた 1280x720 バック バッファーにレンダリングします。

于 2010-01-15T10:07:45.347 に答える