トップページ > 過去ログ > 記事閲覧
MakeScreen画像に描けない?!
名前:埴輪 日時: 2012/08/07 01:30

お世話になっております。 ブルーム効果を実装しようと思い、 ttp://homepage2.nifty.com/natupaji/DxLib/program/dxprogram_Bloom.html を参考に、組み込んでみたのですが、 なにも映らなくなってしまいました。 ガウスフィルター処理などを施した後、 裏画面に戻して、サンプルで言うColorScreenを描画してもなにも映りません。 さらにその後に表示するFPS値だけは映るので、 ColorScreenへの描画がうまくいっていないように思います。 ColorScreenへ描画するにあたり、 DrawPolygonIndexed3DToShader_UseVertexBuffer(); MV1DrawModel(); SetDrawArea(); DrawBox(); などを使用し、これらとの相性が悪いのかと関係なさそうなものを 全て切っても何も映りませんでした。 MakeScreen();を使うにあたり、何か忘れているのだと思うのですが・・・。 どなたかご存知のかたいらっしゃいますでしょうか。 ちなみに100%サンプルそのまんまはきちんとブルーム効果がでています。

Page: 1 |

Re: MakeScreen画像に描けない?! ( No.1 )
名前:いっち 日時:2012/08/08 21:17

再現するコードをご提供下さい。
Re: MakeScreen画像に描けない?! ( No.2 )
名前:埴輪 日時:2012/08/09 08:58

http://ll.la/uuVG に投稿しました。keyはdxlibです。 汚いソースですが、よろしくお願いします。 また、 ソースを見ていただきますと、 for(int i=0;i<NMachine;i++) { machine[i]->DrawMachine(course[UseCourse]); machine[i]->DrawBurner(course[UseCourse]); } EndDrawModelWithDepthShadow(); という部分があるのですが、 EndDrawModelWithDepthShadow();内でシェダーの使用を解除しています。 正直言って、machine[i]->DrawBurner(course[UseCourse]);の時に 影は要らないので、 for(int i=0;i<NMachine;i++) machine[i]->DrawMachine(course[UseCourse]); EndDrawModelWithDepthShadow(); for(int i=0;i<NMachine;i++) machine[i]->DrawBurner(course[UseCourse]); としたいのですが、こちらもうまくいきません。 (一部しか映らないです)
Re: MakeScreen画像に描けない?! ( No.3 )
名前:いっち 日時:2012/08/10 23:27

私の環境で動作を確認しようと思ったのですが、以下のループを実行するとPCが強制リブートしてしまいました。 -- race.cpp Line:192-196 -- 192> for(int i=0;i<NMachine;i++) 193> { 194> machine[i]->DrawMachine(course[UseCourse]); 195> machine[i]->DrawBurner(course[UseCourse]); 196> } デバッガで追ってみたところ、ループ2週目の194行目の中の MV1DrawModel で落ちているようでした。 ためしに195行目をコメントにしてみたり192行目の直前に EndDrawModelWithDepthShadow を入れてみたりしても同様でした。 さらに192行目のループ初期値を1(int i=1)にして強制的に2週目からスタートしてみたところ、 194行目では落ちずに201行目の DrawRader内の DrawCircle でリブートが発生しました。 DXライブラリの中も追跡してみようと思ったのですが、テストバージョンのソース(DxLibMakeTest.exe)に 一部のヘッダ("Windows/DxWindow.h"等)が足りないようでビルドできませんでした。 原因などは分かりません。 埴輪さんにお心当たりが無いようでしたら、管理人さんの見解をお待ちするのが良いと思います。 ---- (No.2)の補足です。 ・ビルドには最新テストバージョンのDXライブラリが必要 ・プロジェクトには"race.cpp"のみを追加してビルドする ・プログラム実行後Enterキーを1回押すことで問題となっているコードに到達する
Re: MakeScreen画像に描けない?! ( No.4 )
名前:埴輪 日時:2012/08/11 00:57

強制リブート・・・(汗 とてつもなく危険なソースになっている気がします。 管理人さんの見解を待つことにします。 ちなみにいっちさんはどのような環境で試されましたか? 試していただく上で重要なことを書き忘れていました。m(_ _)m 補足ありがとうございます。
Re: MakeScreen画像に描けない?! ( No.5 )
名前:管理人 日時:2012/08/12 08:18

アップして頂いたプログラムを拝見しました 原因は BloomSource などのブルーム処理で使用するグラフィックハンドルの作成に MakeScreen ではなく MakeGraph を使用してしまっていることです ( ブルームのサンプルでは MakeScreen を使用しています ) MakeGraph を MakeScreen に変更しましたところ、とりあえず何も表示されないということはなくなりました よろしければお試しください m(_ _)m > いっちさん すみません、DxLibMakeTest に必要の無いファイルがあったり、新しく追加したファイルが 存在しないなどの状態になっていました 整理してアップしなおしましたので、よろしければお試しください http://homepage2.nifty.com/natupaji/DxLib/DxLibVCTest.exe // VisualC++ 用 http://homepage2.nifty.com/natupaji/DxLib/DxLibBCCTest.exe // BorlandC++ 用 http://homepage2.nifty.com/natupaji/DxLib/DxLibGCC_DevCppTest.exe // Dev-C++ 用 http://homepage2.nifty.com/natupaji/DxLib/DxLibGCC_MinGWTest.exe // MinGW 用 http://homepage2.nifty.com/natupaji/DxLib/DxLibMakeTest.exe // ソース (中身を既存のライブラリのファイルに上書きして、BCCをお使いの 場合は『再構築』を、VCをお使いの場合は『リビルド』を、 Dev-C++をお使いの方は「Rebuild All(Ctrl+F11)」をして下さい)
Re: MakeScreen画像に描けない?! ( No.6 )
名前:埴輪(解決) 日時:2012/08/12 23:25

うまくいきました! ありがとうございます(^^)

Page: 1 |