1

スカイボックスをレンダリングするときに問題があります。C++ で DirectX 11 を使用しています。写真がぼやけすぎています。解像度が低すぎるテクスチャを使用している可能性があります。現在、スカイボックスのすべての面の解像度は 1024x1024 です。画面の解像度は 1920x1080 です。平均して、常にスカイボックスの 1 つの面を見つめています。これは、1024x1024 の画像が画面全体に引き伸ばされることを意味します。これが、ぼやけた理由です。2048x2048 テクスチャの使用を検討しています。シンプルなスカイボックス テクスチャを作成しましたが、もうぼやけていません。しかし、私の問題は、メモリが多すぎることです! バックグラウンドだけで約 100MB が GPU にロードされます。

私の質問は、スカイボックスをレンダリングするより良い方法はありますか? 私はあまり運がなくてもインターネットで見回しました。標準は 1 面あたり 512x512 であると言う人もいます。ぼやけは容認できません。商用ゲームがスカイボックスをどのように作ったのだろうか? 彼らは巨大なテクスチャサイズを使用しましたか? 特に、それを見たことのある人にとっては、Dead Space 3 の宇宙環境が大好きです。そんなものを作りたいと思っています。それで、彼らはどのようにそれをしましたか?

4

1 に答える 1

1

まず、ピクセル密度は、テクスチャと画面の解像度だけでなく、視野にも依存します。視野が狭いと、画面に表示されるスカイボックスが少なくなるため、テクスチャがさらに拡大され、より高い解像度が必要になります。使用しているFOVを正確に言うことはできませんが、1kのテクスチャが特にぼやけていることに少し驚いています。それで、少し狭い側にあるのではないでしょうか。

ああ、忘れる前に-圧縮テクスチャを使用する必要があります...2kテクスチャはそれほど怖くないはずです。

ただし、明らかにメモリをかなり速く焼き尽くし始める解像度を変更することを除けば、私は通常、スカイボックスをいくつかの単純な離れたオブジェクトと常に組み合わせます。

たとえば、宇宙のシーンでは、おそらく、解像度が重要ではない星雲などだけが含まれている、かなり単純なスカイボックスをレンダリングします。おそらく、少なくともいくつかの星をスプライトとしてレンダリングします。この場合、テクスチャ密度は局所的に高くなる可能性があります。惑星はテクスチャジオメトリである可能性があります。

より伝統的な屋外シーンをレンダリングする場合、スカイボックスに空と雲をレンダリングできますが、ジオメトリとしては遠い地平線をレンダリングできます。空の月はオーバーレイかもしれません。

標準的な答えは1つではありません。状況に応じて、さまざまな手法を採用できます。

于 2013-02-28T07:21:21.797 に答える