1

私は dds ファイルを Qt 5.1 にロードしたいと思います。メモリを節約し、レンダリング パフォーマンスを向上させたいと考えています。多くの場合、dds ファイルは png に相当するものよりもサイズが小さく (データが圧縮を破壊するため)、よりキャッシュに適した場所に保存されます。通常の生の画像データよりもレンダリング構造「タイル」(つまりhttp://fgiesen.wordpress.com/2011/01/17/texture-tiling-and-swizzling/ )です。

しかし...グーグルでこのトピックに関する参照を見つけることができません.ddsファイルを読み取ってそれらをQImageに変換する他の人だけを見つけることができますより多くのメモリ、効率の悪いテクセル読み取り、圧縮アーティファクトなどのすべての悪い部分を無料で保持します。

Qt がテクスチャを処理する方法を誤解していますか、または dds フォーマット dxt1-5 を Qt 5.1 内で正しく利用できますか?

QImageReader は dds ファイルを raw に「アンパック」しますか、それとも実際にそのままグラフィックス ハードウェアに直接ロードしますか?

他の提案や指針は非常に高く評価されています。

4

1 に答える 1

1

QImage は純粋なソフトウェア オブジェクトであり、グラフィック カードには何も保存せず、エキゾチックな内部データ順序付けをサポートしていません。QImage がサポートする内部形式は次のとおりです: https://doc.qt.io/qt-5/qimage.html#Format-enum

したがって、基本的に、すべてを解凍してフラット化する以外に、データを QImage に入れるオプションはありません。

QPixmap はファイルからの直接読み取りをサポートしています。https: //doc.qt.io/qt-5/qpixmap.html#load を参照してください。

QImage とは異なり、QPixmap はグラフィック カードにデータを保存するオブジェクトです。理論的には、Qt インターフェースを使用して想定したことを実行できます。しかし、私の推測では、Qt はまだこれをまったくサポートしていません。

于 2014-03-20T01:09:28.723 に答える