トップページ > 記事閲覧
DrawLine3D
名前:かげ 日時: 2015/12/13 02:37

3.15eに更新したところ、DrawLine3Dを複数同時に描写することができなくなりました。 報告させていただきます。 #include "DxLib.h" int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow) { // DXライブラリの初期化 if (DxLib_Init() < 0) { // エラーが発生したら直ちに終了 return -1; } // 3D空間上に線分を描画する DrawLine3D(VGet(100.0f, 100.0f, 0.0f), VGet(300.0f, 200.0f, 0.0f), GetColor(255, 255, 255)); DrawLine3D(VGet(100.0f, 400.0f, 0.0f), VGet(300.0f, 300.0f, 0.0f), GetColor(255, 255, 255)); // キー入力待ちをする WaitKey(); // DXライブラリの後始末 DxLib_End(); // ソフトの終了 return 0; }
メンテ

Page: 1 |

Re: DrawLine3D ( No.1 )
名前:管理人 日時:2015/12/13 03:01

ご報告ありがとうございます ただ、手元の環境では問題なく二つの線が画面に表示されました かげさんの環境ではひとつしか線が描画されないのでしょうか?
メンテ
Re: DrawLine3D ( No.2 )
名前:かげ 日時:2015/12/13 12:48

このように最後に描画したものしか表示されません。 https://gyazo.com/8b483804519c29a835788c55f5957f48 また、3つ以上描画すると、黒い線が出現します。 https://gyazo.com/218c15a4a4e2a5f29fdd8ead1494ea51
メンテ
Re: DrawLine3D ( No.3 )
名前:管理人 日時:2015/12/13 21:02

ご返答ありがとうございます 3つ以上で黒い線ですか・・・ 手元の環境で以下のように毎フレームランダムな位置に1000本の線を描画するようにしてみたのですが、 特に問題なく動作しました #include "DxLib.h" #define NUM (1000) int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow) { ChangeWindowMode( TRUE ) ; // DXライブラリの初期化 if (DxLib_Init() < 0) { // エラーが発生したら直ちに終了 return -1; } SetBackgroundColor( 128,128,128 ) ; SetDrawScreen( DX_SCREEN_BACK ) ; while( ProcessMessage() == 0 ) { ClearDrawScreen() ; int i ; // 3D空間上に線分を描画する for( i = 0 ; i < NUM ; i ++ ) { DrawLine3D(VGet(GetRand(640), GetRand(480), 0.0f), VGet(GetRand(640), GetRand(480), 0.0f), GetColor(255, 255, 255)); } ScreenFlip() ; } // DXライブラリの後始末 DxLib_End(); // ソフトの終了 return 0; } こちらのプログラムでもかげさんの環境では毎フレーム1本しか描画されない&黒い線が描画される という結果になるのでしょうか? あと、こちらにかげさんが載せてくださったプログラムをコンパイルして、手元の環境では 問題なく動作することを確認している実行ファイルをアップしましたので、よろしければこの 実行ファイルでもかげさんの環境では正常に描画されないかお試しいただけないでしょうか? https://dxlib.xsrv.jp/temp/DrawLine3DTest.zip あと、かげさんの環境を拝見することで原因が何かわかるかもしれませんので、お手数で申し訳ありませんが 実行時に作成される Log.txt の内容をまるごとコピー&ペーストしていただけないでしょうか? お願いばかりで申し訳ありません m(_ _;m
メンテ
Re: DrawLine3D ( No.4 )
名前:かげ 日時:2015/12/14 00:24

実行したところ、黒い線はありませんが、やはり毎フレーム1本しか描画されないようです。 しかし、ダウンロードした実行ファイルでは2本表示されました。 作成されたLog.txtは以下の様になってます。 0:DXライブラリの初期化処理開始 0: 設定されている画面設定 640x480 16bit color 0: ディスプレイ情報のセットアップ開始 0: モニターの数:1 ディスプレイデバイスの数:3 0: No.0 モニター名:\\.\DISPLAY1 1366x768 32bit 60Hz 15: ディスプレイ情報のセットアップ完了 15: 対応している画面モードなし 15: 設定されている画面設定 640x480 32bit color 15: システムの情報を出力します 15: DXライブラリ Ver3.15f 15: 論理プロセッサの数 : 4 15: OS Windows8.1 ( Build 9600 ) 124: 現時点のCPU動作速度:大体2.19GHz 124: MMX命令を使用します 124: SSE命令が使用可能です 125: SSE2命令が使用可能です 125: CPUベンダ:GenuineIntel 126: CPU名:Intel(R) Core(TM) i5-5200U CPU @ 2.20GHz 126: COMの初期化... 成功しました 129: メモリ総量:4007.33MB 空きメモリ領域:1200.69MB 130: タイマーの精度を検査します 130: 精度結果 更新回数 マルチメディアタイマー:0 パフォーマンスカウンター:60 130: パフォーマンスカウンターを使用します タイマー精度 : 2143.478000 KHz 131: ソフトの二重起動検査... 二重起動はされていませんでした 133: ウインドウクラスを登録します... 登録に成功しました 133: フルスクリーンモード用のウインドウを作成します 135: ウインドウの作成に成功しました 135: ウインドウを表示します 145: カーソルを不可視にしました 145: IMEを無効にしました 166: DirectInput関係初期化処理 166: XInput DLL の読み込み中... 成功 167: DirectInput7 の取得中... 成功 176: 引き続き初期化処理... 初期化成功 179: ジョイパッドの初期化... 182: ジョイパッドの初期化は正常に終了しました 182: マウスデバイスの初期化... 初期化成功 183: キーボードデバイスの初期化... 初期化成功 184: DirectInput 関連の初期化は正常に終了しました 189: DirectSound の初期化を行います 190: DirectSound インターフェースの取得を行います.... 成功 193: 引き続きインターフェースの初期化処理... 成功 210: DirectSound デバイスを列挙します 211: Module Name : Description : プライマリ サウンド ドライバー 211: Module Name : {0.0.0.00000000}.{cea4671f-0b86-4f3c-be18-e255171022b0} Description : スピーカー (Realtek High Definition Audio) 211: 最大サンプリングレート:200.00KHz 最小サンプリングレート:0.10KHz 212: 総サウンドメモリ領域:0.00KB 空きサウンドメモリ領域:0.00KB 212: 利用可能サンプリング精度 213: Primary 16bit = OK 8bit = OK 213: Secondary 16bit = OK 8bit = OK 213: 利用可能チャンネル 214: Primary MONO = OK STEREO = OK 214: Secondary MONO = OK STEREO = OK 214: DirectSound の初期化は正常に終了しました 215: d3d11.dll の読み込み.... 成功 218: dxgi.dll の読み込み.... 成功 218: API CreateDXGIFactory のアドレスを取得します.... 成功 219: IDXGIFactory を作成します.... 成功 220: API D3D11CreateDevice のアドレスを取得します.... 成功 221: IDXGIAdapter を取得します.... 成功 222: Direct3D 11 FeatureLevel 11_0 以上を対象とします 222: ID3D11Device オブジェクトを取得します.... 成功 230: IDXGIDevice1 を取得します.... 成功 231: IDXGIDevice1->SetMaximunFrameLatency( 1 ); を実行しました 231: [フルスクリーンモード 1366x768] 231: IDXGISwapChain を作成します.... 成功 577: IDXGIOutput を取得します.... 成功 578: Graphics Device:Intel(R) HD Graphics 5500 578: 画面のフォーマットは DXGI_FORMAT_R8G8B8A8_UNORM です 579: 16bit Zバッファフォーマットは DXGI_FORMAT_D16_UNORM です 579: 24bit Zバッファフォーマットは DXGI_FORMAT_D24_UNORM_S8_UINT です 579: 32bit Zバッファフォーマットは DXGI_FORMAT_D32_FLOAT です 580: カラーフォーマットは DXGI_FORMAT_R8G8B8A8_UNORM です 580: DXT1テクスチャフォーマットは DXGI_FORMAT_BC1_UNORM です 581: DXT2テクスチャフォーマットは使えません 581: DXT3テクスチャフォーマットは DXGI_FORMAT_BC2_UNORM です 581: DXT4テクスチャフォーマットは使えません 582: DXT5テクスチャフォーマットは DXGI_FORMAT_BC3_UNORM です 582: 描画用 16bit カラーフォーマットは DXGI_FORMAT_B5G6R5_UNORM です 582: 描画用 32bit カラーフォーマットは DXGI_FORMAT_B8G8R8X8_UNORM です 583: 描画用アルファ付き 32bit カラーフォーマットは DXGI_FORMAT_R8G8B8A8_UNORM です 583: 描画用 ABGR 整数 16 ビット型カラーフォーマットは DXGI_FORMAT_R16G16B16A16_UNORM です 584: 描画用 ABGR 浮動小数点 16 ビット型カラーフォーマットは DXGI_FORMAT_R16G16B16A16_FLOAT です 584: 描画用 ABGR 浮動小数点 32 ビット型カラーフォーマットは DXGI_FORMAT_R32G32B32A32_FLOAT です 585: 描画用1チャンネル整数 8 ビット型カラーフォーマットは DXGI_FORMAT_R8_UNORM です 586: 描画用1チャンネル整数 16 ビット型カラーフォーマットは DXGI_FORMAT_R16_UNORM です 586: 描画用1チャンネル浮動小数点 16 ビット型カラーフォーマットは DXGI_FORMAT_R16_FLOAT です 587: 描画用1チャンネル浮動小数点 32 ビット型カラーフォーマットは DXGI_FORMAT_R32_FLOAT です 587: 描画用2チャンネル整数 8 ビット型カラーフォーマットは DXGI_FORMAT_R8G8_UNORM です 588: 描画用2チャンネル整数 16 ビット型カラーフォーマットは DXGI_FORMAT_R16G16_UNORM です 588: 描画用2チャンネル浮動小数点 16 ビット型カラーフォーマットは DXGI_FORMAT_R16G16_FLOAT です 588: 描画用2チャンネル浮動小数点 32 ビット型カラーフォーマットは DXGI_FORMAT_R32G32_FLOAT です 589: 使用する機能レベル:D3D_FEATURE_LEVEL_11_1 589: 同時にレンダリングできるバッファの数:8 589: 最大テクスチャサイズ 幅:16384 高さ:16384 590: 深度バッファを作成します.... 成功 590: シェーダーコード関係の初期化.... 成功 606: 各種シェーダー用定数バッファの作成.... 成功 607: 各種 ID3D11InputLayout の作成.... 成功 608: 標準描画用の頂点バッファの作成.... 成功 781: 画像の単純転送処理の初期化... 成功 785: フォントの初期化を行います 787: フォントの初期化は正常に終了しました 788: 文字コードバッファの初期化を行います... 完了しました 814:DXライブラリの初期化処理終了 2681:フォントの初期化を行います 2682:フォントの初期化は正常に終了しました 2957:d3d11.dll の解放 1 2958:dxgi.dll の解放 1 2958:Direct3D11 のオブジェクト数を出力 2959:Direct3D11 のオブジェクト合計数 : 0 2961:DirectInput 関連の終了処理... 完了 2976:DirectSound の終了処理は正常に終了しました 2979:ウインドウを閉じようとしています 2983:ウインドウが破棄されようとしています 2984:ソフトを終了する準備が整いました 3055: 3056:Alloc memory dump 3056: Total size:0(0.000kb) Alloc num:0 3056:
メンテ
Re: DrawLine3D ( No.5 )
名前:管理人 日時:2015/12/14 02:43

お試しいただき&ログを貼り付けていただきありがとうございます 実行ファイルでは正常に描画されましたか・・・ Ver3.15e からまだ殆ど変更点はないのですが、暫定最新版では本件の不具合が解消されて いるかもしれませんので、よろしければこちらのバージョンをお試しになってみてください m(_ _;m https://dxlib.xsrv.jp/temp/DxLibVCTest.exe // VisualC++ 用 https://dxlib.xsrv.jp/temp/DxLibBCCTest.exe // BorlandC++ 用 https://dxlib.xsrv.jp/temp/DxLibGCC_DevCppTest.exe // Dev-C++ 用 https://dxlib.xsrv.jp/temp/DxLibGCC_MinGWTest.exe // MinGW 用 https://dxlib.xsrv.jp/temp/DxLibDotNet.zip // .NET用 https://dxlib.xsrv.jp/temp/DxLibMakeTest.exe // ソース (中身を既存のライブラリのファイルに上書きして、BCCをお使いの 場合は『再構築』を、VCをお使いの場合は『リビルド』を、 Dev-C++をお使いの方は「Rebuild All(Ctrl+F11)」をして下さい)
メンテ
Re: DrawLine3D ( No.6 )
名前:かげ 日時:2015/12/14 18:03

暫定最新版で実行したところ、複数本表示されました。 対応ありがとうございました。
メンテ
Re: DrawLine3D ( No.7 )
名前:くろよん 日時:2015/12/24 10:10

3.15eで私もかげさんと同様の現象が発生しました。 また DrawLine3D のほかに DrawLine , DrawBox でも同様の現象が起きます。 これらの現象はDrawLine,DrawBoxを単体で使用したときに発生しています。現象を回避するためにはDrawBoxなどと同時にDrawCircleやDrawStringを併用することで回避することができました。(DrawExtendGraph と DrawBoxを同時に使用することでも回避できました) ですが、これらの現象も暫定最新版で修正されています。 自分もこの現象で詰まっていたので、書き残しておきます。
メンテ
Re: DrawLine3D ( No.8 )
名前:管理人 日時:2015/12/27 21:30

ご報告ありがとうございます 本件以外にも致命的なバグの修正があったので、なるべく早く正式版のバージョンアップをしたいと思います m(_ _;m
メンテ

Page: 1 |

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

   クッキー保存