トップページ > 記事閲覧
DDSの読み込みについて
名前:Tir 日時: 2019/12/15 19:28

毎度お世話になってます この度DDSファイルを読み込もうとしたのですが フォーマットをBC7で保存したところ読み込むことが出来ませんでした BC3(DirectX 9ではDXT4やDXT5相当)で保存したところ無事に読み込むことが出来ましたが 劣化が少ないBC7で読み込む事を出来るように対応できないでしょうか?
メンテ

Page: 1 |

Re: DDSの読み込みについて ( No.1 )
名前:管理人 日時:2019/12/16 02:57

ご要望承りました 対応に少し時間が掛かりそうですので最大で数週間ほどお時間をください m(_ _;m
メンテ
Re: DDSの読み込みについて ( No.2 )
名前:Tir 日時:2019/12/16 20:50

対応有難うございます 急いではおりませんのでご無理なさらず管理人さんのペースでお願いします
メンテ
Re: DDSの読み込みについて ( No.3 )
名前:管理人 日時:2019/12/18 02:25

BC7 に対応していないGPU( Direct3D 11 に対応していないGPU )では正常に画像が描画されませんが Direct3D 11 に対応している GPU であれば BC7 の DDS を読み込めるようにできましたので よろしければこちらのバージョンをお試しください m(_ _)m https://dxlib.xsrv.jp/temp/DxLibVCTest.zip // Windows版 VisualC++ 用 https://dxlib.xsrv.jp/temp/DxLibBCCTest.zip // Windows版 BorlandC++ 用 https://dxlib.xsrv.jp/temp/DxLibBCC2Test.zip // Windows版 C++ Builder 10.3 用 https://dxlib.xsrv.jp/temp/DxLibGCC_MinGWTest.zip // Windows版 MinGW 用 https://dxlib.xsrv.jp/temp/DxLibDotNet.zip // Windows版 .NET用 https://dxlib.xsrv.jp/temp/DxLibMakeTest.zip // ソース (中身を既存のライブラリのファイルに上書きして『リビルド』をして下さい) Direct3D 11 に対応していない GPU の場合は BC7 を RGBA8 などの標準的な形式に変換する 必要があるのですが、BC7 は少しアルゴリズムが複雑なので変換プログラムの作成には しっかり作業する時間を確保する必要がありそうです (・・;;
メンテ
Re: DDSの読み込みについて ( No.4 )
名前:Tir(解決) 日時:2019/12/18 19:48

かなり早い対応有難うございます。 無事にBC7を読み込む事が出来ることとWASAPIの方の音量も正常になっている事を確認しました。
メンテ
Re: DDSの読み込みについて ( No.5 )
名前:管理人(解決) 日時:2019/12/20 01:47

無事 BC7 が読み込めたようで何よりです WASAPI の音量の件もご確認いただきありがとうございます m(_ _)m
メンテ
Re: DDSの読み込みについて ( No.6 )
名前:Tir 日時:2019/12/21 12:24

迅速なBC7の対応本当にありがとうございました。 今のところ不具合はないのですがDDSでの読み込みについて質問させてください 制作中のゲームの画像サイズが大きくなってきたのでビデオカードの節約になると思いDDS形式を採用したのですが 基本的には2の累乗で画像を作っていますが2の累乗じゃない画像もDDSで読み込む事ができます。この場合は内部で2の累乗にしていると思うのですが この時にDDSのメモリの節約の効果があるのでしょうか? また、以前質問した画像の縮小についてなのですが当然新しく画像を作っている訳ですからDDSの効果は無くなっていますよね? タスクマネージャーのGPUのメモリ使用量が100MB単位でしか確認できないので効果が出ているのかいまいち分からないのですが他に確認方法はありますでしょうか?
メンテ
Re: DDSの読み込みについて ( No.7 )
名前:管理人 日時:2019/12/22 03:28

> 基本的には2の累乗で画像を作っていますが2の累乗じゃない画像もDDSで読み込む事ができます。この場合は内部で2の累乗にしていると思うのですが > この時にDDSのメモリの節約の効果があるのでしょうか? 少なくとも Windows環境では DXT圧縮、BC圧縮されたテクスチャの制限は『解像度が4の倍数であること』なので、 2のn乗ではない解像度でも内部で2のn乗に変換されることはなく、メモリの節約効果はあります ( 2のn乗ではないテクスチャが作れなかった GPU は2000年前後までに発売されたものだと思います ) > また、以前質問した画像の縮小についてなのですが当然新しく画像を作っている訳ですからDDSの効果は無くなっていますよね? はい、新たに作る画像は A8R8G8B8 の無圧縮32bit画像となりますので、テクスチャ圧縮の効果はありません > タスクマネージャーのGPUのメモリ使用量が100MB単位でしか確認できないので効果が出ているのかいまいち分からないのですが他に確認方法はありますでしょうか? GPU-Zというソフトで1MB単位のメモリ使用量が確認できるみたいです <「GPU-Z」ビデオカードの情報を取得できるツール - 窓の杜> https://forest.watch.impress.co.jp/library/software/gpuz/ プログラムでも取得できれば楽なのですが、どうも全GPU共通の取得方法は無く、GPUメーカー毎に取得の方法が違うようで 簡単には実装することはできそうにありません…( タスクマネージャに表示されているくらいですから何かありそうなものですが… )
メンテ
Re: DDSの読み込みについて ( No.8 )
名前:Tir(解決) 日時:2019/12/22 13:24

回答ありがとうございます。 >2のn乗ではない解像度でも内部で2のn乗に変換されることはなく、メモリの節約効果はあります 4の倍数であればメモリの節約できるんですね 何故かDXライブラリでは2の累乗じゃない画像は内部ですべて2の累乗にしていると思っていました >GPU-Zというソフトで1MB単位のメモリ使用量が確認できるみたいです ツールを紹介してくださってありがとうございます。やっぱり数十MBは差が出る事を確認できました
メンテ

Page: 1 |

題名
名前
コメント
パスワード (記事メンテ時に使用)

   クッキー保存