Re: CheckCameraViewClip関数の不具合? ( No.1 ) |
- 名前:管理人 日時:2014/12/23 13:53
載せて頂いた方法で確認しましたが、私の環境では「見える」と表示されました
何故私の環境で結果が異なったのかは分かりませんが、とりあえず CheckCameraViewClip に
VECTOR_D 版の CheckCameraViewClipD が無かったので追加しました
恐らく精度が原因だと思いますので、よろしければお試しになってみてください m(_ _;m
http://homepage2.nifty.com/natupaji/DxLib/DxLibDotNet.zip // .NET用
|
Re: CheckCameraViewClip関数の不具合? ( No.2 ) |
- 名前:ゆーすけ 日時:2014/12/23 14:57
ありがとうございます。
先ほどVECTOR_D版で試してみましたがやはり「見えない」と表示されました。
別のプログラムでは指定点がカメラの向いている向きと逆向きにいるにも関わらず
見えると判定されていますし・・・
同じ条件で結果が変わってくるのは謎ですが、とりあえずこのまま使うしかなさそうですね。
|
Re: CheckCameraViewClip関数の不具合? ( No.3 ) |
- 名前:管理人 日時:2014/12/23 17:01
駄目でしたか・・・・
勘ですが、マルチスレッドが原因だったりしないでしょうか?
シングルスレッドで動作させたらそちらの現象が発生しなくなったり・・・
|
Re: CheckCameraViewClip関数の不具合? ( No.4 ) |
- 名前:ゆーすけ 日時:2014/12/23 17:42
サンプルプログラムの方はシングルスレッドなので、おそらくですが描画処理を別スレッドにしたのは
直接の原因ではないと思います。
元々作成していた本プログラムで上記の現象が起こったためにそれを検証する目的で作ったサンプルなので・・・
本プログラムでの描画処理の別スレッド化についても、その後テスト中に描画処理が完全にフリーズする現象が
不定期に発生して原因が全く分からないので、結局描画処理の別スレッド化は泣く泣く諦めました(汗
動く時は普通に動いているだけに初心者の自分には謎だらけです。
ともあれ初期の3Dソフトなんかは多少の表示上のバグはつきものでしたしプログラム上致命的な問題でもないので、
とりあえずはこのまま進めていくことにします。
お付き合いくださりありがとうございました。
|
Re: CheckCameraViewClip関数の不具合? ( No.5 ) |
- 名前:管理人 日時:2014/12/25 00:51
マルチスレッドが原因ではありませんでしたか・・・
もしよろしければ検証用に作成されたVB2010のプロジェクトをメールで
BQE00322(あっとまーく)nifty.com
( (あっとまーく)を@に置き換えてください )
に送っていただけないでしょうか?
もしそれで私の環境でも「見えない」となれば、私の方で原因を調べることができると思いますので
|
Re: CheckCameraViewClip関数の不具合? ( No.6 ) |
- 名前:ゆーすけ 日時:2014/12/26 21:41
管理人様
先ほどVB2010のプロジェクトフォルダをzipファイルにまとめてメールで送付しました。
お手数でなければ確認していただければと思います。
(Yahooのフリーメールアドレスで送ったのでひょっとしてブロックされるかも・・・)
それではよろしくお願いします。
|
Re: CheckCameraViewClip関数の不具合? ( No.7 ) |
- 名前:ゆーすけ 日時:2014/12/26 23:37
すみません。
今確認したらエラーで戻ってきてました・・・
どうもメッセージのサイズが大きすぎて怒られているようです。
添付ファイルのサイズは4MBちょっとなのですが(汗
|
Re: CheckCameraViewClip関数の不具合? ( No.8 ) |
- 名前:管理人 日時:2014/12/27 23:51
DxLib.dll や DxLib_x64.dll はこちらで調達できるので、それらを外せば容量制限をクリアできる、
ということはないでしょうか・・・?
あと、もし中身が見られても不都合がありませんでしたらこちらのような簡単なアップローダに
アップしていただけないでしょうか?
<どっとうpろだ.org>
http://www.dotup.org/
|
Re: CheckCameraViewClip関数の不具合? ( No.9 ) |
- 名前:ゆーすけ 日時:2014/12/28 10:41
先ほどうpろだにアップしましたので確認をお願いします。
URLは書き込み禁止文字列に引っ掛かって書き込めないので、こちらの77217.zipをダウンロードしていただければと思います。
それではよろしくお願いします。
|
Re: CheckCameraViewClip関数の不具合? ( No.10 ) |
- 名前:管理人 日時:2014/12/29 09:55
ありがとうございます、アップしていただいたファイルを拝見しました
「見えてない」になる原因はカメラの設定がリセットされていたからでした
こちらのスレッドの最初に書き込んでいただいたプログラムではカメラ設定を行い
球を描画した直後に CheckCameraViewClip を使用していますが、
アップしていただいたプログラムでは球を描いた後 SetDrawScreen で描画先を裏画面にしています
SetDrawScreen を実行するとカメラの設定がリセットされてしまうので、その後に
CheckCameraViewClipD を使用するとリセットされたカメラ設定での判定になるので、
「見えてない」になってしまうというわけです
アップしていただいたプログラムの CheckCameraViewClipD を使用する前の箇所に
DX.SetCameraPositionAndTargetAndUpVecD(PosCam, PosGaze, DX.VNormD(PosGaze))
DX.SetupCamera_PerspectiveD(45 * D2R)
DX.SetCameraNearFarD(50000, 100000)
をコピー&ペーストして実行したところ、「見えてる」になりましたので、よろしければお試しください m(_ _)m
|
Re: CheckCameraViewClip関数の不具合? ( No.11 ) |
- 名前:ゆーすけ 日時:2014/12/29 15:49
サンプルがうまく動かない原因はそれでしたか・・・お恥ずかしい限りです。
実は本来のプログラムの方も正常に動いていないのですが(事前にカメラの設定はやっているはず)、先ほどデバッグして確認してみたら
CheckCameraViewClipDは正常な値を返しているようでしたがその後の処理がこちらの意図した結果になっていないようです。
やむなく荒っぽい方法としてカメラ→注視点のベクトルとカメラ→対象オブジェクトのベクトルの内積をとって角度のコサインを求め、
それが閾値以下なら視界にいないと判定するようにして実装したらとりあえず狙い通りの動作をするようになりました。
CheckCameraViewClipD関数が正常なのに結果がおかしくなる原因は謎ですが、今回は実装を変えて凌ぐことにします。
疑いをかけてしまって申し訳ありません(汗
|
Re: CheckCameraViewClip関数の不具合? ( No.12 ) |
- 名前:管理人 日時:2014/12/30 01:51
> CheckCameraViewClipD関数が正常なのに結果がおかしくなる原因は謎ですが、今回は実装を変えて凌ぐことにします。
> 疑いをかけてしまって申し訳ありません(汗
表現が微妙な感じですが、意図した通りの処理ができたということで何よりです (・・;
実用上の問題が発生しましたら、またお訊ねください
|