【C++】 DirectX初心者質問スレ Part33 【C】
レス数が950を超えています。1000を超えると書き込みができなくなります。
0001デフォルトの名無しさん
2010/12/22(水) 20:11:01これらに当てはまる人のための質問スレです。
1.C/C++は多少理解している。
2.最近DirectXを始めたばかり
3.SDKを見ても、Googleで検索しても、いまいち理解できない人
4.余計な雑談は不要ですよ
【 回答してくださる方 】
・ できるだけ優しく質問に答えてあげてください。
・ 優しく教えるのが嫌でしたら、解決するためのヒントだけでも結構です。
「ググれ」「SDK見れ」以外の回答でおながいします。
・ 神ですら理解不能な質問は無視して下さい。
【 質問する方 】
・ どんな事で躓いているのか明確にしよう。
・ 長くならないなら躓いている部分のコードを晒してみれ。
・ 解決した場合、お礼を言うのは当然だが、何をどうしたら解決したかを明確に書こう。
・ 回答して貰ったら、出来るだけお礼もしよう。
前スレ
【C++】 DirectX初心者質問スレ Part32 【C】
http://hibari.2ch.net/test/read.cgi/tech/1288282082/
0002デフォルトの名無しさん
2010/12/22(水) 20:14:30http://msdn.microsoft.com/ja-jp/library/bb219685%28v=VS.85%29.aspx
・DirectXに関係のない、
C/C++の部分や、ゲーム製作全般はスレ違いなので注意しましょう。
0003デフォルトの名無しさん
2010/12/22(水) 22:05:03Windows7上で、USB接続したXbox360ゲームパッドから入力を受け取っています。
左右のスティックをプレスし続けた場合、最初ONになった後、一瞬OFFになってから再びONになり続けるようですが、これで正常なのでしょうか?
一瞬OFFになるのがちょっと困るのですが…
0004デフォルトの名無しさん
2010/12/23(木) 06:04:450005デフォルトの名無しさん
2010/12/23(木) 07:18:31プロジェクトの中に入れる方法あります?
0006デフォルトの名無しさん
2010/12/23(木) 09:36:34>・DirectXに関係のない、
> C/C++の部分や、ゲーム製作全般はスレ違いなので注意しましょう。
勝手に追加するな
初心者にそんな切り分けできるわけないだろ
0007デフォルトの名無しさん
2010/12/23(木) 09:56:340008デフォルトの名無しさん
2010/12/23(木) 10:12:26それは暴論
前から初心者の受け皿だった
玄人用には「鬱だ氏のうDirectX」というスレがあった
0009デフォルトの名無しさん
2010/12/23(木) 10:19:00知らないくせに発言するな
0010デフォルトの名無しさん
2010/12/23(木) 10:36:040011デフォルトの名無しさん
2010/12/23(木) 10:46:040012デフォルトの名無しさん
2010/12/23(木) 11:28:34煽り合いが酷くて消えた
それとそもそもできる奴は滅多に質問しないからスレ自体いらないってなった
まあ、人の発言の意図を汲むことができない奴のいるスレは
スレにいくらルールをつけようがすぐに終わると思うけどね
あのスレも最期の方は書いてないけど普通はわかることまでしつこく指摘しててすごく空気悪かったな
情報が不足していたら相手から引き出すってやりとり自体をそもそも嫌う奴は
掲示板なんてこなけりゃいいのにいるんだよな
質問側は煽られたら完全スルーで頼む
0013デフォルトの名無しさん
2010/12/23(木) 12:04:17頓珍漢な回答をして変な方向に進んでいく流れ。
まずは不足している情報をきっちり出してもらった上で回答に入らないと、
毎度毎度、グダグダな流れになる。
0014デフォルトの名無しさん
2010/12/23(木) 12:10:44まあ、そりゃ、回答した奴が未熟だからってのもあるだろう
それと回答側にやたら完璧を求める奴もいたな
人間同士のコミュニケーションってことを忘れてる質問者もいるからな
0015デフォルトの名無しさん
2010/12/23(木) 12:27:07大丈夫か日本
0016デフォルトの名無しさん
2010/12/23(木) 12:29:050017デフォルトの名無しさん
2010/12/23(木) 12:48:370018デフォルトの名無しさん
2010/12/23(木) 16:08:03そもそも初心者にそれを期待するのが難しい上に
聞き取りを始めようとすると
「それが答えられるくらいならこんなところに質問に来ない」
等の横槍が入るので無理
0019デフォルトの名無しさん
2010/12/23(木) 17:03:590020デフォルトの名無しさん
2010/12/23(木) 17:08:230021デフォルトの名無しさん
2010/12/23(木) 19:07:30入力デバイス周りに詳しい人がいたら>>3について教えてほしい
適切なスレがあればそっち行くので誘導お願い
0022デフォルトの名無しさん
2010/12/23(木) 19:18:00アナログ入力はノイズがあるって言うから、たぶんそれじゃない?
0023デフォルトの名無しさん
2010/12/23(木) 19:58:03とりあえず、ドライバを最新にする
別PC、別OSで検証する
くらいはやった上で聞いてるんだよね?
0024デフォルトの名無しさん
2010/12/23(木) 20:17:03わからないことを無理やり答えるのやめようぜ
知ってるなら「俺のところじゃそんな風にならない」って回答がほしいだけなんだろ
0025デフォルトの名無しさん
2010/12/23(木) 20:19:280026デフォルトの名無しさん
2010/12/23(木) 20:26:49俺のところじゃそんな風にならない
0027デフォルトの名無しさん
2010/12/23(木) 20:41:11不具合がでることで有名な奴じゃん
そんなもの使っておいて>>3だけの情報だけじゃ
プログラムの問題なのかそれ以前の問題なのか判断するのは不可能
0028デフォルトの名無しさん
2010/12/23(木) 21:23:04不具合がでるなんて聞いたことないけど、具体的にどんな症状?
0029デフォルトの名無しさん
2010/12/23(木) 21:52:570030デフォルトの名無しさん
2010/12/23(木) 22:10:22XInput使えばZ軸や振動対応の不具合なんて起きないぜ?
0031デフォルトの名無しさん
2010/12/23(木) 22:34:010032デフォルトの名無しさん
2010/12/23(木) 22:37:510033デフォルトの名無しさん
2010/12/23(木) 22:38:12>>20
0034デフォルトの名無しさん
2010/12/23(木) 23:10:58あのデカい糞パッドを誰でも持ってる
とかありえん
友達居ないだろ?
0035デフォルトの名無しさん
2010/12/23(木) 23:27:13過去のゲームとの互換性のためにあえてそうなってるだけで、不具合とは言わないよ。
> The combination of the left and right triggers in DirectInput is by design.
> Games have always assumed that DirectInput device axes are centered when there is no user interaction with the device.
> However, the Xbox 360 controller was designed to register minimum value, not center, when the triggers are not being held.
> Older games would therefore assume user interaction.
> The solution was to combine the triggers, setting one trigger to a positive direction and the other to a negative direction, so no user interaction is indicative to DirectInput of the 'control' being at center.
> In order to test the trigger values separately, you must use XInput.
0036デフォルトの名無しさん
2010/12/24(金) 00:02:410037デフォルトの名無しさん
2010/12/24(金) 07:54:270038デフォルトの名無しさん
2010/12/24(金) 08:00:350039デフォルトの名無しさん
2010/12/24(金) 08:05:030040デフォルトの名無しさん
2010/12/24(金) 08:09:28具体的にどんな処理手順で何をしているのかを明確にすること。
情報を出すのが面倒なら、どんなグダグダな回答でも受け入れること。
0041デフォルトの名無しさん
2010/12/24(金) 08:15:46ウインドウを最大化する時って何か特別なこと起こります?
0042デフォルトの名無しさん
2010/12/24(金) 08:18:560043デフォルトの名無しさん
2010/12/24(金) 08:38:330044デフォルトの名無しさん
2010/12/24(金) 08:39:540045デフォルトの名無しさん
2010/12/24(金) 08:51:23俺がわざとそれっぽい事いって、故意にミスリードしてもいいのかい?
0046デフォルトの名無しさん
2010/12/24(金) 08:52:50ウィンドウリサイズ時にデバイスを作り直してるから
なにかロスト対策をしてないリソースを追加した時点でエラーが出るようになってるんじゃない?
ぶっちゃけエラーが出なくなる最小コードまで戻してひとつずつ確かめながら追加していけとしか言えない
もしくはソースうp
0047デフォルトの名無しさん
2010/12/24(金) 08:58:28ありがとうございます。デバイスロストっていうのと関係あるんですね。ありがとうございました。
>>45
お前アホなの?
0048デフォルトの名無しさん
2010/12/24(金) 09:03:180049デフォルトの名無しさん
2010/12/24(金) 09:06:40最先端の質問してるわけでもあるまいし
一人だけ性格の悪いゴミクズ荒らしが粘着してればスレが終わるだけ
0050デフォルトの名無しさん
2010/12/24(金) 09:15:03これがお望みのグダグダな流れという奴なので、何の問題もない。
0051デフォルトの名無しさん
2010/12/24(金) 09:17:49情報が致命的に足りない質問をする
情報を出すように要求される
情報を出さない
答えが得られない
逆ギレ
0052デフォルトの名無しさん
2010/12/24(金) 11:16:150053デフォルトの名無しさん
2010/12/24(金) 11:22:30ウィンドウモードはウィンドウの中だけに表示します
ってそんなことが訊きたいんじゃないよな・・・?
0054デフォルトの名無しさん
2010/12/24(金) 11:25:33なぜ人に質問する前に自分で調べないのよ、
アンタ、情弱なの?
今回だけは、特別に教えてあげるけど、今度からは自分で調べなさいよね!
http://msdn.microsoft.com/ja-jp/library/ee422549(VS.85).aspx
0055デフォルトの名無しさん
2010/12/24(金) 11:35:52それそれ、その記述の日本語版見てXInput使うことにしたんだよね
おかげでLTriggerとRTriggerは別々に値取れるようになった
う〜ん、結局Xbox360ゲームパッドを持ってる人は居らんみたいね、残念。
0056デフォルトの名無しさん
2010/12/24(金) 11:38:39もっと低レベル層の仕組みが知りたいのです
0057デフォルトの名無しさん
2010/12/24(金) 11:56:49Xbox360ゲームパッドもってるけどそんな風にはならんよ
せめてハードの問題なのかソフトの問題なのかくらいは絞ってくれないと
0058デフォルトの名無しさん
2010/12/24(金) 12:07:26そうなるとWDKのビデオドライバの実装辺りを調べてみるといい。
そこまでは普通の人間はやらないが、好奇心を持ったのならとことんやるといいのではないか。
0059デフォルトの名無しさん
2010/12/24(金) 17:05:05他のデバイスなら断然DirectInput
0060デフォルトの名無しさん
2010/12/25(土) 01:26:08動作に関してはフルスクリーンはなにもやらなきゃ楽だな
でもAlt+Tabとかサポートしはじめるとお前の実力じゃ2〜3年使うぐらい嫌な目にあう
それに対してウィンドウモードはロストとか起こりにくい
スクリーンセーバー(3Dデバイス使用&占有型)のもん動かしたときどうなんのかとか知らんけどw
後、フルスクリーンはリフレッシュレートを自由に設定できるけど
ウィンドウモードはリフレッシュレートはユーザーが自由に変えられる
もちろんゲーム実行中にも・・・
0061デフォルトの名無しさん
2010/12/25(土) 02:12:240062デフォルトの名無しさん
2010/12/25(土) 02:33:27とっととあきらめてFlashいじってろよw
0063デフォルトの名無しさん
2010/12/25(土) 02:37:28http://www.mext.go.jp/programin/app/
これはいいとてもいい
0064デフォルトの名無しさん
2010/12/25(土) 03:01:50なかなか興味深い教材だな
0065デフォルトの名無しさん
2010/12/25(土) 03:09:53そんなのしってるよ・・・
0066デフォルトの名無しさん
2010/12/25(土) 03:23:490067デフォルトの名無しさん
2010/12/25(土) 06:13:53ゲームのようなダイナミックなものではなく、単純にテクスチャを1枚貼っただけのものです。
それでも私には一苦労でした。Direct3D10とシェーダープログラムはサンプルを利用しました。
ここまでは良かったのですが、同じメッシュ(表現正しいのかな?)にアルファチャネル付きの
テクスチャを何枚も貼ってほしいと要求されました。枚数は不定です。この場合のシェーダーの
書き方はどうすればよろしいのでしょうか?使えるテクスチャの上限を決めておいて、
テクスチャの数だけシェーダーを用意しなければならないのでしょうか?
0068デフォルトの名無しさん
2010/12/25(土) 06:15:10シェーダーと頂点情報はそのまま、テクスチャだけ切り替えて
繰り返し描画するだけ。
0069デフォルトの名無しさん
2010/12/25(土) 07:29:261>c:\program files (x86)\microsoft directx sdk (august 2007)\include\d3dx9anim.h(14) : error C2065: 'IID_ID3DXAnimationSet' : 定義されていない識別子です。
1>c:\program files (x86)\microsoft directx sdk (august 2007)\include\d3dx9anim.h(15) : error C4430: 型指定子がありません - int と仮定しました。メモ: C++ は int を既定値としてサポートしていません
1>c:\program files (x86)\microsoft directx sdk (august 2007)\include\d3dx9anim.h(15) : error C2078: 初期化子の数が多すぎます。
以下d3dx9anim.hでのエラーが80近く……
ゲーム制作でXファイルのアニメーションをしようとして調べてみて、いっちゃん最初で躓いてしまいました、どうかお願いします
0070デフォルトの名無しさん
2010/12/25(土) 08:17:25ライブラリの設定ができてないとかじゃね?
0071デフォルトの名無しさん
2010/12/25(土) 08:18:27お前みたいに煽りしか入れないのとか2度とレスしないでいいけどなw
0072デフォルトの名無しさん
2010/12/25(土) 08:20:58d3dx9anim.hでエラーがでるって
d3dx9.hをインクルードするとエラーがでるってこと?
それとも直でインクルードしてるの?
0073デフォルトの名無しさん
2010/12/25(土) 08:22:58お前もなw
0074デフォルトの名無しさん
2010/12/25(土) 08:23:150075デフォルトの名無しさん
2010/12/25(土) 08:27:07いや、これはアリでいんじゃない?
厳密にはないけどw
設定方法とかわからんでしょ?
初心者だし
0076デフォルトの名無しさん
2010/12/25(土) 08:31:370077デフォルトの名無しさん
2010/12/25(土) 08:32:07>・ 回答して貰ったら、出来るだけお礼もしよう。
さっさとお礼言えよクズ
0078デフォルトの名無しさん
2010/12/25(土) 08:36:140079デフォルトの名無しさん
2010/12/25(土) 08:38:34d3dx9anim.hは自分で作ったプロジェクトのヘッダーファイルからじかにインクルードしています
と、ここまで書いた時点で>>72さんの書き込み見て解決しました
d3dx9.hのインクルードが必要なんですね……
いつもは共有インクルードヘッダーに書き込んでいたので、抜けていたようです
こんな事でお手数取らせて申し訳御座いませんでした
色々言って頂いた皆様、ありがとうございます。今後このような事が無いように、確認を徹底しますね
>>74 関係無いようでしたら申し訳ないです……他にどこで聞けばいいのか解らなかったもので。
0080デフォルトの名無しさん
2010/12/25(土) 08:44:570081デフォルトの名無しさん
2010/12/25(土) 08:48:340082デフォルトの名無しさん
2010/12/25(土) 08:57:17だってd3dx9.hがないと動かないソースなわけじゃん
基本、自分が必要なもんは自分が読んでおけば問題おきないと思うぜ
0083デフォルトの名無しさん
2010/12/25(土) 09:14:29d3dx9anim.hを含むライブラリ群がd3dx9.hなんだよ
実際にd3dx9anim.hが必要としてるのは
d3dx9.h自体じゃなくてd3dx9.hでd3dx9anim.hより前にインクルードされてるヘッダのどれかだ
0084デフォルトの名無しさん
2010/12/25(土) 09:14:330085デフォルトの名無しさん
2010/12/25(土) 09:15:43じゃ、なんでそれ自分で呼んでないの?馬鹿なの?
0086デフォルトの名無しさん
2010/12/25(土) 09:16:170087デフォルトの名無しさん
2010/12/25(土) 09:18:15具体的に呼んでないとなにかいいことあるの?
0088デフォルトの名無しさん
2010/12/25(土) 09:23:34依存しているヘッダが分割された場合の修正や、
多重に呼び出しているかどうかを無駄にチェックする回数は減るね。
0089デフォルトの名無しさん
2010/12/25(土) 09:24:30さっぱり意味がわかりません
メリットないならないっていいなさいよ
育ち悪いな
0090デフォルトの名無しさん
2010/12/25(土) 09:26:25レベル低いな
もう少し勉強してから出直しておいで
0091デフォルトの名無しさん
2010/12/25(土) 09:27:03ある程度の規模のプログラムを組んだことがないとメリットは分からないよ。
無能で理解できないのは致し方がない。
0092デフォルトの名無しさん
2010/12/25(土) 09:29:21はぁ?
じゃ、エラーの出るヘッダでも一生呼んでろw
ちょっと考えてみろよ
<stdio.h>からはじまって色々ヘッダ呼んでるとしたら
使う側はその全部をわざわざインクルードするのかよ
どうせなきゃ動かないのに馬鹿らしい
このスレが糞ったのはお前みたいに自分の間違いとか絶対に認めない糞が増えたからだな
俺がレベル低い?はぁ?
こんな簡単なことわからないお前より俺のがレベル低いっての?
面白いなw
0093デフォルトの名無しさん
2010/12/25(土) 09:33:55そういう面倒を回避するためにd3dx9.hがあるのに、
わざわざd3dx9anim.hを呼んでエラーが出ると喚いている意味が分からん。
0094デフォルトの名無しさん
2010/12/25(土) 09:40:49無知なのに個別にヘッダを呼び出してコンパイルできないと怒り出すって、
どれだけアホなんだよ。
0095デフォルトの名無しさん
2010/12/25(土) 09:41:11なにいってんだ
まだ、頑張るのか?
メリットないだろ
なんで認めないの?
自分が間違ってるのがそんなに嫌なの?
どうせ大した経験もないくせに
>>93
明らかに話わかってないのに無理して参加するなw
いまはなんでd3dx9anim.hがd3dx9.hを呼んでないのか?って話をしている
レスするなら、まず、自分のレス(>>93)がとんちんかんだったことを認めてからレスしてね
0096デフォルトの名無しさん
2010/12/25(土) 09:45:56d3dx9.hを穴の開くほどみてこいよ
d3dx9.hがd3dx9anim.hを呼んでるんだよ
さらにd3dx9anim.hがd3dx9.hを呼んだら相互インクルードになるだろうが
0097デフォルトの名無しさん
2010/12/25(土) 09:48:19さらにウンコだよね
そのd3dx9anim.hがd3dx9.hを呼ばないとエラーになんだぜ
0098デフォルトの名無しさん
2010/12/25(土) 09:52:450099デフォルトの名無しさん
2010/12/25(土) 09:53:04d3dx9anim.hにこだわる理由がさっぱり分からない。
簡単に使えるようにわざわざMSが用意しているのに、
仕様を無視して勝手なことをして対策しろというのが、
無能を通り越して知的障害か精神障害レベルだよ。
0100デフォルトの名無しさん
2010/12/25(土) 10:07:39http://msdn.microsoft.com/ja-jp/library/ee421276%28v=vs.85%29.aspx
お前が呼べゆーたんじゃないか!
要件
ヘッダー: D3dx9anim.h 宣言
0101デフォルトの名無しさん
2010/12/25(土) 10:11:190102デフォルトの名無しさん
2010/12/25(土) 10:13:26D3DXの依存関係が怪しい
0103デフォルトの名無しさん
2010/12/25(土) 10:13:38宣言している箇所を示しているだけで、呼べなんて一切書いていないよ。
0104デフォルトの名無しさん
2010/12/25(土) 10:21:38サンプルやチュートリアルを確認しない馬鹿のための配慮が足りないのは確かだろう。
0105デフォルトの名無しさん
2010/12/25(土) 10:36:27ひでぇヘルプだなw
0106デフォルトの名無しさん
2010/12/25(土) 10:38:090107デフォルトの名無しさん
2010/12/25(土) 10:40:450108デフォルトの名無しさん
2010/12/25(土) 10:45:34ただそれだけの話。
0109デフォルトの名無しさん
2010/12/25(土) 10:48:59馬鹿だなお前
だからd3dx9.hはどの道呼ばなきゃ動かねぇってw
0110デフォルトの名無しさん
2010/12/25(土) 10:51:16どこまで頭が悪いんだろう?
0111デフォルトの名無しさん
2010/12/25(土) 10:55:56はぁ?
だからそれは>>92の話でアフォだって言っただろ?
使う側は全部インクルードすんのかよ糞がって話だ
ループさせんなよ死ね
0112デフォルトの名無しさん
2010/12/25(土) 11:03:21>ユーザーに知らせる必要のないヘッダをヘルプに書くことになんの意味が・・・
これに対する答えだよ。
依存関係を理解している人間が、
コンパイラに送るコードを少しでも少なくするためにやるための方法なの。
絶対にやる必要がある訳じゃない。
つまり意味が理解できない馬鹿には何の意味もない情報。
0113デフォルトの名無しさん
2010/12/25(土) 12:06:41ライブラリ使う側
全ての依存関係をインクルードしたヘッダを使う
(d3dx9.hはライブラリ完成後に作ったんだよ、多分w)
ライブラリ作る側
依存関係だけの必要最低限のヘッダをインクルード
つまり>>69は、依存関係を調べないで使うんだったらd3dx9.hをインクルードすれば良かった話で
d3dx9anim.hをインクルードするんだったら、依存関係のヘッダーもインクルードする必要があったって事だね
で、依存関係を調べるべきなのに、依存関係が全てインクルードされているd3dx9.hをインクルードして解決とか言ってるって話だね
余談だけど、作る側が依存関係だけの構成が良い理由は
ヘッダー定義等に変更があったときに関係ないobjまで再コンパイルになって非常に面倒だから
011469
2010/12/25(土) 12:21:43なんか妙に論争になってたんで引っ込んでましたが、おおよそ理解出来たかと思います。
依存関係とか全く気にしてなかった弊害が……
とりま無事コンパイル通って、やりたかった事の実装も半分程終わった所です
余談ですが、プログラム打ってると煙草の本数増えて仕方が無い今日この頃、です
0115デフォルトの名無しさん
2010/12/25(土) 12:40:24馬鹿の相手をするのはやめろよ
0116デフォルトの名無しさん
2010/12/25(土) 13:11:26>で、依存関係を調べるべきなのに
それを使う側が調べるのが正しいとしちゃっていいの?
0117デフォルトの名無しさん
2010/12/25(土) 13:33:300118デフォルトの名無しさん
2010/12/25(土) 13:43:40こんなんでどうですかね?
http://msdn.microsoft.com/ja-jp/library/bb509635%28v=VS.85%29.aspx
0119デフォルトの名無しさん
2010/12/25(土) 13:48:39メモ帳を使うのをやめて、Visual StudioやNVIDIA FX Composerなどの
もっとリッチなツールを使う。
0120デフォルトの名無しさん
2010/12/25(土) 13:51:31Windows(Win32API)でプログラムを作るときは、まず<windows.h>をインクルードする。
DirectX9でプログラムを作るときは、まず<d3d9.h>をインクルードする。
それ以外のライブラリやヘッダファイルのMSDN上での指定は、
コンパイルエラーやリンクエラーが出たときに初めて追加すればいいよ。
MS流のプログラミングスタイルは大体がこんな感じ。
0121デフォルトの名無しさん
2010/12/25(土) 14:23:34テクスチャーだけ切り換えるということは、シェーダーに
Texture2D txA;
Texture2D txB;
Texture2D txC;
としておいて、ピクセルシェーダー内で切り換えるということでしょうか?
それともC++のプログラム側で切り換えてピクセルシェーダーだけ呼び出せるということでしょうか?
あと申し訳ありません、使用したサンプルは C++\Direct3D10\Tutorials\Tutorial07 です。
0122デフォルトの名無しさん
2010/12/25(土) 14:27:23NVIDIA FX Composerはエラーで開きません。
VC++で扱えますか?
0123デフォルトの名無しさん
2010/12/25(土) 14:48:57違うよ。同じ設定でテクスチャだけ張り替えてDrawPrimitive() (DirectX9の場合)を
必要なだけ呼び出せということ。
ps_3_0まででも1回の描画で16枚までテクスチャ参照できる。
ps_4_0ならもっと増えてるはずだよね。
0124デフォルトの名無しさん
2010/12/25(土) 14:50:32じゃあHLSLが文法的に間違ってる。
fxファイルのコンパイラにかけて様子を見てごらん。
0125デフォルトの名無しさん
2010/12/25(土) 14:55:05いや、NVIDIA FX Composerが動きません。
0126デフォルトの名無しさん
2010/12/25(土) 14:59:09知らんがな。
どういうエラーが出て動かないのか、
どういう環境かも分からないのに答えられるはずがない。
自分で考えろ。
0127デフォルトの名無しさん
2010/12/25(土) 15:03:37解説サイトあります?
0128デフォルトの名無しさん
2010/12/25(土) 16:43:12周りに作った壁なんかも赤くなってしまうんですが
どうすれば他のに影響しないようになるでしょうか?
0129デフォルトの名無しさん
2010/12/25(土) 16:47:460130デフォルトの名無しさん
2010/12/25(土) 19:55:0010以降はシェーダだけじゃないっけ?それ以外は廃止された
多分複数のuv座標とテクスチャは必要だと思う
といっても10以降(9もだっけ)はテクスチャ配列とか便利なものがあった気がするのでそれを使えばテクスチャは複数不要かも
俺も勉強中なのでよくわからん。後は詳しい人が教えてくれるはず↓
0131デフォルトの名無しさん
2010/12/27(月) 01:04:54文章を読む限りマルチテクスチャに思えるが、>>68が言ってるのは
フレームバッファを対象にレンダーステートを設定して、一枚づつテクスチャをブレンド描画していけって意味
これなら一枚テクスチャ描画の処理だけでも、複数テクスチャを張った結果と同じ事が実現出来る
そうではなく、純粋にマルチテクスチャの手法を求める場合は
シェーダーに渡すテクスチャを必要枚数セットして
UVやサンプリング方法が違うならサンプラーも必要分を容易してセットする
ただし扱える最大数はハードスペック依存だから、
アプリ起動時にでも調べて最大数を超えない処理をいれないと駄目かと
0132デフォルトの名無しさん
2010/12/27(月) 01:07:14レンダーステートで行っていた場合のブレンドを、シェーダー内で行わないと駄目だね
0133デフォルトの名無しさん
2010/12/27(月) 03:30:190134デフォルトの名無しさん
2010/12/27(月) 09:55:07ttp://marupeke296.com/DXGSmp_No7_Draw3DObject.html
例えば上記サンプルを実行中に
Ctrl+Alt+Deleteを押してタスクマネージャを出そうとすると
ポリゴンとか全部消えて画面が真っ白になります。
他のサイトのサンプルとかでも全てそうなりました。
この現象を回避する方法はあるでしょうか?
0135デフォルトの名無しさん
2010/12/27(月) 09:57:140136デフォルトの名無しさん
2010/12/27(月) 10:19:38タスクマネージャーってCtrl+Shift+Escで呼び出す物なんだけど。
オレ、釣られてる?
Ctrl+Alt+Deleteで表示が死ぬのはまた別の話。
おそらくは >135
オレの書いたプログラムだと大丈夫だった。
0137デフォルトの名無しさん
2010/12/27(月) 12:32:20必ずデバイスロストしてくれるのでチェックに便利だよ
0138デフォルトの名無しさん
2010/12/27(月) 13:03:21むしろ俺は、Ctrl + Shift + Escでタスクマネージャを直接呼び出せる事を初めて知った。
Vista以降の仕様なのかな? まぁ時計表示右クリックでも出せるから不便には感じてなかったんだが。
0139デフォルトの名無しさん
2010/12/27(月) 13:11:14つかタスクバー以外に時計の右クリックでもでるんだな
あれも一応タスクバーの中か
0140デフォルトの名無しさん
2010/12/27(月) 14:58:100141デフォルトの名無しさん
2010/12/27(月) 15:08:33タスクマネージャーはショートカットかタスクバーから起動できるからまだいいけど
UACが発動した時に同様の理由でロストするのはどうにかして欲しかったな
0142デフォルトの名無しさん
2010/12/27(月) 15:16:38前提: XP
・簡易ログオン有効時
Ctrl+Alt+Delでいきなりタスクマネージャが起動。デバイスロストなし。
・簡易ログオン無効時
Ctrl+Alt+Delでデスクトップが切り替わる。デバイスロストする。
Ctrl+Shift+Escでタスクマネージャが起動するのは少なくともNT4の頃にはあった。
Vista以降のUACでデバイスロストするのはデスクトップが切り替わるため。
これはグループポリシーで変更可。
間違ってたら訂正にょろ。
0143デフォルトの名無しさん
2010/12/27(月) 15:50:59ディフューズ r1.0 g1.0 b1.0
アンビエント r0.0 g0.0 b0.0
で合ってます?
0144デフォルトの名無しさん
2010/12/27(月) 16:07:270145デフォルトの名無しさん
2010/12/27(月) 16:33:10デバイス->SetTexture();
だとテクスチャが貼られますが、
エフェクト->SetTexture();
だと上手く貼られません。
デバイス->SetTexture();は固定機能パイプラインではないのですか?
0146デフォルトの名無しさん
2010/12/27(月) 16:41:190147デフォルトの名無しさん
2010/12/27(月) 16:43:38エフェクトと言ってるんだから ID3DXEffect を使ってるんだと思うんだけど、
あれはIDirect3DPixelShader9やIDirect3DVertexShader9 のラッパーなわけで、
それを念頭においた上で ID3DXEffect 自体の作法に従わないといけないよ。
詳しくはサンプルソースを読め、だけど、
例えばBegin、BeginPass、EndPass、Endはちゃんと呼んでる?
0148145
2010/12/27(月) 17:05:51.fx内でテクスチャの色を変えたりすると描画も変わるので、テクスチャはエフェクトファイル内を通っていると思います。
あと、これからもDx9をサポートするGPUは固定機能も使えますか?
0149デフォルトの名無しさん
2010/12/27(月) 17:20:010150デフォルトの名無しさん
2010/12/27(月) 17:27:070151デフォルトの名無しさん
2010/12/27(月) 17:27:21うーん。ID3DXMeshは使ったこと無いからその辺はわからんな。
他のやつよろしく。
正常時、異常時それぞれでPIXで描画シーケンスの
ログを取って比較してみたら何かわかるんじゃない?
RADEON HD2600系以降でDirectDrawがソフトウェア実装になったように、
古い機能がエミュレーション化される可能性は常にあるよ。
ま、どうせ描画機能は複数パターン作って適宜切り替える実装になるので
必要になったものを順に実装していけばいいよ。
0152デフォルトの名無しさん
2010/12/27(月) 17:29:30他のやつよろしく。
正常時、異常時それぞれでPIXで描画シーケンスの
ログを取って比較してみたら何かわかるんじゃない?
RADEON HD2600系以降でDirectDrawがソフトウェア実装になったように、
古い機能がエミュレーション化される可能性は常にあるよ。
ま、どうせ描画機能は複数パターン作って適宜切り替える実装になるので
必要になったものを順に実装していけばいいよ。
0153デフォルトの名無しさん
2010/12/27(月) 17:55:28なんで2回いうんですか?
0154デフォルトの名無しさん
2010/12/27(月) 19:19:250155デフォルトの名無しさん
2010/12/27(月) 21:12:52MSDNを見てもいまいち引数の内容が分かりません、第1引数から軽くでいいので教えて頂けないでしょうか
0156デフォルトの名無しさん
2010/12/27(月) 21:21:39そもそも理解出来てるのか
0157デフォルトの名無しさん
2010/12/27(月) 21:24:29http://msdn.microsoft.com/ja-jp/library/ee417228(VS.85).aspx
0158デフォルトの名無しさん
2010/12/27(月) 21:25:24そのまんまだね
0159デフォルトの名無しさん
2010/12/27(月) 21:30:50こいつはメッシュのローカル座標軸で指定
0160デフォルトの名無しさん
2010/12/27(月) 21:36:02>「3Dモデルのメッシュ」と「平面の板のメッシュ」の当たり判定
って質問からして、そもそも意味自体丸ごと理解出来ていないと思われ
0161デフォルトの名無しさん
2010/12/28(火) 10:22:250162デフォルトの名無しさん
2010/12/28(火) 10:30:253D空間に半透明物体を配置したいのですが、正しく描画するためにはソートが必要だと思います。
このソートを行うには、どういう方法が一般的なのでしょうか。
GPUに頂点データを送り、射影変換などの変換をし、半透明物体だけその結果を一端CPUに戻し、ソートして、またGPUに送る、ということをしないと駄目なのでしょうか。
0163デフォルトの名無しさん
2010/12/28(火) 10:56:55カメラと物体の距離を計算して遠い方から描画するだけだ。
0164デフォルトの名無しさん
2010/12/28(火) 11:21:14出来るのなら好きにしろ
0165デフォルトの名無しさん
2010/12/28(火) 13:25:41>GPUに頂点データを送り、射影変換などの変換をし、半透明物体だけその結果を一端CPUに戻し
これはあまり現実的じゃないなぁ
GPUの計算結果をCPUに戻すには一旦定数レジスタに放り込まねばならず
そしてそのサイズは余り大きくはないのでモデルの規模にもよるけど、まず無理
半透明のオブジェクトのみCPUで座標変換してソートしてから描画するしかないと思われ
0166デフォルトの名無しさん
2010/12/28(火) 15:54:25その方向で実装してみます。
ありがとうございました。
0167デフォルトの名無しさん
2010/12/28(火) 18:20:57自己影の角が取れん・・・
0168デフォルトの名無しさん
2010/12/28(火) 18:32:21低い精度でもなんとか見られるように+α工夫する方向で考えた方がいいぞ
0169デフォルトの名無しさん
2010/12/28(火) 18:47:510170デフォルトの名無しさん
2010/12/28(火) 19:21:020171デフォルトの名無しさん
2010/12/28(火) 19:27:320172デフォルトの名無しさん
2010/12/28(火) 19:29:430173デフォルトの名無しさん
2010/12/28(火) 19:32:31d3dってなんやねん!
0174デフォルトの名無しさん
2010/12/28(火) 20:20:31Direct3D
017567
2010/12/28(火) 21:28:44>>131
丁寧に説明ありがとうございます。
テストプログラムではうまくいきました。
実際に組み込む時でちょっとうまくいってませんが、これは自分の勉強不足なので
解決できると思います。
0176デフォルトの名無しさん
2010/12/29(水) 15:30:10入ってくるのは頂点シェーダーから出てきたポジション?
0177デフォルトの名無しさん
2010/12/29(水) 15:33:000178デフォルトの名無しさん
2010/12/29(水) 15:43:440179デフォルトの名無しさん
2010/12/29(水) 16:08:33TEXCOORD
0180デフォルトの名無しさん
2010/12/29(水) 16:13:220181デフォルトの名無しさん
2010/12/29(水) 19:51:530182デフォルトの名無しさん
2010/12/29(水) 22:40:38俺もあれやってみたが、劇的な変化はないよな
結局シャドウマップのサイズが足りないなら結局焼け石に水ってことか
0183デフォルトの名無しさん
2010/12/30(木) 04:31:24float Light_vol = clamp( distance(ライトのポジション, 頂点のポジション), 0.0f, 1.0f );
Col = dot( 法線, normalize( ライトのポジション.xyz - 頂点のポジション.xyz ) * Col * ライトの色 * Light_vol;
これで光の当たる場所がうまくいきません。どこが問題でしょうか。
0184デフォルトの名無しさん
2010/12/30(木) 04:44:17法線もワールド行列変換するか
ライトを予めワールドの逆行列を掛けてローカル空間座標に変換しておく
0185デフォルトの名無しさん
2010/12/30(木) 04:53:030186デフォルトの名無しさん
2010/12/30(木) 05:26:56なんで情報の出し惜しみをするんだろう?
頂点シェーダ部分全部書けよ
一般的なポイントライトだと
float3 vL = ライトのポジション.xyz - 頂点のポジション.xyz;// 光源ベクトル
float lenL = length(vL);// 光源ベクトルの長さ(光源への距離)
// 光の強さ(距離の二乗で減衰させて適当な係数を掛けて調節)
float Light_vol = 100 * dot( 法線, normalize(vL) / (lenL*lenL) ;
Col = Col * ライトの色 * max(0, Light_vol);
0187デフォルトの名無しさん
2010/12/31(金) 01:55:490188デフォルトの名無しさん
2010/12/31(金) 04:02:09>>186ヒントさんくす!!
0189デフォルトの名無しさん
2010/12/31(金) 08:26:48クォータニオンなんか使わないで傾斜にそった姿勢行列(傾斜行列)に対して
ワールド→ローカル(傾斜行列)→ローカル(傾斜行列)で垂直に回転→ワールド
でベクトル取得すればいいんじゃね?
後はクォたんでかけるもかけないも好きにしろと思う
0190デフォルトの名無しさん
2010/12/31(金) 16:20:07メッシュがカメラから外れる場合は描画ループに入れずに飛ばしてもパワー節約にはなりませんか?
たとえば、マトリックスとかライティング計算とかが省かれて軽くなるとか。
0191デフォルトの名無しさん
2010/12/31(金) 16:26:480192デフォルトの名無しさん
2010/12/31(金) 16:33:000193デフォルトの名無しさん
2010/12/31(金) 17:05:12描画する描画しない閾値付近で
オブジェクトがパッと消えたり現れたり
或いはLODレベルが切り替わってしまうのをどうにかしようっていうことの方問題になりやすいんだが
0194デフォルトの名無しさん
2010/12/31(金) 18:10:56大きすぎるテクスチャだと古いGPUでは対応していないということはありますか?
1024^2でやろうと思っていますが、5年くらい前のPCだともっとサイズを小さくしたほうがいいですか?
0195デフォルトの名無しさん
2010/12/31(金) 18:21:01テクスチャの最大サイズはデバイスのCapsから取得できるので
想定値より小さかったらそれに合わせるとかにしとけば良いんじゃ
0196デフォルトの名無しさん
2011/01/01(土) 04:17:120197デフォルトの名無しさん
2011/01/01(土) 04:32:38もうちょっとゆとり成分を抜いてくれ
0198デフォルトの名無しさん
2011/01/01(土) 08:33:130199デフォルトの名無しさん
2011/01/01(土) 11:34:230200デフォルトの名無しさん
2011/01/01(土) 11:36:090201デフォルトの名無しさん
2011/01/01(土) 11:36:09毎フレーム、テクスチャはどうやって用意したらよいでしょうか?
0202デフォルトの名無しさん
2011/01/01(土) 11:37:57これか
D3DXMatrixOrthoLH
0203デフォルトの名無しさん
2011/01/01(土) 12:22:030204デフォルトの名無しさん
2011/01/01(土) 14:46:29なるほど
だったら
D3DXMATRIX mat = camMat;(ビュー行列ではない)
mat._41 = pos.x;mat._42 = pos.y;mat._43 = pos.z;
的なコードだな
0205デフォルトの名無しさん
2011/01/01(土) 16:38:16ゆとりを生み出すのは、お前らの優しさのせい
このイケメンどもめ。 そして謹賀新年、明けましておめでとうございます
0206196
2011/01/01(土) 19:22:44これです。クライアント領域の0,0から画面いっぱいに合わせて貼りたいです。
0207196
2011/01/01(土) 19:24:46これにも流用できるようにビルボードにしました。
カメラからの最低描画距離とかいろいろ考えるうちにちんぷんかんぷんになってしまいました。
0208デフォルトの名無しさん
2011/01/01(土) 20:01:28なにそれ?
スクリーン座標での描画方法が知りたいわけじゃなくて
ワールドにおいたもんをどうやって画面ぴったりに描画するかってところで悩んでるってこと?
0209デフォルトの名無しさん
2011/01/01(土) 20:16:320210デフォルトの名無しさん
2011/01/01(土) 20:37:220211デフォルトの名無しさん
2011/01/01(土) 20:45:550212デフォルトの名無しさん
2011/01/01(土) 21:41:400213デフォルトの名無しさん
2011/01/01(土) 22:13:09いいんじゃないですかね
0214デフォルトの名無しさん
2011/01/01(土) 22:18:33いざ質問しようとすると自分の中で問題が整理できてないように思ったので、もう少し考えてから質問します。よろしくお願いします
0215デフォルトの名無しさん
2011/01/01(土) 23:23:583Dソフトでいう「ベンド」とか「パスに沿って変形」を作りたいと思ったので(なので頂点シェーダに関する質問です)
イマギレさんのt-potにある頂点ブレンドを参考に、ブレンドウェイトを使えばできるのかな、と思いまして
(0,0,0)を一番底にしてモデルを作りweighttemp=normlize(pos(ポジション).xyz)のz座標の値をもとにweight[0]=weighttemp.z、weight[1]=1-weighttemp.zという風に設定し
float4 pos0=mul(pos,rotatexyz(回転行列)); を作りpos=weight[0]*pos0+weight[1]*posという風に行なったのですが期待通りの変形が行われているように思えません。
この場合weight[0]*pos0というのはpos0にweight[0]の値だけ近似させるということを行っていると思っていいんですよね?
0216デフォルトの名無しさん
2011/01/01(土) 23:28:260217デフォルトの名無しさん
2011/01/01(土) 23:30:550218デフォルトの名無しさん
2011/01/01(土) 23:51:47別のプログラムでは成功してるし、ユーティリティにあるコンパイラでも
正常にバイナリが出力されているのでエフェクトファイルのプログラムに問題はありません
ファイル名が間違っているということもありません
リソースに組み込んでD3DXCreateEffectFromResourceを呼べば成功しますが
外部から変更したいので、ファイルから読み込む方法を取りたいです
失敗する原因は何が考えられるでしょうか
0219デフォルトの名無しさん
2011/01/01(土) 23:54:01いきなりそんなギミック動かしても動いてるのかよくわかんねーじゃん
pos=0.5*pos0 + 0.5*pos;
pos=1.0*pos0 + 0.0*pos;
pos=0.0*pos0 + 1.0*pos;
こんなん動かしてみてそれっぽいかどうか確認したらどーなん?
0220デフォルトの名無しさん
2011/01/02(日) 00:00:59なんかよくわからんけどピクセルシェーダのバージョンを2.0ぐれーにしてみたら治んない?
0221デフォルトの名無しさん
2011/01/02(日) 00:09:13治りませんでした
しかもプロジェクトのフォルダをコピーして、そっちで再びビルドすると
エラーの中身がE_FAILになった
どういうことだ?
0222デフォルトの名無しさん
2011/01/02(日) 00:35:02google「D3DXCreateEffectFromFile E_FAIL」
これでググると一発目に外人が似たような質問してる
それの返しレスでこのコードでチェックしろ的レスがあるからやってみたら?
0223デフォルトの名無しさん
2011/01/02(日) 01:00:29ありがとうございます
解決しました
0224デフォルトの名無しさん
2011/01/02(日) 12:33:24甘えた質問かどうかって言うより、
>3Dソフトでいう「ベンド」とか「パスに沿って変形」
が、実際どういう計算で行われているのかを先に理解するといいかも
どう 「設定すれば」 、と言うより、どう 「計算したら」 、って話だから。確実に。
とりあえずスプラインとかn個の頂点を通る曲線とかあるいはベジエとか、その辺をおいかけてみろ
HLSLじゃなくて数学
0225デフォルトの名無しさん
2011/01/02(日) 17:00:54ありがとうございます!
円柱を移動させてを擬似ポリラインを描くことは出来るのですが、その式を使うと上手く言い表しづらいのですが頂点を回転させてるのではなくずらして表示させてるため複雑なモデルを使うとモデルの向きが変わらず表示が不適切になってしまうのです
もう少し自分で調べてみようと思います
わからないところが出てきたらまた質問させてもらおうと思いますので、よろしくお願いします。
0226デフォルトの名無しさん
2011/01/03(月) 21:55:590227デフォルトの名無しさん
2011/01/03(月) 23:27:460228デフォルトの名無しさん
2011/01/04(火) 02:02:042出力のカード3枚刺しです。アダプタの数だけ(この場合6つ)デバイスを作って
出力することは出来たのですが、3つの「マルチヘッド」デバイスを作って全て
表示することはできるのでしょうか?
「DirectX初心者質問スレ Part25」などにマルチデバイスでのヒントなどは
発見出来たのですが、マルチなマルチヘッドデバイスのヒントがいろいろ探したの
ですが発見できませんでした。
どなたか、詳しい方おられませんでしょうか?
0229デフォルトの名無しさん
2011/01/04(火) 02:15:430230デフォルトの名無しさん
2011/01/04(火) 02:26:43http://msdn.microsoft.com/ja-jp/library/ee422058(VS.85).aspx
D3D10(DXGI)なら確実に対応してるみたいだがのゥ
0231デフォルトの名無しさん
2011/01/04(火) 02:33:37すみません説明が足りませんでした。
各グラフィックカードに渡されるムービーは同じとは限らないのです。複数のムービーを
テクスチャとしてDirectShowでポリゴンに取り込み、違った映像を狙ったモニタに出力
したいのです。
ただ、同じグラフィックカード上のアダプタ間ではテクスチャを共有させたいのです。UV値
を変えてずらしたりはします。
それでマルチヘッドデバイスが動画の同期をとったりするのに都合が良さそうだ
ということでこの方法を試したいのでした。
0232デフォルトの名無しさん
2011/01/04(火) 02:41:58ありがとうございます。このヘルプは以前読みました。このヘルプとマルチデバイスに
関するヘルプ等も読んで、組んでみているのですが、なかなかうまくいきません。シングルの
マルチヘッドデバイスで2画面なら既に出来ているんですが、複数のマルチヘッドデバイスで
「同時に」6画面出すのに苦労しています。
D3D10では出来ているんですね。なるほど。わけあって9を使っていますが、10も
考えてみる必要があるのかなぁ。幸い9と10は一つのコードから同時に使えるらしいですし。
0233デフォルトの名無しさん
2011/01/04(火) 02:45:330234228
2011/01/04(火) 11:27:42http://msdn.microsoft.com/ja-jp/library/ee422553(VS.85).aspx
複数のデバイスをフルスクリーンモードで同時に使うには、アダプターごとにデバイスを
作った上、それらがフォーカスウインドウを共有しなければならんとあります。
実際それで、マルチな独立デバイス的コードを書いて動画出力出来ました。(ヘッド間
で全然同期出来ませんけど...orz)
でも、そうなると、この辺の記述
http://msdn.microsoft.com/ja-jp/library/cc323931.aspx
にある、hDeviceWindowの説明とかみ合わなくてよくわかりません。実際
シングルのマルチヘッドデバイスで2画面のフルスクリーンモードを実現する
コードでは、主アダプタと従属アダプタにそれぞれ違うウィンドウをクリエイト
しないとうまくいきませんでした。
このあたりの不整合性が「マルチなマルチデバイス」がうまくいかない原因なのかな?
どなたかうまくいく方法ご存じないでしょうか。
DirectX9じゃそれは不可能だよ、という合理的な説明でもありがたいです。
0235デフォルトの名無しさん
2011/01/04(火) 14:52:20やり方はほとんどヘルプに書いてあるので、大雑把に手順を説明すると
ヘッドの数だけウインドウを作成する
D3DPRESENT_PARAMETERSの配列を作り、hDeviceWindowにそれぞれのウインドウをセット
CreateDeviceにD3DCREATE_ADAPTERGROUP_DEVICEのフラグを指定してデバイスを作成する
GetBackBuffer->SetRenderTarget->描画 をヘッドの数だけ行う
Present
3つ以上のヘッドがある場合に、2つだけ使うとかはできないと思う。
ヘッドの割り当ては、D3DCAPS9のMasterAdapterOrdinal、AdapterOrdinalInGroupで確認。
ヘッドごとに解像度が違う場合は、EnableAutoDepthStencilが使えない。
0236228
2011/01/04(火) 18:01:12ありがとうございます。そのやりかたで、マルチヘッドデバイスを一つ作って
複数のモニタに出力することは既にできています。
問題は、例えば2出力あるボードが2枚あるとして、2つのマルチヘッドデバイスで
2x2の計4つに出力する方法です。
ようは、「マルチヘッド」デバイスを「複数」作って(その意味ではマルチデバイス)
そのすべてにフルスクリーン表示する方法です。
DirectX8までは複数のアダプタにフルスクリーン出力するにはそれぞれ個別の
デバイスを当てる方法が主流でした。DirectX9から「マルチヘッド」デバイスに
よって一つで同じボード上の複数のアダプタに出力しやすくなりました。
私が知りたいのはそれらを合わせたような、マルチxマルチヘッドデバイスの
実現が可能かどうか、ということです。
ひきつづきよろしくお願いします。
0237デフォルトの名無しさん
2011/01/05(水) 14:00:250238デフォルトの名無しさん
2011/01/05(水) 15:23:20OpenGLみたいなの
0239デフォルトの名無しさん
2011/01/05(水) 15:29:58ビデオカード専用のAPIを使ったり、OpenGLを利用したり、
CPUで計算して勝手に各自でそれっぽく作ってただけだよ。
0240デフォルトの名無しさん
2011/01/05(水) 16:59:580241デフォルトの名無しさん
2011/01/05(水) 17:39:440242デフォルトの名無しさん
2011/01/05(水) 18:01:15WinGは無関係。
0243デフォルトの名無しさん
2011/01/05(水) 18:18:03どもでした
0244デフォルトの名無しさん
2011/01/05(水) 20:13:01何歳なんだよ
0245デフォルトの名無しさん
2011/01/05(水) 21:25:52GPUGEMSなら研究室にあるんですが
0246デフォルトの名無しさん
2011/01/05(水) 21:45:22モーフィングでもやりたいのか? それともスキニングか。
0247デフォルトの名無しさん
2011/01/05(水) 21:48:450248デフォルトの名無しさん
2011/01/05(水) 22:22:34ゲームエフェクトマニアックスは持ってます
0249デフォルトの名無しさん
2011/01/05(水) 22:29:37とにかくチュートリアルを見ながら少し付くこつこつ作れ。
0250デフォルトの名無しさん
2011/01/05(水) 22:33:500251デフォルトの名無しさん
2011/01/05(水) 22:38:02自分で探してみます
0252デフォルトの名無しさん
2011/01/06(木) 00:01:56実行バッファじゃね?
0253デフォルトの名無しさん
2011/01/06(木) 00:07:25とりあえず数学やれ。マジで
周期関数で頂点動かせ。話はそれから
0254デフォルトの名無しさん
2011/01/06(木) 00:15:03もう300冊以上あってオススメなんてわかんね
時代もズレてるし
色んな本読んだほうがいいな
いいと思った本片っ端から買えよ
0255デフォルトの名無しさん
2011/01/06(木) 00:29:21マルチヘッドを複数ってことだったか。
それは、さすがに検証できる環境がないな。
マルチデバイスとシングルデバイスマルチヘッドのどっちもできてるなら、
その発展でできるんじゃない?
わざわざアダプタグループの定義があるくらいだから、仕様としては
問題ないと思う。
0256デフォルトの名無しさん
2011/01/06(木) 01:06:52あんまり覗く価値ないですねここ。二度ときません
0257デフォルトの名無しさん
2011/01/06(木) 01:16:540258デフォルトの名無しさん
2011/01/06(木) 01:21:380259デフォルトの名無しさん
2011/01/06(木) 03:49:410260デフォルトの名無しさん
2011/01/06(木) 05:01:11GetDeviceCaps
単純にステージ数ならMaxTextureBlendStages
使用できるテクスチャ枚数はMaxSimultaneousTextures
ステージ数が8ない機種なんて、RivaTNT以前とかの話になるから
基本的に8あると思っていい。
テクスチャ枚数はGeForce4くらいまでは2枚、それ以降は8枚使える。
0261デフォルトの名無しさん
2011/01/06(木) 08:44:40でも自分がどこまでできるか言わなかったよね
なのに他の人には「わかれよ!」っていうんだよね
いままでは回りの人は君のいうこと全部いいように汲んでくれたと思うけど
これからはそういうの少ないから気をつけてね
0262デフォルトの名無しさん
2011/01/06(木) 09:15:59>>244
女性に歳を聞くもんじゃないよ?
0263デフォルトの名無しさん
2011/01/06(木) 10:51:080264デフォルトの名無しさん
2011/01/06(木) 11:09:58こんな掲示板でしか説教できないんだね
かわいそうだね
0265228
2011/01/06(木) 13:46:55>わざわざアダプタグループの定義があるくらいだから、仕様としては
>問題ないと思う。
そうなんです。自分もまさにそう思って始めたんですが、なかなか
うまくいきません。理由を探っているうちに234で書いたような考え
すなわち、
複数デバイスで同時フルスクリーンの場合と、マルチヘッドデバイス
を作るときの場合とで、ウインドウの当て方に矛盾があるように
思えてきたわけです。
で、誰か出来るか出来ないかだけでもご存じないかと・・・・・
0266デフォルトの名無しさん
2011/01/06(木) 17:07:25サンプルソースがDiectX8なんです。PCに入っているのはDX9で、何処かにDirectX9
に移植したサンプルソースは有りませんでしょうか?
0267デフォルトの名無しさん
2011/01/06(木) 17:10:430268デフォルトの名無しさん
2011/01/06(木) 17:15:17感じました、DX8とDX9の違いも分からず。困難であると実感したので、ここで聞いています。
0269デフォルトの名無しさん
2011/01/06(木) 17:17:51いったんDX8を学ぶという手もある
0270デフォルトの名無しさん
2011/01/06(木) 17:19:43234のリンク先を見ても、べつに矛盾はしてないと思うけど。
まとめると、
1. フォーカスウインドウは全てのデバイスで共有する。(同じウインドウを指定する)
2. デバイスウインドウはアダプタ(ヘッド)ごとに異なっていないと駄目。
3. 必ず1つのデバイスがフォーカスウインドウをデバイスウインドウとして使用しなければいけない。
0271デフォルトの名無しさん
2011/01/06(木) 17:21:24DX9SDXを入れてもDX8SDKは入ってません><
0272デフォルトの名無しさん
2011/01/06(木) 17:28:420273デフォルトの名無しさん
2011/01/06(木) 17:33:570274228
2011/01/06(木) 17:47:06なるほど。明解な説明ありがとうございます。
もうちょっといじってみて、後ほど結果など報告します。
0275デフォルトの名無しさん
2011/01/06(木) 17:49:31のサンプルソースは↓のURLの関連ファイルからダウンロードです。
http://www.oreilly.co.jp/books/9784873113777/
本に載ってるライセンスは、ソースの大半を製品やCDへ乗せる場合は連絡が
必要ですがその他は、自由です。
このなかのviewerとcommonをまとめてコンパイルしています。VC++2008EE使用。
どなたか出来ませんでしょうか?
エラーを出すソースは全ソースファイルの一部です。
0276デフォルトの名無しさん
2011/01/06(木) 17:58:190277デフォルトの名無しさん
2011/01/06(木) 21:48:03何上げれば良いのか分からなかったのでviewer.exeだけ。
環境はVC++2008EEとDirectX SDKのAugust 2007
0278デフォルトの名無しさん
2011/01/06(木) 22:08:51よろしければ、修正したソースを上げて貰えると嬉しいです。
ライセンス的には問題ないです、お願いいたします。
0280デフォルトの名無しさん
2011/01/06(木) 22:24:57コンパイルエラーなんて一つしか出なかったしログ見たらすぐ分かるしで
わざわざファイル上げるまでもないような?
d3dx8.libはなくてもd3d8.libがあればとりあえずおkらしい
0281デフォルトの名無しさん
2011/01/06(木) 22:25:24圧縮しても377Mあるんだが・・・
0282266
2011/01/06(木) 22:26:560284デフォルトの名無しさん
2011/01/06(木) 22:34:360285デフォルトの名無しさん
2011/01/06(木) 22:42:16マイクロソフトは馬鹿だなw
テメェでバージョンつけたくせに配布止めちまうからなw
古いバージョンの本をゴミにすることで経済効果でも狙ってんのかねぇ・・・(笑)
ちーん!
0286281
2011/01/06(木) 22:45:58>エラーを出すソース
これのエラーは何と出てるんだ?
0287266
2011/01/06(木) 22:46:33これそれほど古くないでしょ>< (泣き泣き
0288デフォルトの名無しさん
2011/01/06(木) 22:53:02一体なんのためのバージョンなのかわからないな
0289266
2011/01/06(木) 22:53:14c:\dunn_example_code\common\renderer.cpp(446) : error C2660: 'IDirect3D9::EnumAdapterModes' : 関数に 3 個の引数を指定できません。
c:\dunn_example_code\common\renderer.cpp(606) : error C2660: 'IDirect3D9::EnumAdapterModes' : 関数に 3 個の引数を指定できません。
c:\dunn_example_code\common\renderer.cpp(700) : error C2065: 'D3DPRESENT_RATE_UNLIMITED' : 定義されていない識別子です。
c:\dunn_example_code\common\renderer.cpp(705) : error C2039: 'FullScreen_PresentationInterval' : '_D3DPRESENT_PARAMETERS_' のメンバではありません。
c:\program files\microsoft directx sdk (march 2009)\include\d3d9types.h(1493) : '_D3DPRESENT_PARAMETERS_' の宣言を確認してください。
c:\dunn_example_code\common\renderer.cpp(770) : error C2065: 'D3DTSS_ADDRESSU' : 定義されていない識別子です。
c:\dunn_example_code\common\renderer.cpp(1065) : error C2065: 'D3DVIEWPORT8' : 定義されていない識別子です。
c:\dunn_example_code\common\renderer.cpp(1065) : error C2146: 構文エラー : ';' が、識別子 'viewData' の前に必要です。
c:\dunn_example_code\common\renderer.cpp(1065) : error C2065: 'viewData' : 定義されていない識別子です。
c:\dunn_example_code\common\renderer.cpp(1837) : error C2065: 'D3DTSS_ADDRESSV' : 定義されていない識別子です。
c:\dunn_example_code\common\renderer.cpp(1954) : error C2664: 'IDirect3DDevice9::SetVertexShader' : 1 番目の引数を 'int' から 'IDirect3DVertexShader9 *' に変換できません。(新しい機能 ; ヘルプを参照)
例としてこんな物が 、もっと出ています。
0290266
2011/01/06(木) 23:03:390291266
2011/01/06(木) 23:05:030292デフォルトの名無しさん
2011/01/06(木) 23:05:120293デフォルトの名無しさん
2011/01/06(木) 23:14:22ページサンプルみた感じそこまでSDKに依存してる内容でもなさそうだから
入門書2〜3冊こなせばバージョンちがくても読めるようになるっしょ
とりあえず別のやっとけばぁ?w
こことかいいんじゃね?
俺もよくお世話になってる
http://marupeke296.com/index.html
0294266
2011/01/06(木) 23:17:54そこを見てやっていたのですが、今ひとつマトリックス演算が理解できず。
そこの紹介で、実例で学ぶゲーム3D数学を参考にして理解しましたと、有ったので。
買ったんですよ。
0295デフォルトの名無しさん
2011/01/06(木) 23:19:22それともDXじゃないといけない理由があるとか?
0296デフォルトの名無しさん
2011/01/06(木) 23:20:51ttp://www.microsoft.com/downloads/en/details.aspx?FamilyId=B7BC31FA-2DF1-44FD-95A4-C2555446AED4&displaylang=en
これを落すヨロシ
お望みのd3d8.hが入ってる
0297266
2011/01/07(金) 00:00:12できました、本当にありがとうございます。
しかし、このSDK何処かに保存して、最新のSDK入れて区別しないとですね。
いま2004上書きしちゃいました。
でも、できるようになったので嬉しいです。ありがとうございます。
0298デフォルトの名無しさん
2011/01/07(金) 02:14:208のサンプルコードと変更点まとめてあるとこ見ながらやってるけどほとんど問題ないよ
せいぜい引数が1個増えたり減ったりしてる程度
0299デフォルトの名無しさん
2011/01/07(金) 06:01:180300デフォルトの名無しさん
2011/01/07(金) 07:30:31HLSLなくね?
描画部分がほぼ組みなおしになった気が・・・
0301デフォルトの名無しさん
2011/01/07(金) 19:53:10GetCursorPos(&point);
ScreenToClient(hwnd, &point);
Drawtest(point.x, point.y);
break;
で呼んで
void Drawtest(int x, int y)
{
char str[] = "Hello World";
// 描画開始
g_lpD3DDevice->BeginScene();
RECT rc;
rc.left = x;
rc.top = y;
rc.right = x+16*strlen(str);
rc.bottom = y+16;
// 描画処理
g_font->DrawText(NULL, str, -1, &rc, NULL, D3DCOLOR_XRGB(255,255,255));
// 描画終了
g_lpD3DDevice->EndScene();
// 表示
g_lpD3DDevice->Present( NULL, NULL, NULL, NULL );
}
Hallo Worldの文字がマウスにぴったりと追従してくれません
ウィンドウの左上から離れれば離れるほど、カーソルと文字がの間が離れて行ってしまいます。
どこがいけないのでしょう?
0302デフォルトの名無しさん
2011/01/07(金) 20:01:10たとえば、入力や衝突だけ毎回やってif文で奇数フレームだけ描画とかのほうがいいかな?
0303デフォルトの名無しさん
2011/01/07(金) 21:00:30たとえばMQOのフリー版で試験することは一応可能だが。APIはDXで。
あれで動かなそうだったら、もっとロジック突っ込むゲームでは無理じゃね?
0304デフォルトの名無しさん
2011/01/07(金) 21:46:14http://msdn.microsoft.com/ja-jp/library/bb173962(v=vs.85).aspx
第5引数のFormatを調整してみては?
0305デフォルトの名無しさん
2011/01/07(金) 22:14:251、基本形状を作る。
2、メニューからオブジェクトパネルをだしてオブジェクトのプロパティから、曲面分割する。
3、メニューから曲線をフリーズする。
4、気が済むまで2に戻る。
5、マウスの左ドラッグ。おもいかも〜。
ポリゴン数はオブジェクトのプロパティから確認できるので、簡単♪
ちなみに、C2DとRadeonHD5670でプロパティの数字で20万四角形位出すと10フレーム/秒位だ。体感で・・・。
0306デフォルトの名無しさん
2011/01/07(金) 23:40:29Radeon HD 4350
ただ表示するだけで10k/1frame @60FPSくらいらしいよ
これ基準に考えると良いかも
0307デフォルトの名無しさん
2011/01/08(土) 07:57:06俺の同人ゲーが1キャラ5〜600ポリで地形もそんなもんだから
随分たくさん画面に出せるな
0308デフォルトの名無しさん
2011/01/08(土) 08:55:33ぶっちゃけ頂点数だけじゃ評価できないよ
足引っ張りそうなのは描画回数とか
フィルレートとか半透明処理とか当時あんまり速くなかったピクセルシェーダとか
0309デフォルトの名無しさん
2011/01/08(土) 09:22:530310301
2011/01/08(土) 12:18:19左上に合わせたり、いろいろ試したのですが
直りませんでした
こんな感じです
http://www.dotup.org/uploda/www.dotup.org1347139.png
0311デフォルトの名無しさん
2011/01/08(土) 13:05:420312デフォルトの名無しさん
2011/01/08(土) 13:11:23クライアント領域が 624x442 くらいか
0313デフォルトの名無しさん
2011/01/08(土) 13:27:15623(横)*441(縦)
でした
0314デフォルトの名無しさん
2011/01/08(土) 13:37:20クライアント領域のサイズで割って補正しる
0315301
2011/01/08(土) 14:16:47> ScreenToClient(hwnd, &point);
で、クライアント領域になってるのでは?と思うので
Fontを描くときになんか間違ってるのではないかと思って
0316デフォルトの名無しさん
2011/01/08(土) 14:34:52クライアント領域のサイズが違うんじゃないか?
0317デフォルトの名無しさん
2011/01/08(土) 14:41:05うまくいきました!
答えてくれた人たち、ありがとうございます
0318デフォルトの名無しさん
2011/01/08(土) 15:48:35原因と対処方を書け。お前は解決してうれしいかもしれないが、他の人にとってはまったく無意味。
0319デフォルトの名無しさん
2011/01/08(土) 19:18:28>>316に書いてあるだろうが
0320デフォルトの名無しさん
2011/01/08(土) 19:20:170321デフォルトの名無しさん
2011/01/08(土) 21:40:23何が悪いんだよ
0322デフォルトの名無しさん
2011/01/09(日) 05:29:290323デフォルトの名無しさん
2011/01/09(日) 09:14:58どんな難解ニュースでも掲示板の書き込みを読んで簡単に理解。
ニュースを勢い順にカテゴリー別で表示する"2NN"(2ちゃんねるニュース速報+ナビゲーター)もどうぞ。
0324デフォルトの名無しさん
2011/01/09(日) 10:14:38アルファブレンドを使わずにフェードイン/フェードアウトしたいんですが
DirectDrawにそういうAPIがあるようなんですがこの場合に
ハードウェア支援は受けられるんでしょうか。
0326デフォルトの名無しさん
2011/01/09(日) 15:41:2624ビットとか32ビットとかで処理する必要があるということですかね
その場合にアルファブレンドを使わずにパレットアニメーションのような
フェードイン、フェードアウトをするにはどうすればいいですか
色違いの画像を予め用意する以外の方法でお願いします
例えば入力画素のRGB値が特定の値だったら別のRGB値に変換して
高速に描画をするようなことはできますか。OpenGLなどではどうでしょうか
0328デフォルトの名無しさん
2011/01/09(日) 17:15:430329デフォルトの名無しさん
2011/01/09(日) 17:26:16黒で線形合成か白で減算合成かじゃだめなのか
0330デフォルトの名無しさん
2011/01/09(日) 18:33:54フェイドにパレットアニメーションを使う意味が分からない
0331デフォルトの名無しさん
2011/01/09(日) 21:08:37何かいい方法ない?
元の.xから4倍になってる。
0332デフォルトの名無しさん
2011/01/09(日) 21:14:56具体的に何をどうしたのか書かないと答えられないだろ。
容量の増加にしても、四倍っつーと凄いように思えるが、
8KBが32KBになったのか、100MBが400MBになったのかで圧縮の可能性だって違うしな。
ただ増え方から言ってインデックスバッファで解決しそうな気もする
0333デフォルトの名無しさん
2011/01/09(日) 21:16:52まさかexeのサイズじゃないよね?
0334デフォルトの名無しさん
2011/01/09(日) 21:17:500335デフォルトの名無しさん
2011/01/09(日) 21:18:320336デフォルトの名無しさん
2011/01/09(日) 21:32:19読み込むバイトサイズで比較しないと
0337デフォルトの名無しさん
2011/01/09(日) 21:34:510338デフォルトの名無しさん
2011/01/09(日) 22:21:49ま、どっちにしても解決方法ないけどなw
0339デフォルトの名無しさん
2011/01/09(日) 22:23:210340デフォルトの名無しさん
2011/01/09(日) 22:31:590341デフォルトの名無しさん
2011/01/09(日) 22:50:000342デフォルトの名無しさん
2011/01/09(日) 22:51:41まずそれ用のツール作りからか
0343デフォルトの名無しさん
2011/01/09(日) 22:52:490344デフォルトの名無しさん
2011/01/09(日) 23:01:310345デフォルトの名無しさん
2011/01/10(月) 00:49:240346デフォルトの名無しさん
2011/01/10(月) 00:52:06100倍以上だ。
0347デフォルトの名無しさん
2011/01/10(月) 00:58:510348デフォルトの名無しさん
2011/01/10(月) 01:01:010349デフォルトの名無しさん
2011/01/10(月) 01:12:050350デフォルトの名無しさん
2011/01/10(月) 01:18:07実用上問題無くても気分が良くない。配布するときも小さいほうがいいだろうし。
0351デフォルトの名無しさん
2011/01/10(月) 01:24:35だから何が7.5Mになったんだよ?
0352デフォルトの名無しさん
2011/01/10(月) 01:29:26tiny.xをバイナリ形式にしてソースコード内に埋め込んだら大きくなった
0353デフォルトの名無しさん
2011/01/10(月) 01:32:170354デフォルトの名無しさん
2011/01/10(月) 01:39:280355デフォルトの名無しさん
2011/01/10(月) 01:42:521.46M→7.5M
埋め込まずにこうなるの?
0356デフォルトの名無しさん
2011/01/10(月) 01:43:250357デフォルトの名無しさん
2011/01/10(月) 01:46:400358デフォルトの名無しさん
2011/01/10(月) 01:48:340359デフォルトの名無しさん
2011/01/10(月) 01:55:02しかもバイナリをテキスト表記しようとするわけだからソースコードのサイズが増えるのは自明というかなんというか
0360デフォルトの名無しさん
2011/01/10(月) 01:57:22ヘッダ中のtiny.x自体はサイズが変わってるわけなくて、展開された「0x00」みたいな文字列が7.5メガなんだ
0361デフォルトの名無しさん
2011/01/10(月) 01:58:080362デフォルトの名無しさん
2011/01/10(月) 02:01:25「バイナリファイルを、ヘッダに埋め込んだ」 ってのは、
例えば元のファイルが
FF FF FF FF ← 4バイト
の、4バイトの時、これを16進表記の文字列にして
"FF FF FF FF" ← 例えばこんな表記で 12bytes
みたいな事を言ってるんじゃなかろうかと邪推。
てかバイナリって意味理解してないような気がする。
テキストだってバイナリだって
0363デフォルトの名無しさん
2011/01/10(月) 02:02:410364デフォルトの名無しさん
2011/01/10(月) 02:03:110365デフォルトの名無しさん
2011/01/10(月) 02:08:54ヘッダに埋め込むなんて言い方、まともなPGなら普通言わないよな
0366デフォルトの名無しさん
2011/01/10(月) 02:12:260367デフォルトの名無しさん
2011/01/10(月) 02:14:030368デフォルトの名無しさん
2011/01/10(月) 02:14:46Resourceに含めるんじゃダメなのか
てか普段どんなプログラム作ってるんだ
0369デフォルトの名無しさん
2011/01/10(月) 02:16:05リソースにしたって実行ファイルが肥大化するだけ
0370デフォルトの名無しさん
2011/01/10(月) 02:19:29丸っきり理解してない気がする。
0371デフォルトの名無しさん
2011/01/10(月) 02:23:520372デフォルトの名無しさん
2011/01/10(月) 02:25:51じゃあ入門書当たるか、win32APIとか基本的な流れの入門サイトいくか、
そういうスレ行った方がいい。 ここはあくまで DirectXっていう1ライブラリの為のスレだから
いやマジで。 間すっ飛ばして着てもトンチンカンな事にしかならないぜ
0373デフォルトの名無しさん
2011/01/10(月) 02:30:33exe が極端にでかいと、セキュリティソフトのチェックが長引いて起動に時間がかかることがある
UAC が絡むとやばいことになる
しかも XP で開発してると気づかないからめんどい
ってことらしいし普通にファイル読み込んだほうがいいよ
0374デフォルトの名無しさん
2011/01/10(月) 02:36:33データファイルを外出しにはよくしてるな。パックルーチンと、アンパックとあって、
パックは開発時用、アンパックは実行時用。実行時って行っても初期処理で開いてメモリに置いちゃう訳だが
ファミコン風のフェードイン/フェードアウトをやりたいんですよ…
8bitビットマップなら転送量も少なくて済むだろうし
0377228
2011/01/10(月) 15:31:00報告遅れました。今のところ失敗です。
同じコードでマルチヘッド(一枚の場合)とマルチデバイス(従属アダプタが
ない場合)の両方動くのですが、合わせた場合だとうまくいきません。残念。。。
ウインドウは、
一つのフォーカスウインドウを全てのグラフィックカードで共有。
一枚目のカードの主アダプタのデバイスウインドウでこのフォーカス
ウインドウを使用。その他のアダプタにはすべて違うデバイスウインドウを
作成。
0378デフォルトの名無しさん
2011/01/10(月) 16:07:10あるベクトルを正面として、90度上下左右方向のベクトルを求めたいのですが、どうすれば良いでしょうか?
D3DXMatrixRotationAxis で正面方向を軸に90°回そうとしたのですが、
正面で90度回しても上下左右を向く訳がないと気付き・・。そもそもその軸が求まれば解決なのですが; orz
0379デフォルトの名無しさん
2011/01/10(月) 16:21:14正面ベクトルと横方向のベクトルとの外積が本当の上方向ベクトル
0381デフォルトの名無しさん
2011/01/10(月) 17:09:07座標軸か何かを基準にすることになる。>>379のもそのやり方。汚い図だけどこんなん。
ttp://iup.2ch-library.com/i/i0220890-1294646376.jpg
DirectXというより数学の問題なので、分からなかったら基礎的な部分だけでいいのでちょっと調べたほうがいいかも。
0382デフォルトの名無しさん
2011/01/10(月) 17:47:480383デフォルトの名無しさん
2011/01/10(月) 17:50:070384デフォルトの名無しさん
2011/01/10(月) 17:51:42正面ベクトルを軸にくるくる回っちゃって無限に存在するから
>>379みたいに天井方向なり水平方向なりを1つ決めてやらないと求まらないでしょ
0385デフォルトの名無しさん
2011/01/10(月) 17:55:14じゃなきゃ趣旨がまるで解ってないアホだ
0386デフォルトの名無しさん
2011/01/10(月) 19:53:55アホだ
0387デフォルトの名無しさん
2011/01/10(月) 23:58:40モデルがカメラより前に有る、またはカメラに映るかを判定するにはどうすれば良いのでしょうか?
0388387
2011/01/11(火) 00:05:230389デフォルトの名無しさん
2011/01/11(火) 15:32:060390デフォルトの名無しさん
2011/01/11(火) 22:08:28今までマイコンでの C 程度の知識しか無く、いまいち分かりません
とりあえずすべての命令を d3d9.dll に丸投げするには、どのようなコードになるのでしょうか?
0391デフォルトの名無しさん
2011/01/11(火) 22:10:580392デフォルトの名無しさん
2011/01/11(火) 22:16:03何を持って釣りとするのかよく分かりませんが、もしかして Visual Sutdio 2010 C++ では不可能です?
0393デフォルトの名無しさん
2011/01/11(火) 22:20:35意味がわかりません
0394デフォルトの名無しさん
2011/01/11(火) 22:23:58マイコンの C 程度しか知識がなくていまいちわからない人が、
どうして C++ で d3d9.dll の、ラッパーの、DLLを、作ろうなんて思ったのか
何をする為のラッパなのか。目的が無いのに知らない言語で書こうとはしないだろ?
「全ての "命令" を丸投げするようなコード」 って奴がもしもあったとして、
それをどうやってスレなんかで説明出来るって言うのか。 またそんな曖昧な質問する奴が、仮にそれをどうしたいのか
その辺、例えばWindows上でMS謹製のIDE使ったからって、どうにかなるなんて普通思わないだろっての
0395デフォルトの名無しさん
2011/01/11(火) 22:25:16要するに、d3d9.dll と全く同じ挙動をする dll を作りたいと言うことです
でも、d3d9.dll と全く同じプログラムを組むのはとても無理です
そこで調べてみたところ、ラッパーやらフックやらの単語には当たったのですが、いまいちよく分からなくて
0396デフォルトの名無しさん
2011/01/11(火) 22:26:35d3d9.dllでいいじゃんw
0397デフォルトの名無しさん
2011/01/11(火) 22:26:37ウィンドウを丸投げして作ってくれるような便利機能はDXにはない。あえて言うならDXUTということになるが。
どっとnetではないDXの最低要件はC/C++&WINAPI&DX だからな。
0398デフォルトの名無しさん
2011/01/11(火) 22:28:53その道は正道ではないと思われる。
普通にインターフェイス取得して普通のアプリつくりなよ。
0399デフォルトの名無しさん
2011/01/11(火) 22:28:530400デフォルトの名無しさん
2011/01/11(火) 22:29:54まったく同じ挙動でいいならラッパ書かずにそのまま使えよ
そうでないなら必要な仕様起こして C++ で書けよ
C++ 自体わからないならこのスレ来る前に、言語の勉強しろよ
言語だけならわかるって話ならOSの挙動理解しろ
その中で、OSと同調して動くプログラムは直でBIOS叩かないでAPI関数を経由させるって事の意味を理解してコード書けよ
その後DLLってどんな物なのか理解しろ
その上で、やろうとしてる事をもう一度自分で自分に説明してみろ
おわり
0401デフォルトの名無しさん
2011/01/11(火) 22:31:28おっしゃるとおりなのですが、C の知識で触っていく内に分かることもあるかと思いまして
ただ、.Net 上で動く 2010 ではそもそも無理なのかなーとは思いました
具体的にやりたいことは、既存のゲームの画面に時計を表示させたりですね
>>396
とりあえず、です
そこへ独自の挙動を組み込んでいきたいというか
>>397
DXUT について調べてみますが、どのみち .Net framework 上で動くようなプログラムでは難しそうですか
0402デフォルトの名無しさん
2011/01/11(火) 22:37:05>今までマイコンでの C 程度の知識しか無く、いまいち分かりません
もしかして、8bitないし16bitの時代にBASIC、マシン語、C言語でプログラミングしてた時代の人か
もしもそうなら、今のOSの下で動くプログラムは全てブラックボックス(ベンダ提供の何らかのライブラリ、win32やDirectXなど)
を叩く格好で動かすのが正道だから、もしもそれを外れて・・・
例えば直接機械語でVRAMやGRAM叩いて動かすようなイメージ持ってるとしたら、ちょっと難しいとは思うよ。
そしてその場合全責任は自分で取る訳で、その手順の中でさらに DLLっていうOSが管理するリンク手段使おうって話なら
もっとややこしい事になると思うよ。 少なくとも Microsoft製品のエキスパートにならないと無理
0403デフォルトの名無しさん
2011/01/11(火) 22:37:340404デフォルトの名無しさん
2011/01/11(火) 22:38:051、任意の座標に塗りつぶした3角形をかけるようにする。
2、行列や、クオータニオンでアフィン変換する。
3、3角形を書くときにピクセル単位でシェーディングできるようにする。
すべての図形は3角形から作れるといわれている。
しかし、トップを行くにはPC業界が積み上げたスタックを習得しないといけないかも。
0405デフォルトの名無しさん
2011/01/11(火) 22:42:50単純に描画したいだけなら、G-RAMのどこかのアドレスにまず適当なbit数でデータ描けて、
あとはその処理で線分を描けるようにして、
三頂点で作られる面をスキャンラインのようにして塗りつぶすような処理があればおkじゃね
別にそれ自体は行列も四元数もいらない。アフィン変換もいらない・・・ アフィン変換的な処理はいるけど
0406デフォルトの名無しさん
2011/01/11(火) 22:44:09VC が駄目なら gcc でコンパイルとか、APIHijack と言う物で実現できるんじゃないかと今調べてましたが、自分の質問がスレの趣旨とずれているような気もしてきました
DirectX を利用した純粋なプログラムというわけではないので、やっぱりズレているかな
API や ライブラリ、フレームワークといったカーネルの上に乗っかってる諸々についてはある程度分かっているつもりでしたが、
そのライブラリひとつに引っかけるのにもいろいろ大変なんですね
うーん
0407デフォルトの名無しさん
2011/01/11(火) 22:48:27もしもお前が古代から来たおっさんでなく、まして機械語でG-RAMを直接叩いて、
DirectXの代用品のような物を自作したい、って話でも無いとしたら、
技術の伴わない、読んで得た知識だけの、目の前の物が理解できないから自分で全部やってしまおうと思った中二病
というか、VCとgccがどこが同じでどこが違うかの違いもわかってないとか、なんでやねんって話
0408デフォルトの名無しさん
2011/01/11(火) 22:51:41組み込みで触るのはBIOSとOSの間だと思うけど、ウインドウズのなかで普通のアプリ作ったらOSとDXの間あたりを使うことになる。
描画APIもDXのほかにGDIといレガシーのようで現役の2DAPIもある。
そもそも、郷に入らば郷に従えの言葉通り、ウインドウズの作法みたいなものもある。
で、>>406に必要なのは知識量だ。正道から入れば苦労しないところで苦労してるように見える。
0409デフォルトの名無しさん
2011/01/11(火) 22:53:100410デフォルトの名無しさん
2011/01/11(火) 22:54:44文面から中二病と判断するに至る経緯がいまいちよく分かりませんが、技術が伴わず、読んで得た知識だけというのはその通りです
当然結果には結びつかないので、こちらにお邪魔した次第です
いろいろ荒立ててしまい申し訳ありませんでした
ネット上に散らばった資源を有効活用し、もう少し考えようと思います
0411デフォルトの名無しさん
2011/01/11(火) 22:56:59ありがとうございます
やりたいことが既存のゲーム画面に介入するという物で、もちろん正道ではないですね
よく分かります
「その前に覚えることがあるだろ」
急がば回れですね orz
0412デフォルトの名無しさん
2011/01/11(火) 22:57:07とりあえず、聞きかじりで良いから、白紙のウインドウだしてみー。コードのこぴぺ禁止で。
おまじないばかりだけど、ウインドウズではよくある話。
0413デフォルトの名無しさん
2011/01/11(火) 22:58:37これを最初に言っていればどれだけレスがうまくついたやら。
今までの全部無駄になっちゃったよ・・・。
0414デフォルトの名無しさん
2011/01/11(火) 22:59:12お前はここに来るより前にもっと基本的な所からやり直せよ
じゃないと何も書けないよ。 とりあえず win32API を使って
C/C++ で普通にGUIアプリケーション書けるようになってから考えろ。 まずそれ。
カーネルがどうだとか、そんなのどうでもいいから、まずそれ。
0415デフォルトの名無しさん
2011/01/11(火) 22:59:12>>401で独自の挙動という話はあったけれど、DirectXの提供する機能は割と下位のものが多く、
極端な話printf()とかと同じような標準的な関数レベルで使っていくことになる。
普通のアプリケーションやゲームを作る上で、その挙動を置き換えたいという発想は(少なくとも、あんまり)出てこない。
出てくるとすれば「何をやるにも逐一面倒で、もっと簡単に〇〇をできるようにしたい」というような発想であって、
またそういうためのライブラリ(簡単に使えるようにしたもの)を普通ラッパーと言う。
決して「DirectXを置き換えたもの」じゃない。wrapper、「包み込んだもの」。
0416デフォルトの名無しさん
2011/01/11(火) 23:00:25JAVA であるライブラリを利用した RS-232C 通信プログラムなら作ったことがあります
これもマイコンとやりとりするのに必要でw
でも、そういう基礎から作り直すのも必要ですね
0417デフォルトの名無しさん
2011/01/11(火) 23:02:05ごめんなさい、>>401 の時点でやっと趣旨を書いてますね orz
0418デフォルトの名無しさん
2011/01/11(火) 23:05:54あとはGC言語しか触った事がなく、でもゲームが大好きで
既存のゲームをそのまま改造的な事をしたいとかそういう奴か。
>>416 に送る言葉は >>400 と >>414
0419デフォルトの名無しさん
2011/01/11(火) 23:07:30それをやるのに基本的にはDirectXをハックする必要はない。
また、それはWindowsのウィンドウ描画やイベント処理まわりに付随するので、その辺が分かっていないとどうしよもうない。
0420デフォルトの名無しさん
2011/01/11(火) 23:10:23お前らもずいぶんお人良しだな
0421デフォルトの名無しさん
2011/01/11(火) 23:20:25いろいろアドバイスをいただき、ありがとうございました
0422デフォルトの名無しさん
2011/01/11(火) 23:23:10やべぇマジかっけぇ
Microsoftに就職できるだろ
0423デフォルトの名無しさん
2011/01/11(火) 23:26:470424デフォルトの名無しさん
2011/01/11(火) 23:29:270425デフォルトの名無しさん
2011/01/11(火) 23:47:02単純にウィンドウをゲーム画面の上に置けば割り込まなくても描画できね?
アクティブなウィンドウの右端に〜って感じでデスクトップマスコットみたいなのでいけんじゃん
特定のウィンドウ名でしか起動したくないっていうならそうもできるし
0426デフォルトの名無しさん
2011/01/11(火) 23:49:45まあぶっちゃけ初心者質問スレに書きこむレベルじゃ次元が違いすぎて何していいかもわからないとは思うが
0427デフォルトの名無しさん
2011/01/12(水) 01:09:460428デフォルトの名無しさん
2011/01/12(水) 01:14:40正しい解答を是非どうぞ
0429デフォルトの名無しさん
2011/01/12(水) 01:19:08君が見てるゴッドビューと流れが違うんだよ。
最初の質問の仕方で大分変わる見本という感じだな。
0430デフォルトの名無しさん
2011/01/12(水) 01:21:190431デフォルトの名無しさん
2011/01/12(水) 01:22:37長すぎるんでポイントになる部分だけおいておく。
#define CINTERFACE
#include <d3d9.h>
DWORD OldProtect;
VirtualProtect(D3DDevice->lpVtbl, sizeof(IDirect3DDevice9Vtbl), PAGE_EXECUTE_READWRITE, &OldProtect);
D3DDevice->lpVtbl->EndScene = MyIDirect3DDevice9_EndScene;
VirtualProtect(D3DDevice->lpVtbl, sizeof(IDirect3DDevice9Vtbl), OldProtect, &OldProtect);
0432デフォルトの名無しさん
2011/01/12(水) 01:22:450433デフォルトの名無しさん
2011/01/12(水) 01:33:44そういう話なら VirtualProtectEx じゃないの?
0434デフォルトの名無しさん
2011/01/12(水) 01:36:48Exである必要はないよ
0435デフォルトの名無しさん
2011/01/12(水) 05:54:090436デフォルトの名無しさん
2011/01/12(水) 06:05:10ボールのポジションからボールの半径を引いたzの値が0以下になったら当たってる
0437デフォルトの名無しさん
2011/01/12(水) 06:14:57┃┃━┓┻━┓┣━┛┃
┃┣┓┣━┓┣┓┳━┫
┣┓┗┛━╋┓┻┓┏┫
┗━┻━┻━━┗━━┛
このようないろいろな向きがある壁に、当たったら球の座標を
壁に当たるギリギリのとこにしていく迷路のようなものを想定しています
0438デフォルトの名無しさん
2011/01/12(水) 06:39:520439デフォルトの名無しさん
2011/01/12(水) 08:17:030440デフォルトの名無しさん
2011/01/12(水) 09:21:17メッシュにレイ飛ばす関数使って、当たったポリゴン取得して
その法線と当たり位置取得して、球の中心と当たり位置の距離が球の半径より小さかったらHit
Hitしてたらあたり位置から法線方向へ球の半径分だけ置いた距離を球の位置に設定して補正完了
これ全部DirectXの関数でできるね
0441デフォルトの名無しさん
2011/01/12(水) 17:37:17地形(不透明)以外の、全モデルをソートして遠い順に描画しています。
その中に【両面描画する半透明モデル】が有るのですが、
z値の書き込み(D3DRS_ZENABLE)次第で下のようになります。
Off・・・×理想どおりに描画されない(一部ポリゴンが欠落) ○他モデルとの前後関係は正常。
On・・・○理想どおりに描画される。 ×他モデルとの前後関係は破綻。(z値が0.0になる?)
何か、両方の○を兼ね備えた良い方法はないでしょうか・・?
0442デフォルトの名無しさん
2011/01/12(水) 20:23:56いまいちヘルプを呼んでもわかりませんでした。
0443デフォルトの名無しさん
2011/01/12(水) 21:34:56引数になっているのは、せっかく作ってもったいないからお裾分けする為。
例えば何に使うかはwikiってください。
0444デフォルトの名無しさん
2011/01/13(木) 00:20:480445デフォルトの名無しさん
2011/01/13(木) 00:24:56されない
0446デフォルトの名無しさん
2011/01/13(木) 00:27:39マテリアル分割もしてくれないし、N角形ポリゴンも変換して描画してくれなかった希ガス
間違ってたらスマンコ
0447デフォルトの名無しさん
2011/01/13(木) 00:28:24四角1つのほうがポリ数節約になる?
0448デフォルトの名無しさん
2011/01/13(木) 00:29:36四角ポリゴンの描画規則が一つではないので、意図した通りにされるとは限らない。
(TriangleStrip、TriangleFanとかで調べてみるといい。頂点を並べる順番が違う)
0449デフォルトの名無しさん
2011/01/13(木) 00:29:540450デフォルトの名無しさん
2011/01/13(木) 00:31:29>>447
四角を四角として描画する機能はない。内部的には全て三角になる。
頂点数は節約されるけどポリ数は変わらない。んで、今の環境だと頂点数を節約するメリットもあんまりないかと思う。
0451デフォルトの名無しさん
2011/01/13(木) 00:32:580452デフォルトの名無しさん
2011/01/13(木) 00:35:46それともテキトーに描画してくれたっけ?
0453デフォルトの名無しさん
2011/01/13(木) 00:48:58昔からの癖で最初から三角で作ってしまうな…
0454デフォルトの名無しさん
2011/01/13(木) 00:51:49もういい加減治った?
0455デフォルトの名無しさん
2011/01/13(木) 00:56:03と思いきや法線をスムーズにすると結構変わる?
0456デフォルトの名無しさん
2011/01/13(木) 00:57:38メッシュのロードのメソッドの後にマテリアルの数を数えたような・・・?
0457デフォルトの名無しさん
2011/01/13(木) 00:57:56くだらねぇ
それで売上上がるの?
こだわるなよ給料泥棒(俺のいた会社の社長談)
0458デフォルトの名無しさん
2011/01/13(木) 01:02:22だいたいイメージはわかりました ありがとうございます
0459デフォルトの名無しさん
2011/01/13(木) 08:40:29多分プログラミングまったく関係無いただのエンドユーザ
0460デフォルトの名無しさん
2011/01/13(木) 17:36:32縮退三角形で変形済みの平面ポリゴンを表示しようとしてるのだけど、
何故か左回り(D3DCULL_CW)じゃないと表示されないという謎の状態。
色々省いてるけど、コードは次のレスのような感じで組んでる。
カリングの設定を、(D3DCULL_CCW)でポリが見えるようにしたいのだけど
何がダメなのかな。
0461460
2011/01/13(木) 17:38:15{0, 0, D3DDECLTYPE_FLOAT4, D3DDECLMETHOD_DEFAULT, D3DDECLUSAGE_POSITIONT, 0},
{0, 16, D3DDECLTYPE_FLOAT2, D3DDECLMETHOD_DEFAULT, D3DDECLUSAGE_TEXCOORD , 0},
D3DDECL_END() };
m_pVertexData[ iVertexIndex ].v4Pos.x = fX;
m_pVertexData[ iVertexIndex ].v4Pos.y = fY;
m_pVertexData[ iVertexIndex ].v4Pos.z = 0.0f;
m_pVertexData[ iVertexIndex ].v4Pos.w = 1.0f;
m_pVertexData[ iVertexIndex + 1 ].v4Pos.x = fX;
m_pVertexData[ iVertexIndex + 1 ].v4Pos.y = fY;
m_pVertexData[ iVertexIndex + 1 ].v4Pos.z = 0.0f;
m_pVertexData[ iVertexIndex + 1 ].v4Pos.w = 1.0f;
m_pVertexData[ iVertexIndex + 2 ].v4Pos.x = fX + m_v2Size.x;
m_pVertexData[ iVertexIndex + 2 ].v4Pos.y = fY;
m_pVertexData[ iVertexIndex + 2 ].v4Pos.z = 0.0f;
m_pVertexData[ iVertexIndex + 2 ].v4Pos.w = 1.0f;
m_pVertexData[ iVertexIndex + 3 ].v4Pos.x = fX;
m_pVertexData[ iVertexIndex + 3 ].v4Pos.y = fY + m_v2Size.y;
m_pVertexData[ iVertexIndex + 3 ].v4Pos.z = 0.0f;
m_pVertexData[ iVertexIndex + 3 ].v4Pos.w = 1.0f;
m_pVertexData[ iVertexIndex + 4 ].v4Pos.x = fX + m_v2Size.x;
m_pVertexData[ iVertexIndex + 4 ].v4Pos.y = fY + m_v2Size.y;
m_pVertexData[ iVertexIndex + 4 ].v4Pos.z = 0.0f;
m_pVertexData[ iVertexIndex + 4 ].v4Pos.w = 1.0f;
m_pVertexData[ iVertexIndex + 5 ].v4Pos.x = fX + m_v2Size.x;
m_pVertexData[ iVertexIndex + 5 ].v4Pos.y = fY + m_v2Size.y;
m_pVertexData[ iVertexIndex + 5 ].v4Pos.z = 0.0f;
m_pVertexData[ iVertexIndex + 5 ].v4Pos.w = 1.0f;
pDevice->DrawPrimitiveUP( D3DPT_TRIANGLESTRIP, 3, m_pVertexData, sizeof(VERTEX_INFO) );
0462デフォルトの名無しさん
2011/01/13(木) 18:07:54CCWでやるなら上下を反転させる必要がある。その置き方だと「下から上に」置いている。
0464デフォルトの名無しさん
2011/01/13(木) 23:34:14変換済み頂点だから
通常の座標系(上方向y+)ではなく
スクリーン座標系1(下方向y+)だから反転してるように見えてるだけじゃ
0465デフォルトの名無しさん
2011/01/14(金) 19:03:300466デフォルトの名無しさん
2011/01/14(金) 21:31:38やっぱGetRenderStateじゃねぇか?
0467名前は開発中のものです。
2011/01/15(土) 15:25:26テクスチャーのアルファ値のある部分を、赤色で塗りつぶしたり、
青色で塗りつぶしたりしたいのですが、どんな方法があるでしょうか?
やりたい事は、テクスチャーに描かれたキャラを、
特定の色で光らせたいと考えており、今のところは、
二つのテクスチャーを用意して、片方のテクスチャーの
抜き色以外の部分を光らせたい色で塗りつぶして、それを表示し、
その上に半透明で本来のキャラを描写するという事をやっていましたが、
もしかしたら他に方法があるかもしれないと思い、質問しました。
0468デフォルトの名無しさん
2011/01/15(土) 16:36:33シェーダー使えば一発だろうし
使わなくても
ポリゴン(頂点)の色を光らせたい色にしてテクスチャカラーと
加算か乗算でブレンドすれば似たような効果になるんじゃね?
0469名前は開発中のものです。
2011/01/15(土) 17:01:340470名前は開発中のものです。
2011/01/15(土) 17:06:330471デフォルトの名無しさん
2011/01/15(土) 17:11:57背景とブレンドするわけじゃなくて
テクスチャステージステートで頂点カラーとテクスチャカラーをブレンドするんだよ
0472名前は開発中のものです。
2011/01/15(土) 18:56:10重ね重ね、ありがとうございます。ようやくやりたい事が実現出来ました。
0473デフォルトの名無しさん
2011/01/15(土) 19:54:03うむ、精進しなさい
0474デフォルトの名無しさん
2011/01/16(日) 00:07:26症状としてはフルスクリーンからの復帰で画面が真っ白になるというものです
どうやらwarningによると、IDXGISwapChain::ResizeBuffersを呼ばなければならないようですが、
Alt EnterでDx11が勝手にやる上にWM_SIZEイベントで補足できません
勝手にフルスク機能を無効化、
またはこのResizeBuffersを実行するタイミングをどうすれば知ることができるか教えてください
よろしくお願いします
0475デフォルトの名無しさん
2011/01/16(日) 06:49:53毎フレームやってりゃ問題ないんじゃないか?
まぁ、画面が真っ白ってデバイス消失してるだけのような気もするけど。
0476デフォルトの名無しさん
2011/01/16(日) 11:49:26これをDXGI_MWA_NO_WINDOW_CHANGESで呼び出しておけば
勝手に何かしちゃうってのは無くなる様だが
0477デフォルトの名無しさん
2011/01/16(日) 12:24:40DirectDrawでの描画が止まってしまうのですが
原因はなんでしょうか?
ウィンドウプロシージャで
case WM_POWERBROADCAST:
UMsg = BROADCAST_QUERY_DENY;
return 0;
break;
は既にやっています。
また、描画を行う関数は再立ち上げ後も
普通に動いているみたいです。
サーフェスが壊れる?か何かしてるのかと思いましたが
デバッグで見るとプライマリサーフェスのアドレスが
再立ち上げ前後で変わったりはしていません。
0478デフォルトの名無しさん
2011/01/16(日) 16:16:15どうやったらそれを防げるでしょうか?
0479デフォルトの名無しさん
2011/01/16(日) 16:22:200480デフォルトの名無しさん
2011/01/16(日) 16:23:100481デフォルトの名無しさん
2011/01/16(日) 16:29:35ありがとうございます
この線でもうちょっと試行錯誤してみます
ありがとうございます
0482デフォルトの名無しさん
2011/01/16(日) 16:36:36法線が原因だったんですね!
今までライトを色々変えて試していたんですが、無駄でしたね(苦笑)。
おかげさまで、解決することができました。
ありがとうございました。
0483デフォルトの名無しさん
2011/01/16(日) 17:01:26複数のAnimationSetを含むxfileを使いID3DXAnimationControllerで切り替え等の制御をしているのですが
各アニメーションの長さを取得する方法はないでしょうか?
0484デフォルトの名無しさん
2011/01/16(日) 17:06:460485デフォルトの名無しさん
2011/01/16(日) 17:15:42ありがとうございます
0486デフォルトの名無しさん
2011/01/16(日) 17:33:53ミップマップを作らなくしてみる
って縮小じゃなく拡大か…違うっぽいな
0487474
2011/01/16(日) 18:17:31ですが、戻り値では成功を示していますが、
動作としてはalt + enterで勝手にフルスクされてしまいました
毎フレームIDXGISwapChain::ResizeBuffersを呼び出すと、
一応フルスクリーンとウィンドウを行き来がうまくいきました。(RenderTargetViewを開放し、Resize、再作成)
しかしDirectxx11の警告は残ったままです
DXGI Warning: IDXGISwapChain::Present: Fullscreen presentation inefficiencies
incurred due to application not using IDXGISwapChain::ResizeBuffers appropriately,
specifying a DXGI_MODE_DESC not available in IDXGIOutput::GetDisplayModeList,
or not using DXGI_SWAP_CHAIN_FLAG_ALLOW_MODE_SWITCH.
DXGI_SWAP_CHAIN_DESC::BufferDesc = { 800, 600, { 1, 60 }, R8G8B8A8_UNORM, 0, 0 };
DXGI_SWAP_CHAIN_DESC::SampleDesc = { 1, 0 }; DXGI_SWAP_CHAIN_DESC::Flags = 0x2;
一応初期化コードを張ります
http://codepad.org/6FA8kpcQ
原因がわかりましたら教えていただきたいです
0488デフォルトの名無しさん
2011/01/16(日) 20:34:01標準出力にD3Dのデバッグメッセージが出ない。
VisualC++2010では出るんで、DXのコンパネの設定には問題ないみたい。
どうすればいいかわかりますか?
0489デフォルトの名無しさん
2011/01/16(日) 20:38:14D3D11_CREATE_DEVICE_DEBUG
をたまたまセットし忘れてるとか?
0490デフォルトの名無しさん
2011/01/16(日) 21:50:13http://mainori-se.sakura.ne.jp/slimdx/wiki.cgi?page=%A5%C7%A5%D0%A5%C3%A5%B0%BE%F0%CA%F3
ここに書いてありました。
VC2010C#EEだったので、DebugViewを入れて表示できるようになりました。
ありがとうございました。
0491デフォルトの名無しさん
2011/01/17(月) 00:44:25WindowsXP、DirectX9です。
0492デフォルトの名無しさん
2011/01/17(月) 01:13:410493デフォルトの名無しさん
2011/01/17(月) 17:16:10で?
0494デフォルトの名無しさん
2011/01/17(月) 17:40:13頭よわいこはマンガでも読んでてください
0495デフォルトの名無しさん
2011/01/17(月) 18:18:46これがイマイチわかりません。ビューボリュームのサイズを決定していると思うのですが、
四角垂ではなく長方形なのに近平面と遠平面を指定する?のがわかりません。
この関数は空間のどこに描画しているのですか?
0496デフォルトの名無しさん
2011/01/17(月) 21:04:16画面に表示されるときは平面だが、
このZは遠くのものを小さくするためには使われずに、
Zバッファに渡される値の計算のために近平面と遠平面を指定している
普通に2Dに書きたいだけならば、
頂点バッファの頂点のzの値を近平面に設定しておけばいい
実際に頂点を自分で紙の上ででもmsdnの行列の式で掛け算してみると、
最終的に-1 <= x <= 1,-1 <= y <= 1, 0 <= z <= 1 の間に変換されるのがよくわかる
ただあの式は行優先の行列だから注意が必要だが
0497デフォルトの名無しさん
2011/01/17(月) 22:19:01VertexBuffer=キャラ数分でDrawPrimitiveもキャラ数分 テクスチャ=全キャラ共有(UV座標別)
とやって描画しています。
しかしDrawPrimitiveやSubsetは重いと聞き、VertexBufferを1纏めにしようかと思ったのですが、
纏めるとソートして描画順序を操作する事は出来なくなりますよね。
でも抜き色しか使わないなら1纏めでも問題ないハズですし、纏めるべきでしょうか?
それともせいぜい200キャラ未満の板ポリなんて纏めても大した意味がなく現状で良いのか。
自分ならこうする という意見で構いませんので助言頂けますと助かります。
0498デフォルトの名無しさん
2011/01/17(月) 22:38:58マネージャをひとつ作って、
そいつが動的に書き換えられる唯一の大き目の頂点バッファを持って、
描画リクエストをそいつに送り、
描画自体はマネージャが纏めて行うと早いはず
「重さ」だが、FPS制限をはずすと直感的にパフォーマンスを計測できるから
オススメだ
0500デフォルトの名無しさん
2011/01/18(火) 00:11:10200キャラ未満の板ポリだからこそ纏めるべきだと言える
4頂点しか描かないDrawPrimitiveを200回も発行するのは結構足引っ張ってるぞ
0501デフォルトの名無しさん
2011/01/18(火) 01:19:02重くなってから考えたら?w
0502デフォルトの名無しさん
2011/01/18(火) 02:58:070503497
2011/01/18(火) 19:45:44色々なご助言ありがとうございます。纏める事に決め、IndexBufferでの描画を最低限実装しました。そこで2点質問が。
�@名札ではなく、情報窓(最前面(D3DFVF_XYZRHWでz値は常に0.0f))のそれぞれの前後関係(重なり具合)を
Indexの並び替え(つまり描画順序の操作)で再現すると、zファイト(ちら付き)が起きる危険は高いでしょうか?
�A名札やダメージも纏めて、D3DXVec3Projectで得たz値+αで描画しようと思うのですが、
z値は相対的な存在と聞き及びました。
つまり常に固定値で+αすると手前のキャラを貫通したり、逆に対象にめり込む危険が有るのでしょうか?
良い方法が有れば、ご助言頂けますと幸いです。
0504デフォルトの名無しさん
2011/01/18(火) 20:12:11こういうのを使う。
複数のジオメトリのインスタンスの効率的な描画 (Direct3D 9)
http://msdn.microsoft.com/ja-jp/library/ee418549%28v=vs.85%29.aspx
こんな感じのが黄金パターン。
http://www1.axfc.net/uploader/File/so/57229.zip
Direct3D のチュートリアル05を改造した。
banana.bmp が exe のフォルダにないとエラーになる。
で、必要ならソートする。
動的 VertexBuffer に頂点列を構築するときに、ソート済みの順番で作成する。
0505デフォルトの名無しさん
2011/01/18(火) 20:19:34>>503
前者はチラつきは起こらない。
D3DRS_ZFUNC と描画順によって決定される。
後者はどんなゲームでも大丈夫な銀の弾丸は無い。
良い方法は、
A) 勉強して z について理解し、そのときのプロジェクトの z の範囲を分析した上で適切な値を設定すること。
B) 衝突判定を行って重なったりめり込んだりしないようにする。
のどちらか、または両方。
0506503
2011/01/19(水) 02:45:13>>505 前者は大丈夫なのですね環境差の不安が拭えました。後者は衝突判定というのも手だったのですね。
解決方法の目処が立って来ました。ありがとうございます。
そして再質問で申し訳ないのですが、
�@描画時(DrawIndexedPrimitive)にテクスチャを切替たく、何度もバラして呼ぶと負担は当然増大するでしょうか?
�A現在、テクスチャは全て2048x2048を上限に作っています。
最終的に、常に多数のモーション付きモデルを再生し続ける類の、負担が多めの物になるのですが、
切替コストを減らす為に4096x4096や、8192x8192のテクスチャを利用すべきと思われますか?やめた方が無難でしょうか。
個人的なお考えで構いませんので、ご助言頂けますと幸いです。
0507デフォルトの名無しさん
2011/01/19(水) 04:50:29http://msdn.microsoft.com/ja-jp/library/ee422132(v=VS.85).aspx
ここに目を通しておくと幸せになれるかもしれない
Draw系の命令はオーバーヘッドが大きいから纏めてやるのがいいだろう
とはいえ何より信頼できるのは自分での時間、FPS計測なのでそっちを頼るのがいいだろう
0508デフォルトの名無しさん
2011/01/19(水) 08:52:54こんなの実測あるのみ
名札出す前にその分モデルも描画するんだからぶっちゃけまったく変わらないと思う
0509506
2011/01/19(水) 16:26:03>>508 失礼致しました; その辺は変わらない可能性も有るんですね。 ご助言ありがとうございます。
今回はとても勉強になりました。回答下さった方々、有難うございました
0510デフォルトの名無しさん
2011/01/20(木) 21:41:310511デフォルトの名無しさん
2011/01/20(木) 22:49:080512デフォルトの名無しさん
2011/01/20(木) 22:54:44日本語フォントをポリゴンとして描画したいが、
サイズが大きいのでテクスチャフォーマットを小さい
D3DFMT_A8を使おう、そして色はシェーダー定数でいれてしまおう
という流れは自然ですか?不自然ですか?
0513デフォルトの名無しさん
2011/01/21(金) 01:02:10A4L4 お勧め。
A == 0 が抜き、
A != 0 && L != 0 が文字色
A != 0 && L == 0 が縁取り色
というようなことができる。
で、色の指定はシェーダ定数でもいいけど、頂点色にして >>504 のやり方を使うと DrawPrimitive() の回数が減る。
(画面中の文字色が一色の場合は減らないけど)
0514デフォルトの名無しさん
2011/01/21(金) 09:39:36for (int i = 0; i < HoweverManyRenderTargetsIJustUsed; i++)
{
GraphicsDevice.SetRenderTarget(i, null);
}
美しくないそうですが
これの何が美しくないというのですか。
0515デフォルトの名無しさん
2011/01/21(金) 11:58:09ただの質問にいちいち小ネタをはさもうとするあたりが美しくない
0516デフォルトの名無しさん
2011/01/21(金) 12:18:36シェーダー使うならRGBA全部を完全に別のモノクロバッファとして使うと
1つのテクスチャにかける文字数が増えるから、1回のDrawで書ける文字数が大幅に増えておすすめ
0517デフォルトの名無しさん
2011/01/21(金) 14:32:390518デフォルトの名無しさん
2011/01/21(金) 15:28:11言ったヤツに聞かないと分からないが、考えられることとしては、
・0 を無効にする意味は無いから for の初期化は int i = 1 とすべき
・有効無効は bitset で指定すべき
・レンダーターゲットのセットを表すクラスを用意するべき
・ever を紛れ込ませるような小ネタを控えるべき
・インデントに を使うべき
あたりかな。
>>516
自分の使ってない方法を薦めるのは誠意が無い。
もし使ってるなら、帯域とシェーダリソースの無駄だから、固有の事情が無い限りはやめたほうが良い。
0519516
2011/01/21(金) 17:24:22自分のGUIライブラリの文字表示部で使ってるので教えてください
上記でDrawの呼び出し回数が少なくなるのは分かってもらえると思いますが
それ以上に帯域の無駄使いによるオーバーヘッドが大きいと言う事ですか?
一般的なテクスチャフォーマットなので、ある程度の最適化はされている様に思います
日本語や漢字も使うとなると512x512では足りなくなり、サイズはビデオカードの
制限があるため大きくはせず、この方法を採用しました
シェーダーリソースの無駄と言うのは意味が分かりません
確保した領域が無駄に空いている前提の話ですか?
自分の方法を押しつけたいのではなく、この方法があまりに無駄だと言うなら考え直したいと思います
0520512
2011/01/21(金) 22:29:18ありがとうございます!確かにシェーダ定数より頂点カラーのほうが
楽ですね!こっちでやろうと思います。そして縁取りが必要になったら、
D3DFMT_A8L8も考えたいとおもいます!
>>516
ありがとうございます
すいませんこっちの方法はちょっとわかりませんでした(汗
とりあえず今は513さんのやり方でやってみようかとおもいます。
0521デフォルトの名無しさん
2011/01/22(土) 00:21:35518ではないけど俺が思ったこと。
まぁ、話半分に聞いてくれ。
>一般的なテクスチャフォーマットなので、ある程度の最適化はされている様に思います
8bppのテクスチャ送るのと32bppのテクスチャ送るのとどっちが軽いかなんて最適化とかそういう問題ですらなく自明だろ?
>日本語や漢字も使うとなると512x512では足りなくなり、サイズはビデオカードの
>制限があるため大きくはせず、この方法を採用しました
日本語や漢字も扱うなら、文字(文字列)が必要になるたびにCPU側のコードで描画して、
テクスチャとして転送するのが普通だと思うが。
(そこに最適化のためにキャッシュ機構を組み込んだりはするだろうけど)
毎フレーム完全にランダムな文字を適当に表示するとかでもない限り、
一枚のテクスチャに全文字を描画しておくなんてことはしないと思うぞ。
512x512x4では、たとえば一文字を16x16としても4096文字しか置いておけない。
この文字数は、例えばノベルゲームのように、完全な日本語の文章を表現するには
ちょっと足りないくらいのレベル(JIS第一・二水準漢字の合計が6000文字強くらい)。
ましてや太字化や文字サイズ変更など望むべくもない。
0522デフォルトの名無しさん
2011/01/22(土) 00:30:48テクスチャサンプラが配列に入れられるからテクスチャ1枚に収める努力がいらないぞ
9でも擬似的にできるけど制限がある上にあまりスマートじゃないんだよね
0523デフォルトの名無しさん
2011/01/22(土) 00:38:30初学者にはハードル高くなってるかもしれないけど、
一度理解した人にとってはどんどん高度な機能を直感的に扱えるようになってきてる
0524デフォルトの名無しさん
2011/01/22(土) 01:52:42fxc.exe effect.fx /T fx_2_0 /Fo effect.cfx
0525デフォルトの名無しさん
2011/01/22(土) 01:53:58まず何のエラーか書いてくれ
0526デフォルトの名無しさん
2011/01/22(土) 01:58:57というメッセージボックスが出て
コマンドプロンプトでは「アクセスが拒否されました」と出ます。
0527デフォルトの名無しさん
2011/01/22(土) 02:05:30DirectX SDK Command Promptで実行すればいい
0528デフォルトの名無しさん
2011/01/22(土) 02:13:390529デフォルトの名無しさん
2011/01/22(土) 02:36:31スタートメニューのDirectXフォルダのどっかにあるだろ
お前はまずコマンドプロンプトの使い方と環境変数PATHから調べるべきだ
あとfxc.exeを使わなくても十分なDirect3Dのアプリケーションは作れるぞ
0530デフォルトの名無しさん
2011/01/22(土) 03:53:49D3D11デバイス持ってない人はどうなる。
俺ならD3D7パスから必ず書く。
0531デフォルトの名無しさん
2011/01/22(土) 05:19:12o D3D7パスしか書けない
0532デフォルトの名無しさん
2011/01/22(土) 08:45:50構造変わりすぎてやってらんないし、
HLSLしか書けないので、
DX9
0533デフォルトの名無しさん
2011/01/22(土) 11:44:25何がHLSLだ
何がGLSLだ
しゅっぽっぽぅーとか煙吐いてろっての
0534デフォルトの名無しさん
2011/01/22(土) 12:02:040535デフォルトの名無しさん
2011/01/22(土) 16:11:560536デフォルトの名無しさん
2011/01/22(土) 19:57:31押されていない間フレームを数えればよろし
0537デフォルトの名無しさん
2011/01/22(土) 23:31:380538デフォルトの名無しさん
2011/01/23(日) 00:55:48Xaudio2よりdirectMusicの方がいいですか?
0539538
2011/01/23(日) 00:58:270540デフォルトの名無しさん
2011/01/23(日) 04:16:420541デフォルトの名無しさん
2011/01/23(日) 07:27:00最悪でも1nsでカウントしてくれないと話にならないのですが。
0542デフォルトの名無しさん
2011/01/23(日) 08:56:20QueryPerformanceCounterという関数があるらしいが
ぶっちゃけ実際にしっかり動いてるのかどうか試してみたことない
0543デフォルトの名無しさん
2011/01/23(日) 09:03:49よってスレ違い
0545デフォルトの名無しさん
2011/01/23(日) 12:21:06このタイマユニットを利用して1nsを得る。
ところが、これをやろうとするとカーネルサンダース側のドライバが必要だときたもんだ。
バカか
0546デフォルトの名無しさん
2011/01/23(日) 13:21:220547デフォルトの名無しさん
2011/01/23(日) 14:12:28実測値ではなくて予想値になるからパフォーマンスが不安定な環境だと精度悪いかもだけど
0548デフォルトの名無しさん
2011/01/23(日) 14:15:56俺の予想では1ms単位になると思うな
0549デフォルトの名無しさん
2011/01/23(日) 14:16:55わざわざスレッドを設けるとどんなおいしいことがあるんですか?
0550デフォルトの名無しさん
2011/01/23(日) 14:21:15まずRDTSCの呼び出し自体が遅い。
TSCカウントはコアごとに違うので一定ではない。
TSCがクロックにより変動するCPUが多数を占める。
更に問題なのは、マルチコアの場合
RDTSCで読み取るTSCの値がどのコアのものなのか分からない
呼ぶたびに違うコアが呼ばれるので、
例えばあるコアのTSCが100のときに呼んだとしても
次にRDTSCしたら別のコアが呼ばれ、そのコアでは60
だということも大いに有り得るわけで
まったく役に立たない。
0551デフォルトの名無しさん
2011/01/23(日) 14:23:06DX使用で1ms以下のタイマーが必要な場合を想像つかないが、何に使う?
制御関係なら、PCにオンボードCPU繋げて使えばいいだろ。
具体的に何に使うんだ?
0552デフォルトの名無しさん
2011/01/23(日) 14:41:05まともなもん出来ないな
0553デフォルトの名無しさん
2011/01/23(日) 14:46:08>少なくともAIなら1msスライスじゃ 、まともなもん出来ないな
そこんとこkwsk、想像つかんぞ
0554デフォルトの名無しさん
2011/01/23(日) 15:02:531クロックで解を出すべきものだろ
そういう性格だから、switch-caseは絶対に使わない。使っているのもいるかもしれないが、それはカスだ
1クロック、1デューティが1nsだったら1nsで出す。
だから1msは無駄もいいとこだ
0555デフォルトの名無しさん
2011/01/23(日) 15:06:20それは1msスライスと全然関係が無いじゃないか?
AIで1msスライスを必要としているのはあるのか?
0556デフォルトの名無しさん
2011/01/23(日) 15:13:431msの間に何回1nsがあるか
ってこった
処理回数は多ければ多いほどいい
0557デフォルトの名無しさん
2011/01/23(日) 15:18:100558デフォルトの名無しさん
2011/01/23(日) 15:20:000559デフォルトの名無しさん
2011/01/23(日) 15:32:22必要とする処理って何。
0560デフォルトの名無しさん
2011/01/23(日) 15:33:34必要なのは1ns
なのに
1msスライスを必要とする処理を
は?????
0561デフォルトの名無しさん
2011/01/23(日) 15:38:01こういうのが歳喰ってもまとまになれないことは
ゆとり教育が証明しちゃったからな
0562デフォルトの名無しさん
2011/01/23(日) 15:39:28ダメだこのバカw
0563デフォルトの名無しさん
2011/01/23(日) 15:39:490564デフォルトの名無しさん
2011/01/23(日) 15:47:45Z80の記憶だとレジスタに値入れるだけで1サイクルなんだけど
どうすんのマジで
0565デフォルトの名無しさん
2011/01/23(日) 16:12:00決まりきったルートで制御していくわけじゃないぞ
0566デフォルトの名無しさん
2011/01/23(日) 16:13:200567デフォルトの名無しさん
2011/01/23(日) 16:16:45ここを見つつ
カーソルキーを使って画像を移動させることはできたのですが
タスクバーのボタンを押して最小化し、
http://www.dotup.org/uploda/www.dotup.org1377857.png
また戻すと
かってに画像が動いてしまうのですがどうしてそうなるんでしょうか
0568デフォルトの名無しさん
2011/01/23(日) 16:17:21単位時間内にちゃんと解を出せればいいのだが、
そうでないときももちろんある
デッドラインを超えたら問答無用で次に渡さないといけない。
そういうときもタイマーが必要
それは1msの分解能では荒すぎる。
0569デフォルトの名無しさん
2011/01/23(日) 16:25:00その様なクソな設計だから、いらぬタイマーが必要だとなる。
世の中のゲームはその様なタイマーは不要な設計をしている。
自身を見直した方がいいのじゃないか?
0570デフォルトの名無しさん
2011/01/23(日) 16:27:32レンダリングも、フレームレート計測もタイマーありきだぞw
バカだバカ
0571デフォルトの名無しさん
2011/01/23(日) 16:28:220572デフォルトの名無しさん
2011/01/23(日) 16:28:400573デフォルトの名無しさん
2011/01/23(日) 16:29:41タイマーというと特殊な例でしか使ってねえみたいに恥ずかしい事言い出すのは
たいていそういうバカ。
0574デフォルトの名無しさん
2011/01/23(日) 16:29:45嘘を嘘と見(ry
鹿爪らしく並べてるだけの超理論を
相手にするなよ
0575デフォルトの名無しさん
2011/01/23(日) 16:31:480576デフォルトの名無しさん
2011/01/23(日) 16:34:280577デフォルトの名無しさん
2011/01/23(日) 16:36:13フレーム単位だと微分値としては荒いのは分かるけどどうしようもないな。
いっそ処理自体を毎秒1万フレームで回すとかw
0578デフォルトの名無しさん
2011/01/23(日) 16:38:00タイマー無しで処理を10倍100倍回すのはレーシングゲームでは常識
0579デフォルトの名無しさん
2011/01/23(日) 16:41:21日本語も読めないのかあのバカw
0580デフォルトの名無しさん
2011/01/23(日) 16:42:230581デフォルトの名無しさん
2011/01/23(日) 16:43:52なら解決じゃん。
0582デフォルトの名無しさん
2011/01/23(日) 16:44:56馬の首取ったかのようにしゃしゃり出てきた
要は痛々しいんだよオマエ
0583デフォルトの名無しさん
2011/01/23(日) 16:45:53タイマー取得してないので総じてカスが結論だそうです
お し ま い
0584デフォルトの名無しさん
2011/01/23(日) 16:46:00WindowsやLinuxのウェイト関数やカウント関数もそれ使ってるんだからな
その分解能が大体1msだというだけ
それが不満なら、自分でAPICを駆動さすしかない。
0585デフォルトの名無しさん
2011/01/23(日) 16:46:25出来もしない、存在しないタイマーの話をDirectXスレでする馬鹿はいったい何がしたいんだろう?
0586デフォルトの名無しさん
2011/01/23(日) 16:47:3616.6msごとに処理してるわけじゃないぞw
その間にも凄まじいフレームが出来上がっている。
だからダブルバッファやトリプルバッファができんだよw
60フレームとして、16.6ms内に2枚ないし3枚終わらなかったらバッファリングできねえんだよw
0587デフォルトの名無しさん
2011/01/23(日) 16:48:36まさに
,〜〜〜〜〜〜 、
|\ ( 釣れたよ〜・・・)
| \ `〜〜〜v〜〜〜´
し \
゙'゙":"''"''':'';;':,':;.:.,., ヽ○ノ
~~~~~|~~~~~~~ ̄ ̄ ̄ ̄ ̄ ̄ ̄
ト>゚++<
ノ)
0588デフォルトの名無しさん
2011/01/23(日) 16:49:140589デフォルトの名無しさん
2011/01/23(日) 17:00:16AI処理や物理演算に必要なタイマは
描画タイミング(VSYNC)かほぼ無視してよい
入力タイミングしか無いんだよ
0590デフォルトの名無しさん
2011/01/23(日) 17:08:11ないゲームももちろんあるし、ユーザーが選択しないときももちろんある
バカバカしい
0591デフォルトの名無しさん
2011/01/23(日) 17:11:040592デフォルトの名無しさん
2011/01/23(日) 17:12:28もっと精度の低いタイマでOkの場合だろ
アホは黙ってろ
0593デフォルトの名無しさん
2011/01/23(日) 17:12:40クソじゃないゲームばかりになると良いですね(笑)
0594デフォルトの名無しさん
2011/01/23(日) 17:12:59あと>>567はさすがにそれじゃわからん
0595デフォルトの名無しさん
2011/01/23(日) 17:25:240596567
2011/01/23(日) 17:52:40カーソルKeyでしか移動しないはずの、表示されている画像が、
かってに移動してしまうということでした
が
SetCooperativeLevel(HWND hwnd, DWORD dwFlags);で
DISCL_BACKGROUND のフラグを設定したら
ウィンドウが非アクティブでも画像が勝手に動くことはなくなりました
自己解決してしまいましたが
レスを返してくれてありがとうございました
0597デフォルトの名無しさん
2011/01/23(日) 18:41:450598デフォルトの名無しさん
2011/01/23(日) 18:42:4216.6msごとに処理してるわけじゃないぞw
その間にも凄まじいフレームが出来上がっている。
だからダブルバッファやトリプルバッファができんだよw
60フレームとして、16.6ms内に2枚ないし3枚終わらなかったらバッファリングできねえんだよw
0599デフォルトの名無しさん
2011/01/23(日) 18:57:510600デフォルトの名無しさん
2011/01/23(日) 19:06:180601デフォルトの名無しさん
2011/01/23(日) 20:11:33しょうないからDirectSound使うか
0602デフォルトの名無しさん
2011/01/23(日) 20:13:180603デフォルトの名無しさん
2011/01/23(日) 20:14:59開発側からしたらクソ面倒だよな
0604デフォルトの名無しさん
2011/01/23(日) 20:49:390605デフォルトの名無しさん
2011/01/23(日) 21:25:260606デフォルトの名無しさん
2011/01/23(日) 22:06:390607デフォルトの名無しさん
2011/01/23(日) 22:32:28高精度タイマーとか不要だよね
0608デフォルトの名無しさん
2011/01/24(月) 07:53:423Dなんてなるとダブルバッファも4枚だぞ
0609デフォルトの名無しさん
2011/01/24(月) 21:41:190610デフォルトの名無しさん
2011/01/24(月) 22:06:46↓
嫉妬する
0611デフォルトの名無しさん
2011/01/24(月) 22:21:58煽るにも無理がありすぎ
0612デフォルトの名無しさん
2011/01/24(月) 22:46:15http://dixq.net/g/
を一通り試してみた。
基本的なことはいろいろ分かってきて面白いんだけど、いざゲームを作ろうと思うとここだけじゃ無理なのね。
このあとどのサイトや本を見たらいいんだろう?シーンクラスとかそれっぽい言葉は分かるんだけど…
ちなみに、C++はド初心者で、Rubyとかスクリプト言語を少し使える程度。
RPGが作りたいけど初心者だし定番のシューティング→アクション→…って形でも全然おk。
とにかく、「ゲームという形にする」ための知識がほしい。
0613デフォルトの名無しさん
2011/01/24(月) 23:35:10あー、ゲームを作るチュートリアルみたいな本やサイトがほしいのね
ねぇよ
もう10年もPGやってるけど
いまだにその類の書籍やサイトをみたことがないw
あっても「え〜(笑)」って内容w
0614デフォルトの名無しさん
2011/01/24(月) 23:46:38むしろ溜め込んだ自分の中のロジックを実験とか応用しろって話
いやマジで
0615デフォルトの名無しさん
2011/01/24(月) 23:48:34絵だけ描いて自作と言い張りたいです。あなたのアイデアを全部下さい
考えるのめんどいです
0616デフォルトの名無しさん
2011/01/24(月) 23:56:03一通りやってシューティングの1つも出来ないとは、それはやったんではなくて、
眺めただけ。または、本当に無能なので、プログラマ諦めろ。
0617デフォルトの名無しさん
2011/01/25(火) 00:09:22最初から完成された作品を作るんじゃなくて
機体の画像を←→↑↓のボタンで動かせるくらいの簡単なプログラムを
組むのを目指すといいよ
0618デフォルトの名無しさん
2011/01/25(火) 02:36:00アマゾンで「ゲーム プログラム」とかで検索してみて、
良さそうな本を片っ端から漁ってみたら。
ま、とりあえず一からテトリス作るだけでもとっかかりが見つかるし、
見つからないなら諦めた方がいいと思う。
そもそもRPG作りたいとか言ってる時点で向いてないと思う。
0619デフォルトの名無しさん
2011/01/25(火) 03:43:03これ結構網羅されてると思うんだけど
もしかして3Dやりたいって事?
0620デフォルトの名無しさん
2011/01/25(火) 06:08:35Effect->Begin();
Device->SetRenderTarget( 0, テクスチャ1のサーフェイス);
Device->Clear();
Effect->BeginPass(0);
Device->SetRenderTarget( 0, テクスチャ2のサーフェイス);
Device->Clear();
Effect->BeginPass(1);
Effect->EndPass();
Effect->End();
これでPass(1);が描画できません。なぜでしょうか。
試した事
・描画に入る前にGetRenderTarget()で保持した(画面全体にテクスチャ1が描画されてしまった)
0621デフォルトの名無しさん
2011/01/25(火) 06:10:54Device->SetRenderTarget( 0, テクスチャ1のサーフェイス);
Device->Clear();
Effect->BeginPass(0);
の部分をコメントアウトすると、Pass(1);が描画されます。
0622デフォルトの名無しさん
2011/01/25(火) 06:30:32型宣言が無い
intとして認識しろという事か
0623デフォルトの名無しさん
2011/01/25(火) 06:42:340624デフォルトの名無しさん
2011/01/25(火) 08:27:100625デフォルトの名無しさん
2011/01/25(火) 08:29:30BeginPass(0) に対応する EndPass は?
0626デフォルトの名無しさん
2011/01/25(火) 08:35:37これでした!お騒がせしました
0627デフォルトの名無しさん
2011/01/25(火) 09:18:13スコンパイラは { } の抜けはちゃんとチェックするのに
if end とか begin end とか、end関係は軒並みチェックしない。
0629デフォルトの名無しさん
2011/01/25(火) 12:36:54なにがダイレクトじゃボケェ
0630デフォルトの名無しさん
2011/01/25(火) 12:57:120631デフォルトの名無しさん
2011/01/26(水) 00:31:42特に使いづらくも無いぜ http://codepad.org/mGWcus8n
0632デフォルトの名無しさん
2011/01/26(水) 00:42:47つーかMSもベンダーにXInputの対応強制させるくらいすれば良いのにー
0633デフォルトの名無しさん
2011/01/26(水) 02:20:21Tex1 = Tex2;
で問題ありませんよね?
でもこれをやると代入されたほうのテクスチャが何も描かれていない状態になります。どうしてでしょうか。
スレ違いかもしれませんが、お願いします。
0634デフォルトの名無しさん
2011/01/26(水) 06:45:11D3DXCreateTexture();で描き込み用のテクスチャを作り、サーフェイスを取得して書き込める状態にしました。
が、テクスチャには何かメモリ上のゴミが入ってるようです。どうしてでしょうか。
また、描画ループで初期化する方法はありますか?
0635デフォルトの名無しさん
2011/01/26(水) 07:24:10初期化したければすればいいだけの話。
何が疑問なのかさっぱり分からん。
0636デフォルトの名無しさん
2011/01/26(水) 08:06:250637デフォルトの名無しさん
2011/01/26(水) 08:13:490638デフォルトの名無しさん
2011/01/26(水) 08:14:34NULLを入れようが代入しようがテクスチャの中身が初期化されたりコピーされる訳ではない
Lockしてピクセルを書き換えるか
レンダリングターゲットに指定してClearするとかしないと
0639デフォルトの名無しさん
2011/01/26(水) 08:18:09これをしているのに何か入っています。
0640デフォルトの名無しさん
2011/01/26(水) 08:27:280641デフォルトの名無しさん
2011/01/26(水) 08:28:450642デフォルトの名無しさん
2011/01/26(水) 08:28:52コピーコンストラクタや演算子オーバロードの状況を気にせず
= で結んでそのまま放り込んじゃうとかありえない
0643デフォルトの名無しさん
2011/01/26(水) 08:29:010644デフォルトの名無しさん
2011/01/26(水) 08:44:58http://codepad.org/EnHsPAyg
0645デフォルトの名無しさん
2011/01/26(水) 09:07:550646デフォルトの名無しさん
2011/01/26(水) 09:14:340647デフォルトの名無しさん
2011/01/26(水) 09:51:14宣言や確保ってのは、あくまで「ワク」を用意したに過ぎない。
「こっからここまで俺の土地ね!」って囲った
しかし、囲っただけでは雑草は取れない。
ちゃんと草むしりしないといけない。
どんな言語でもそうだが、それと同じだろう
最近はコンパイラが勝手に0で初期化してくれるものもあるようだが
0648デフォルトの名無しさん
2011/01/26(水) 10:01:08同じメモリ領域を2度消そうとしている?
ちなみにテクスチャを他のテクスチャに移そうとするときどうやります?
0649デフォルトの名無しさん
2011/01/26(水) 11:36:210650デフォルトの名無しさん
2011/01/26(水) 13:13:25もうどこが悪いのかすらわからなくていままでやってきたのが間違ってるんじゃないかとか疑いはじめてメチャクチャだわ
0651デフォルトの名無しさん
2011/01/26(水) 13:26:14いったい何を言ってるんだ?
0652デフォルトの名無しさん
2011/01/26(水) 13:27:400653デフォルトの名無しさん
2011/01/26(水) 20:47:28常識だと思っている事が通用しない世界もあるので難しい。
free(Fuckintosh);
Fuckintosh = NULL;
Fuckintoshを使い回すので、一回freeしたらNULLを入れる
これが当たり前だと思っていたら
「余計な事すんな!」
と来た。
0654デフォルトの名無しさん
2011/01/26(水) 21:12:19色が出ても周りの色まで変わっちゃうんですがなにか対策ありますか?
0655デフォルトの名無しさん
2011/01/26(水) 21:28:100656デフォルトの名無しさん
2011/01/26(水) 21:29:160657デフォルトの名無しさん
2011/01/26(水) 22:16:04SetMaterialあたりの設定ミスだろう
もしくはD3DRS_DIFFUSEMATERIALSOURCEの値とか
0658デフォルトの名無しさん
2011/01/26(水) 23:44:23どういう処理でそうなるのか言わないのに
対策なんて想像でしか書けなくね
0659デフォルトの名無しさん
2011/01/27(木) 10:55:13セコくてごめんよう
俺もメタセコなんだw
0660デフォルトの名無しさん
2011/01/27(木) 11:11:06Bryceも使ってる
0661デフォルトの名無しさん
2011/01/27(木) 14:49:53DirectxのチュートリアルフォルダのTut04_Lightsフォルダ内のLights.cppを新しいプロジェクトに
コピーしビルドしようとしているのですが以下のエラーが出てビルドが出来ません
1>------ ビルド開始: プロジェクト: d3dtest02, 構成: Debug Win32 ------
1>LINK : fatal error LNK1104: ファイル 'd3d9.lib d3dx9.lib winmm.lib' を開くことができません。
========== ビルド: 0 正常終了、1 失敗、0 更新不要、0 スキップ ==========
ちゃんとDirectx SDK もインストールし、追加の依存ファイルに d3d9.lib d3dx9.lib winmm.lib を指定し
インクルードディレクトリ、ライブラリディレクトリにパスも設定しました。
これは何が原因なんでしょうか、解決方法を教えてください。
開発環境はVC++2010です、宜しくお願いします。
0662デフォルトの名無しさん
2011/01/27(木) 15:01:16Google「'd3d9.lib d3dx9.lib winmm.lib' を開くことができません。」カチッ!
0663デフォルトの名無しさん
2011/01/27(木) 15:13:42明らかに的外れ
>>661
全角スペースで区切ってたり " で全ファイルを囲ってたりしないか?
0664デフォルトの名無しさん
2011/01/27(木) 15:34:40返信ありがとうございます、確認した所ちゃんと半角スペースで区切られていました
ファイルを"で囲っていることもないです。
googleでも検索してディレクトリパスの確認、libファイルはちゃんと入っているのかなど
いろいろ確認してみたのですが解決できませんでした。
0665デフォルトの名無しさん
2011/01/27(木) 15:39:16それが原因だ
0666デフォルトの名無しさん
2011/01/27(木) 15:46:37おおおおおおおおおおおおおおおおおおお!!!!!!!!!
それが原因だったんですか!今スペースじゃなくて改行で複数指定した所しっかりビルドが通りました
書籍では半角スペースで複数指定と書かれていたのでここを疑うことがなかったです。
本当にありがとうございます、これでまた一歩ステップアップできそうです。
0667デフォルトの名無しさん
2011/01/27(木) 18:24:180668デフォルトの名無しさん
2011/01/27(木) 18:54:42文字列で書かせないでちゃんとファイル参照ボタンにしたらいいじゃないか
ファイル指定する場所なんだから
0669デフォルトの名無しさん
2011/01/27(木) 19:10:350670デフォルトの名無しさん
2011/01/27(木) 19:18:19ライブラリ参照パスは設定してあるんだから
そこのファイル一覧でも出して選択させてやりゃいいんじゃね?とか思ったり
まあなんつーか他の部分はやたら豪勢なのにこういう設定部分がショッパイ出来だから
なんか気になったって感じだけど
0671デフォルトの名無しさん
2011/01/27(木) 22:35:55どこのパスを最初にGUIで表示するのかは一意に決められんよ
0672デフォルトの名無しさん
2011/01/27(木) 22:56:48じゃ、パスの中にあるファイルを一覧で全部出せばいいじゃん
とか、なんかテキトーに(別のやり方も色々あると思うよ)解決策が浮かんじゃうのに
なんでコレなのよ・・・ってショッパイのが結構あるじゃん
0673デフォルトの名無しさん
2011/01/27(木) 23:11:07ゆとりにも程がある。
0674デフォルトの名無しさん
2011/01/27(木) 23:17:10まあ、思想はどうでもいいけど
「だっせー」ってただそれだけなんだけどねw
0675デフォルトの名無しさん
2011/01/27(木) 23:33:31そんな糞重くて使いにくいUIイラネ
0676デフォルトの名無しさん
2011/01/27(木) 23:48:55いや、そもそも他にやり方いくらでもあるでしょ
ライブラリ参照パスをフォルダ一括にしてるのがそもそもの間違いだろってところから入ることになるけどw
だから何もかも古いんだよ
まあ、ちょっと前のvsは環境変数とか使ってたから仕方ないっちゃそうだけど
それもvs2010になって変えたみたいだけどあんまりセンスいい仕様にはならなかったなぁ的なガッカリ具合
0677デフォルトの名無しさん
2011/01/27(木) 23:52:100678デフォルトの名無しさん
2011/01/28(金) 00:09:22どなたかサンプルを見せてもらえませんか?
0679デフォルトの名無しさん
2011/01/28(金) 00:14:21いま波ってここまでできるのな
0680デフォルトの名無しさん
2011/01/28(金) 00:36:53これはすごい波
0681デフォルトの名無しさん
2011/01/28(金) 08:40:13それは今の話題とはあんまり関係なくない?
そもそもの仕様がダサいってところが根本にあるわけだし
0682デフォルトの名無しさん
2011/01/28(金) 08:52:54ダサいとのたまうだけで、ろくな解決方法を提示できないというだけの話。
その辺にいる、文句だけ言うくせに何も出来ない自称評論家。
0683デフォルトの名無しさん
2011/01/28(金) 08:58:12じゃ、参照フォルダは無しでフルパスで1つずつ(いつものファイルダイアログ)で
現状の仕様より大分マシになるじゃん
0684デフォルトの名無しさん
2011/01/28(金) 09:33:070685デフォルトの名無しさん
2011/01/28(金) 09:37:06なんで?
ソースファイルとかだって同じように追加してるじゃん
仮にソースとかをライブラリファイルみたいに
フォルダ+ファイル名で指定するようにしたらブーイングの嵐だと思うよ
0686デフォルトの名無しさん
2011/01/28(金) 09:57:31いったい何を言ってるんだ?
単純に環境の使い方が分かっていないだけの馬鹿だろ。
0687デフォルトの名無しさん
2011/01/28(金) 10:13:10そんな話じゃねぇw
0688デフォルトの名無しさん
2011/01/28(金) 10:15:45阿呆にもほどがある。
0689デフォルトの名無しさん
2011/01/28(金) 12:13:48だから今その画面の話してないじゃん
0690デフォルトの名無しさん
2011/01/28(金) 12:14:39さっきからツッコミがまるで的外れなんだけど
なにか病気でももってるの?
0691デフォルトの名無しさん
2011/01/28(金) 12:25:01これ以上恥の上塗りをしても仕方がないだろ。
脳内だけの妄想センスが凄いのだけは分かったよ。
0692デフォルトの名無しさん
2011/01/28(金) 12:26:090693デフォルトの名無しさん
2011/01/28(金) 12:27:42操作方法?
ああ、「;」と「 」で間違えてなんのエラーもでなくて苦しんだ被害者が出たねw
すごくいい仕様だと思うよ理想的だ
0694デフォルトの名無しさん
2011/01/28(金) 12:30:11凄いゆとりだ。
0695デフォルトの名無しさん
2011/01/28(金) 12:30:37水面の波作るのにこれやったらリアルになりそうだけど5年くらい前のローエンドPCじゃ描画はキツイかな?
0696デフォルトの名無しさん
2011/01/28(金) 12:37:31センスが悪いって話をしてるのに
ヘルプを読めってどうとらえたらいいのかな?
君の脳みそが腐ってる可能性を考慮したほうがよさそうだよね
0697デフォルトの名無しさん
2011/01/28(金) 12:57:40自分のセンスが悪いのに気がつかない時点で痛いよ。
簡単にライブラリを追加したいならソリューションエクスプローラを利用するし、
コードに依存するライブラリが明確なら#pragmaを指定しておけばいいだけの話。
使い方が分かっていないのを棚に上げて、センス云々とか恥ずかしいにも程がある。
0698デフォルトの名無しさん
2011/01/28(金) 14:07:58じゃあ、なんであんな余計な設定画面ついてんだよw
あの設定画面はセンス悪いのは認めるんだよね?
0699デフォルトの名無しさん
2011/01/28(金) 14:29:080700デフォルトの名無しさん
2011/01/28(金) 14:36:17VSのUIがダサイかどうかはそれこそ今は関係無いよね
お前の提案がことごとく現状より役に立たないだけw
で、次のぼくのかんがえるさいきょうのUIは?
>>695
5年前じゃ重いかどうか以前にサポートしてるかどうかも怪しいよ
0701デフォルトの名無しさん
2011/01/28(金) 14:43:05何が関係ないんだよ
もともとあの画面のセンスが悪いって話してたんだよ
また、全然関係ないこと結び付けて話ししたでしょ?
大丈夫かよお前w
PG組めるのかってより社会人として仕事やっていけるのかw
すべてのレスが
とーんちーんかーんちーん一休さーんw
∩___∩
(ヽ | ノ ヽ /)
(((i ) / (゜) (゜) | ( i)))
/∠彡 ( _●_) |_ゝ \
( ___、 |∪| ,__ )
| ヽノ /´
| /
0702デフォルトの名無しさん
2011/01/28(金) 14:57:21>もともとあの画面のセンスが悪いって話してたんだよ
君がそう主張したいのに誰も同意してくれないから可哀想だよね・・・
みんな少なからずVSのUIには不満を持ってるはずなのに
なにせ君から出てくる解決策がさらにセンス無いもんで同意のしようがないwww
0703デフォルトの名無しさん
2011/01/28(金) 15:04:03ワラタ
0704デフォルトの名無しさん
2011/01/28(金) 15:13:03これクレタ人のコモンセンス。
0705デフォルトの名無しさん
2011/01/28(金) 15:15:37頂点バッファをロックして値を取り出したい場合に構造体でキャストをする必要があるじゃない?
その構造体って、どうやって決定すればよいのか分からないんだ。
現状はCloneMeshFVFで強制的に変更しちゃってるのだけど
何か他に方法があったりする?
0706デフォルトの名無しさん
2011/01/28(金) 15:31:40要素へのオフセットや型はGetDeclarationで地道に計算するかないんでないの
0707デフォルトの名無しさん
2011/01/28(金) 15:42:220708デフォルトの名無しさん
2011/01/28(金) 16:28:20自前でX-Fileを読めば、余計なことを考えなくてすむよ。
パーサは用意されてるし。
0709デフォルトの名無しさん
2011/01/28(金) 16:48:410710デフォルトの名無しさん
2011/01/28(金) 19:42:14自前で自由にしたければ自分で書くのが普通
0711デフォルトの名無しさん
2011/01/29(土) 05:08:29Pixでよくね?
プログラム中で調べるて、FVFをジェネレートでも
するの?
0712デフォルトの名無しさん
2011/01/29(土) 05:23:54705を読んでから書いてるの?
0713695
2011/01/29(土) 06:42:40ディスプレイスメントマップ付き:CPU 30%
ディスプレイスメントマップ無し:CPU 15%
キューブマップなどは、あまり負荷に影響せず
みなさん、ハイエンドではない一般ユーザ向けに作る場合どんな基準で開発しますか?参考に教えてください。
0714デフォルトの名無しさん
2011/01/29(土) 08:28:020715デフォルトの名無しさん
2011/01/29(土) 16:50:54サンプルを見る限りでは、.fxファイル(エフェクトファイル)を使用してる例ばかりです。
DXUTは、.fxファイルの使用は必須なのでしょうか?
.xファイルのみから描画をしてるサンプル等がありましたら教えてもらえないですか。
0716デフォルトの名無しさん
2011/01/29(土) 17:00:250717デフォルトの名無しさん
2011/01/29(土) 17:01:36そいつのRender関数が
Effect使用版と固定機能版の二通り用意されていたはずだが
0718デフォルトの名無しさん
2011/01/29(土) 19:35:32バックバッファ以外に、バッファを用意してそれにレンダリングし終わってからバックバッファに転送する、ってのをやりたいです。
自分で考えた流れは、
1. CreateRenderTargetでサーフェス確保
2. SetRenderTargetしてレンダリング
3. UpdateSurfaceでバックバッファに転送
しようと思ったんですが、RenderTargetになるのはD3DPOOL_DEFAULTだけで、それはUpdateSurfaceできないとSDKのドキュメント読んで分かりました。
普通、こういうことをやるときはどういう構成にするものなんでしょうか?
組み込みスクリプトのフロントエンド的なものを作りたくて、そのためにバックバッファにもう一段バッファを噛ませたいんです。
ほとんどDirectXは初めてなので何か根本的に理解してないとこがあったら指摘お願いします。
0719デフォルトの名無しさん
2011/01/29(土) 19:43:36つStretchRect
テクスチャをレンダーターゲットにするのもあり
0720デフォルトの名無しさん
2011/01/29(土) 20:14:210721デフォルトの名無しさん
2011/01/29(土) 20:23:24そのテクスチャを描画するだけじゃだめなのか?
0722デフォルトの名無しさん
2011/01/29(土) 20:43:54横から失礼してくだ質だけど
サーフェイスとテクスチャの違いって何?
0723デフォルトの名無しさん
2011/01/29(土) 20:44:20ポリゴン数が減るわけでもないしスキンメッシュじゃダメなのか?
0724デフォルトの名無しさん
2011/01/29(土) 20:48:43テクスチャはサーフェイスを含むが、
サーフェイスがテクスチャとは限らない。
0725デフォルトの名無しさん
2011/01/29(土) 20:52:04アップルの「iPad(アイパッド)」に代表される「タブレット型」の多機能情報端末との競合に加え、無償OSが普及したためだ。
0726デフォルトの名無しさん
2011/01/29(土) 20:53:140727722
2011/01/29(土) 20:57:32サンクス 今まで逆だと思い込んでたんで混乱していた。
今まで上手く解釈できないでいたヘルプを読み直してくる
0728デフォルトの名無しさん
2011/01/29(土) 21:18:27頂点カラーを所持したXFileをD3DXLoadMeshFromXを使用して
読み込み、描画を行いたいのですがどうも落ちてしまいます。
頂点カラーが反映されずに描画はうまくいく。という状況であれば、
データが所持されていない等など推測できますが、
ゲーム自体がその場で落ちてしまうことから、現プログラムが頂点カラーに
対応していない、と考えてよろしいのでしょうか?
よろしくお願い致します。
0729718
2011/01/29(土) 21:32:25>>719
StretchRectで動作しました。感謝です。
>>720
そうなんですけど、こっちのほうが柔軟性があるかなと。
>>721
何となく、余計なものがない単なるサーフェスのほうがこういうバッファには似合うじゃないかっていう理由です。
テクスチャのほうがいいですか?
0730デフォルトの名無しさん
2011/01/29(土) 21:38:32まぁ、そんな難しい話じゃなくて
単にファイル読み込みに失敗しててNULLポインタにアクセスしてるから落ちてるとかってオチじゃね?
ちゃんとデバッガ使えばどこで落ちてるかななんて一発だ
0731デフォルトの名無しさん
2011/01/29(土) 22:31:560732デフォルトの名無しさん
2011/01/29(土) 22:55:06「カメラ座標とキャラクター座標の間に、地形ポリゴンが有るかどうか」
を検出するにはどうすれば良いでしょうか?
(多くの3Dゲームで有る、カメラが地形にめり込まない事を表現したく思っています。)
0733デフォルトの名無しさん
2011/01/29(土) 23:01:09仮にあったらどうするの?
カメラを地形の前までもっていく?
地形自体を半透明にするか消す?
0734デフォルトの名無しさん
2011/01/29(土) 23:06:040735デフォルトの名無しさん
2011/01/29(土) 23:52:38キャラクターとカメラの座標を結ぶベクトルに、
ボリュームをつける(円柱とか、一番良いのは視錐台と同じ)
そのボリュームと地形との当たり判定
0736デフォルトの名無しさん
2011/01/30(日) 00:06:120737デフォルトの名無しさん
2011/01/30(日) 00:07:300738デフォルトの名無しさん
2011/01/30(日) 00:07:500739デフォルトの名無しさん
2011/01/30(日) 00:09:34∩___∩
(ヽ | ノ ヽ /)
(((i ) / (゜) (゜) | ( i)))
/∠彡 ( _●_) |_ゝ \
( ___、 |∪| ,__ )
| ヽノ /´
| /
0740デフォルトの名無しさん
2011/01/30(日) 01:56:35フイタw
0741デフォルトの名無しさん
2011/01/30(日) 04:53:37SDKのマニュアルのどこに載ってますか?
そんな小さかったら2D描画には分割でもしないと使えないですよね?
単に2D画像ファイル(1280*720とかの大きめの)を表示したいだけの時の王道(D3DXのスプライト以外で)は何なんでしょうか?
Web探しても断片的で解説がしっかりしてないのがほとんどで、見よう見まねで
矩形ポリゴン書いて、D3DXCreateTextureFromFileして、巨大なテクスチャ貼り付けたら上手くいったんですが、ちゃんとしたやり方なのか不安です。
SDKのドキュメントとかサンプルもテクスチャはいきなり3Dっぽくなったりしてて……
D3DXLoadSurfaceFromFileを使ってやる方法もあってどっちにすればいいのか迷ってます。
良い模範サンプルがあったら教えてください。
0742デフォルトの名無しさん
2011/01/30(日) 04:59:47D3DCAPS9のMaxTextureWidthとかMaxTextureHeightとかD3DPTEXTURECAPS_POW2とかを調べてください
0743デフォルトの名無しさん
2011/01/30(日) 10:27:11別に分割描画くらい面倒がらずに書けばいいじゃない
0744デフォルトの名無しさん
2011/01/30(日) 10:52:32dxinfoと↓の見といたほうがいいよ
> C:\Program Files\Microsoft DirectX SDK (August 2007)\Samples\C++\Direct3D\ConfigSystem\CardCaps.pdf
> にCAPS一覧がある。
0745デフォルトの名無しさん
2011/01/30(日) 11:49:26拡大縮小や回転とかしたら境目が浮き出たり、割と大変だよな
確かにその辺りを解説した本もサイトも見たことないや
テクスチャの拡大フィルタとかとの格闘になる
サイトはともかく、そういう本ってあるのかな?
0746デフォルトの名無しさん
2011/01/30(日) 11:56:200747デフォルトの名無しさん
2011/01/30(日) 13:34:09画面よりデカイテクスチャ作っちゃえばいいじゃないですか
0748デフォルトの名無しさん
2011/01/30(日) 13:36:220749デフォルトの名無しさん
2011/01/30(日) 13:57:35みんな画面よりデカイテクスチャ作っちゃってるから
そんなところは対応してない
だいたいフィルタかけたら線が入っちまって対応不能だろ
2xだか4xだか8xだか16xだか対応してらんね(俺は)
0750デフォルトの名無しさん
2011/01/30(日) 14:15:252000年以降であれば2048くらい行けるのかな?
0751デフォルトの名無しさん
2011/01/30(日) 17:57:200752デフォルトの名無しさん
2011/01/30(日) 19:24:07いまどきVooDooでもサポートするつもりか?w
0753デフォルトの名無しさん
2011/01/30(日) 19:42:120754デフォルトの名無しさん
2011/01/30(日) 19:49:57色が変わったピクセルの差分だけを描画できる・・・というのは冗談として、
エコーやブラーが表現しやすいとかあった気がする。あれ、バックバッファだったっけな。
0755デフォルトの名無しさん
2011/01/30(日) 20:20:290756デフォルトの名無しさん
2011/01/30(日) 20:36:093Dソフト上と同じように中々描画されなくてなきそう
DxViewerで見てもテクスチャ張られてないわ、頂点カラー描画されてないはなんだが
これはもう書き出し時点で何かしら間違ってるってこと?
0757デフォルトの名無しさん
2011/01/30(日) 20:57:55普通の人間だったら質問する前にやるべきことだが、
脳みそが腐っているのか?
0758デフォルトの名無しさん
2011/01/30(日) 21:02:350759デフォルトの名無しさん
2011/01/30(日) 21:16:45DirectXViewerは信用できないよ
昔のSDKについてたMeshViewでみるのが一番なんだが
0760デフォルトの名無しさん
2011/01/30(日) 22:31:45ttp://dixq.net/forum/viewtopic.php?f=3&t=7725&sid=c87addc213e323f8df77f8bd489c203b
むこうの掲示板も相互リンクを張らないと規約違反だぞ。
0761デフォルトの名無しさん
2011/01/30(日) 22:32:440762732
2011/01/30(日) 22:47:29>>734
特許情報も読んでみましたが、理解できたのはコナミ邪魔。って程度でした。
>>735
線分と面で作ってみてボリュームの必要性を理解しました。
視錐台について再勉強しようかと思います。ありがとうございました。
0763デフォルトの名無しさん
2011/01/31(月) 02:51:28Xファイルの中身見てテクスチャのパスとか確認してみたら?
0764デフォルトの名無しさん
2011/01/31(月) 11:35:37エスパーの方この情報だけでどこに問題がありそうかわかります?
0765デフォルトの名無しさん
2011/01/31(月) 11:43:580766デフォルトの名無しさん
2011/01/31(月) 11:57:140767デフォルトの名無しさん
2011/01/31(月) 12:06:120768デフォルトの名無しさん
2011/01/31(月) 12:07:590769デフォルトの名無しさん
2011/01/31(月) 12:10:51真っ先に思いつくべき処理はそれだから見直した上で
これをこうやったがダメだった 何がおかしいんだろうか って展開させろよ
答える側に何もかも丸投げするな
0770デフォルトの名無しさん
2011/01/31(月) 12:19:02初心者なので考えるのがめんどくさいです。
正解以外はいりませんのでよろしくお願いします。
0771デフォルトの名無しさん
2011/01/31(月) 12:27:13「僕の質問はなんでしょうか」が質問なら、答えは「僕の質問はなんでしょうか」だろ
0772デフォルトの名無しさん
2011/01/31(月) 12:32:14描画処理とだけ言われても描画処理で詰まってるんだから狭義で何かを指してるのかと思ったんだよ
まだ話は全然進んでないのにその怒り方とか予定調和が好きそうだね
他で聞くことにするわ
0773デフォルトの名無しさん
2011/01/31(月) 12:37:50wavファイルごとバッファを作って同じ音を同時に鳴らす音は
同じファイルでも複数バッファを作るプログラムを作ったんだけど
後から考えたらこれでいいのか不安になりました。
0774デフォルトの名無しさん
2011/01/31(月) 13:23:380775741
2011/01/31(月) 13:26:15どうも大きいテクスチャを気にしないのが普通みたいなので気にせず大きいの使うことにします。
0776デフォルトの名無しさん
2011/01/31(月) 15:23:11その処理をどうやってどう詰まったのかも言わないまま逆ギレとか
お前が100%悪い
0777デフォルトの名無しさん
2011/01/31(月) 15:24:33俺がイライラしてんだろが!
ぶっ殺すぞ!
0778デフォルトの名無しさん
2011/01/31(月) 16:48:42∩___∩
(ヽ | ノ ヽ /)
(((i ) / (゜) (゜) | ( i)))
/∠彡 ( _●_) |_ゝ \
( ___、 |∪| ,__ )
| ヽノ /´
| /
0779デフォルトの名無しさん
2011/02/01(火) 03:00:53頂点宣言と実際の頂点バッファのフォーマットが違うから正しく表示できない
0780デフォルトの名無しさん
2011/02/01(火) 09:27:470781デフォルトの名無しさん
2011/02/01(火) 10:13:150782デフォルトの名無しさん
2011/02/01(火) 10:35:45他のものと組み合わせて使ってるわけじゃないから俺のプログラムのどこかから廻り廻ってバグってるんだろうな
0783デフォルトの名無しさん
2011/02/01(火) 11:58:27法線の正規化はシェーダ内でやるようにしたら?
0784デフォルトの名無しさん
2011/02/01(火) 13:02:38下記サイトのソースを使ってDirectX9上で頂点バッファによる直方体を
描こうとしています。
http://www.h2.dion.ne.jp/~takusoft/directx8/d3d/chapter1/sec14/d3d_14.html
ソースにあるように奥の面 -> 手前の面の順でDrawPrimitiveを呼び出す場合
問題なく描画されるのですが、手前の面 -> 奥の面の順にすると
Zバッファが効かず呼び出し順で描画されてしまいます。
何か根本的な間違いをしているのでしょうが原因がわかりません。
他のソースにある座標変換済み頂点(RHW)で試したところ、
DrawPrimitiveUPではきちんとZ値を意識して描画できているので、
D3Dデバイスの初期化や設定に間違いは無さそうなのですが。
当方環境
・DirectX SDK(August 2008)
・VS2005
0785773
2011/02/01(火) 13:10:17directSoundでセカンドバッファを最初につくりまくって再生するのと、
再生するたびにセカンドバッファを破棄して作り直すのはどっちがいいんですか?
0786デフォルトの名無しさん
2011/02/01(火) 14:38:49最初に作りまくったほうがいいんじゃね?
あんまりでかいwavをリアルタイム処理中に読み込むとちょっと時間かかるからゲーム止まるかもよ
0787デフォルトの名無しさん
2011/02/01(火) 14:40:33用途によって違うかもしんない・・・
一覧でファイル名出してクリックしたらBGM再生なんて場合は
一覧のファイル全読み込みしたらさすがに製作者に殺意がわくかもしれん
0788デフォルトの名無しさん
2011/02/01(火) 15:43:33デプスバッファかレンダーステートのどちらかの設定がおかしい。
ソース一式どっかに上げて見せてもらわないと原因は特定できない。
それと、最初は分かりにくいけど、そういうバグの原因を調べるには便利だから PIX for Windows を使ってみろ。
0789デフォルトの名無しさん
2011/02/01(火) 16:01:39そこのサイトのコードに問題がある。
>D3DXMatrixPerspectiveFovLH(&matProj, D3DXToRadian(60.0f), 1.0f, 0.0f, 1.0f);
後ろから2番目の引数は0にしてはいけない。
ここを0にすると、すべてのZ値が同じになってしまう。
0790デフォルトの名無しさん
2011/02/01(火) 16:02:35どのみち同時に鳴らしたい音の最大数が決まってるなら選択の余地はないでしょ
一応確認するけどDuplicateSoundBufferでメモリ自体は共有できるのは知ってる?
0793デフォルトの名無しさん
2011/02/01(火) 19:43:11ありがとうございます。
下記のようにすることでZバッファが効くようになり
問題なく描画できるようになりました。
D3DXMatrixPerspectiveFovLH(&matProj, D3DXToRadian(60.0f), 1.0f, 1.0f, 100.0f);
過去ログにも同じ質問がありました…失礼しました。
0794デフォルトの名無しさん
2011/02/02(水) 12:28:00SDKのサンプルで動きのあるやつ(例えばText3D)のウィンドウで、タイトルバーをクリックしている状態
だと描画が停止してしまいますよね?
それどころかクリックをやめると停止してたところからそのまま再開することを見ると、メインループ自体が
停止している気がするんですが、これを動作し続けるようにするにはどうしたらいいんでしょうか?
0795デフォルトの名無しさん
2011/02/02(水) 14:07:080796デフォルトの名無しさん
2011/02/02(水) 17:26:45http://homepage2.nifty.com/natupaji/DxLib/
こっからね。
Ponってゲーム
で俺がそのゲームのCGの球があるんだけど
その球に星印をペイントで加えてゲームやったら
何かペイントのときだけでてくるその球の黒い、
バックグラウンドまで一緒に出てきたんだけど・・・
どうしよう・・・
0798デフォルトの名無しさん
2011/02/02(水) 17:38:56α!α!!
0799デフォルトの名無しさん
2011/02/02(水) 17:49:58どういうことでしょうか?
0800デフォルトの名無しさん
2011/02/02(水) 18:11:13α値だよ言わせんな恥ずかしいおまえさんにはDirectXはまだ早い
っていうかDXライブラリのスレ行けよ
ttp://hibari.2ch.net/test/read.cgi/gamedev/1286180687/
>>797
メッセージループでググったりしろ
0801デフォルトの名無しさん
2011/02/02(水) 18:37:52DirectSoundでエフェクト処理したいんですけど、サンプルみたいなの教えて。
0802デフォルトの名無しさん
2011/02/02(水) 19:45:59拡張子がアプリケーションと関連づけられていないため、関連付けを行いたいのですが、どのexeに関連付ければいいのかよくわかりません。
0803デフォルトの名無しさん
2011/02/02(水) 20:37:52DirectX SDK(June 2010)にはビューワはついてないぞ
0804デフォルトの名無しさん
2011/02/02(水) 22:50:41DirectX11で
・板ポリに絵を貼っつけて表示
・同じ絵を画面に複数表示
までは出来たのですが、
違うテクスチャを描画する方法が分かりません
〜に〜したあと〜しろ 程度でいいのでアドバイス頂けませんか?
0805804
2011/02/02(水) 22:51:340806デフォルトの名無しさん
2011/02/02(水) 23:01:03何が疑問なのかさっぱり分からん。
0807デフォルトの名無しさん
2011/02/02(水) 23:21:13根本的に理解していなかったようです...
0808794
2011/02/03(木) 02:34:28ありがとうございます。
すみません、言葉足らずでした。
恐らくメッセージループをどうかすればいいのかはわかっています。
詳しく言うと、(サンプルは分かりませんが自分のプログラムで)メッセージが来ていようが来ていなかろうが毎フレーム描画し続けるようにプログラムを組み、
WM_DESTROY以外はDefwindowprocに任せているのに何故うまくいかないのかが知りたいのです。
DirectX固有の問題ではないかもしれませんが、恐らくDirectXを使うとき一般に出会う問題だと思ったので質問しました。
0809デフォルトの名無しさん
2011/02/03(木) 02:59:51自分がやりたい事が、Windowsアプリの作法から外れることを理解してる?
で、DirectXはWindowsのSDKだよね?
問題なんかじゃ無いでしょ、貴方が勝手におかしな事をやりたがってるだけ
それを理解できたなら
メッセージ、キュー
PeekMessage(), TranslateMessage(), DispatchMessage()を調べてみな
メッセージ無視で描画をするようになったら、他がどうなるかも体験するといいよ
因みに、普通はフルスクリーンと言う手を使う
と思うけどね
0810デフォルトの名無しさん
2011/02/03(木) 03:45:23単純に描画が6倍増えるんだな
0811808
2011/02/03(木) 04:17:37ありがとうございます。
>自分がやりたい事が、Windowsアプリの作法から外れることを理解してる?
そうなんですか?
私の手元の市販のDirectXを使用しているゲームでいくつか試してみましたがどれも私の期待通りの動作でした。
それからご指摘の関数等についてはMSDNのリファレンスを自分で出来る限り読み込んだ上で質問しています。
もう少し深いヒントをいただけないでしょうか?
0812デフォルトの名無しさん
2011/02/03(木) 07:14:35描画用のスレッドを作って、そこからレンダリングすればいい。
メッセージループ上でやるから止まるんだよ。
0813デフォルトの名無しさん
2011/02/03(木) 08:16:51メッセージングとそのディスパッチによる駆動というOSベンダが提供要求してる、作法の話
その辺理解出来ない人は多分、不慣れで馬鹿なだけ
0814デフォルトの名無しさん
2011/02/03(木) 08:41:40この時点で頭が悪いのがにじみ出ている。
フルスクリーンは今回の件とは何の関係もない。
あまりにも回答者のレベルが低すぎるよ。
0815デフォルトの名無しさん
2011/02/03(木) 08:48:43Windows3系統でそれでは不便だから、9x以降マルチスレッドが使えるようになったんだろう。
解決策はきっちりOSベンダが提供しているんだが、作法云々ってあまりにも無能すぎるぞ。
0816デフォルトの名無しさん
2011/02/03(木) 09:15:46作法がどうのとか変なこと喚いてる子がいるのか
0817デフォルトの名無しさん
2011/02/03(木) 09:20:171フレームにAだけ動いて欲しいのに、描画と移動のタイミングが合わないのか
途中で1フレーム程度描画が止まってしまいます
描画スレッドとMoveスレッドのタイミングがズレているのが原因だと思うのですが、
どうすればスムーズにできるでしょう?
0818デフォルトの名無しさん
2011/02/03(木) 09:25:10俺は >>813 だけど作法って文脈について補足しただけ
解決方の話ならそれでいんじゃね
0819808
2011/02/03(木) 11:00:31ありがとうございます。
試してみたら確かに期待通りの動作をしてくれました。
ただ、データの同期がめんどうすぎるのでスレッド使わない方法もありませんか?
別スレッドだと動くことから何らかのメッセージをDefwindowprocに渡さなければできそうな気がするのですが。
(DirectXでゲーム作るなら避けて通れない問題のはずなのに解説サイトがなかなかないです)
0820デフォルトの名無しさん
2011/02/03(木) 12:56:060821デフォルトの名無しさん
2011/02/03(木) 13:21:350822デフォルトの名無しさん
2011/02/03(木) 13:50:56描画スレッドより簡単な方法はない。
DefWindowProcがWM_NCLBUTTONDOWN(こんぐらい調べろ!)でブロックするのはWindowsの仕様。
スレッドよりNC系メッセージを自前で実装する方が楽だと思うなら好きにすればいい。
0823808
2011/02/03(木) 14:32:30>DefWindowProcがWM_NCLBUTTONDOWN(こんぐらい調べろ!)でブロックするのはWindowsの仕様。
なるほど。
確かにこれじゃどうしようもなさそうですね。そしてプログラムの挙動に納得がいきました。
あきらめてスレッド使うことにします。
大感謝です。
0824802
2011/02/03(木) 15:03:35フリーでお勧めのビューワとかありますか?
DXUTのサンプルのxファイルを見たりしたいのですが。
0825デフォルトの名無しさん
2011/02/03(木) 15:37:15自分で作る
0826デフォルトの名無しさん
2011/02/03(木) 15:45:57mutexとか使ってスレッドの同期をとるか、描画と移動を同じスレッドで処理する。
重たい処理をしない限り、描画と移動を別スレッドにする必要ないと思うが。
0827デフォルトの名無しさん
2011/02/03(木) 15:56:37SetTimerして、WM_TIMERのプロシージャから描画処理呼べば、
シングルスレッドでもタイトルバーをクリックしてる最中に動かせるよ。
0828826
2011/02/03(木) 16:10:22あと追加だが、スレッド間でデータを共有するときは慎重にやらないといけない
例えばグローバル変数の座標を移動スレッドで更新しても、描画スレッドに反映されないことがある
詳しくはvolatile変数とかで調べてくれ
0829デフォルトの名無しさん
2011/02/03(木) 19:47:49それともスレッドの数は最小限に納めた方がいいのかな?
0830デフォルトの名無しさん
2011/02/03(木) 21:08:23グローバル変数にvolatileを付けなくてもスレッドセーブでコンパイルされるので書く必要はない。
つまりグローバル変数にvolatileを付けろと言うのはただの知ったか。
0831デフォルトの名無しさん
2011/02/03(木) 21:11:590832デフォルトの名無しさん
2011/02/03(木) 21:12:37おいおい
0833デフォルトの名無しさん
2011/02/03(木) 21:14:550834デフォルトの名無しさん
2011/02/03(木) 21:15:230835デフォルトの名無しさん
2011/02/03(木) 21:20:54//win32に用意された関数を使う場合 --------------------------------
CRITICAL_SECTION so;
スレッドとして処理したい関数() {
EnterCriticalSection(&so);
//同期的に触れる処理はここで
LeaveCriticalSection(&so);
}
// boostを使う場合 --------------------------------
typedef boost::mutex::scoped_lock lock;
boost::mutex mtx;
スレッドとして処理したい関数() {
lock l(mtx);
//同期的に触れる処理はここで
}
0836デフォルトの名無しさん
2011/02/03(木) 21:25:37同期が必要なデータはmutexなりで保護しないと意味はないし、
保護されているならvolatileを書く必要性はない。
0837デフォルトの名無しさん
2011/02/03(木) 22:11:26メモリの READ WRITE のタイミングによる、いわゆる H側とL側が違うタイミングで更新されないように、
だとか構造体の要素などの更新タイミングがズレないようにだとか。 ロック処理するなら、いらないだけであって、
実はいらない、じゃない。 なんか混同してる人間多すぎないか。 てかここDirectXの初心者スレだからわかってないのか
0838デフォルトの名無しさん
2011/02/04(金) 00:12:10たとえば512x512のうちの0,0から64,64までとか
0839デフォルトの名無しさん
2011/02/04(金) 00:35:170840デフォルトの名無しさん
2011/02/04(金) 00:44:500841デフォルトの名無しさん
2011/02/04(金) 07:17:28グローバル変数にvolatileを付ける話をし出した馬鹿がいたからだろう。
別スレッドから参照されるのを考慮して、最初から最適化に巻き込まないようになっており、
付けても付けなくても生成されるコードに変化がないのに。
コンパイラの動作を全く理解していない。
0842デフォルトの名無しさん
2011/02/04(金) 10:59:360843デフォルトの名無しさん
2011/02/04(金) 12:27:47グローバル変数使わないけど・・・
0844デフォルトの名無しさん
2011/02/04(金) 12:35:32指定フォーマットがサポートされていたりいなかったりしますが
どんな環境でもサポートが保証されているフォーマットってありますか?
0845デフォルトの名無しさん
2011/02/04(金) 12:50:170846840
2011/02/04(金) 20:08:310847デフォルトの名無しさん
2011/02/04(金) 21:25:38テクスチャ座標は頂点座標といっしょに渡してるの?
0848デフォルトの名無しさん
2011/02/04(金) 21:31:030849デフォルトの名無しさん
2011/02/04(金) 22:51:08想定してるプログラムは、World of Warcraft や リネージュ2といったMMORPGです。
0850デフォルトの名無しさん
2011/02/04(金) 23:16:430851デフォルトの名無しさん
2011/02/05(土) 00:40:02多少カスタマイズしないと使いにくい部分はあるけどソース全部ついてるから問題なし
ただしDXUTはあくまでフレームワークであってゲームエンジンではないので
UT使ったからといってゲーム作りが楽になるわけではない
0852デフォルトの名無しさん
2011/02/05(土) 02:58:00ID3D11DeviceContext::DrawInstancedで今詰まっています。
一つのオブジェクトデータ(頂点群-テクスチャ)を使って複数オブジェクトの描画を行うものだと思うのですが、
そのまま使っただけだと表示は変わらないため、おそらく同一座標に複数回描画するだけになってると思われます。
描画座標を変えて複数オブジェクトを描画するにはどうしたらいいのでしょうか?
頂点シェーダあたりが怪しい気はするのですが・・。
0853デフォルトの名無しさん
2011/02/05(土) 10:31:48ChangeDisplaySettingでフルスクルーンとウインドウの切換を出来るようにしたのですが、
ウインドウに戻したとき、常に最前列になってしまいます。どのようにすればよいでしょうか。
念のためHWND_NOTOPMOSTを入れてもダメでした。
SetWindowLong(hWnd,GWL_STYLE,WS_POPUP|WS_VISIBLE);
SetWindowPos( hWnd, HWND_NOTOPMOST, 0, 0, 0, 0, (SWP_SHOWWINDOW|SWP_NOMOVE|SWP_NOSIZE) );
0854デフォルトの名無しさん
2011/02/05(土) 10:56:190855デフォルトの名無しさん
2011/02/05(土) 11:25:23サンクスです。
原因がわかりました。
画面を作り直す際に、WindowsのバグでTopMostを付けられてしまったので、
1秒ぐらい時間をおいてからNOTOPMOSTを行うことでした。
ありがとうございます。
0856デフォルトの名無しさん
2011/02/05(土) 14:24:14最初にCreateWindowするとき何指定してる?
0857デフォルトの名無しさん
2011/02/05(土) 14:58:12もう見たかもしれんが
Instancing10 サンプルとか参考になるんでは?
SV_InstanceIDを使って定数バッファを切り替えながらインスタンスを描画ということだろう
0858デフォルトの名無しさん
2011/02/06(日) 03:14:03ついでに聞きたんですがウインドウからフルスクリーンにするとき別のモニターに表示されてるウインドウが横にずれるんだけど
原因わかりますか?
0861デフォルトの名無しさん
2011/02/06(日) 22:32:55モニターが変わるとずれるなら、モニターの調整位置がずれてる
0862デフォルトの名無しさん
2011/02/08(火) 02:48:11書いてないんですが。
他のコンポーネントはほとんど代替物書いてあるのに。
みんな何使ってるんですか?
0863862
2011/02/08(火) 03:20:50要するにDirectShowはゲームには大げさだから普通のAPI使えってことらしいけど、違う人の付け加えではVMR9(DShowの一部)は
DirectXのサーフェス描画に適してるってあるし、どうしろってことなんだ。
0864デフォルトの名無しさん
2011/02/08(火) 03:41:060865デフォルトの名無しさん
2011/02/08(火) 03:47:28現状GPUにスムーズに動画流すとなるとVMR9が現実的だし
Media Foundation+EVRとかあって性能特化してるけど
まとにも使うにゃ条件厳しすぎる
0866デフォルトの名無しさん
2011/02/08(火) 04:29:23メソッド( コピー元, RECT, コピー先, 色, コピー方法)
こんな感じだったと思います。教えてください!
0867デフォルトの名無しさん
2011/02/08(火) 05:10:03UpdateSurface
StretchRect
ColorFill
D3DXFill***
0868デフォルトの名無しさん
2011/02/08(火) 06:03:49オイラー角で回転させてもロールピッチヨーで回転させても、直感的でない動きをします。
(前を向いてる時と横を向いてる時で、視点を傾げるキーと上下を見るキーが変わったりとか)
これでだいぶ悩んでいるんですが、解説されているサイトなどをあんまり見ないので、
もしかしてカメラを直感的に動かす為のヘルパー関数みたいなものがあったりするんでしょうか?
0869デフォルトの名無しさん
2011/02/08(火) 06:26:38そんな関数ねぇよw
直感的とかわかんねーよ
ちょっと有名ゲームでも挙げて
これと同じようにしたいって質問したほうがまだわかりやすい
0870デフォルトの名無しさん
2011/02/08(火) 23:40:01関数っていうかクラスがDXUTcamera.hとDXUTcamera.cppに
その二つをひっぱってくればUTベースのアプリじゃなくても使える
0871デフォルトの名無しさん
2011/02/09(水) 00:55:240872デフォルトの名無しさん
2011/02/09(水) 03:36:400873デフォルトの名無しさん
2011/02/09(水) 13:17:030874デフォルトの名無しさん
2011/02/09(水) 20:45:08>>871はHDCではなくHWNDのことを言ってるんだよね?
0875デフォルトの名無しさん
2011/02/09(水) 20:48:36ありがとうございます
フォーカスはアダプタ番号指定しているのでいらないと思いました
>>874
そうです。
0876デフォルトの名無しさん
2011/02/10(木) 00:51:190877デフォルトの名無しさん
2011/02/10(木) 01:06:29よくよく考えてみればウインドウハンドルがないとウインドウズが管理できませんよね。。。
失礼しました。
0878デフォルトの名無しさん
2011/02/10(木) 04:24:040879デフォルトの名無しさん
2011/02/10(木) 07:27:53いまは推奨されていないみたい
0880デフォルトの名無しさん
2011/02/11(金) 02:28:48「デバイスを2つ以上使う場合ってあるんだろうか」と気になっただけなのですが・・・
0881デフォルトの名無しさん
2011/02/11(金) 03:39:44それ用のコードを書かないといけないような仕組みだったら、
過去のゲームに対応したりできないだろう。
0882880
2011/02/11(金) 07:24:10複数のVGAに別々のモニタをつないでそれぞれ別々に処理する場合以外
(・・・できるのか??)ありえなさそうですね。ありがとうございました
0883デフォルトの名無しさん
2011/02/11(金) 21:05:28D3DXMatrixIdentity( &rot ); D3DXMatrixIdentity( &tra ); D3DXMatrixIdentity( &sca );
D3DXMatrixTranslation( &tra, 0, 0, 0 );
D3DXMatrixRotationYawPitchRoll( &rot, D3DX_PI * 0.5, 0, 0 );
D3DXMatrixScaling(&sca, 0, 0, 0 );
mat = rot * tra * sca;
---エフェクト---
pos = mul( mat, ビュー );
pos = mul( pos, プロジェクション );
return mul( In.Pos, pos );
これで正確な位置に表示されません。例えばtraのx座標を増やしても斜め奥に移動してしまいます。
どこに問題がありますか?ちなみにカメラはz軸-から正面を見て設置しています。
0884デフォルトの名無しさん
2011/02/11(金) 21:12:180885デフォルトの名無しさん
2011/02/11(金) 21:35:16mat = sca* rot * tra;
にしようぜ
0886デフォルトの名無しさん
2011/02/11(金) 21:51:14>>883のソースのスケーリングは
D3DXMatrixScaling(&sca, 1, 1, 1 );の間違いです
0887デフォルトの名無しさん
2011/02/11(金) 23:32:49これをエフェクトに渡してるなら、エフェクト側では
return mul(In.Pos, mat); // matは↑の渡されたやつ
の1行でいけるはずなんだけど
0888デフォルトの名無しさん
2011/02/11(金) 23:37:32883で合ってるね。posって名前おかしいけど
0889デフォルトの名無しさん
2011/02/11(金) 23:38:040890デフォルトの名無しさん
2011/02/11(金) 23:52:07matの行列の中身を書いてみなよ
それで少なくともワールド変換以前で間違ってるのか
それ以降で何かおかしいのかは分かるから
0891デフォルトの名無しさん
2011/02/11(金) 23:54:340892デフォルトの名無しさん
2011/02/12(土) 00:26:37-z方向に向いています。重心も真ん中にあります。
tiny.xでやっても同じ挙動なのでモデルの不具合は考えにくいと思います。
http://www.dotup.org/uploda/www.dotup.org1339073.png
右がx軸方向に1.0動かしました
0893デフォルトの名無しさん
2011/02/12(土) 00:40:100894デフォルトの名無しさん
2011/02/12(土) 00:47:390895デフォルトの名無しさん
2011/02/12(土) 01:17:11これ嘘書いてない?
>>892見るとヨーじゃなくてピッチ軸で回転してる気がするんだけど・・・
0896デフォルトの名無しさん
2011/02/12(土) 11:14:40この分じゃ全然関係ないところでもミスしてそうだな
0897デフォルトの名無しさん
2011/02/12(土) 20:22:02DirectXではAPIを呼ぶことでGPUを動かしてますが、効率よく処理したいので、GPUがどのように動くのか知りたいです。
例えば、描画コマンドの発行やリソース管理、メモリアクセス等です。
同じような情報でも、頂点ストリームに含めたほうがイイのか、テクスチャとして与えたほうがイイのか等を
判断できるようになりたいです。
また、DirectX9から10への移行で大きく変わったという話もありますが、
このあたりの具体的な内容も知りたいです。
ttp://journal.mycom.co.jp/column/architecture/index.html
CPUだと、こういう詳細解説のコラムがありますが、
これのGPU版みたいなのがあるとうれしいです。
よろしくお願いします。
0898デフォルトの名無しさん
2011/02/13(日) 01:17:53本に書かれた瞬間から情報が古くなってしまう気がする
0899デフォルトの名無しさん
2011/02/13(日) 01:37:360900883
2011/02/13(日) 10:32:38ボーンによる頂点ブレンデリングは投影変換後にやるものなのですか?
0901デフォルトの名無しさん
2011/02/13(日) 10:39:10スキニングの仕組みからわかってねーじゃねーか!
0902デフォルトの名無しさん
2011/02/13(日) 11:31:21○頂点ブレンドのing
0903883
2011/02/13(日) 12:43:33頂点ブレンドと投影変換の手順だけでも教えてください
0904デフォルトの名無しさん
2011/02/13(日) 14:58:48IMediaControlのGetStateのWaitってどの程度いれればいいのでしょうか?
0906デフォルトの名無しさん
2011/02/13(日) 18:47:26やだよ
お前見込みねーもん
お前なんかにスキニングを理解するなんてムリムリムリムリかたつむりよ
そもそも普通のワールド座標からスクリーン座標に変換するまでの流れ知ってるのかよ?
ちょっと書いてみろ
0907デフォルトの名無しさん
2011/02/13(日) 19:22:14とーんちーんかーんちーん一休さーんのヤツかおまえ。
答える気がないなら黙ってろよw
0908デフォルトの名無しさん
2011/02/13(日) 22:08:580909デフォルトの名無しさん
2011/02/13(日) 22:20:480910デフォルトの名無しさん
2011/02/13(日) 22:32:56多分 「DirectXの初心者」 じゃなくて 「3DCG処理の初心者」 にしか見えないから
上で言われてるんだと思うので、その嫌味は嫌味にならない
0911デフォルトの名無しさん
2011/02/13(日) 22:36:23礼儀の勉強から始めた方がいい
0912デフォルトの名無しさん
2011/02/14(月) 08:03:10実は別のところに問題がありそうな予感
0913デフォルトの名無しさん
2011/02/14(月) 09:45:40処理自体の初心者や計算の意味の初心者、あと言語そのものの初心者まで舞い込んでくるスレ
そしてそれらの初心者の多くは、自分が何がわかってないのかすら、わかってない場合があったり
0914デフォルトの名無しさん
2011/02/15(火) 00:29:13みなさん、どんな形式を使っておられますか or オススメですか??
0915デフォルトの名無しさん
2011/02/15(火) 00:48:42有名どころだとFBXだろうけど意外と超えなきゃいけない壁が多すぎなので
自分で適当なフォーマット作った方が良いよ
0916914
2011/02/15(火) 00:51:47やはりそうですか・・・
自分で作ると、勉強になるし、独自情報を組み込んだりしやすいし、最適化し易いしと、
いいことが多いので、ここいらでいっちょやってみます!!
ありがとうございました!
0917デフォルトの名無しさん
2011/02/15(火) 01:48:13Load/Save IOと構造体データクラスと、あとそれを受け取って時間軸で動かすモジュールなら
個人的にライブラリ化した
0918デフォルトの名無しさん
2011/02/15(火) 12:11:00不要な情報が多すぎる/必要な情報が少なすぎるローカルフォーマットをお勧めされましても…
0919デフォルトの名無しさん
2011/02/15(火) 12:58:180920デフォルトの名無しさん
2011/02/15(火) 13:07:36FBXのアニメーションは絶対座標で出力されてるので使い物にならない
改善されねぇかなアレ
0921デフォルトの名無しさん
2011/02/15(火) 14:06:540922デフォルトの名無しさん
2011/02/15(火) 18:32:21音階とか音色は望みどおり鳴ったんですけど、バッファの末尾から頭に戻る一瞬途切れるんです。
バッファ量を長くしても短くしても、必ずループの瞬間に途切れます。
どうやって回避したらいいんですか?
ストリームするにはバッファをループ再生させて、再生にかぶらない部分を書き換えるだけですよね?
流れは合ってるつもりなんですが、バッファが1秒なら1秒毎、バッファが2秒なら2秒毎に規則的に無音が入ります。
公式リファレンスを見たら「ループ再生は巻きもどす処理に時間がかかるので不向き」みたく書いてありますし
なのに「ストリームで途切れなく再生させるにはループ再生をONにしてください」とも書いてあります。
他人が作ったゲームでは大丈夫なので作り方の問題だと思うんですけど、
上の流れをくんでも直らないのは、何が悪いのかわからないんで教えてください。
0923デフォルトの名無しさん
2011/02/15(火) 18:52:350924デフォルトの名無しさん
2011/02/15(火) 18:53:330925デフォルトの名無しさん
2011/02/15(火) 18:54:570926デフォルトの名無しさん
2011/02/15(火) 19:02:39わからないならだまってろよ ヘボ
0927デフォルトの名無しさん
2011/02/15(火) 19:05:48どう考えてもトレースしながら攻めていくしかない場面で質問されてもよw
やり方としては正常に動いてるサンプルがあるなら自分のと
両方同時に動かしてデバッグトレースしてみたらどうだ?
0928デフォルトの名無しさん
2011/02/15(火) 19:08:04おまえが一番いらない子な件
0929デフォルトの名無しさん
2011/02/15(火) 19:13:02>>923=>>927=>>928でありコイツが一番いらない子なのは間違いない。
0930デフォルトの名無しさん
2011/02/15(火) 19:13:57最後のフレームの尻尾はちゃんと埋めてるのかねー。
バッファの半分位でソースが途切れたらちゃんと残り半分をループ頭で埋めてる?
0931デフォルトの名無しさん
2011/02/15(火) 19:14:03WCHAR wstrFileName[MAX_PATH] = {0};
LPCTSTR _lstr = _src;
MultiByteToWideChar(CP_ACP, 0, _lstr, -1, wstrFileName, MAX_PATH);
if( FAILED( this->_pMediaControl->RenderFile(wstrFileName)))
{
return -1;
}
というかんじでMediaControlにファイルをロードしているのですが
XPでは上手くいくのですが、7(x64)ではエラーになります。
原因が分からず困っています。
分かる方がいましたら、教えていただけないでしょうか?
0932デフォルトの名無しさん
2011/02/15(火) 19:24:26そんな短気でこの仕事続けるのは無理じゃね?
0933デフォルトの名無しさん
2011/02/15(火) 19:29:24>LPCTSTR _lstr = _src;
LPCSTRの間違いでは?
エラーってのがコンパイルエラーなら、
おそらく_srcがxpではCHARで7ではWCHARになってると思われ
0934デフォルトの名無しさん
2011/02/15(火) 19:33:33御返事ありがとうございます。
コンパイルは通るのですがXPではサウンドが流れているのにもかかわらずに
7のほうでは、流れないので、 FAILEDでエラーがでた場合にはMessageBoxを表示するようにしたら表示されたので
ロードの問題だとおもうのですが
あと書き忘れてしまいましたが、プロジェクトの設定はマルチバイト文字を使用にしています。
とりあえず、↑のようになおしてやってみます
0935デフォルトの名無しさん
2011/02/15(火) 19:48:11LPCSTRに直してみてやってみたのですが、やはり再生がされません。
0936デフォルトの名無しさん
2011/02/15(火) 19:58:55ファイル読み込みじゃなくて自作波形なので、当然ヘッダは含んでないです。
>>925
既知のバグかなにかでDirectSoundでは常に起こるってことですか?
個人的に解決しないまま投げ捨てて、なんとなく乗り換えるってやり方が好きじゃないんで。
>>930
データ量が不足して無音部分がある、と言うのでしたらそれは一切ありません。
試験的にバッファをあらかじめ波形データを満たしてから鳴らしても、2〜3ms程度の無音が挿入されます。
なぜか440Hz、880Hzとかの基本音に限り、途切れは一切はないんです。
0937デフォルトの名無しさん
2011/02/15(火) 20:42:53それは興味深い現象だなぁ、ソースを晒す勇気はないですかね
0938デフォルトの名無しさん
2011/02/15(火) 21:08:40波形がちゃんと満たされてるなら、波形の急激な変化によってギャップを聞き手が感じてるって感じにならんかなー?
うまいことMIXしたらどうだろう??
0939デフォルトの名無しさん
2011/02/15(火) 21:15:25だったらさっさとトレースでもしろよ
0940デフォルトの名無しさん
2011/02/15(火) 21:21:08波形の周波数によってはバッファにキレイに収まらないから、末尾の半端な山の部分が
頭に戻って形状がリセットされた時に無音に感じる、という事でしょうか?
でもそれだと無音というよりプチノイズが出る気がしますが・・・
とはいえアドバイスはありがとうございます。
波形の合成はなんとか考えてやってみるようにします・・・が
みんなそうやって波形のつなぎ目のタイミングを高度に考慮してストリームをやってるんでしょうか?
ネット見る限り、イベンで通過信号受け取ったりタイマーで書き込んだりする程度のことに思えたんですが。
もっと簡単に出来ると考えていたので肩透かしをくらった気分です。
0941デフォルトの名無しさん
2011/02/15(火) 21:23:47うまくいってるソースなんて知りません。他人のゲームは大丈夫ってだけです。
他人の作ったオープンソースなんて持ってませんから。
1つだけありますけど、セカンダリバッファを使わずにプライマリバッファ使ってたので参考にしてません。
0942デフォルトの名無しさん
2011/02/15(火) 21:34:33google「DirectSound ストリーミング再生」あたりで調べてみればいいんじゃね?
こんな感じでやってくしかないんじゃね?
http://marupeke296.com/cgi-bin/cbbs/cbbs.cgi?mode=res&namber=2954&page=10&no=0&P=R
0943デフォルトの名無しさん
2011/02/15(火) 21:53:26そのワードもそのサイトもさんざん見ましたw
みんなプチノイズの話がメインで、無音についてはヘッダの読み間違いとか、データサイズ間違い、
メモリスワップが発生しているとか、フォーマットがおかしいんじゃないかとか・・・
上のほうで誰か言ってくれた事象と解決法ばっかりしか見つからないんです。
ソースを晒す勇気はありませんが、コード的におかしい事はしてない自信はあるんです。
こんだけ探して見つからないってことは、自分のサウンドカードだけの固有バグなのかとも・・・
DirectSoundはカードによっては不具合だらけとも見つかったので。
Vista以降はHALが廃止されたから他のAPIを推奨とも確かに書いてあるし
まあとりあえず波形の合成に工夫がいる、との方法を信じてやっていきます。時間がかかりますが。
だからこのハナシは忘れてください。作ってみてダメだったらまた来ます。
失礼しました。
0945デフォルトの名無しさん
2011/02/15(火) 23:28:42意味わかんね
再生時のデータを全部ファイルで吐き出してみるとかしたらいいんじゃないの?
っていってるんだけど
0946デフォルトの名無しさん
2011/02/16(水) 01:49:30解決しました。
えっとファイルで出力してというか、PC上で録音して波形の確認をしたら、やはり無音になっていたのですが
矩形波なのにその前後で波形が小さく丸くなっていたことから、何かでフィルタされてると考えて
PCの設定を見直したら、デバイス側で自動ノイズフィルタがかかっていました。
それをOFFにして、再度聴いてみたらノイズが走っていました・・・
やはり繋ぎ目の波形の整合がとれていませんでした。
それがノイズになって、うちのカードが律儀にフィルタリングして無音になってただけでした。
んで基本音の場合はたまたま波形の形状がバッファサイズぴったりで継ぎ目の整合がとれていたので
フィルタされずにキレイに鳴ってたみたいです。いろいろすいませんでした。
0947デフォルトの名無しさん
2011/02/16(水) 11:57:51よく調べると、HLSLエフェクトファイルを読み込むときにヒープ領域が...というメッセージでブレークポイントが作られていました。
D3DCREATE_HARDWARE_VERTEXPROCESSINGだと問題ありません。どうしてでしょう?
0948デフォルトの名無しさん
2011/02/16(水) 14:12:04HARD+HARD → HARD+SOFT → SOFT+SOFT の順番でエラーキャッチして作成し
全て失敗したらエラーメッセージを出す処理を行うのが一般的。
ウィンドウがすぐ閉じるのは強制終了されているから。自分で正しくエラーメッセージ処理しないとそうなる。
0949デフォルトの名無しさん
2011/02/16(水) 21:14:48今回スケルトンとして(SOFTWAREで)まとめた後に、どれくらいの負荷がかかるのかテストしてみようとHARDWAREからSOFTWAREに切り替えたら動かなくなりました。
0950949
2011/02/16(水) 21:16:02○ 今回スケルトンとして(HARDWAREで)まとめた後に
0951デフォルトの名無しさん
2011/02/16(水) 22:14:39メソッドの戻り値をちゃんと調べてるのかどうか
その文面からは判断できないわ
0952デフォルトの名無しさん
2011/02/16(水) 22:24:30その下の行で「この行まで実行」でエフェクトファイルの読み込みで止まります。
そこまでのプロセスは全て正常な戻り値です。
0953デフォルトの名無しさん
2011/02/16(水) 22:34:27デバッグランタイムでも何も言わずしぬの?
0954デフォルトの名無しさん
2011/02/16(水) 23:18:06デバッグでやってます。
0955デフォルトの名無しさん
2011/02/16(水) 23:23:49これは大丈夫?
0956デフォルトの名無しさん
2011/02/16(水) 23:39:51D3DXVec3Unprojectの結果の第一引数をレイにして、D3DXIntersectで距離やHitポリゴンの頂点から計算できないかと
あれこれやってるのですが、上手く行かない上に意味がよく解らず・・。
SDKやWeb上に、このサンプルって有ったりするでしょうか? ※DirectX9です
0957デフォルトの名無しさん
2011/02/16(水) 23:55:13ttp://marupeke296.com/DXG_No48_PointGroundInScreen.html
0958デフォルトの名無しさん
2011/02/16(水) 23:55:410959デフォルトの名無しさん
2011/02/17(木) 00:20:15リファレンスモードと勘違いしてるのかな。
HARDWAREはもちろん、SOFTWAREだって全部の機能を持ってるわけじゃないよ?
本来は持っているべきなんだけどメーカ次第だし、そのために混在モードもあるよね。
とりあえず使用する機能がSOFTWAREモードできっちり対応しているか、CAPS見たらいんじゃないかな。
「ヒープ領域が・・・」の続きも知りたいけど、重要なヒントは省略しなくていいと思うよ。
てか、そのメッセージにそのまま答えが書いてあるんじゃないのかな。
0960956
2011/02/17(木) 01:03:16>>958 やはりサンプルが有ったのですね。いじって色々と知識を増やそうと思います。
ありがとうございました。
0961949
2011/02/17(木) 09:23:34タイトルを変えると上手く行ったり行かなかったり・・・原因はよくわかりません。
ちなみに>>955はD3DUSAGE_WRITEONLYでも作動しました。やはりどこかおかしいのでしょうか・・・?
0962デフォルトの名無しさん
2011/02/17(木) 09:42:130963デフォルトの名無しさん
2011/02/17(木) 12:17:33君って虚言癖があるよね。
0964デフォルトの名無しさん
2011/02/17(木) 19:36:35D3DRS_FOGENABLE でフォグを有効にしたら
D3DFVF_XYZRHW で描いてる2Dスプライトが真っ黒になるんですけど
これは仕様ですか?
だとするとスプライト描く時だけ D3DRS_FOGENABLE をFALSEにして
終わったら復元するのが定石という事ですか?
0965964
2011/02/17(木) 19:53:47仕様っぽいですね。
レス消費すまそ。
余談ですが、真っ黒と書きましたが正確にはフォグ色でした。
0966デフォルトの名無しさん
2011/02/17(木) 21:31:44こんなとこで質問する前に、フォグの設定に関係する要素を全部調べるんだ。
D3DFVF_XYZRHWでもフォグは使えるから、そのための設定をちゃんとしないから
そんなことになってるだけだよ。
0967デフォルトの名無しさん
2011/02/17(木) 22:35:280968デフォルトの名無しさん
2011/02/17(木) 22:49:170969デフォルトの名無しさん
2011/02/17(木) 22:53:19ありがとうございます
てっきり他にプロセス動いてるのかと思っていました
0970デフォルトの名無しさん
2011/02/17(木) 22:59:060972デフォルトの名無しさん
2011/02/18(金) 08:12:02モーションを上半身(行動)と下半身(移動)を別々に動かしたいのですが、
これは普通どう実現するものなのでしょうか? ※モーション再生はSDKサンプルの加工品です。
現在「下半身と上半身それぞれに対して、アニメーションのセットとミックス完了後、
それぞれの不要部分のマトリクス更新をカットしあってみよう。」
と思って試行錯誤しているのですが、これは正しいor間違っているでしょうか?
また、何か読めば勉強になりそうな書籍やサイトが有れば教えて頂けますと助かります;
0973デフォルトの名無しさん
2011/02/18(金) 08:17:341つのファイルから複数のインスタンスを生成するでもいいけど
0974972
2011/02/18(金) 08:23:27(゚Д゚) ・・・そんな手が・・。
元が同じモデルで同じモーションで再生時刻が同じなら綺麗にくっ付いて見えるんですよね;
ありがとうございます! orz
0975デフォルトの名無しさん
2011/02/18(金) 08:24:17普通、どう実現するかって言い方があれだけど >>973 も言う方法か、
あるいは予め指定してある頂点のグループ部分だけを動かせるような管理構造で、
単純に自前で持つように俺はしてるってか、全部書いてる
0976972
2011/02/18(金) 08:25:040977デフォルトの名無しさん
2011/02/18(金) 08:28:15当たり前だけど
0978972
2011/02/18(金) 09:24:20ありがとうございます。実現方法は色々有るんですね。頂点変換に至りさえすれば。
>>977
プログラム以前の話でしたね; 綺麗にくっつけるには何かしら頂点を触らないとですし、手間が増えそうですね;
あまり複雑な事をしたい訳でもないですし、
いっそ全て全身モーションで作り、移行タイミングで誤魔化すのも手かな・・と。
色々勉強になりました。 ありがとうございました。
0979デフォルトの名無しさん
2011/02/18(金) 10:39:53http://www.tar.hu/gamealgorithms/ch15lev1sec3.html
0980972
2011/02/19(土) 02:12:58ありがとうございます。そういう手も有るんですね。
そこで、早速その方法に合わせてモデルを分割し、下半身の上に上半身を上に乗せようとしたのですが、
「乗せるボーンの合成済みマトリクス」を取ってきて描画すると
上半身が「形状は綺麗に保ちアニメーションも正常」「ただしやたら離れた位置で、下半身(腰)の回転と同期して大きく振り回されている」
という症状になってしまいました。
何となく、拡大縮小→回転→移動 の順番を間違えた時のような症状にも見えるのですが・・。
乗せる位置のマトリクスをどうにか分解し、順番に合成しなおせば正常になると思えますでしょうか?(分解方法を模索中です;)
0981972
2011/02/19(土) 07:03:54マトリクスの掛け合わせの理解が根本的に間違っている様で。
先にボーンのマトリクスを掛け合わせ、胴の境目の2ボーンの結果で上半身下半身を描画したら、ほぼズレずに上手く行きました。
お騒がせしました;
0982デフォルトの名無しさん
2011/02/19(土) 08:47:25【C++】 DirectX初心者質問スレ Part34 【C】
http://hibari.2ch.net/test/read.cgi/tech/1298067098/
0983デフォルトの名無しさん
2011/02/19(土) 17:38:080984デフォルトの名無しさん
2011/02/19(土) 22:22:48.67レス数が950を超えています。1000を超えると書き込みができなくなります。