トップページ > 記事閲覧
画像の隅に、別の画像の断片が上書きされる
名前:困っ太郎 日時: 2024/05/08 00:46

説明がむずかしいのですが、画像を表示したときに、画像の隅のほうに 他の画像の断片のようなものが表示されてしまうことがあります。 下記のような画像を表示しているとすると、 〇●●●〇〇〇 ●●●●●〇〇 ●●●●●●● ●●●●●●● ●●●●●〇〇 〇●●●〇〇〇 下記のように隅のほうに別の画像の断片(*で示す)が重なって表示されてしまいます。 ****〇〇〇 ●●●●●〇〇 ****●●● ●●●●●●● ●●●●●〇〇 〇●●●〇〇〇 ただ、発生条件がいまいち特定できません。今まで試した条件をまとめると、 (1) 減算ブレントした画像を100位表示すると、上記の不具合がでる。 (2) 減算ブレントした画像を20個くらいに減らすと発生しなくなった。 (3) 画像描画の合間にDrawBoxを挟んだらなぜか現象が発生しなくなる (4) 加算ブレンドに変えてみても現象が発生。 (5) ノーブレンド画像を複数表示した場合だと現象が発生しない。 (6) DxLib 3.24bでは発生しなかった など… 3.24bで発生しないので、最新版になにかあるかもとは思うのですが、いまいち分かりません。 説明がうまくできなくて すいませんが、原因調査いただけると幸いです。
メンテ

Page: 1 |

Re: 画像の隅に、別の画像の断片が上書きされる ( No.1 )
名前:管理人 日時:2024/05/08 22:28

うーん、ちょっと不思議な現象ですね… ハードウェア的な現象なのか、ソフトウェア的な現象なのかなどの情報が欲しいので、 お手数で申し訳ありませんがプログラム実行時に作成される Log.txt の内容を こちらの掲示板に丸ごと貼って頂けないでしょうか? m(_ _)m
メンテ
Re: 画像の隅に、別の画像の断片が上書きされる ( No.2 )
名前:困っ太郎 日時:2024/05/09 04:40

お忙しいところ、お世話になります。 下記のログが出力されました。 0:ChangeWindowMode実行 0:ウインドウモードフラグが立てられました 165:ChangeWindowMode実行 173:DXライブラリの初期化処理開始 174: システムの情報を出力します 175: DXライブラリ Ver3.24d 175: 論理プロセッサの数 : 8 176: OS Windows10 ( Build 19045 ) 177: COMの初期化... 成功 182: 非同期読み込み処理の初期化...成功 183: ファイルアクセス処理の初期化...成功 184: メモリ総量:8084.81MB 空きメモリ領域:3136.68MB 184: タイマーの精度を検査します 185: 精度結果 更新回数 マルチメディアタイマー:0 パフォーマンスカウンター:60 186: パフォーマンスカウンターを使用します タイマー精度 : 10000.000000 KHz 203: 203: ソフトの二重起動検査... 二重起動はされていませんでした 205: ウインドウクラスを登録します... 登録に成功しました 207: ウインドウモード起動用のウインドウを作成します 207: ディスプレイ情報のセットアップ開始 208: モニターの数:1 ディスプレイデバイスの数:3 209: No.0 モニター名:\\.\DISPLAY1 1920x1080 32bit 60Hz 96x96dpi 226: ディスプレイ情報のセットアップ完了 227: ウインドウ矩形 ( 544, 189 )-( 1360, 828 ) 233: ウインドウの作成に成功しました 233: ウインドウを表示します 323: IMEを無効にしました 325: ウインドウスタイルをウインドウモード用に変更します... 完了 362: XInput DLL の読み込み中... 成功 368: DirectInput関係初期化処理 369: DirectInput8 の取得を試みます...成功 386: 引き続き初期化処理... 初期化成功 397: ジョイパッドの初期化... 398: XInput 対応コントローラーのチェックを開始します 398: XInput 対応コントローラー No.0 をチェック 399: XInput 対応コントローラー No.0 の接続は確認できませんでした 400: XInput 対応コントローラー No.1 をチェック 400: XInput 対応コントローラー No.1 の接続は確認できませんでした 401: XInput 対応コントローラー No.2 をチェック 401: XInput 対応コントローラー No.2 の接続は確認できませんでした 401: XInput 対応コントローラー No.3 をチェック 402: XInput 対応コントローラー No.3 の接続は確認できませんでした 402: XInput 対応コントローラーのチェック完了 403: DirectInput 対応ジョイパッドの列挙を開始します 417: DirectInput 対応ジョイパッドの列挙終了 418: ジョイパッドの初期化は正常に終了しました 418: マウスデバイスの初期化... 初期化成功 419: キーボードデバイスの初期化... 初期化成功 424: DirectInput 関連の初期化は正常に終了しました 432: WASAPI の初期化を行います 438: デバイス名 : スピーカー (VIA HD Audio(Win 10)) 448: デフォルト遅延時間 : 10.000 ms 448: 最小遅延時間 : 3.000 ms 449: 遅延時間 : 10.000 ms 452: チャンネル数   : 2 ch 453: 量子化ビット深度 : 32 bit 453: 有効ビット深度  : 32 bit 454: サンプリングレート : 48000 Hz 454: データ形式 : 浮動小数点型 462: 動作モード : 共有モード 462: WASAPI の初期化は正常に終了しました 468: d3d11.dll の読み込み.... 成功 474: dxgi.dll の読み込み.... 成功 475: API CreateDXGIFactory2 のアドレスを取得します.... 成功 476: IDXGIFactory2 を作成します.... 成功 479: API CreateDXGIFactory6 のアドレスを取得します.... 成功 480: IDXGIAdapter を列挙 481: Adapter No.0 Desc:Intel(R) HD Graphics 4000 VRAM:32MB 482: Output Device No.0 Name:\\.\DISPLAY1 ( 0, 0 )-( 1920, 1080 ) 482: Adapter No.1 Desc:Microsoft Basic Render Driver VRAM:0MB 483: API D3D11CreateDevice のアドレスを取得します.... 成功 484: IDXGIAdapter を取得します.... 成功 485: IDXGIAdapter1 を取得します.... 成功 486: IDXGIAdapter2 を取得します.... 成功 487: IDXGIAdapter3 を取得します.... 成功 488: IDXGIAdapter4 を取得します.... 成功 490: Direct3D 11 FeatureLevel 11_0 以上を対象とします 490: ID3D11Device オブジェクトを取得します.... 成功 521: IDXGIDevice1 を取得します.... 成功 522: IDXGIDevice1->SetMaximunFrameLatency( 1 ); を実行しました 523: [ウインドウモード 800x600 ( 560, 236 )-( 1360, 836 )] 524: IDXGISwapChain2 を作成します.... 成功 525: IDXGIFactory2->CreateSwapChainForHwnd の戻り値:0x00000000 526: IDXGIOutput を取得します.... 成功 527: Graphics Device:Intel(R) HD Graphics 4000 529: 画面のフォーマットは DXGI_FORMAT_R8G8B8A8_UNORM です 529: 16bit Zバッファフォーマットは DXGI_FORMAT_D16_UNORM です 530: 24bit Zバッファフォーマットは DXGI_FORMAT_D24_UNORM_S8_UINT です 530: 32bit Zバッファフォーマットは DXGI_FORMAT_D32_FLOAT です 531: 16bit カラーフォーマットは DXGI_FORMAT_B5G6R5_UNORM です 531: 32bit カラーフォーマットは DXGI_FORMAT_B8G8R8X8_UNORM です 532: アルファ付き 16bit カラーフォーマットは DXGI_FORMAT_B4G4R4A4_UNORM です 532: アルファ付き 32bit カラーフォーマットは DXGI_FORMAT_R8G8B8A8_UNORM です 533: アルファテスト用 16bit カラーフォーマットは DXGI_FORMAT_B5G5R5A1_UNORM です 533: アルファテスト用 32bit カラーフォーマットは DXGI_FORMAT_R8G8B8A8_UNORM です 534: DXT1テクスチャフォーマットは DXGI_FORMAT_BC1_UNORM です 534: DXT2テクスチャフォーマットは使えません 534: DXT3テクスチャフォーマットは DXGI_FORMAT_BC2_UNORM です 535: DXT4テクスチャフォーマットは使えません 535: DXT5テクスチャフォーマットは DXGI_FORMAT_BC3_UNORM です 536: BC7_UNORM テクスチャフォーマットは DXGI_FORMAT_BC7_UNORM です 536: BC7_UNORM_SRGB テクスチャフォーマットは DXGI_FORMAT_BC7_UNORM_SRGB です 537: ABGR 整数 16 ビット型カラーフォーマットは DXGI_FORMAT_R16G16B16A16_UNORM です 537: ABGR 浮動小数点 16 ビット型カラーフォーマットは DXGI_FORMAT_R16G16B16A16_FLOAT です 538: ABGR 浮動小数点 32 ビット型カラーフォーマットは DXGI_FORMAT_R32G32B32A32_FLOAT です 539: 1チャンネル整数 8 ビット型カラーフォーマットは DXGI_FORMAT_R8_UNORM です 540: 1チャンネル整数 16 ビット型カラーフォーマットは DXGI_FORMAT_R16_UNORM です 540: 1チャンネル浮動小数点 16 ビット型カラーフォーマットは DXGI_FORMAT_R16_FLOAT です 541: 1チャンネル浮動小数点 32 ビット型カラーフォーマットは DXGI_FORMAT_R32_FLOAT です 542: 2チャンネル整数 8 ビット型カラーフォーマットは DXGI_FORMAT_R8G8_UNORM です 542: 2チャンネル整数 16 ビット型カラーフォーマットは DXGI_FORMAT_R16G16_UNORM です 543: 2チャンネル浮動小数点 16 ビット型カラーフォーマットは DXGI_FORMAT_R16G16_FLOAT です 544: 2チャンネル浮動小数点 32 ビット型カラーフォーマットは DXGI_FORMAT_R32G32_FLOAT です 544: 描画用 16bit カラーフォーマットは DXGI_FORMAT_B5G6R5_UNORM です 545: 描画用 32bit カラーフォーマットは DXGI_FORMAT_B8G8R8X8_UNORM です 545: 描画用アルファ付き 32bit カラーフォーマットは DXGI_FORMAT_R8G8B8A8_UNORM です 546: 描画用 ABGR 整数 16 ビット型カラーフォーマットは DXGI_FORMAT_R16G16B16A16_UNORM です 546: 描画用 ABGR 浮動小数点 16 ビット型カラーフォーマットは DXGI_FORMAT_R16G16B16A16_FLOAT です 547: 描画用 ABGR 浮動小数点 32 ビット型カラーフォーマットは DXGI_FORMAT_R32G32B32A32_FLOAT です 548: 描画用1チャンネル整数 8 ビット型カラーフォーマットは DXGI_FORMAT_R8_UNORM です 548: 描画用1チャンネル整数 16 ビット型カラーフォーマットは DXGI_FORMAT_R16_UNORM です 549: 描画用1チャンネル浮動小数点 16 ビット型カラーフォーマットは DXGI_FORMAT_R16_FLOAT です 549: 描画用1チャンネル浮動小数点 32 ビット型カラーフォーマットは DXGI_FORMAT_R32_FLOAT です 550: 描画用2チャンネル整数 8 ビット型カラーフォーマットは DXGI_FORMAT_R8G8_UNORM です 550: 描画用2チャンネル整数 16 ビット型カラーフォーマットは DXGI_FORMAT_R16G16_UNORM です 551: 描画用2チャンネル浮動小数点 16 ビット型カラーフォーマットは DXGI_FORMAT_R16G16_FLOAT です 552: 描画用2チャンネル浮動小数点 32 ビット型カラーフォーマットは DXGI_FORMAT_R32G32_FLOAT です 552: 使用する機能レベル:D3D_FEATURE_LEVEL_11_0 553: 同時にレンダリングできるバッファの数:8 553: 最大テクスチャサイズ 幅:16384 高さ:16384 554: 標準描画用の頂点バッファの作成.... 成功 555: シェーダーコード関係の初期化.... 成功 639: 各種シェーダー用定数バッファの作成.... 成功 641: 各種 ID3D11InputLayout の作成.... 成功 763: 画像の単純転送処理の初期化... 成功 764: 深度バッファを作成します.... 成功 767: フォントの初期化を行います 768: フォントの初期化は正常に終了しました 855: 文字コードバッファの初期化を行います... 完了しました 873:DXライブラリの初期化処理終了 13625:フォントの初期化を行います 13626:フォントの初期化は正常に終了しました 13714:d3d11.dll の解放 1 13716:dxgi.dll の解放 1 13718:Direct3D11 のオブジェクト数を出力 13719:Direct3D11 のオブジェクト合計数 : 0 13720:DirectInput 関連の終了処理... 完了 13720:サウンド関連の終了処理... 完了 13746:ウィンドウ関連の終了処理... ウインドウを閉じようとしています 13755:ウインドウが破棄されようとしています 13755:ソフトを終了する準備が整いました 13830:完了 13837:COMを終了... 完了 13842: 13842:Alloc memory dump 13843: Total size:0(0.000kb) Alloc num:0 13843: なお、下記のように、元画像(白)に別のところで使用している画像(黄色)が部分的に重なります。 https://imepic.jp/20240509/165990
メンテ
Re: 画像の隅に、別の画像の断片が上書きされる ( No.3 )
名前:管理人 日時:2024/05/10 13:16

ログの貼り付けありがとうございます 3.24b から 3.24d にかけて行った変更で、原因となりえそうな箇所に手を加えた バージョンを今日か明日中に作成してみますので少々お待ちください m(_ _)m
メンテ
Re: 画像の隅に、別の画像の断片が上書きされる ( No.4 )
名前:困っ太郎 日時:2024/05/10 17:24

管理人様 迅速なご対応をありがとうございます。 私は特に急いでおりませんので、管理人様のペースでご対応いただければと思います。 お忙しい中、ご対応いただきありがとうございます。
メンテ
Re: 画像の隅に、別の画像の断片が上書きされる ( No.5 )
名前:管理人 日時:2024/05/11 01:30

3.24b から 3.24d の間で画像に関する関係しそうな箇所を少し変更してみたバージョンを アップしましたので、お手数で申し訳ありませんがこちらのバージョンでも現象が 発生してしまうかお試しください 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 11.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 // ソース (中身を既存のライブラリのファイルに上書きして『リビルド』をして下さい) あと、よろしければお使いの開発環境( Visual Studio なのか、C++ Builder なのか、MinGW なのか等 )を 教えて頂けないでしょうか? m(_ _)m
メンテ
Re: 画像の隅に、別の画像の断片が上書きされる ( No.6 )
名前:困っ太郎 日時:2024/05/11 13:06

管理人様 お世話になります。 上記ファイルで試したところ、不具合が解消されました。 なお、開発環境はVisual Studioになります。
メンテ
Re: 画像の隅に、別の画像の断片が上書きされる ( No.7 )
名前:管理人 日時:2024/05/11 16:10

お試し頂きありがとうございます 不具合が解消されましたか… 変更点は描画に使用する画像を、3.24b ではピクセルシェーダーのみ使用できるようにしていたのですが、 3.24d では要望があったので頂点シェーダーやジオメトリシェーダーでも使用できるようにしました そして今回のテスト版では 3.24b と同じようにピクセルシェーダーのみ使用できるようにしました 更に原因を絞り込みたいと思いますので、何度も申し訳ありませんが今度はピクセルシェーダーと 頂点シェーダーで画像を使用できるようにしたバージョン( ジオメトリシェーダーだけ使えなくしたバージョン )を お試し頂けないでしょうか? m(_ _;m https://dxlib.xsrv.jp/temp/DxLibVCTest.zip // Windows版 VisualC++ 用
メンテ
Re: 画像の隅に、別の画像の断片が上書きされる ( No.8 )
名前:困っ太郎 日時:2024/05/11 16:57

管理人様 お世話になります。 お忙しいところ、お疲れ様です。 上記バージョンで確認したところ、不具合が再発いたしました。
メンテ
Re: 画像の隅に、別の画像の断片が上書きされる ( No.9 )
名前:管理人 日時:2024/05/11 22:18

お試し頂きありがとうございます 頂点シェーダーのみでも駄目でしたか… 本来であればピクセルシェーダー・頂点シェーダー・ジオメトリシェーダー全てで画像を 使用できるように設定しても正常に動作するはずなので、その点では困っ太郎さんがお使いの PCに搭載されているGPUである Intel HD Graphics 4000 の不具合なのだと思います ともあれ、通常は頂点シェーダーやジオメトリシェーダーでは画像データは使用しないので、 SetUseVertexShader や SetUseGeometryShader でオリジナルシェーダーでの描画を行う 設定にした場合のみ頂点シェーダーやジオメトリシェーダーで画像を使用できる設定を 行うようにしました よろしければその変更を加えたこちらのバージョンをお使いください 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 11.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 // ソース (中身を既存のライブラリのファイルに上書きして『リビルド』をして下さい)
メンテ
Re: 画像の隅に、別の画像の断片が上書きされる ( No.10 )
名前:困っ太郎(解決済み) 日時:2024/05/11 23:17

管理人様 お忙しい中、ご調査いただき、ありがとうございました。 上記バージョンにて不具合が発生しなくなったことが確認できました。 GPUの件、言われてみると 確かに使っているPCは相当古く(おそらく10年以上前のもの) なんらかの不具合が修正されず残されていても不思議ではありませんね。 本件、解決済みとさせていただきます。 ありがとうございました。
メンテ

Page: 1 |

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

   クッキー保存