トップページ > 記事閲覧
SetFullSceneAntiAliasingMode
名前:うずら 日時: 2014/07/20 17:25

こんにちは。当方、スクリーンセーバーを作成中です。 試しに SetFullSceneAntiAliasingMode() この関数を使ってみたところ画面に描画結果が残ってしまうようになりました。 この関数さえ使わなければ別に何ともないんですが・・・ この場合どのような原因が考えられるでしょうか?
メンテ

Page: 1 |

Re: SetFullSceneAntiAliasingMode ( No.1 )
名前:管理人 日時:2014/07/20 19:56

プログラムを拝見してみないとなんともいえませんが、ClearDrawScreen を実行していないなどでしょうか・・・ あと、少し古いタイプのグラフィックスデバイスでフルシーンアンチエイリアスが正常に動作していない ことなども考えられますので、お手数で申し訳ありませんがプログラム実行時に作成される Log.txt の中身を こちらの掲示板に貼り付けて頂けないでしょうか?
メンテ
Re: SetFullSceneAntiAliasingMode ( No.2 )
名前:うずら 日時:2014/07/20 20:57

Log.txtです 0:設定されている画面設定 1366x768 32bit color 31:システムの情報を出力します 31: DXライブラリ Ver3.12a 31: 論理プロセッサの数 : 8 31: OS Windows8 ( Build 9200 ) 152: CPU動作速度:大体2.40GHz 156: MMX命令を使用します 160: SSE命令が使用可能です 164: SSE2命令が使用可能です 167: CPUベンダ:GenuineIntel 186: CPU名:Intel(R) Core(TM) i7-4700MQ CPU @ 2.40GHz 190:COMの初期化... 成功しました 200:メモリ総量:8104.09MB 空きメモリ領域:5511.54MB 204:タイマーの精度を検査します 208:精度結果 更新回数 マルチメディアタイマー:0 パフォーマンスカウンター:60 214: パフォーマンスカウンターを使用します タイマー精度 : 2338.348000 KHz 225: ソフトの二重起動検査... 二重起動はされていませんでした 241:ウインドウクラスを登録します... 登録に成功しました 252:フルスクリーンモード用のウインドウを作成します 259:ウインドウの作成に成功しました 264:ウインドウを表示します 279:カーソルを不可視にしました 285:IMEを無効にしました 312:DirectInput関係初期化処理 317: XInput DLL の読み込み中... 成功 328: DirectInput7 の取得中... 成功 350: 引き続き初期化処理... 初期化成功 362: ジョイパッドの初期化... 374: ジョイパッドの初期化は正常に終了しました 378: マウスデバイスの初期化... 初期化成功 388: キーボードデバイスの初期化... 初期化成功 398:DirectInput 関連の初期化は正常に終了しました 403:XAudio2 の初期化を行います 409: XAudio2_8.dll を使用します 413: XAudio2 インターフェースの取得と初期化を行います.... 成功 Ver2.8 513:XAudio2 の初期化は正常に終了しました 520:DirectDraw オブジェクトの取得を行います.... 成功 530:引き続き初期化処理... 初期化に成功しました 549:IDirect3D9Ex オブジェクトを取得します.... 成功 561:Desktop Window Manager を無効にしました 567:IDirect3DDevice9Ex オブジェクトを取得します.... ハードウエア頂点演算を使用します 938:成功 943:Driver:igdumdim32.dll Description:Intel(R) HD Graphics 4600 947:画面のフォーマットは D3DFMT_X8R8G8B8 です 951:16bit Zバッファフォーマットは D3DFMT_D16 です 956:24bit Zバッファフォーマットは D3DFMT_D24X8 です 961:32bit Zバッファフォーマットは D3DFMT_D24X8 です 965:16bit カラーフォーマットは D3DFMT_R5G6B5 です 970:32bit カラーフォーマットは D3DFMT_X8R8G8B8 です 974:アルファ付き 16bit カラーフォーマットは D3DFMT_A4R4G4B4 です 978:アルファ付き 32bit カラーフォーマットは D3DFMT_A8R8G8B8 です 982:アルファテスト用 16bit カラーフォーマットは D3DFMT_A1R5G5B5 です 987:アルファテスト用 32bit カラーフォーマットは D3DFMT_A8R8G8B8 です 992:DXT1テクスチャフォーマットはD3DFMT_DXT1 です 996:DXT2テクスチャフォーマットはD3DFMT_DXT2 です 1000:DXT3テクスチャフォーマットはD3DFMT_DXT3 です 1004:DXT4テクスチャフォーマットはD3DFMT_DXT4 です 1008:DXT5テクスチャフォーマットはD3DFMT_DXT5 です 1013:描画用 16bit カラーフォーマットは D3DFMT_R5G6B5 です 1017:描画用 32bit カラーフォーマットは D3DFMT_X8R8G8B8 です 1022:描画用アルファ付き 32bit カラーフォーマットは D3DFMT_A8R8G8B8 です 1026:描画用ABGR整数16ビット型カラーフォーマットは D3DFMT_A16B16G16R16 です 1031:描画用ABGR浮動小数点16ビット型カラーフォーマットは D3DFMT_A16B16G16R16F です 1035:描画用ABGR浮動小数点32ビット型カラーフォーマットは D3DFMT_A32B32G32R32F です 1040:描画用1チャンネル整数8ビット型カラーフォーマットは D3DFMT_A8R8G8B8 です 1044:描画用1チャンネル整数16ビット型カラーフォーマットは D3DFMT_G16R16 です 1048:描画用1チャンネル浮動小数点16ビット型カラーフォーマットは D3DFMT_R16F です 1053:描画用1チャンネル浮動小数点32ビット型カラーフォーマットは D3DFMT_R32F です 1057:描画用2チャンネル整数8ビット型カラーフォーマットは D3DFMT_A8B8G8R8 です 1062:描画用2チャンネル整数16ビット型カラーフォーマットは D3DFMT_G16R16 です 1066:描画用2チャンネル浮動小数点16ビット型カラーフォーマットは D3DFMT_G16R16F です 1070:描画用2チャンネル浮動小数点32ビット型カラーフォーマットは D3DFMT_G32R32F です 1075:一度に描画できるプリミティブの最大数:1048575 1079:対応している最大頂点インデックス:16777215 1083:同時にレンダリングできるバッファの数:4 1088:最大テクスチャサイズ 幅:8192 高さ:8192 1092:テクスチャステージテンポラリレジスタ:使用可 1097:減算合成のハードウェア対応:ネイティブ 1101:ハードウェア頂点シェーダーバージョンコード:300 1113:エミュレーション頂点シェーダーバージョンコード:エミュレーション無し 1117:ピクセルシェーダーバージョンコード:300 1136:バックバッファロック転送の時間:1338nsec 一時的な描画可能バッファを使用した転送の時間:2019nsec 1141:バックバッファロックを使用します 1145:Zバッファを作成します.... 成功 1317:プログラマブルシェーダーを使用します 1325:フォントの初期化を行います 1334:フォントの初期化は正常に終了しました 1380:文字コードバッファの初期化を行います... 完了しました 44452:フォントの初期化を行います 44465:フォントの初期化は正常に終了しました 44482:Direct3DDevice9 の解放 2 44556:Direct3D9 DLL の解放 1 44562:DirectInput 関連の終了処理... 完了 44612:ウインドウを閉じようとしています 44620:ウインドウが破棄されようとしています 44624:ソフトを終了する準備が整いました 44696: 44701:Alloc memory dump 44705: Total size:0(0.000kb) Alloc num:0 44709:
メンテ
Re: SetFullSceneAntiAliasingMode ( No.3 )
名前:うずら 日時:2014/07/20 20:59

SetFullSceneAntiAliasingMode関数はDxLib_Initの前に呼んでいますし、 これをコメントアウトするかどうかだけで実行結果が変わるのでClearDrawScreen のほうも大丈夫だとは思いますが・・・
メンテ
Re: SetFullSceneAntiAliasingMode ( No.4 )
名前:うずら 日時:2014/07/20 21:04

あと、描画結果の全部ではなく「一部」だけが残り、 仮想スクリーンなどは使用せず裏画面のみで実行しています。 スクリーンショットを撮ろうと思いましたが、SaveDrawScreenToPNG関数で撮ったスクリーンショットにも映り込みません・・・ もし見ていただけるならVS2013のプロジェクトを送りますが・・・
メンテ
Re: SetFullSceneAntiAliasingMode ( No.5 )
名前:管理人 日時:2014/07/20 21:17

Log.txt の貼り付けありがとうございます グラフィックスデバイスの性能は問題無さそうです うーん、何故でしょう・・・ とりあえず「キューブが画面中心を左右に移動する」というだけのプログラムに対して SetFullSceneAntiAliasingMode を使用するようにしたサンプルを作成してみました #include "DxLib.h" int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow ) { int x, add ; // ウインドウモードで起動 ChangeWindowMode( TRUE ) ; // フルシーンアンチエイリアスの設定を行う SetFullSceneAntiAliasingMode( 4, 4 ) ; // DXライブラリの初期化 if( DxLib_Init() < 0 ) return -1 ; // 描画先を裏画面にする SetDrawScreen( DX_SCREEN_BACK ) ; // Zバッファに対する描画を有効にする SetUseZBufferFlag( TRUE ) ; SetWriteZBufferFlag( TRUE ) ; // メインループ(何かキーが押されたらループを抜ける) x = 0 ; add = 8 ; while( ProcessMessage() == 0 ) { // 移動 x += add ; if( x < 0 || x > 640 ) add = -add ; // 画面のクリア ClearDrawScreen() ; // キューブの描画 DrawCube3D( VGet( ( float )x, 240.0f, 0.0f ), VGet( ( float )x + 64.0f, 240.0f + 64.0f, 64.0f ), GetColor( 0,255,0 ), 0, TRUE ) ; // 裏画面の内容を表画面に反映 ScreenFlip() ; } // DXライブラリの後始末 DxLib_End() ; // ソフトの終了 return 0 ; } 私の環境では描画結果が残ることなく緑色のキューブが左右に移動するのですが、 うずらさんの環境でも問題なく動作するかどうかお試しになってみていただけないでしょうか?
メンテ
Re: SetFullSceneAntiAliasingMode ( No.6 )
名前:管理人 日時:2014/07/20 21:21

あ、すみません入れ違いでした、今 No.4 を拝見しました プロジェクトを拝見させていただきたいと思いますが、 とりあえず No.5 のサンプルプログラムを試してみて頂けないでしょうか?
メンテ
Re: SetFullSceneAntiAliasingMode ( No.7 )
名前:うずら 日時:2014/07/20 21:27

貼っていただいたコードは正常に動作しましたが、 ChangeWindowMode(false)にすると 四角形の残像が残るようです。 ウィンドウモードでは発生せず、フルスクリーンモードのみで再現します。
メンテ
Re: SetFullSceneAntiAliasingMode ( No.8 )
名前:管理人 日時:2014/07/20 21:38

私の環境ではフルスクリーンモードでも問題は発生しませんでした・・・ Intel(R) HD Graphics 4600 のドライバを最新にすれば直る可能性がありますので、 よろしければこちらのページから最新のドライバをダウンロード&インストールしてみてください http://www.intel.com/p/ja_JP/support/highlights/graphics/4cp-hd4600gfx
メンテ
Re: SetFullSceneAntiAliasingMode ( No.9 )
名前:うずら 日時:2014/07/20 21:59

すいません。当方ノートPCなのでまだドライバが出てないようです。 こちらの環境の問題だと思いますので解決はしていませんが、 とりあえず一旦区切りをつけさせていただきます。 ドライバ更新後にも問題があるようでしたらそのときは またこちらに書き込ませていただきます。 一応型番メモ   ○TOSHIBA dynabook T554/67KB    OS Windows 8.1 64bit update適用済み    CPU Intel Core i7-4700MQ 2.40GHz    メモリ 8GB    ディスプレイ 1366 * 768
メンテ
Re: SetFullSceneAntiAliasingMode ( No.10 )
名前:管理人 日時:2014/07/20 22:07

一旦区切り承知しました PCのご情報ありがとうございます ノートPCでもインテルのサイトからダウンロードできるドライバをインストールすることはできますが、 メーカー製PCだと確かにメーカーから正式にリリースされるドライバを待った方が良いかもしれませんね・・・
メンテ
Re: SetFullSceneAntiAliasingMode ( No.11 )
名前:うずら 日時:2014/07/20 22:15

ところで、こういう場合があると思うので、 ヘッダとかにその旨書いておいたほうがいいんじゃないかと思います・・・ 作った人が気付かないで、うちのようなPCで実行すると表示がぁぁぁ・・・ ということはありそうですし。
メンテ
Re: SetFullSceneAntiAliasingMode ( No.12 )
名前:管理人 日時:2014/07/20 22:40

ドライバの不具合による意図しない動作結果の可能性を記載するとなると、 殆どの関数についてそれが言えてしまうのでそれをするのは難しいです ( 不具合が発生した場合の症状もそれぞれ異なると思いますし、 新しいデバイスの成熟していないドライバについて言えば色々な関数で 不具合が発生する可能性がありますし・・・ )
メンテ

Page: 1 |

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

   クッキー保存