Re: 浮動小数点フォーマットのddsファイル ( No.1 ) |
- 名前:管理人 日時:2016/02/21 04:28
|
Re: 浮動小数点フォーマットのddsファイル ( No.2 ) |
- 名前:gufo 日時:2016/02/21 07:55
対応ありがとうございます。
ddsファイルの読み込みは正常に行われることを確認しました。
ですが、SaveDrawScreenToDDS()関数で保存したddsファイルをDirectX Texture Toolで開こうとするとエラーが発生します。
フォーマットによっては開けますが画像が乱れています。
確認していただけると幸いです。
|
Re: 浮動小数点フォーマットのddsファイル ( No.3 ) |
- 名前:管理人 日時:2016/02/22 01:38
|
Re: 浮動小数点フォーマットのddsファイル ( No.4 ) |
- 名前:gufo 日時:2016/02/22 03:18
一部のフォーマットでの画像が乱れる現象は修正されているのを確認しました。
DirectX Texture Toolのバージョンは管理人さんのものと同じでした。
エラーの出るフォーマットですが、
SetUsePlatformTextureFormat()関数でフォーマットを指定したテクスチャでエラーが起こるようです。
少し長くなりますがエラーが発生するコードを貼らせていただきます。
#include "DxLib.h"
// プログラムは WinMain から始まります
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)
{
int Graph;
SetUseDirect3DVersion(DX_DIRECT3D_9EX);
if (DxLib_Init() == -1) // DXライブラリ初期化処理
{
return -1; // エラーが起きたら直ちに終了
}
SetDrawValidGraphCreateFlag(TRUE);
SetCreateGraphChannelBitDepth(16);
SetUsePlatformTextureFormat(DX_TEXTUREFORMAT_DIRECT3D9_A16B16G16R16F);
Graph = MakeGraph(512, 512);
SetDrawValidGraphCreateFlag(FALSE);
SetDrawScreen(Graph);
ClearDrawScreen();
DrawPixel(256, 256, GetColor(255, 255, 255));
SaveDrawScreenToDDS(0, 0, 512, 512, "test.dds");
DxLib_End(); // DXライブラリ使用の終了処理
return 0; // ソフトの終了
}
色々と試してみて疑問に思ったのですが、SetCreateGraphChannelBitDepth(16)をコメントアウトすると
作成されるテクスチャフォーマットがX1R5G5B5などのデフォルトのバックバッファのフォーマットになってしまいます。
この辺りの挙動に不具合があるような気がしますがどうなんでしょうか。
 |
Re: 浮動小数点フォーマットのddsファイル ( No.5 ) |
- 名前:gufo 日時:2016/02/22 18:31
2重投稿すいません。もう一つ不具合のようなものを見つけました。
A16B16G16R16Fなどのミップマップ付きテクスチャを読み込むと、ミップマップが作成されない現象が発生します。
こちらの現象も確認していただきたいです。
|
Re: 浮動小数点フォーマットのddsファイル ( No.6 ) |
- 名前:管理人 日時:2016/02/28 02:55
 |
Re: 浮動小数点フォーマットのddsファイル ( No.7 ) |
- 名前:gufo 日時:2016/02/28 08:00
SetUsePlatformTextureFormat()の詳しい説明ありがとうございます。
SetCreateGraphChannelBitDepth()などを使う方法でやってみたいと思います。
ところで修正バージョンを使ってもう一度確認したのですが、やはりA16B16G16R16Fなどのフォーマットではミップマップが読み込まれないようです。
(GetGraphMipmapCount()を使っても1が返ってきて、見た目にもミップマップが効いているように見えません。)
試しに読み込ませたデータはDXライブラリのSaveDrawScreenToDDS()で保存したA16B16G16R16F,512x512pixelのデータに
DirectX Texture Toolでミップマップを生成したものです。
何度もお願いして申し訳ありませんが、もう一度確認していただけると幸いです。
|
Re: 浮動小数点フォーマットのddsファイル ( No.8 ) |
- 名前:管理人 日時:2016/02/28 18:23
 |
Re: 浮動小数点フォーマットのddsファイル ( No.9 ) |
- 名前:gufo 日時:2016/03/01 04:17
すいません、ミップマップの件ですが完全に私の設定ミスでした。
ミップマップ付きA16B16G16R16Fフォーマットも正常に読み込めていました。
お手数おかけして本当に申し訳ないです。
ところで、今回の件とは関係あるのかわかりませんが、
ミップマップ付きキューブマップを描画する際にSetDrawMode(DX_DRAWMODE_BILINEAR)などのフィルタリング設定が適用できていないような気がします。
何度も申し訳ありませんがこちらの現象も確認していただきたいです。
|
Re: 浮動小数点フォーマットのddsファイル ( No.10 ) |
- 名前:管理人 日時:2016/03/02 01:41
すみません、時間が無く現象の確認ができませんでした
SetDrawMode( DX_DRAWMODE_ANISOTROPIC ) ; というのもあるのですが、
DX_DRAWMODE_ANISOTROPIC でも同じような結果になってしまいますでしょうか?
|
Re: 浮動小数点フォーマットのddsファイル ( No.11 ) |
- 名前:gufo 日時:2016/03/02 11:10
すいません、ミップマップ付きキューブマップと言いましたが他のテクスチャでも同じ現象を確認しました。
この現象が再現する条件ですが、
シェーダーに渡すテクスチャのステージインデックスが4以上の時(register(s4以上))にフィルタリングが効かなくなるようです。
情報が後出しになってしまって申し訳ないです。
|
Re: 浮動小数点フォーマットのddsファイル ( No.12 ) |
- 名前:管理人 日時:2016/03/07 01:47
|
Re: 浮動小数点フォーマットのddsファイル ( No.13 ) |
- 名前:gufo(解決) 日時:2016/03/07 21:57
対応ありがとうございます。
やりたかった表現がついにできるようになりました。
長いことお付き合いいただき本当にありがとうございました。
|