【C++】 DirectX初心者質問スレ Part13 【C】
387 :
デフォルトの名無しさん :
2007/07/22(日) 15:38:01 全然詳しくないので質問させてください。 仕事全然できない派遣クンが 「DirectXがプログラムどおりに動かない原因を調べるのは僕の仕事ではありません。」 と言っています。 原因を調べるのは誰の仕事なのでしょうか?
それはオマイの周囲の人間が考えることだ
>>387 フイタw
そんなの職場によるだろ、ここで質問してどうすんだよ
DirectXのサポート受けられる状態?MSとどういう契約になってる?
もしくはDirectXについてサポートしてくれるような企業と契約してるのか?
ベンダの窓口として、その製品を扱うチームか担当者はいないの?
いなきゃ作れ、体制がまずい
少なくとも、DirectXのバグである疑いがあるなら、その先は派遣君の仕事ではないな
派遣を窓口にさせるわけにはいかないだろ
>>387 派遣クンのプログラムのバグなのかどうか調べるのは派遣クンの責任
その派遣クンを1ケ月後に切るか今の契約終了まで使うか決めるのは担当社員の責任
>>387 プログラマの仕事だ
そもそも「派遣」という時点では人間失格だ
「お前にはコンビニのバイトが似合う」と言ってやれ
>>390 >その派遣クンを1ケ月後に切るか今の契約終了まで使うか決めるのは担当社員の責任
ありえねー
うちの会社なら即日辞めてもらうぞ
>>392 即日辞めさせれる契約を結んでいるのかw
>>389 >DirectXのサポート受けられる状態?MSとどういう契約になってる?
>もしくはDirectXについてサポートしてくれるような企業と契約してるのか?
派遣が書いたプログラムが動かないからといってサポートしろと言われましても・・・
まずは御社のプログラムに原因がないことを確認いただいて・・・
395 :
デフォルトの名無しさん :2007/07/22(日) 16:20:00
>>392-393 自社の社員なら「お前の仕事だよ、ボケ!」と叱り飛ばせばいいが、
派遣には契約というものがある。
遅刻欠勤がない限り辞めていただくには最低1ケ月は必要。
Releaseメソッドが返す値が全部0になっていたら Releaseし忘れは無いと考えていいのでしょうか?
派遣プログラマに任せてる点で会社も社員も高が知れてる
>>394 派遣が書いたコードにバグがあるといってる?なんだ、んじゃシラネ
>>398 つーか、普通の対応だろ
問題モジュールが自社のものと特定されていない段階でサポートできるかっての
>>387 具体的にどんな問題が起こってるかによるかな?
DirectX使ってると必ずぶち当たるけどゲームなら問題ないくらいの誤差なんだけど
業務だとラスタの計算でちょっとずれてるのが気に入らないとかそういう話になると
解決できない場合もある
ターゲットとしてDirectXを使う以上しょうがない問題なのかそうでないのか
調べるにも与えられた期間ではどうしようもない場合もある
具体的にどんなことしたん?
デバッガーにプログラミング能力を求めているようなもんか? デバッガーは不具合を見つけるのが仕事であって修正は別だしね。
所詮、派遣だと「言われた通りにコーディングしたけど動きません、調べるのは僕の仕事じゃありません」が関の山だろ それ以上の仕事は入社試験に受かるような正社員でないとできない
ちなみに俺がこういう問題にあたったときは 該当箇所のソースをプリントアウトしてみんなで1行づつレビューしてくれるように頼んでる 2万行ぐらいあっても頑張れば1日でなんとかなるしやってもらったほうがいい あの悪名高い富○通ですらやってくれたから多分どこでもやってくれると思う だからプリントアウトして1行づつなにをやってるかレビューさせたら? 原始的な方法だけどこれが一番確実 ソースの内容がそいつしかわかる奴がいないっていうとちょっときついかな・・・ 前のソースの改変であればDFっていつツールで差分を出せば済む話だし
>>402 それはちょっと短絡的じゃね?
こういう問題は常に説明しにくい微妙な問題が絡んでるときが多いと思われ
まずは相手の話をよく聞いてよく理解することだと思う
>>404 >まずは相手の話をよく聞いてよく理解すること
これはあれだな、つまり
>>402 ってことだな
>>404 派遣の話:僕は言われた通りに作りました。他に何を説明するんですか?
>>406 こういう意図で考えていたんだけど
その通りいってない部分を書き出してくれるかな?
って言えばいいんじゃない?
408 :
デフォルトの名無しさん :2007/07/22(日) 17:50:29
派遣の話:明日から夏休みなので書き出す時間がありません。
>>408 ありがちな話だな
夏休みを返上して解決するまでの責任感もないただシットダウンマネーをもらうだけの派遣
>>408 それは本心じゃないな
残業代の出る派遣にとって休日出勤はかなりの金になる
知らない奴はモグリ
おまえらマ板でやれよ
派遣はマージン搾取業だからな 派遣社員もそれを知ってていい加減に働く。質はバイトより酷い んなもん使ってたら、そんな事態になって当たり前。自業自得
>>410 あまいぜ。
派遣クンは自分の書いたプログラムがまったく動かずニッチもサッチもいかなくなり、
DirectXのせいにして逃げきろうとしてるんだよ。
夏休み明けには正社員が問題を解決してくれてるってわけだ。
そのあとに切られても次の派遣先で同じようなことを繰り返す。
夏休みはたまたまで普通は「体調不良」で3日ほど休むのが派遣クオリティ
あぁ、そうか 製品の問題なのか、自社の問題なのかを切り分ける作業を、派遣がやるべきなのか、どうかって話? この場合、派遣は自分の仕事じゃない、って言ってるんだから、 とりあえず自社で解析チーム作って、原因を特定するべき ヤル気の無いやつに無理やりやらせたって、原因解明が遅くなるだけ 原因特定後、派遣のコードミスによるものなら、何故そのバグが混入されたのか、とかいろいろ突き詰めればいい 設計のミスなのか、派遣のDirectXの理解不足なのか、とか。 それから再発防止の施策をたてりゃいい。派遣をクビにして、雇用基準を見直す、とかさ。 とりあえず原因特定が先よね。
>>415 >とりあえず自社で解析チーム作って、原因を特定するべき
そんな大袈裟な問題とは思えんな
状況から考えて、英語のドキュメントが読めないし、辞書引いてでも読む根性もないから
試行錯誤で適当に作った、でも動かない、僕知ーらっない、
てとこじゃねーのか
派遣にはよくある話だ
>>416 >状況から考えて、英語のドキュメントが読めないし、辞書引いてでも読む根性もないから
でもなんか辻褄があわないんだよね
そもそも派遣が「ボクの仕事じゃない」なんて口にするわけがない
これには派遣というシステムに大きな理由がある
俺も派遣やってるけどさ
納期とか俺の責任じゃないし、基本的に残業代もらえるから残業するの大好きだしで
先の見えない仕事大好きだもん(毎週出勤すると残業代、休日出勤で月収が50万とかいく)
なるべく他の人がよくわからない問題抱え込んだり、自分にしかわからないことをたくさん増やすのは
はっきりいって派遣社員にとってノルマといって過言ではない
その環境で「面倒」とか「できない」とか言う意味がないんだよね
できなくても「できます」、わからなくても「やります」これ派遣では常識
できないことわからないことを深く追求される職場は今のところない
ならどんな仕事でも開口一発「やります」と言う。これ常識だし、こういう返事をするのは外勤先もわかってる(はず?w)
なんで
>>387 は俺的にネタにしか見えない
ポイントは残業代や休日手当てが出るということこれがでるとどんな仕事でも永遠にだらだら伸ばしたほうが得
なるほど 派遣を見下したいがためのネタと思えば自然か
ドキュメントなどを調べること、他人と調整すること、状況を整理することが嫌で 「ボクの仕事じゃない」なんて口にする人はいっぱいいますが
>>419 全部ダラダラ時間かけて残業代アップします
嫌なんていいませんよ
なんたって残業代出ますから
ダラダラ時間かけて最後に「頑張ったけどできませんでした、僕のせいではありません」 か。最悪だなw
>>421 支持出すほうが悪いと思うけどな
少なくともこういう場面で「好きにやっといて」ってほうが頭どうかしてる
とりあえずここまで調べました
ここの部分は不明です
文献や掲示板にもそれらしい情報は調べた範囲ではありませんでした
って報告が限界だろうな
はぁ、 「頑張ったけどできませんでした、僕のせいではありません」 「指示が悪いです」 か、極悪だなw
>>423 直接そうは言わんけど
無理だった報告だけして終了だろうな
その報告を聞いてさらに調査を続けるか
そこで調査を打ち切るかは派遣のできる判断じゃないでしょ?
こういう仕事って勝手にやらせてる限り優劣つけられないと思うんだけど?
カスども マ板でやれ
>>417 のような糞派遣が残業代欲しさにダラダラ時間とシットダウンマネー(座ってりゃ貰える金)を
浪費した挙句、
>>423 のような結論だったらねマジギレだね、お父さん
>>426 調べてみた結果できない・資料が無いってわかるのと
なんも調べてない状態ではやっぱり違うよ
こういうことの違いがわからない人は人を指示できる立場にふさわしくない
シットダウンマネー目的でダラダラ時間を浪費する派遣と 問題解決が目的の人ではやっぱり違うよ こういうことの違いがわからない人は人を指示できる立場にふさわしくない
>>427 >調べてみた結果できない・資料が無いってわかるのと
>なんも調べてない状態ではやっぱり違うよ
実力主義、結果主義って知ってる?
>>429 同じわからないでも
調査した結果を細かく報告する俺と
結果だけしか報告しないアンタと
どっちが評価されるか比べるまでもないだろ?w
>>430 俺はシットダウンマネー目的でダラダラ時間を浪費してわからない、
なんて仕事はしないから。
ちゃんと制限時間を区切って調査するよ、お前みたいな派遣根性が染みついた
シットダウンマネー野郎とは違うのだよ。
調べた結果が他の人に引き渡せる形で残せるなら、断然その方が良い。 ただしベストなのは、調べてる途中で分かりそうになかったら、 そこまでの内容をまとめて、誰かにSOSを出すことだな。 人に頼れない状況なら、相談だけでもする。 それで責任が分散できる。
433 :
派遣クズ野郎 :2007/07/22(日) 20:55:30
調べた結果なんて関係ない、断然残業代もらえる方が良い。 ただしベストなのは、調べてる途中でわけわかんなくなっても、 ダラダラ仕事を続けることだな。 失敗を人のせいにできない状況なら、相談だけでもする。 それで責任が分散できる。
434 :
432 :2007/07/22(日) 21:06:54
>>433 作業工数内で終わらせることは前提で書いてるよ。
工数内で終わらせて、最悪の場合でも
>>432 のようなことは行っておくということ。
435 :
デフォルトの名無しさん :2007/07/22(日) 21:08:45
はあ?
ダラダラ仕事するって
>>420 で書いてるだろ?
氏ねよ、無責任派遣野郎!
436 :
432 :2007/07/22(日) 21:16:31
俺は432が初出だよ。
ここが初心者質問スレとは思えないのですが
おまえら本当スレちがいうざいな
まあ、DirectXの質問は派遣辞めて就職してダラダラしないでしてね、ってこった
>>438 マ板でやれよなぁ。
発端になった奴もいつもマ板から来て派遣ネタで荒らしてるやつだし。
ム板は見てるがマ板は見てないって人が結構居るんじゃまいか 新鮮なネタに見えたんだろう
派遣専用のプログラム板が必要だな
ここもかw派遣派遣って
やたら新着多いなーと思ってみてみたら・・・、
>>387 すげー。
ム版だと派遣クンネタだけで半日で50レスも釣れるのか
派遣がDirectXってゲーム屋さん? 元レスの意図をエスパーすると (環境依存で)DirectXが(テスト環境以外のPCで)プログラムどおりに動かない原因を調べるのは僕の仕事ではありません。 って所じゃね? ゲーム屋以外ならSEが悪い(設計ミス)だし ゲーム屋ならそれぐらいはPGがやる範囲(少なくとも作り始める前に「動作確認が必要な環境を用意してください」ぐらいは言うべき)だよなぁ
いつものコピペと同じネタで釣られている馬鹿が多すぎ。 あまたが悪いにも程がある。
派遣に何も求めているのやら、、、重要な仕事なんか任せちゃ駄目だろ? 派遣には3Kワークをさせるのが普通。 どんな理由であれプロジェクトに支障出るような任務を派遣にやらせたという事実が既に駄目。
製品リリース後の日曜だからソフトを作ってたゲーム開発部の連中は休みだが、 サポート担当者のところへは不具合報告が殺到。けっこう可愛い。その子が サーバー管理やってる俺のところへ泣きついてきた! なんとかしてやらねば! というストーリーだよ。
派遣にDirectXやらせるほうがどうかしてる
>>449 たしかに
ノウハウが巨大過ぎて
人の脳みそにしか蓄積されてないのが現状だよね
ネットでさえ昔あったサイトはもうほとんど閉鎖してるし過去のバージョンは消失
加えてDirectX9はそのうち消える運命(っていつかわからんけど)
踊る各社グラボのサポート状況
という現実がある上にさらに
3Dと3D機能という大きな壁
2Dの機能だけ使うなんて調子のいいことできない
知らないと不具合が出たときに一歩も動けない
プログラミングに対してかなりのベテランであったとしても3Dおよび画像処理に関しては
全くの素人だともう初心者同然、いうまでもなくプライドはずたずたに引き裂かれる
加えて掲示板のガラの悪さw
「はぁ?」「何言ってんの?」「数学勉強してください(核爆w)」「ヘルプも読めねぇのかよw」
「お前もう駄目だなwやめちゃえw」等
なんで誰も近づこうとしないw
PSでは最前線にいた人も時代に付いていけなくなったりしてますか?
付いていくかどうかはその人次第だろ。 何もしなければ置いていかれるだけ。 DXじゃなくGLに移行している人もオオイノヨー
DX9で3Dゲーム作ってます。 質問なのですが、カメラから見える部分しか描画しないようにしたいのですが、 描画しない部分はどのような処理が最適ですか? よろしくお願いします。
視錐台カリングでググれ
>>454 ども。ちなみに頂点シェーダーで、各頂点を判定する事は可能ですか?
範囲外の頂点を見つけてもその頂点をどうすればいいのかわからない・・・
範囲外の頂点見つけたらGPUに送らなきゃいいんだよ。
?
どした。疑問符だけ浮かべててもおにーさん達は力になれないZO
>>450 DirectX○はそのうち消える運命
全てのバージョンに言えることだね
加えて言うなら
>数学勉強してください(核爆w)
引数間違えてるだけの奴にこれ言うやつ多いし
>ヘルプも読めねぇのかよw
このレスが返ってくる場合、たいていはヘルプに載ってない
>お前もう駄目だなwやめちゃえw
これは正解だがな
>>455 ・頂点シェーダでは頂点そのものの破棄はできない。
・仮にできたとしても、例えば三角形の3頂点の1つだけが画面外だとしたら、
それを破棄するわけにはいかない。
・カリングとかをしなくても、画面外のポリゴンではピクセルフィルは発生しない。
・画面外のオブジェクトの、描画自体をスキップすることで
頂点計算等を省略するのが視錐台カリングの狙い。
多分こんなもんかしら。
質問させていただきます。 VC++6.0を使用し、DirectX8で趣味で色々作ってきたのですが、 いつの間にやら時代はDirectX9が主流になってしまいました。 最近、DirectX9で開発したいな・・・ と言う欲が出てきたのですが、 開発環境を9にしても、DirectX8のプログラムをコンパイルできるのでしょうか? 過去作った物も時々弄るので、もしコンパイル出来なくなると・・・ と考えると怖くてなかなか手が出せません。 時代に乗り遅れた為、DirectX8から9へ移行した話などは、検索しても出て来なくて迷っております。 移行された方が居ましたら、経験談や、注意点などを教えてください。 よろしくお願い致します m(_ _)m
うちはDirectX9のSDKの入った環境で、DirectX7のプログラム組んでるよ。 基本的には新しいSDKでも過去のソースは動くはず。
新しいのだと、D3DX8がついてなかったりしなかったっけ?
465 :
462 :2007/07/24(火) 17:44:52
>>463 今、ヘッダファイルの中のぞいてみたら確かに9ではDXは別ものっぽい感じになってた。
せっかくインターフェース分けてるんだから、当然過去のソースは動くんだろうと思ってたんだけど、D3DXは違うのね。
なので、
>>462 は無視してください。
以降といっても型の数字が8から9に変わっただけとか、関数名にExやAを付けたら大丈夫だったとかそんな程度だった記憶が。 使えない関数も当然出てくるけど、1つ1つ調べていったら解決策が出てくる。 DX9に移植するのもいいけど、DX初心者として10を1から学んだほうが今後のことを考えるといいと思う。 移植しないなら過去のものを使う場合、参照の優先度をDX8のライブラリを上げればいいだけの話で。
いまさら時代はDX9というあたり、そういう発想のできる相手ではなかろう。 たぶんテクスチャも256X256を上限にしてるよ。 たとえ自分の対象ユーザーにVooDoo使用者が0人であったとしても。
10なんて対応カードが無い状況で学ぶのは微妙だろ Vistaのみリファレンスラスタライザで動けばいいのならいいけど
少し前のオンボードなら256x256以下の正方形なんて当たり前だゾ しかも2^nじゃないとらめぇえええええええええ
少し前とかいい加減な情報ではなく、具体名を挙げよ。
SDKに入ってるCardCaps.pdfには載ってないな
2のn乗じゃないとだめってのは結構あるが、正方形じゃないとだめなのは かなり古いものしかないよな。 気にする必要ない。
だから古いとかじゃなくて具体名を挙げろよ。 出せないのならいい加減な話を出すな。
少し前の古いアレだよアレ。 な、わかるべ?
脳内にのみ存在するアレだよ。
>>461 8→9は変化が少ないから、移植も楽だよ。
一番変わったのは、シェーダの管理にハンドルを使っていたのが
インターフェースに変わったことと、SetTextureStageStateの一部が
SetSamplerStateに分かれたこと。
D3DXのスプライト機能とかもだいぶ変わったと思うが、俺はまったく
使ってなかったので分からん。
478 :
461 :2007/07/25(水) 14:10:05
461です。
書き込みが遅くなり申し訳有りません。
>>462 様、わざわざヘッダーまで見ていただいてありがとうございました。
>>466 様のご教授のとおり一つ一つ解決して見ようと思います。
>>476 様、難しく考えすぎていたのかと思えるようになりました。
8→9を行った場合、ソースをまったく弄らずに・・・
と言うのは、無理のようですね。
参考になりました。
DirectX10ですが、今、私の使用しているOSが2000ですので、
手を出せるのはまだまだ先になる予定です。
皆様のお陰で、どうにかなる気がしてきました。
どのような結果になっても、よい経験だと思い移行することに決めました。
本当にありがとうございました。m(_ _)m
warota
ぐうの音を出しても仕方がない。
エロゲを除けば、そういう機種を使っている人はゲームを遊ぶ習慣の無い人だってことなのに なんで最低スペックに合わせたがるの?
エロゲだから。
エロゲか同人STG以外のものを作ってる人いる?
会社で作ってるのは非エロ
どんなスペックでもいいから、ものを作るんだ!
>>467 > いまさら時代はDX9というあたり、
10の環境はまだ2%もないし、シェーダ弄くらなきゃ8.1と9は全然かわんないし、普通じゃねえの?
> たぶんテクスチャも256X256を上限にしてるよ。
極端すぎる。電柱を相手にファイティングポーズ取るのはやめとけ。
2D描画で D3DXCreateTextureFromFileInMemoryEx で読み込んだデータを DrawIndexedPrimitiveUP で、描画するルーチンで制作していたのですが、 複数のTextureで構成された絵を拡縮する必要がでてきたので、 どのようにすればいいか悩んでいます。 イメージとしては、シューティングゲームは普通に組めたので、 ボスキャラを拡縮させながら登場させようとしたものの、計算で 調整しながら表示させると微妙にズレがでるケースがあるので、 可能なら一度構成したものを拡縮させたいと思っているのです。 命令などについてヒントが頂けないでしょうか。
よーわからんが、マップチップをそのままチップ毎に拡大したら つなぎ目が目立つって状況け? だったらまずレンダーターゲットで作成したテクスチャに描画して それを拡大するってのでイケるんじゃねぇかな。
>>489 状況はそんな感じです。
レンダーターゲットとか理解しきれてなかったので、いま調べながら勉強中。
どう作るか方向性は見えてきました。 ありがとうございます。
491 :
488 :2007/07/26(木) 18:37:58
できた 悩んでいろいろ調べてる時間が一番長かった。
実は普通じゃね?
実際のコーディングなんて全工程の20%にしかすぎないんだZE?
普通はパーツで作っても気になるほどずれないだろ。 そもそも整数とfloatの変換がまずいことなってんじゃねえの?
3Dの海岸線は困ったな。 綺麗に繋がらないし、フライト物だったので広範囲を描画しないといけないわ、 近づいたらテクスチャが荒いからって大きなのを用意したらVRAMが足りなくなるわで。 もう解決せずに放置してるが。
>>473 具体名を挙げると正方形じゃないと駄目で
さらに256だか512までだかとかいうウンコな制限が付いてたのは
VooDooとかいうグラボだけだった希ガス
もうないしこんなのサポートする意味もないから完全無視でおk
>>495 もやかけて限界まで誤魔化す
当然だろ
誰もみてねぇぞwそんなとこw
ハイご苦労さんw
誤魔化せるようなクオリティならいいんだけどね。 地上を高速で走り回るようなゲーム(レースやロボゲー)だとテクスチャのの1ドットのずれも大きかったりするし。 レースゲームはカーブとかよく綺麗に描けるなと感心する。
>>497 現状どの程度なのかプリントスクリーン見せてよ
mode 7で回転すればいい
>>499 俺作ってないぞww
PSでもすごいと思うから中古ショップ漁ってきてくれw
だいたいレースゲーなんてどれとってもジャギっててキタネーじゃん 水平線なんて気にする前にやることいくらでもあんぞ多分w
D3DXLoadMeshHierarchyFromXを使ってXFILEを読んでいるのですが、マテリアル名を取得できません。 どのような方法をとればマテリアル名を取得できるでしょうか?
>>503 ほんとだ
ねーじゃんw
あれかな?作った奴よくわかってねーのかな?
だからXぐらい自前で読み込めよ
ていうかマテリアルだけ独立してないとおかしいときあるよな? 1つのインスタンスを複数ってのは考えられてねぇのかな? っていうかそれ以前だな マテリアルの種別を外部から特定できねーじゃんなw 仕方ネェからメッシュかテクスチャのファイルネーム辺りにマテリアル名も突っ込んどけば?w
でも世界の開発者も誰も困ってない SDKサンプル用途としてはそれで十分なんだろう
神か
DirectX関係の質問はここでいいのでしょうか DirectX Busterを使ってDirectXをアンインストールしたのですが 再インストールが出来ない状態になってしまいました どうしたら再インストールできるようになるか教えてください
まずはプログラムの作成と何の関係があるのかを明確にせよ。
≫511 DirectX 9を入れたら動きがおかしくなったのでアンインストールしたんです 元々はDirectX 8でゲーム作ってました DirectX 8では問題なく動いてたから間違いなくDirectX 9のバグだと思うんです
間違ったプログラムがたまたま動いていただけなのに、何でもかんでも他人のせい。
>DirectX 8では問題なく動いてたから間違いなくDirectX 9のバグだと思うんです で、DirectX8→9の変更点は確認して、プログラムの修正はやったの? 単に9のSDKで再コンパイルしただけ? 9のバージョンは?
ビルドもせずに実行したんじゃね
>>515 そんなことが出来る人間がいるのか。尊敬するわ
≫513-516 原因がわかりました 知り合いにDirectX 9を入れてやってもらったんですが ゲームを動かすといきなりWindowsがエラーを出して止まるようです こちらとまったく同じ状態です DirectX 9 SDKに入ってるプログラムはふつうに動いたそうです これもこちらとまったく同じ状態です ゲームの最初のところでスプライトがいっぱい(2000ぐらい)出るんですけど これを出さないようにしたら動きました 多分DirectX 8よりDirectX 9のほうがスプライトの上限?が低いはずです
ふーん。
( ・ω・)・・・
フォントを表示させたいのですがうまくいきません。 フォント表示するコードだけ載せときます。初期化もしています。 これが実行時にうまく行きません。コンパイルまではうまくいきます。 void GameOver(){//ゲームオーバー if(getPassedTime(1)>3000){ RECT rc={0,160,640,260}; g_ptextsprite->Begin(D3DXSPRITE_ALPHABLEND|D3DXSPRITE_SORT_TEXTURE); g_pxfonts[hgofont]->DrawText(g_ptextsprite,_T("GAME OVER"),-1,&rc, DT_CENTER|DT_VCENTER, D3DCOLOR_COLORVALUE(1.0f,0,0,1.0f)); g_ptextsprite->End(); } if(getPassedTime(1)>15000){ gamemode=GM_MAIN; //初期表示に戻す mx=0.0f; mz=-2.0f; angle=0; SetViews(); }} エラーメッセージです。 main.obj : error LNK2001: 外部シンボル ""struct ID3DXSprite * g_ptextsprite" (?g_ptextsprite@@3PAUID3DXSprite@@A)" は未解決です。 my3dlib.obj : error LNK2001: 外部シンボル ""struct ID3DXSprite * g_ptextsprite" (?g_ptextsprite@@3PAUID3DXSprite@@A)" は未解決です。 どなたかアドバイスいただけませんか?
そのエラーメッセージはリンク時に出力されるんじゃないの? なのに「実行時にうまく行かない」・・・??? どっちだ
>>521 ですからコンパイルまではうまくいくんですよ。
つまりプログラムにはなんの問題もないと言ってるんです。
実行するとエラーが出るので、
環境依存なのかWinのフォントあたりがバグってる可能性もアリ?かと。
コンパイルができる≠プログラムに問題がない
コンパイルができてリンクに失敗してるんじゃ
>>521 だから、お前が貼った、「・・・は未解決です。」 ってのはリンク時に出るエラーじゃないの?
こんなエラーメッセージが実行時にでるの?
意味が分からん
最近の若者はコンパイルとリンクの別を知らんのかね どっちも「コンパイル」に含めてるんだろうな
>>522 ですからコンパイルまではうまくいくんですよ。つまりプログラムにはなんの問題もないと言ってるんです。
ですからコンパイルまではうまくいくんですよ。つまりプログラムにはなんの問題もないと言ってるんです。
ですからコンパイルまではうまくいくんですよ。つまりプログラムにはなんの問題もないと言ってるんです。
ですからコンパイルまではうまくいくんですよ。つまりプログラムにはなんの問題もないと言ってるんです。
ですからコンパイルまではうまくいくんですよ。つまりプログラムにはなんの問題もないと言ってるんです。
ですからコンパイルまではうまくいくんですよ。つまりプログラムにはなんの問題もないと言ってるんです。
ですからコンパイルまではうまくいくんですよ。つまりプログラムにはなんの問題もないと言ってるんです。
だから、どう見ても実行時エラーじゃなくてリンク時エラーに見えるんだが
横からすみません
>>504 で書かれていることと同じような内容をを日本語で解説しているサイトはありますでしょうか
興味があるのに無い英語力で行った和訳がめちゃぐちゃでニントモカントモ
>>523-527 >>529 あーすいませんVisual Studioから実行するとリンクが動くの忘れてました。
DirectX SDKを入れなおしても同じエラーが出るので、
そうなるとstruct ID3DXSpriteというやつがバグってるということですか?
こういうバグの報告はマイクロソフトにすればいいのかもわかりません。
もしくはプログラムには問題ないので、リンクをしない方法があれば教えてほしいです。
プログラムを書くだけで実行しないのであれば、リンクをする必要はありません。
なかなか良いキャラが出てきましたね
うむ ネタならネタだと先に言ってくれりゃいいのによもう
> そうなるとstruct ID3DXSpriteというやつがバグってるということですか あなたのコードに問題があります。 LNK2001 を MSDN ライブラリで調べるか ぐぐる先生に聞きましょう。
DirectXキチガイ質問スレと分離したらどうだろうか
本人が認識していない以上、自己判断は出来ないだろ
こっちをキチガイ質問スレにしてみんな移動すればいんじゃね
最初に自分を疑えない(再確認出来ない)奴は、どんな種類の仕事でも止めた方が良いよ。 リンクエラーが出るって事は、お前が悪いんだよ。 リンクしているライブラリが足りネーか、必要なヘッダをちゃんと読んでないかだろ。
>>542 結城先生あいかわらずいい仕事してるなあ
こういう視点の文章が日本語で読めるのはとても有難い
>>542 アリガタス
調べても辿り着かないようなサイトなので助かります
>>531 まずコンパイルとリンクというのがどういう処理なのかを勉強すれ。
その上で、リンカが
「main.objおよびmy3dlib.objという2つのオブジェクト(ソースをコンパイルしたもの)において
g_ptextspriteが見つからない」
と言ってることを理解すれ。
g_ptextspriteはどこで宣言してんだ?
あとは何すればいいかわかるだろう、わからないならもう少し基礎を重視したほうがいい
>>543 場所がyukiwikiってだけで訳したのは結城じゃないぞ
>>547 How Google Earth [Really] Worksで日本語ググルすれば上位に出てくるのだが。
辿り着かないんじゃなくて、辿り着けない、だろ。
自戒乙
悔しそう
>>547 英語のサイト名+日本語で検索する発想がねーわwww
そうか。 まぁ日本語訳あるの知ってて敢えて最初に英語版を貼った俺が悪かったよ。 お前らに読めるはずがなかったんだな。
>>550 サイト名じゃなくて記事名。
面白そうな英語の記事は訳されてたり概要が紹介されてたりすることが多々あるので
日本語でググれば結構引っかかる。
サンプルの解説ならともかく、アルゴリズムの解説であれば誤訳しちゃうととんでもないことになっちゃうからね。 和訳のミスを理解出来るならもうそのアルゴリズムを理解しているんじゃないかと。 もし和訳しているサイトがあれば誤訳は最小限に抑えれるし、間違っててもしてきしやすいよね。 このスレじゃないけど個人的に誤訳したものを持ってくるより、お前の誤訳で打ち込んだソースを持って来いとか言いたい時が多々。
>>532-553 あまりDirectXには詳しくないので、DirectXのリンクについてもう少し勉強します。
>g_ptextspriteはどこで宣言してんだ?
これは市村さんに聞かないとわからないです。月曜日まで待って下さい。
>>542 で小さな画像を用意する(ミップマップ用)とありますが
用意するのは良しとして描画する面の数が膨大になりますよね
この点はDirectXのミップマップの機能に任せて大丈夫なのでしょうか
動きの早いゲームだと常時画像の解放と読込が行われることに?
処理落ちするんじゃないかと思ってたり・・・そこはプログラマの腕次第ですね
市村さんかわいそす
市村さん: それは派遣クンに聞かないとわからないです。
派遣クン: DirectXがプログラムどおりに動かない原因を調べるのは僕の仕事ではありません。
>>520 あたりに戻る
HDR勉強中です。 例えば、レンダリングはA16R16G16B16FのFP16で行い、プレゼントするときにX8R8G8B8のバックバッファーに転送するとどういった感じで丸められるんでしょう? A16R16G16B16Fって-1024.0〜1024の範囲だと思うのですが、これがまず0〜1024にクリップされて、それから0〜255に変換されるのでしょうか? それとも-1024〜0と256〜1024がクリップされて0〜255に変換されるのでしょうか?
やってみろよ
入出力が決まっていて内部が個別の実装に委ねられているというのは それはそういう仕様なんであって 手近にある一個で試してみた結果でOKとは限らないわけです
>>555 ミップマップはDirectXのでいいと思う。
水平近くならいいけど、上空から見下ろす時にかなりの箇所を描画しなくてはならないから、
3レベルぐらいのテクスチャを用意したほうがいい。
それよりテクスチャや地形に凹凸を細かくつけたモデルを用意するとなると、
1つのマップに1万種類ぐらい用意しないといけなくなる。
移動可能範囲の設定や砂埃が立ったり水しぶきが出るとかの設定とか。
面倒極まりない作業をどうにかしないとな。全面海とかなら楽なんだが。
562 :
520 :2007/07/29(日) 22:36:18
別の方が話題を膨らませていてびっくりしました。 明らかにリンクに失敗しているようです。 とりあえずspriteは無視して作業しようと思います。 文字描写系は全部コメントアウトしましたw 文字もグラフィック系使おうかな、とも。 回答していただいた方ありがとうございました。
>>562 g_ptextsprite の実体を作ってないだけじゃないのか
>>558 そもそもA16R16G16B16FからX8R8G8B8のバックバッファーへ転送ってサポートされているんだっけ?
>>558 レンダリングターゲットとなるテクスチャ(バックバッファ)を作成する際のフィルター指定で
動作が変わったような記憶があるけど、ちょっと動作確認出来ない。
566 :
稼げるとか騙されて正社員辞めて一般派遣やってるバカ :2007/07/31(火) 13:19:35
元々は正社員の特定派遣だったのに取引先にフリーのほうが稼げるとか騙されて 結局、一般派遣やってるバカがいるんだけどw 一般派遣の身分のどこがフリーだってのw 毎日毎日、他人様の会社に出勤する派遣契約書にサインする段階で気づけよ なんか派遣先といい関係、とか言ってたから思わず吹き出しちゃったよw 最近はマネージャーもやってるとか寝言言ってるし、派遣がまねぇじゃぁ?はあ!?w そもそも信頼されてるなら直接契約するか正社員にするはずだが、 いつでも切れる派遣会社経由って舐められてんだよ 派遣期間が長くならないうちに早く就職しろ、と忠告すると、ウッキー!って逆ギレw バカで頑固だから何度言っても理解できない 騙されたとはいえ結局は自分で決めて一般派遣やってる癖に逆ギレしちゃってまぁ 人間として本当に恥ずかしい
568 :
565 :2007/07/31(火) 19:35:08
>>567 ごめん。テクスチャロード時の原色フィルタの事と記憶がごっちゃになってました。
レンダリング時のはわかんないっす。
予算にタッチできない派遣が一体何をマネージすんの?
これからの時代はオレら派遣が生き甲斐や夢をマネージするんだ! と求人広告に書いてありました。
バカか? 言われたことを言われた通りにやるだけの派遣が何を生きがいにしろと? 年収があがることのない派遣が何の夢を持てと?
スレと無関係な話に食いつく馬鹿を何とか出来ないのか?
>>570 資本主義だし
派遣だってノルマを決められて締め付けられるってことさ
具体的にいうと半請負状態になってて派遣社員の人数を進捗具合によって調節したり
人数的、スキル的にできるかどうか、予算的にやるかどうかを決める役
別に重要でもないし難しくもないけどね
+1してみてよかったらさらに+1、
+1してみて駄目だったら−1
こんな程度のこと
荒らしでしょ?定期的に派遣の話して、無関係な雑談を装ってるけど。
>>573 NG登録もしらない馬鹿がうようよしてんのはしょうがない
だって初心者スレだし
派遣をNGワードに登録完了
>>558 A16R16G16B16FからX8R8G8B8への転送だが同じく不思議に思ったんで試してみたら俺のマシンだとそもそもA16R16G16B16Fをサポートしていないみたい。
誰か助けてやってくれ。
NGワード登録って現実逃避だよね ハケン、ジュケン、シュウショク、ニート、、、 彼は突き付けられる現実を全てNGワード登録して現実から逃げて逃げて逃げまくるのであった。
一度作成した頂点バッファでもLock(),UnLock()で内容を書き込めると思うのですが、 その頂点フォーマットが、座標、法線、テクスチャだった場合、座標データだけを 書き換える事ってできますか? お願いします。
ロックして座標だけ書き換えればいい。 ただし、 ロックする際に D3DLOCK_DISCARD を指定したときは内部で新しく作成されたバッファが 返される可能性があるので、座標だけでなく全てのデータを書き込まないといけない。 ただし、 D3DLOCK_DISCARD を指定しないとパフォーマンスが大幅に落ちる可能性があるので、 頂点データを動的に変更する場合は D3DLOCK_DISCARD を指定して 全データを上書きするのが普通。
>>581 なるほど。詳しい説明ありがとうございます。
参考にされていただきます。
うーん、訳分からん助けてくれ。 写真をテクスチャーとして貼り付けるようなソフトなんだが、ピクセルシェーダーで加工するとなんかかなりおかしい。 で、調べてみたらガンマがリニアとsRGBを考慮しないといけないって事が分かったんで、処理はリニアにすることにした。 で、PresentするときにLINEAR_CONTENTってフラグを立てるとsRGBにガンマ変換してくれるんでやったーって感じと思ったら、 これってX8R8G8B8しかサポートされていないのか? しかもフルスクリーンモードだと駄目みたいだけど、どうすれば良いのか。
ピクセルシェーダを使わずにソフトウェアで自分の思うように処理すればいい。 はい解決。
てゆーか状況説明に「なんかかなりおかしい」とかやめてけれ。
このイミフな文章は最近のBBX並だな
プログラムもきっと意味不明に違いない 真面目に書いてるとしたら最低の部類だな いつ、どこで、だれが、なにを、どうした の定型文に当てはめて文章作るところから叩き直さなきゃ確実に駄目だな
質問です。 描画時の拡大縮小の際、D3DTEXF_LINEARを指定しているのですが、意図とはちょっとだけ違った描画になってしまってコマっています。 D3DTEXF_LINEARは、4ピクセルを参照して補完するというのは知っています。 そのせいかキャラクターの淵が思っているのとは少し違うようになってしまいます。 □□□□□□ □□■■□□ □■■■■□ □■■■■□ □□■■□□ □□□□□□ □はRGBAが(255, 0, 255, 0)なピンクの透明ピクセル ■はRGBAが(0, 0, 0, 255)な黒い不透明ピクセル とします。 これを、拡大や縮小すると、黒丸のふちにピンクが混じって現れてしまうのです。 4ピクセルを参照して補完するわけですから分からないでもないのですが、ピンクはα値が0。 見えて欲しくない色なわけです。 D3DTEXF_POINTやD3DTEXF_NONEにすればピンクはまったく参照されなくなる(単純に透過される)のですが、補完自体は欲しいところ。 これを解決(D3DTEXF_LINEARをかけつつ、透明色は完全に無視させる)することはできますでしょうか?
>>590 変えたいのは透明度だけなんだから全部黒でいいじゃん。
□はRGBAが(0, 0, 0, 0)な黒の透明ピクセル
■はRGBAが(0, 0, 0, 255)な黒い不透明ピクセル
□□□□□□
□□■■□□
□■■■■□
□■■■■□
□□■■□□
□□□□□□
PhotoShopみたいにちゃんと透明度管理してくれるソフト使ってると
いちいち透明部分を別の色にする必要ないと思うんだがな。
>>590 フィルタなんて全部OFFにして
最後に一発フルシーンアンチエイリアスでFA
FSAAなければ適当に拡大縮小してぼかしてもいい
Zバッファとかステンシルバッファを駆使してマスクかけられんかな?
はじめっからぼかしたキャラに淵つけたもんをテクスチャに描いておくw
>>590 テクスチャフィルタは透明かどうかを考慮せずに補間するので
完全に透明な部分の色も混ざってしまうのは仕方が無い。
(そもそもαは透明度と決まっているわけでもない)
解決方法は、不透明部分に隣接する透明部分には、不透明の
部分からうまく補間した色を置いておくのが普通。
596 :
583 :2007/08/03(金) 02:22:45
>>589 やはりそうですか、、、なまじ一部にだけ機能が提供されているからモードによる動作違いに悩みますな。
結局はこの簡易機能には一切関わらず、とにかく読み込み時にリニア、Present直前の書き込み時にシェーダーでsRGBにするという一貫性を持たせるしかないようですね。
>というかこの質問、あまり初心者じゃないぞw
やはりそうですか。周りでも聞いても”はぁ?”って感じでみんなリニアとノンリニアを考えずに適当にやっているみたい。ま、ゲームならどうでも良いでしょうが。
ググっても一切情報は出てこないですよね。いやはや確信が持てて助かりました。
>>595 おお、
つーか、あれか、デザイナさんの作ったデータみると
キャラの枠よりαの枠のが2まわりぐらい小さくなってるな
そういうことか・・・なるほど・・・今気付いてしまったw
>>597 もう少し日本語を書く訓練しておきなさいよ。まるで小学生の日記のようじゃないですか。
599 :
デフォルトの名無しさん :2007/08/03(金) 14:34:15
マウスを使用したゲームを作っているのですが なぜか、カーソルの座標が(0,0)か(640,0)の時にクリックをすると ゲームが終了してしまいます。 そこで、カーソルの座標のyを常に1以上にしたいのですが 「カーソルの座標を取得する」関数はあるのですが 「カーソルを任意の場所に移動させる」関数が見つかりません。 未熟者の浅はかな質問ではありますがよろしくお願いします。 それと、出来れば(0,0)と(640,0)の時にのみゲームが終了する 理由も教えていただければ幸いです。 後、参考になるかどうかは分かりませんが、 ゲーム中は「カーソルキーを非表示にする」という処理を行っているのですが (0,0)と(640,0)の時にのみカーソルキーが表示されてしまいます。
それはプログラムが悪いんじゃないかとしか
>>599 ウィンドウスタイルに問題あるんじゃないか?
フルスクリーンならタイトルバーとか閉じるボタンは付けてはいかんぞ。
マウスカーソルを移動させるAPIはあるが、そんな対処療法のためには
教えるわけにはいかんな。誤魔化さないで、ちゃんと原因を突き止めろ。
602 :
デフォルトの名無しさん :2007/08/03(金) 16:28:12
>>601 601さんのアドバイスのお陰で出来ました。
CreateWindowEXの第1引数を0からWS_EX_TOOLWINDOWにしたら、出来ました。
これからは、すぐ諦めず原因を追求していきたいと思います。
本当にありがとうございました^−^
それ本当に解決になってるのか?
>>602 XPスタイルだからだろ?
デフォルトのLunaはタイトルバーの左上と右上の角が丸くなってるから、
背景になっている部分をクリックしてウィンドウが非アクティブ化したとか
そんな下らん理由だろ
質問させてください テクスチャーをD3DPOOL_SYSTEMMEMで読み込んだときの「システムメモリー」とはどこを指すのでしょうか? いわゆるmallocやnewで割り振られるメモリーのことだと思っていたのですが ・タスクマネージャーのプロセスタブを見ると確かにメモリーを食っているっぽい ・だけどウインドウを「最小化」するとタスクマネージャーのプロセスタブ上ではメモリー食ってない状態に ・でもパフォーマンスタグを見る限り、やっぱりメモリー食いっぱなし となっており、混乱しています。
>>606 『「最小化」すると』のあたり、分かって聞いている釣りにも見えるな。
>>606 最小化したらスワップするからメモリを食ってない状態になるんでしょ
ワーキングメモリの話かなぁ
>>607-608 釣りではないです。
最小化するとスワップ…。スワップっていうのは確か、メモリー上のをHDDの仮想メモリに逃がすんですよね。
なるほどそういう理由だったのですか。
てっきり「テクスチャーロード時に一時的に使ったメモリーを、最小化した機会にやっと開放したのかな」とか思ってました。
Java脳ですか。
じゃあ単純にシステムメモリー=PCのメインメモリですね。
ありがとうございました。
>>610 最小化時にはスワップだけでなくメモリを解放する事もあるよ
>>591-597 アドバイスありがとうございました。
まず1ドット太らせる機能を持つツールを探してみました。
フォトショですらそういう機能はないそうです。
次に絵描きさんにそもそも太らせるようお願いしようかと検討してみました。
小さめのドット絵を扱うので元画像を太らせつつ描くのはつらいようです。
最後に、テクスチャーを読み込んだら即座にロックし、プログラムで1ドット太らせてみました。
思いのほか処理が早く、本来の画像読み込みから10%程度多く時間がかかるくらいで済みました。
画像も綺麗に拡大縮小できています。
アルファ効かせてるならコピーして上下左右斜めにそれぞれ1ドットずらして ペタリと貼るだけな気もする でそれをまたキャプチャー
premultiplied alpha にするという手も。
初心者ウザすぎ。もう来るな
616 :
462 :2007/08/04(土) 01:38:46
人とのコミュニケーション能力の無いガキは来るな
>>612 太らせる?
元のキャラ絵の輪郭からα画像を生成して(フォトショップの色域選択で可)
縦横2ドットずつ縮小するだけじゃね?
>>615 スレタイ嫁w
質問するほうも初心者として扱われるのを覚悟しなきゃいけんし、
答えるほうも多少わけわからん日本語を覚悟しないと駄目だろ?
>>617 多少わけわからん日本語てwww
日本語がわけわからん理由としてDirectXの初心者だからってのは言い訳にもならないぞ。
質問する側であれ答える側であれ、分かりやすい日本語を書くべきなのは当然だろう。
質問者に関しては ・開発環境 ・目的 ・現状 ・現状へのプロセス これらをハッキリ伝えないと回答のしようが無い場合が多い。 日本語云々もそうだけど、曖昧にしたり何故か事実を歪曲させて書かれるとモウネ
620 :
デフォルトの名無しさん :2007/08/05(日) 03:28:44
質問です ゲームのエフェクトとしてパーティクルとビルボードをしようしようかとおもうのですが その際の処理速度を上げる方法としていい方法は何かないでしょうか? 同じテクスチャのパーティクルはまとめてD3DLOCK_DISCARDで頂点バッファを 作成し描画する程度は思いつくのですが・・・
>>620 普通のモデルとやることかわらんけど?
やってみて重かったら最適化しろよ
無駄だぞ
初心者のくせに組む前から失敗したくねーとか甘いこといってんじゃねぇよ
なんでこう喧嘩腰になるのかねぇ… 嫌なことあった?
2chでストレス発散するタイプ? 八つ当たりされた方はたまらんな。
〜をやってみた→処理が重い→どうすれば軽くなる? ならわかるけど 〜をやるつもり→速い処理教えて ↑こんな奴相手にしなくていいと思う やんわり言っても同じことだと思うけど? ただの煽りと区別つかないのはちょっと困る
俺には
>>621 は煽りにしか見えん。
つか
>>621 は相手にしてんじゃん。相手にした上で煽ってる。
>やんわり言っても同じことだと思うけど?
同じじゃねーよタコ。
って言われたらカチンって来るだろ?
顔が見えないネットじゃ文面に気を使うのは大事だと思うよ。
ゆとりにイライラしても始まらないのは確か。
>>625 >同じじゃねーよタコ。
どう同じじゃねーんだよタコ
って返すだけだけどな
628 :
デフォルトの名無しさん :2007/08/05(日) 09:20:19
age
正直、現実で
>>620 のような奴が増えては困る
その場その場の方法なんて教えるだけ無駄だと俺は思う
初心者スレは技術より技術者の有り方を叩きこんでやるのが俺のおせっかい
それが嫌(初心者扱いがうっとおしいと思う)なら通常の質問スレにいけ
630 :
デフォルトの名無しさん :2007/08/05(日) 11:01:38
CComPtr<IDirect3DTexture9>をCreateTexture等の引数に直接指定した場合 Attachを使わずに代入したのと同じく参照カウントは2になってしまうんでしょうか?
631 :
デフォルトの名無しさん :2007/08/05(日) 11:15:32
すみません教えてください DirectX BusterというのでDirectXをアンインストールした後 再インストールしようとしたのですが 「インストールの完了」と表示されても DirectXの診断ではヴァージョンが更新されていません どうすればインストール出来るのでしょうか;
>>629 ここはDirectXについてのスレです。
技術者の有り方については別の場所でやってください。
まずあなた自身が勉強して日本語と空気を読めるようにならないと、
誰にも教えることなんて出来ないでしょうけどね。
>>632 同意。そんなのはリアル世界で会社の糞後輩相手に右往左往してやって欲しい。
ここでは逆に純粋に技術話を端的にして欲しいな。
>>632 そう?だれでも同じレスつけると思うけど?
だって無駄じゃん
こいつは自分でやってもみねぇで何をもって速くなったと判断するのか?
いま、その技術がそこでできるかどうかなんて問題じゃねぇじゃん
直接的に
Q1→A1
Q2→A2
・
・
・
ってやることに全く意味を感じない
どうせヘルプ見れば載ってるようなのばっかだろ?
また、次にとるべき行動が誰の目から見ても明らかなもんとかよ
調べるの面倒だから聞いたとかそんなもんだろ?
現実、会社で一発でもやってしまうとそこで終了な職場もあるから俺はそういうのを技術を通して教えて生きたいと思う
質問する側も勝手にすればいいと思うけど回答つける側だって勝手じゃん?
俺は俺のやり方でやらせてもらうよ
そういうレスが要らない
>>635 が次のレスで技術的なことをいいます!
ではドゾー↓
僕らは卒業までの期間が決まってるんです。 趣味でやってる暇な社会人とは使える時間が違うんです
そういうレスが要らない
会社で技術者のあり方を教えるのに
>>621 の口調で教えるんだなお前は
>>639 多少ですます調に変更はあるものの言うね、まちがいなく
それでシカトして困るの俺じゃねぇし
やる気ないの明らかに相手だし
俺は別に心構えとかここで言ってもいいと思ってるけどね 多少ですます調に変わるって言うところが不愉快だ
まあ落ち着け 突っ込まれてるのは口調だ 内容については誰も突っ込んでない そこがまず食い違ってるぞ
心構えなら技術のないリタイア組でも口出せるから必死なんだろ。
ああ、なるほど。 技術が無いからこの初心者スレにいるが、教えられないけど偉そうには 言いたいって感じか。
とりあえずおまえらプールにでも行ってこい
むしろ初心者を挫折させたくて仕方がないんだw
>>645 市民プールなんて排水口にまきこまれそうで怖くていけねーよ
幼女発見
排水口の中で
市民プールは若い娘はいない。ロリとババアだけだ
DirectX SDK を October 2003 から、 June 2007に バージョンアップしたところ、 プログラム内で、DirectXで文字を表示する箇所、 DrawText( NULL,str, -1,pRect, DT_LEFT | DT_EXPANDTABS, color); において、 Run-Time Check Failure #0 - The value of ESP was not properly saved across a function call. This is usually a result of calling a function declared with one calling convention with a function pointer declared with a different calling convention. というメッセージが表示されて停止してしまいます。 これは何が問題なのでしょうか? ちなみにDrawTextの行をコメントにするとプログラムは正常に動きます。
>>651 DrawTextの仕様が変わってんだろ?多分
引数に変更があるはずだから探し出せ
DrawTextってGDIか?
いいえ。DirectXの方です。 LPD3DXFONT pFont; pFont->DrawText として使っています。 >DrawText関数を使う前の、 D3DXCreateFont関数では、S_OKを返していました。 仕様変更をしらべてみます。
調べ方わかるか? SDKのサンプルでDrawTextを使ってるもんを調べるんだ
ある呼び出し規約で宣言された関数を 別の呼び出し規約の関数ポインタで呼び出しちゃったと言ってるんで インクルードフォルダとライブラリフォルダが正しいかとか調べてみては。 昔のインクルードを読んでるのにライブラリが最新のをリンクしてて、矛盾が生じてるとかあるかも
>> 655 656 皆さんありがとうございました。解決しました。 古いSDKのフォルダ(DX90SDK)が残っていたので、削除しました。 (新しいSDKは、Program Filesの中にインストールされていました) そしてリビルドかけたところ、 D3DXCreateFont等がリンクできないというメッセージがでたので、 リンクするライブラリを、d3dx9dt.lib から d3dx9.lib にしたところ、 うまくビルドできました。
旧SDK全部アンインストールしてもう1回入れなおしたほうがいいな
lib選択してリンクしてるってのがもう怪しいな
物体の反射を作ろうとしてるんですが xファイルから面の法線ベクトルを取得する方法ってありますでしょうか?
中のデータを取得するだけ。
>>661 xファイルから取得できるのは点の法線ベクトルだと思います
なんとかして面にしたいのですが方法ありますでしょうか?
じゃあ各面について辺の外積を求めれば?
>>663 そういう計算じゃ駄目なんです
CGツールでは面の法線ベクトルで指定できるわけですから
それを頂点や辺から求めたのでは結果が異なりませんか?
エクスポートされたデータが面の法線を出しているのなら、 面を構成している頂点が面の法線になっているだろう。 頭が弱いのか?
つまり、単なる平均じゃなくて重み付けの計算がやりたいが、具体的に教えろということだ。
意味不明
Xファイルには面の法線データは入っていないので、計算じゃだめってんなら、無理です。
DirectXの方で面法線なんて設定できたっけ?
あ、1頂点につき面の頂点分持てば可能か・・・
意味不明
モデリングソフト側で面法線を利用してエクスポートしているのなら、 面を構成している頂点の法線が全て共通になるだけの話。 計算も糞もない。 なぜこんな単純なことが分からないのか、それがさっぱり分からない。
モルダーにでも聞け
>面を構成している頂点の法線が全て共通になるだけの話。 うそーん? じゃあ点ABCDから、三角形ABC、BCDのポリゴンがあるとしたら BとCの法線ベクトルはABCと同値なの?BCDと同値なの?
ジオメトリシェーダを使えば 面法線も余裕のよっちゃんかしらね。
そういや法線の求め方に「正解」ってのは見たことねぇな。 たいがいは頂点の属する面の法線を足し合わせるだけだろうけど、 (足し合わせる前に法線正規化するorしない派がある) 面の向きに依存しないように頂点の角度を考慮に入れたりする場合もある。 この時点でツールによって実装バラバラなのに、ここから面をスムースにする 角度指定なんか入るとさぁ大変。 ぶっちゃけxファイルからツールの法線を完全に再現したいんなら(質問読み違えてる?) ツールのSDK等でソースが公開されていることを祈るしかねぇんじゃないの?
自分はツールにはあまり詳しくないんだが「頂点の角度」ってなんじゃらほい?? それはさておき、ツールで指定した面法線の値に依存するような 反射を作りたいんなら、そもそもX形式でやることがアレかも? そのツールからX形式にするときに、求める情報が失われているかどうか 電卓とかで調べて、ダメなら結局自前でエクスポーターとか書くしかないんじゃね?
>>674 その場合ってBとCの頂点は法線を2つもつためにBとCの頂点がそれぞれ2つになるんじゃね?
ΔABCと△BCDのBCは別の頂点になるんじゃね?っつこと
Xファイルで面法線を記述する例 (頂点座標4個、法線ベクトル2個、三角形2個) ------------------------------ xof 0302txt 0032 Mesh { 4; -1.0;0.0;0.0;, 1.0;0.0;0.0;; 0.0;-1.0;1.0;, 0.0;1.0;1.0;, 2; 3;0,1,2;, 3;1,0,3;; MeshNormals { 2; 0.0;-0.7071;-0.7071;, 0.0;0.7071;-0.7071;, 2; 3;0,0,0;, 3;1,1,1;; } } ------------------------------ DirectX Viewerではこれで期待通りに動作した。
だからモデリング時に面法線を使用した場合、エクスポートした時点でデータが入っているんだから、 これ以上グダグダ言っても始まらないだろ。 入っている物をそのまま使えばいいだけ。 逆に頂点ごとに法線が異なる場合は、モデリング時の指定かエクスポートの仕方が悪い。 結局データを読み込む段階に対処すべき話ではない。
面法線を設定したって表示は頂点法線なんだべ? なんか勝手に反映されてるような気がしないでもないけどねw されてねぇんかな?
ピクセルシェーダーでFP16バッファをXRGB32に書き出しているんですが、 s10e5っていう浮動小数点をどうやって0-255に落とし込むのが適切なんでしょ?
*(BYTE*)&f
685 :
デフォルトの名無しさん :2007/08/09(木) 02:27:01
>>683 FP16→RGB32変換ってドライバーがやってくれなかたっけ?
たぶん変換テーブルを持っていてよろしく変換してくれそうだけど、疑問はメーカー違いでも同じテーブルなのかということ。
drawprimitiveupの3番目の引数にvectorを使用したいのですが conts vector*に変換できませんとエラーが出ます。 なにか方法は無いでしょうか?
(void*)
>>686 俺いつも&(vec[0])ってやってた希ガスw
&vec[0] か &vec.front() やね。 次期 C++ では vec.data() とできるようになるみたいだけど。
俺は&vec.front()派だな
0 がマジックナンバーに見える派だな。 気持ちはよく分かるわ。 ま、補助関数テンプレートでも作るのが一番かもしれんな。
conts
人物モデルを半透明で表示したら、眼球パーツが透けてキモくなりました。 しかし世間のゲームはさほど気にならない気がします。 こういうときは一般にはどう対処するものなのでしょうか?
Zだけ先に書いて、ZテストEQUALで色塗るとか、どう
>>690 今すぐ Effective STL を読むんだ。
>>694 半透明で表示しない(結構マジレスですw)
かもしくは
眼球もしくは透けては困るパーツをZバッファ使って後から描くとか小細工で逃げる
かもしくは
一度どっか別のテクスチャに描画してから改めて半透明で描画
かもしくは
・・・ごめん、俺、こんなことしか知らないや・・・w
すんまそん。 今DirectX使ってお絵かきソフト作ろうと思ってるんですが(アホ) 各レイヤの内容を一旦テクスチャとして描き出してからそれをバックバッファに アルファ値指定して描画って事をやりたいのです。 で、各レイヤー用のテクスチャに対してレンダリングする事は出来るのですが バックバッファ以外にレンダリングするとFSAAが効いてくれません。 自前でスーパーサンプリングとかせずにテクスチャバッファへレンダリングする 時にFSAAによる補間処理を有効にする事って出来るのでしょうか?
>>683 俺も同じ疑問を持っている。
FP16って浮動小数点だよな。どうやってガンマ2.2の0-255の整数に落とし込むんだろ?
698ですが、色々と調べてみると我ながらアホな事を聞いたものだと思いました。 テクスチャのバッファとしてはDirectXはマルチサンプル形式をサポートしてない。 (サポートする意味が無い) マルチサンプルの方式自体はドライバ側で隠蔽されているので、 Present時に必要であればダウンサンプルを行っている。 要するに、テクスチャバッファへレンダリングした場合FSAAが有効にならないのは 当然の事でなのですが、Present時にしか個々のFSAA処理に応じた解決 (ダウンサンプリング)がなされないという事は、バックバッファ以外に マルチサンプルサーフェスを作成してそこにレンダリングした結果を バックバッファへコピーor合成していくしか方法は無いという事ですよね。 ところがMSDNを見ると、 次のいずれかの場合、IDirect3DDevice9::StretchRect は失敗する。 転送元サーフェイスがマルチサンプリングされている場合 (MultiSampleType != D3DMULTISAMPLE_NONE で作成した場合)。 という記述があるのですが。(´・ω・`)どうしろと。
>>698 イミフ
やりたいこと・解決したいことは
>各レイヤの内容を一旦テクスチャとして描き出してからそれをバックバッファに
>アルファ値指定して描画って事をやりたいのです
じゃなくて
>バックバッファ以外にレンダリングするとFSAAが効いてくれません
なのな?
つーか、何がしてぇの?
普通にバックバッファに描画して必要な分(描画したい数だけ)Presentすりゃいいじゃん
リアルタイムでワンフレいくらで動かしてるわけじゃないんしょ?
数分Presentすればいいじゃない?
つか、何で悩んでるのかわからん
>各レイヤの内容を一旦テクスチャとして描き出してからそれをバックバッファに
>アルファ値指定して描画って事をやりたいのです
これはできてんだよね?
>>701 自分で見直してみてもイミフでした。すんまそん(´・ω・`)
基本的にベクタのお絵かきソフトなので、CPUが持ってるのはベクタデータのみ
レンダリングは全部VRAM上でやりたいのです。
複数のレイヤー毎にカラーの違うベクタデータを持っているものとして
それをレンダリングする時にFSAAが効いてないと汚くなるので
効かせたかったのですが
・FSAA効かせてバックバッファに描画
・バックバッファの内容をテクスチャバッファにコピー
までは出来たましたが、そのテクスチャバッファに書かれているデータの
アルファ値は全部FFのようで、描画されてない部分まで下地の色を持って
しまっているようです。
当然それをアルファ値指定して描画すると、透明にしたい部分も下の
レイヤーに影響を与えてしまうわけで。
何か良い方法はないでしょうかorz
一旦サーフェスをロックしてCPUでごにょごにょすれば余裕なのは
分かるのですが、なんか負けた気がするので(´・ω・`)
バックバッファをアルファ付きフォーマットにすればいいんじゃない
>>702 まだ、意味不明なんだけど
この手順じゃ駄目なんだっけ?
0.レンダリングステータスにFSAAを設定
1.ベクトルデータを使ってアルファ付きテクスチャバッファを作成
2.普通にアルファを効かせてバックバッファにレンダリング
3.Presentで目標物に描画
1〜3まで必要な数だけ繰り返す
じゃ駄目な理由ってなんだっけ?
あーなるほど 1のときにサーフェイスをロックして色々やらずに なんとかする方法を探してるってこと?
706 :
デフォルトの名無しさん :2007/08/10(金) 22:49:26
・リソースにしてexeにリンクする ・データを暗号化する
709 :
デフォルトの名無しさん :2007/08/10(金) 23:09:41
暗号化は、データをどうやって読み込んでるかと、どのていど強力な暗号化をしたいかによって、変わってくる。 exeの中に入れるのは、解りやすい古典的な方法だと const char data[] = { 0x42, 0x40, ......... }; みたいなのをソースのどこかに埋め込む。 もうちょっと普通の方法だと、リソースとして入れる。 使ってるコンパイラは何?
質問者のレベルからしてXORで十分じゃね
>>706 D3DXCreateTextureFromFileなんて関数を使うのをやめれば、何も迷わない。
713 :
デフォルトの名無しさん :2007/08/11(土) 00:42:53
VC++2005でDirectXをやる本のサンプルでウィンドウを表示するプログラムがあるんだけど コードを部分的にしか書いてなくて初期化とかのやりかたがわかりません。 #includeとかつかって何か読み込むんですか?
さすがにその辺書いてない本はないだろ 最初からよく読め、1ページ目からよく読め、さぼらず全部読め
>>704 ,705
1.の手順でサーフェイスをロックしないでやりたいというのは
そのとおりなんです。
0〜3を繰り返すっていうのはおそらくスワッピングのフラグに
COPYが指定されている事を前提としていると思うのですが
(そうしないとレイヤーが8枚あったら1,3,5,7と2,4,6,8が違う
バッファに書かれてしまう事になるので)
で、それはどうにでもなるとして。
この手順だとα付テクスチャバッファに描画する際に
アンチエイリアスが効かないのでそれをレンダリングしても
出てくるのはアンチエイリアスの効いてない画像になります。
正確には効いてるけど、それはテクスチャを貼り付けたポリゴンに
対してであってテクスチャの中身はマルチサンプルバッファに
なってないのでFSAAの効果は無いに等しくなります。
1.の時にα付テクスチャに予めCPUによってアンチエイリアスを
施したモノを描いておけばいいのですが、それはやりたくないですし。
そもそもそれだったらFSAAを有効にする必要が無いわけです。
で、色々考えた結果、
1.レイヤを一枚描画する毎にZバッファをクリアする。
2.同一のレイヤーのベクトルデータは同一のZ値を指定して描かせる。
3.その際のZ比較にNOTEQUALを用い。α値はレイヤーのα値とする。
という方法をとってみました。
色々ありがとう。あと、問題をよく整理できてなくて申し訳ない(´・ω・`)
716 :
713 :2007/08/11(土) 04:29:31
>>714 その本にのってる一番最初のサンプルコードがそれで
LRESULT CALLBACK....とかって始まってるんですけど
どうすれば?
>>716 CDとかに全ソースコードが入ってるとかいうオチじゃないの?(´・ω・`)
>>716 軽くwin32apiを勉強したほうがいい
>>716 もっかい言うぞ
「一番最初のサンプルコードから」 読むんじゃない
「1ページ目から」 読め
さぼらず全部読め
720 :
デフォルトの名無しさん :2007/08/11(土) 11:51:01
>>710 borland社のbcc32です。BCC Developerっていう補助ソフトを使ってます。
bccdeveloperみてみた。プロジェクトを右クリックするとリソーススクリプトってあるでしょ。そこに hoge RCDATA hoge.dat piyo RCDATA piyo.txt って感じでファイルを並べていく。 左はロードするための名前で RCDATA は予約語で右はファイル名。 メイクすれば、そのファイルが exe に取り込まれる。 使うときは void *p = LockResource(LoadResource(NULL, FindResource(NULL, "hoge", RT_RCDATA))); などとすればそのデータを取得できる。 fopen なんかは要らない。 これは知ってる人なら、取り出そうと思えば簡単に取り出せる。 プログラムとか知らない一般ユーザにはたぶん無理かな、くらい。
>>721 やってみました。
リソーススクリプトファイルに
data1 RCDATA "C:\MyC\title.jpg"
と記述し、メインプログラムで
int p;
------省略-------
void *p = LockResource(LoadResource(NULL, FindResource(NULL, "data1", RT_RCDATA)));
------省略-------
DrawGraph(0,60,p,FALSE);
と表示しようとしたのですが何も表示されませんでした。使い方間違ってますか?
DrawGraphってなんですか、自分で作った関数ですか。 こっちはそんなの知らないんだから、わかるわけない。 情報不足すぎる。
もしかしてDXライブラリ?
DXか・・・ だったらリファレンスを見る限り CreateGraphFromMem に読ませればいいんじゃない。 たぶんこんな感じ。 HRSRC hRes = FindResource(NULL, "data1", RT_RCDATA); int g = CreateGraphFromMem(LockResource(LoadResource(NULL, hRes)), SizeifResource(NULL, hRes)); DrawGraph(0, 60, g, FALSE); てか、条件を後出しにすればするほど解決に時間がかかることを覚えとくといいよ。 環境、コンパイラ、ライブラリなどが限定されてる場合は最初から書いておくべき。
726 :
706 :2007/08/11(土) 16:59:34
タイプミスorz × SizeifResource ○ SizeofResource
728 :
706 :2007/08/11(土) 17:04:58
>>727 アドバイスありがとうございます!!上手くいきました。
今までアドバイスをしてくれた方も本当にありがとうございます。
そんな人の作ったクラスのことなんて知らん。 ここで聞くのはスレ違い。 それ書いた人に直接聞いてくれ。
当方美少女ゆえ、作者がスーパーハッカーの場合にIPを抜かれストーキングされることを警戒しています。
その発想はなかったわ
734 :
729 :2007/08/13(月) 17:44:24
>>729 ,733
wikiと掲示板が更新していなくて返事が来なさそうだと考えたためにこちらで質問させていただきました
問題に関しては今までキー取得用の関数とデバイス初期化用の関数を別のファイルに書いていたのを同じファイルに移すことで解決することができました。どうもありがとうございました
735 :
706 :2007/08/13(月) 22:57:20
再び質問です。
前回プレイヤーに見られたくない画像類をリソースとして入れ隠しましたが、
>>725 の方法で
データをwmvなどの動画にすると「Turbo Incremental Linker」が強制終了してしまします。
動画をリソースするにはどうしたらよいのでしょうか?
ちなみに"DrawGraph"の代わりに"PlayMovie"関数を使っています
使用コンパイラは Borland bcc32
補助ソフトは BCC Developer
Dxライブラリを利用してシューティングゲームを作っています。
リソーススクリプトファイルのソースは
data1 RCDATA "C:\MyC\opening.wmv"
となっています。
DXライブラリ作ったひとに聞いてください
もう面倒くさいから、そのぐらい自分で作れよ。
つかDXライブラリだかなんだか知らんが、 DrawGraphやらPlayMovieやら、いきなり言われても住人の大半はそんなもん知らないぞ? しかもファイルをリソースに入れるにはどうするか、なんて尚更DirectXと関係ないし、 そろそろスレ違いに気付けよ DXライブラリだかBCCだかWin32初心者だかゲ製板あたり行って聞けよ
739 :
デフォルトの名無しさん :2007/08/13(月) 23:10:11
DXライブラリって何?誰かさんの俺ライブラリ?
yahooでググレ!
Googleでヤフレ!
フリーライブラリ利用者はヘボプログラマしかおらず、作者は世捨て人だという 印象があるので、こちらで幅広い人々の御見識を賜りたいのです。
つまり俺らもDXライブラリを使って教えろと?
利用者でも作者でもない人間がレビューできるわけないだろう
知りもしないものを説明出来る奴がいたとしたらそいつは詐欺師の才能がある。
つまりこのスレにいるヘボプログラマの情報を期待していると。
>>744 >フリーライブラリ利用者はヘボプログラマしかおらず、作者は世捨て人
これはお前さんの単なる偏見じゃないのか?
なんちゃらライブラリのことは全然知らないけど
幅広いヘボプログラマしか見つからんだろ。ここじゃ。
D3DXIntersectを使おうと思ったんだけど、まったくあたりが帰ってこないから質問。 第1、2、3引数について 第1は xファイルのメッシュ 第2は 始点 第3は D3DXVECTOR3(0,-1,0) を指定してます。 Intersectを使うにあたって、何か注意する点ありますか? ぐぐるとたまに逆行列が云々と描かれていますが、いつどこの話か全く検討がつきません。 よろしくお願いします。
>>751 始点はXファイルの原点からの相対位置じゃなかったっけ。
当たり判定をする物体の向きがX軸90度回転していたら-90度回転させて元に戻さないといけないし、
位置が0,0,0に配置されていないのだったら物体とその始点をずらさないといけないし・・・ってこれが逆行列ね。
753 :
デフォルトの名無しさん :2007/08/17(金) 11:38:42
グラボに接続されているモニタが、ワイドモニタか、4:3モニタか調べる方法ってあるの? DirectX or Win32API 何でもいいんだけど。
デスクトップの比率を見て大雑把に分けるしかないんじゃない
目視
756 :
デフォルトの名無しさん :2007/08/17(金) 11:56:10
>>752 具体的で分かり易かった!!
ありがとう。
当たり判定する物体は、まったく動かしてないから、
「始点はXファイルの原点からの相対位置」←で引っかかってるのかな。。。
頑張ってみます!!
>>753 ありそう。けど知らん。
758 :
751 :2007/08/17(金) 15:54:09
参考書に少しだけ書いてありました。 メッシュを読み込んでるときは、メッシュの移動等に関する逆行列をレイにかけてやらないとうまくいかないそうです。
hlslのピクセルシェーダーでライティング処理を行いたいのですが、 光源の座標(L)と、モデルの頂点座標(P)、法線(N)、光色(D)が分かっているとして、 光源の近くなら明るく、光源から離れるほど暗くしたいのですが、 どのような式を使えばいいのでしょうか? お願いします。
距離が離れて暗くなるだけなら法線と光色は無視していいってことなんだろうな。
atten = 1 / (a0 + a1*d + a2*d^2) (d:光源と頂点の距離) 一般的には上の式ね。attenを明るさに掛けるわけね。 a0〜a2の決め方は、例えば10m先で明るさを1/2にしたかったら a0 = 1 a1 = (2.0 - 1) / 10.0; a2 = 0 とかね。(a0 = 1, a2 = 0 は固定でいいかもね。) でも調整が面倒だから、簡単に調整したいなら atten = clamp( (d - attenBegin) / (attenEnd - attenBegin), 0.0, 1.0 ); みたいなのでもいいわよ。
762 :
759 :2007/08/18(土) 17:34:08
>>761 ありがとうございます。
理解してから、使わせていただきます。
thanks but ill never use it until i understand it.
764 :
デフォルトの名無しさん :2007/08/18(土) 20:22:07
あまりに技術的でない内容で恥ずかしいのですが、質問させていただきます。 使用PCはWindous Vista DirectX9以上が必要なゲームをプレイするために、マイクロソフトの ページからsetup.exeをダウンロードし、起動。 契約に同意して[インストール]をクリックしたら1秒の待ち時間もなく インストール完了の文字が。 しかし、PC内どこを探してもDirectX9のファイルは見つからず、 当然ゲームも起動できません。 おそらくどこか手順を誤ったのだと思います。 正しい手順を教えていただけないでしょうか。
お前がどう手順を誤ったかなんてエスパーでもない限り分かるわけないだろう つかそれ以前にここはプログラム板なんだが
766 :
デフォルトの名無しさん :2007/08/18(土) 20:45:59
板違いでしたか・・・消えます
サーフェイス等について質問があります。 レンダリングをテクスチャに行いたいので次のモノを用意したとします。 LPDIRECT3DTEXTURE9 pTex0; LPDIRECT3DSURFACE9 pSur0; LPDIRECT3DSURFACE9 pDepth; LPDIRECT3DTEXTURE9 pTex1; LPDIRECT3DSURFACE9 pSur1; @ まず、pTex0に描画するには、現在のバックバッファのサーフェイスを何処かに保存してから、 dev->SetRenderTarget(0, pSur0); dev->SetDepthStencilSurface(pDepth); dev->Clear(0, NULL, D3DCLEAR_TARGET | D3DCLEAR_ZBUFFER, 0xffffffff, 1.0f, 0); と設定してやる必要があると思います。 pTex0への描画処理 A そして、次にレンダリングターゲットをpTex1に設定するとき、深度バッファはそのままで、 dev->SetRenderTarget(0, pSur1); dev->SetDepthStencilSurface(pDepth); dev->Clear(0, NULL, D3DCLEAR_TARGET | D3DCLEAR_ZBUFFER, 0xffffffff, 1.0f, 0); とし、pTex1へ描画処理。 B 次に、レンダリングターゲットをpTex0に戻し dev->SetRenderTarget(0, pSur0); dev->SetDepthStencilSurface(pDepth); また、pTex0に描画しているのですが、この時、pDepthの深度値をAで1.0fにClearしているはずなのに、 @で描画したときの深度値が残っています。 やりたいことは、これでできるので良いのですが、何故初期化されていないのか気になります。 ちなみに、BでClearしたら初期化されます。 長くなりましたが、分かる方お願いします。
D3DPRESENTFLAG_DISCARD_DEPTHSTENCILをつけたかCreateDepthStencilSurfaceのDiscardをtrueにしたため、 SetDepthStencilSurfaceの呼び出しでサーフェイスが無効化されたものの、たまたま以前と同じバッファが割り当てられたのでは? 未初期化状態であるので他の機種で同じ動作が期待できないというやつ。
769 :
767 :2007/08/19(日) 14:01:01
>>768 レストンクス。
確認してみたところ、CreateDepthStencilSurfaceのDiscardがtrueになってました。
やはり、他のPCでも同じ動作にさせたいのですが、この場合は、
pDepthのDiscardにfalseをセットし、もう一つ深度サーフェイス(pDepth1)を用意し、
>>767 で言う、
@でpDepthをセットし、クリアする
AでpDepth1をセットし、クリアする
BでpDepthをセットし、クリアしない
という感じにすれば、他のPCで動かした場合でも同じ動作になるのでしょうか?
770 :
デフォルトの名無しさん :2007/08/19(日) 20:36:10
771 :
デフォルトの名無しさん :2007/08/19(日) 20:41:51
SDLでいいんじゃね
DirectInputの質問です。
DirectXSDKはApril2007を使っていて、開発環境はVC6SP6です
LPDIRECTINPUT8 lpInput;
というように宣言をしているんですが、「error C2501: 'LPDIRECTINPUT8' : 識別名を宣言するのに、型が指定されていません。」とエラーを返されます。
当然headerファイルのインクルードなどは見直しました。
d3d9.h d3dx9.h dinput.hをインクルードしています。(input関連以外ではエラーはありません)
さらに同じ内容のエラーが異なる4つのcppファイルから発されています。当然#pragma onceをしています。
どうしたらこの問題(dinputの正常な使用とエラーの回避)が解決できるか教えてください。
なお、このサイトを参考に作成しました。
http://www.shader.jp/xoops/html/masafumi/directx9/dinput/dinput002.htm
「識別名を宣言するのに、型が指定されていません」でぐぐれ
ver8のヘッダが必要なんじゃなかったっけ そりゃDirectMusicだったっけ
>>776 d3d8.hという意味でしょうか?
MSDNや解説サイトにはそのようなことは書いていなかったと思いますが、必要なのかもしれません。
他に足りない情報がありますか?
>>773 DIRECTINPUT_VERSIONは定義してるか?
dinput.hを覗いたら、定義していなくても0x0800が自動で定義されるみたいだが、一応確認
>>778 定義しています。それは書くのを忘れていました。すいません。
>>773 VC6は、とっくの昔にDirectXSDKのサポートから外されてる。
いつからだったかは忘れたがApril2007だったら間違いなくVC6はサポートしていない。
対象外なんでコンパイルが通らなくても文句は言えないし、
仮にコンパイル出来たとしても正常に動作する保証もない。
>>780 VS2005ならとおるんですね
ためしに2005を導入してやってみようと思います。
VS2005導入してみましたが、やっぱりだめでした。
783 :
デフォルトの名無しさん :2007/08/19(日) 22:32:20
784 :
757 :2007/08/20(月) 01:15:11
アニメーションをもたない、D3DXLoadMeshFromXで読み込んだメッシュ情報と、 --------A アニメーションをもち、フレーム処理のためにメッシュコンテナに格納したメッシュ情報。 ---B D3DXIntersectでは、それぞれのメッシュ情報に関してレイと交差しているか判定できるでしょうか? Aだと判定できるのですが、Bが旨くいきません・・・
スキンメッシュでなければ、レイを各メッシュコンテナのごとのローカル空間に変換すればできる。
DirectXでビデオを扱わないといけなくなったのだが、 ActiveX、DShow、VMR、VMR9、EVR、MediaFoundation、DXVAとあって訳が分かめ。 D3D9とD3D10で使う場合、それぞれどの組み合わせが良いのやら。。。
Vista専用はやる気ないので知らね。 1280x720以上あるならVMR9じゃないと低スペック機できつい。 一昔前のゲームのような640x480程度ならどれでもいい。
>>785 レスありがとうございます。
>>スキンメッシュでなければ
とありますが、スキンメッシュだとD3DXIntersectそのものが使えないということになるのでしょうか?!
789 :
デフォルトの名無しさん :2007/08/21(火) 00:53:53
現在Javaプログラマで、DirectXに興味があります。 Visual C++が標準的だとは思うのですが、 GCやオブジェクト指向に限定したパラダイムに慣れた身としては 記述の自由度が高く、コピーコンストラクタや多重継承など癖の強いC++は辛い物があります。 C#からDirectXのdllを呼び出すことは可能だと思うのですが、 一般的ではないようです。全くではないですがほとんど見かけません。 何か問題があるのでしょうか・・・。 ジョイスティック/1000個程度のスプライト/WAVかOGGのBGM/効果音/30〜60fpsを満たせれば良いと思ってますが これらはそこまで重い処理でもないでしょうからマネージドでも問題ないと思っています。 大きな問題がなければ、こちらの方向性で勉強していこうかと思うのですが、実際どんなものなのでしょうか。 (MDXは終わってるし、XNAは始まってない(Visual Studio 2005 Standardで使えない)ので保留します)
>>789 質問の意味がわからない
実際どんなものなのでしょうか?
Javaは出来るけど、C++は無理って・・・。 あとC#の文献や書籍も普通にあるし・・・・。
792 :
789 :2007/08/21(火) 07:37:58
>>790 質問内容は、
C#を使って、MDXやXNA等を使わずにDirectXを呼び出して使っている人がほとんど見つからないけど、
なぜ? 実用上問題があるのでしょうか? ということです。
C#やC++/CLIを使ってDirectXのアンマネージドなdllを呼び出すことはできるはずなのに・・・。
>>791 無理というか、C++という言語を使うのが辛いという感じです。
アドレス参照か実体か混乱したり、ヘッダとソースが二重管理だったり、
メモリ管理やコンパイラの仕様が今となっては古くさかったり、
要は人間に委ねられていることが多すぎるので、
特にある程度大規模なソースを書くと疲れるのです。
なるべくなら趣味で使いたくはない。
もちろん仕事で「使え」と言われたり、代替手段が無いのであれば使います。
プログラマに向いてないのだよ
>>789 >C#を使って、MDXやXNA等を使わずにDirectXを呼び出して使っている人がほとんど見つからないけど、
>なぜ? 実用上問題があるのでしょうか? ということです。
それってMDXを自分で一から作り直すってことにならない?
考えただけでも色んな面倒くさいことが思いつくのだけれど…
796 :
デフォルトの名無しさん :2007/08/21(火) 15:48:48
DirectXを使って3D迷路を作りたいんですが、 どういう手順で壁を表示すればいいのかわかりません。 ちなみに私は初心者で、Direct3Dの概念、xファイルの読み込み、表示や、 カメラや自キャラの移動、当たり判定、くらいの初歩のことしかわかりません。 アドバイスくださいm(__)m
>>796 只の3D廊下みたいなものは作れるのかな?
迷路は各階ごとに二次元迷路があってそれを梯子か階段で結ぶ形?
それとも、高さ方向にも入り組んだ形?
只漠然と3D迷路を作りたいと言われても何から答えていいのやら。
>ちなみに私は初心者で、Direct3Dの概念、xファイルの読み込み、表示や、 >カメラや自キャラの移動、当たり判定、くらいの初歩のことしかわかりません それくらいのことがわかるのなら、 >どういう手順で壁を表示すればいいのかわかりません。 壁のXファイルを読み込んで表示すればいいんじゃないの? 何がわからないのかわからない。
考えるどころか、息をするのも面倒なんだろ。
生まれてすみません
801 :
デフォルトの名無しさん :2007/08/21(火) 16:56:45
>>797 >只の3D廊下みたいなものは作れるのかな?
すみません。わかりません。
まだ、背景が青い画面で表示して、
自キャラの座標やカメラの座標をいじるくらいしかできません。
>漠然と3D迷路を作りたいと言われても何から答えていいのやら。
現段階では、まずは単純な1階(フロア)だけの迷路を考えています。
>>798 すみません。青い画面上に自キャラを表示するくらいしかできません。
どうやって壁などを表示して、
迷路のような道筋を作るのかがわかりません。
自キャラも壁も同じオブジェクトだろ
>>801 >すみません。青い画面上に自キャラを表示するくらいしかできません。
壁も自キャラと同じ方法で表示できるはずだと思うが
>迷路のような道筋を作るのかがわかりません。
壁をいっぱい並べればいいんじゃないのか
迷路全体をXファイルで作って それを表示すれば完成
いいのかそれでw
メタセコイアで四角を組み合わせてまるまる一個ステージ作って カリングで表示するのが一番簡単
わーい、それはとっても簡単だねw
>>792 コイツナニイッテンダ・・・。
C#でも文献普通にあるから試せよ。
そんな力説せんでも、だれもお前にC++を強要しないって。
実用上の問題は聞いた事ネーけどゲーム作成の世界じゃC++以外は
普通にマイノリティになるから、例がみつからんだけだろ。
要はコンパイラが古いとかメモリ云々っていうお前さんの意見は、少数派って事。
809 :
789 :2007/08/21(火) 19:49:51
>>794 もちろんそうなってしまうのですが、
将来的にフリーソフト頒布を考えたり、
あとは機能的に痒いところに手が届くと考えると、
車輪の再発明も構わないかな、と思いまして・・・。無駄でしょうか。
>>795 XNA2.0が出るのですか。そちらは期待ですね。
MDXについては、今後発展性の無いものを
勉強しても意味がないかと思うので・・・。
勉強するからには短くても今後5年は使えて欲しいです。
グダグダ言わずにとっととやれよ。
今後5年は使えて欲しいとか言う前に、プロ目指してるのか?ならC++やっとけよ プロ目指してるわけじゃないんだったら、C# or C++/CLIでやりたいっていってるんだから、素直にMDXでいいだろ アンマネージドなDirectXとMDXを比較してみれば分かると思うけど、 基本的な処理のさせ方は同じようなもん 考える前にまず手を動かして、作りたいものを作ってみたほうが早いと思うよ 何が作りたいのか、そのためにはどんな機能が必要なのか、明確にさせることが先決 ここら辺の軸をしっかりさせておかないと、あっちこっちに揺れて、作りたいものを完成させられないままになるぞ 技術的なことよりもまず、やり遂げる事が重要 技術は後からついてくる と、DirectXをやったことがない俺が偉そうに語ってみる
813 :
789 :2007/08/21(火) 21:59:27
>>811 確かにあれこれ悩むより、手を動かすべきですね。
そのようにしたいと思います。
あと、プロになる気はないです。
>>812 構造体や定数を再定義するのは馬鹿馬鹿しいですね・・・。
なるべく固有の型定義などを隠蔽できるよう工夫してみたいと思います。
参考サイト情報、ありがとうございます。
向いてないよ
815 :
デフォルトの名無しさん :2007/08/22(水) 10:53:55
xファイルのサンプル置き場みたいなところがあるなら教えてください。
そういったものはあんまり見当たらないな そもそも微妙に板違いなんだ
>>815 マルチが酷いので、知っているが教えない。
流行らないからなぁ。。 素人な俺目線で言うと、できる人はxファイルを使わないみたい。 けど、そんなの到底無理だから使う俺。。。
できる人は何を使うんだ?
自作
データを作ってるモデリングツールから独自形式へ直接変換 Xファイルなんか経由したら効率悪い
>>821 さんのとおり、じっさいxファイル使ってやってる素人な俺ですが、やはり効率の悪さを感じます。。。
ぶっちゃけ、本当にできる人はフォーマットなんてどうでもいい。 Xファイルで効率が悪いなんてことはない。 ただ、データを作ってくれる人が言った通りに出力してくれなくて、 結局こちらでツールのネイティブ形式から変換というのはよくあること。
結局こちらでツールのネイティブ形式から変換というのはよくあること。
825 :
デフォルトの名無しさん :2007/08/23(木) 21:26:11
>>823 てか、そういう実体に即してない発言ってなんのためにするの?
そんなに楽ならみんなが楽になるような変換ツールでもちゃちゃっと作って公開してくれよ
できなきゃ2度とデカイ口叩くなよ
826 :
462 :2007/08/23(木) 21:28:54
ワロス
使っているモデリングソフトのプラグインは自分で作る。 それ以外の解決方法は存在しない。
829 :
デフォルトの名無しさん :2007/08/23(木) 21:38:57
一端出力されたデータを変換している段階で、既にそのデータは使い物にならない。
>>823 ☆ チン ハラヘッタ〜
ハラヘッタ〜
☆ チン 〃 ∧_∧ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
ヽ ___\(\・∀・)< はやく!はやく!はやく!
\_/⊂ ⊂_)_ \____________
/ ̄ ̄ ̄ ̄ ̄ ̄ ̄/|
|  ̄  ̄ ̄ ̄ ̄ ̄ ̄:| |
| 淡路たまねぎ .|/
>>823 チン ☆ マチクタビレター ☆
チンチン マチクタビレター ♪
♪ ☆ チチン
♪ .☆ マチクタビレター
☆ チン 〃 ∧_∧ ヽ / ̄ ̄ ̄ ̄
ヽ ___\(・∀・ ) /\_/ < マダー?
チン \_/⊂ つ ‖ \_____
/ ̄ ̄ ̄ ̄ ̄ ̄ ̄/| ‖
|  ̄  ̄ ̄ ̄ ̄ ̄ ̄:| :| /|\
| |/
典型的な今時のキレやすいお子様 さらに理解力皆無
その辺のゲームライブラリって「既存のXファイル→自分のプログラム」ができれば十分としか考えてないのかもね。 でも、データ作る職人と共同作業をすれば、ツールの専用形式→Xファイル→自分のプログラム という2度手間は 煩雑でとてもやってられないものなんだけどな。
だからエクスポートプラグインを作って直接吐き出せと何度言ったら
837 :
822 :2007/08/24(金) 03:54:48
いらんこといってすみません。。。
838 :
デフォルトの名無しさん :2007/08/24(金) 07:21:22
>>823 チン ☆ マチクタビレター ☆
チンチン マチクタビレター ♪
♪ ☆ チチン
♪ .☆ マチクタビレター
☆ チン 〃 ∧_∧ ヽ / ̄ ̄ ̄ ̄
ヽ ___\(・∀・ ) /\_/ < マダー?
チン \_/⊂ つ ‖ \_____
/ ̄ ̄ ̄ ̄ ̄ ̄ ̄/| ‖
|  ̄  ̄ ̄ ̄ ̄ ̄ ̄:| :| /|\
| |/
っていうか、このスレにいる奴らは、単にコンバータが欲しいだけなのか? 俺はまだXファイルと独自形式のどっちを使うかって話をしているのかと 思っていたが、それってあっちの板のスレだったっけ?
アホがひとり粘着してるだけだろ
くれ厨が一匹いるだけじゃない?
現在のディスプレイの最大解像度を取得するにはどうすればいいんですか?
843 :
デフォルトの名無しさん :2007/08/24(金) 21:19:33
>>823 チン ☆ マチクタビレター ☆
チンチン マチクタビレター ♪
♪ ☆ チチン
♪ .☆ マチクタビレター
☆ チン 〃 ∧_∧ ヽ / ̄ ̄ ̄ ̄
ヽ ___\(・∀・ ) /\_/ < マダー?
チン \_/⊂ つ ‖ \_____
/ ̄ ̄ ̄ ̄ ̄ ̄ ̄/| ‖
|  ̄  ̄ ̄ ̄ ̄ ̄ ̄:| :| /|\
| |/
自己解決 GetSystemMetricsでいけました
>>842 GetAdapterModeCount
EnumAdapterModes
SDKのサンプル MultiAnimation についての質問です。 表示するキャラクター(tiny)を150体ぐらい増やし、 床を移動するプログラムを呼ばずに、純粋にモーションだけする状態にして、 その150体を描画する時間を計測してみました。 すると、150体を描画する時間は、だいたい18msぐらいで描画されたのですが、 たまに、100msぐらいかかる時があり、これが周期的に繰り返されます。 このため、腕をふって歩いているモーションをするtinyをみると、 周期的にモーションがカクッとワープしているように見えてしまいます。
アプリケーションループにおいて、毎回計測してみた結果↓。 こんな、感じで、たまに100msぐらいかかる時がある。 略〜 時間: 13 時間: 13 時間: 106 時間: 14 時間: 19 時間: 16 略〜 毎回、モーションするだけの同じコードの処理をしているだけなのに、 周期的に、普段より長い時間、描画に費やされる時があるのは なぜでしょうか? また、このような周期的に普段より長い時間かかることを防止する方法は ないのでしょうか? よろしくお願いします。 環境は、以下の通りです。 Microsoft Visual Studio .NET 2003 Microsoft DirectX 9.0 SDK October 2004 GeForce7600 GS
俺はAnimationControllerを使ってないんで見当つかないが 単なるSDKのサンプルの改造なら、ソースつきでアプロダに置いてみたら? 物好きが見てくれるかもよ
>>847 考えたこともなかったな。。
他のプログラムは関係ないの?
Athlon64X2 2.25Ghz + GeForce8600GT
こっちはとくに目立った、どこかで時間かかってるような挙動はなかったけど。。
851 :
デフォルトの名無しさん :2007/08/27(月) 20:09:12
デバイスをリセットした時にエラーが出てしまうので 解放できてないのが原因だと思って色々試したのですが上手く行きません 色々試した結果、エラーを出すのが特定の関数を通った後にリセットを掛けた時だけ ということがわかりました。 以下のような関数(問題のありそうなところを抜粋しました)なんですが、下の記述で問題あるところはありますか? // テクスチャをパイプラインにセット pd3dDevice->SetTexture( 0, m_pTexture ); pd3dDevice->SetRenderState( D3DRS_LIGHTING, FALSE ); pd3dDevice->SetRenderState( D3DRS_ZENABLE, FALSE ); pd3dDevice->SetRenderState( D3DRS_DESTBLEND, D3DBLEND_ONE ); D3DXMatrixTranslation( &mWorld, vPos.x, vPos.y, vPos.z ); pd3dDevice->SetTransform( D3DTS_WORLD, &mWorld ); // オブジェクトの描画 pd3dDevice->SetStreamSource( 0, m_pVB, 0, sizeof(MY_VERTEX) ); pd3dDevice->SetFVF( MY_VERTEX_FVF ); pd3dDevice->DrawPrimitive( D3DPT_TRIANGLESTRIP, 0, 2 ); pd3dDevice->SetTexture( 0, NULL ); pd3dDevice->SetRenderState( D3DRS_LIGHTING, TRUE ); pd3dDevice->SetRenderState( D3DRS_ZENABLE, TRUE ); pd3dDevice->SetRenderState(D3DRS_DESTBLEND, D3DBLEND_INVSRCALPHA);
>>851 SetStreamSourceかな?
m_pVBをセットしたままで、解放できてないんじゃない?
853 :
デフォルトの名無しさん :2007/08/27(月) 21:43:11
>>852 SAFE_RELEASE(m_pVB);という感じで解放はしたんですが、やっぱり上手く行かないです
こういうようなこともやらないといけないんですか↓
pd3dDevice->SetStreamSource( 0, NULL, 0, sizeof(MY_VERTEX) );
↑解決しました この関数を呼ぶ直前の別の部分で未解放がありました… お騒がせしましたm(_ _ )m
>>850 Xp Core2Duo E6300 GF8600 GTS
試してみたところ100ms越えなどはないが、ログでは常時8ms程度でたまに20ms程度が混じる。
たしかにこのサンプルにしては妙な遅滞だ。同じ問題が潜んでいるということかもしれない。
DirectX9で開発している者ですが質問させていただきます。 バックバッファと同じサイズのテクスチャを用意し、それぞれ別のオブジェクトを描画し、 最後にそれらを合成したいのですが、可能でしょうか? テクスチャの方は黒(0,0,0)で初期化しているので各ピクセルを加算合成すればできそうなのですが、 ピクセルシェーダーでテクスチャ側の色は取得できますが、レンダリングターゲット側のピクセルを取得する方法が分かりません。 それぞれ別テクスチャに描画し最後に合成しながらバックバッファへ表示することはできますが、 現在バックバッファへ書き込んでいるオブジェクトが多いので速度的にやりたくないです。 その他のやり方でも良いので、ご教授お願いします。
857 :
856 :2007/08/28(火) 18:34:19
事故解決しました。
それはよかったですね
いちいち説明を書いて解答を待つよりも、自力で何とかしたほうが早いのがこのスレの基本
つまり、このスレの住人は能なし。そもそも住人なんていないのかもな。
背景を半透過する四角を描画したいんですが、ID3DXLineを使っても問題ないですかね? ID3DXLineを太く描画すれば簡単に四角っぽくなるので、 もし特に問題がなければこれでいきたいのですが
そんなの使うよりDrawPrimitiveUP使う方が簡単だと思うが。
ID3DXLineをクラスにまとめたものがあるので、こっちのでやった方が早いかな と思ったんですが、やっぱりそちらのほうが一般的ですよね ありがとうございました
↑のものです DrawPrimitiveで四角形を書いた場合、例えば色に0x33ff0000という値を入れても 背景を透過しないんですがなぜでしょうか?
SetRenderStateを忘れていました・・・ すいませんです
test
867 :
デフォルトの名無しさん :2007/08/31(金) 15:43:44
3Dの世界を作っていて、 四角いブロックのXファイルを複数ならべて壁にしています。 Xファイルの近くを移動したりすると、 自分の視点がxファイルの中にめり込んでしまうのですが、 それを防ぐ方法はありますか? もしくは、xファイルの外側しか画面に映らなくできるなど。 初心者なのでおかしなことを言っているのかもしれませんが、アドバイスお願いします。
Xファイルって内側作らなきゃ内側表示されないよ
>>867 視錐台のニアクリップは0距離には出来ないので、必ずある程度の
面積を持った面になる。だから、たとえカメラの位置が壁より手前でも、
ニアクリップ面の幅(の半分)よりも壁に近づくと、壁の裏側が見えてしまう。
解決方法は、壁に近づきすぎないようにすることと、ニアクリップの
距離を短めにすること。ただし、後者はZバッファの精度にも影響するので
程々にしないと画質に影響する。
カメラの当たり判定を球とすれば、ニアクリップ面の対角線の距離
(ワールド座標系での距離)を直径とした球にしておけば、めり込むことは
ないかな。
第三者視点の場合は、キャラクタとカメラの間に壁がないか
チェックする必要がある。
まぁ、市販のゲームでも壁の裏が全く見えないってのはあまりなくて、
ちょっと見えてしまうことがあるのは仕方が無い。
特にワイドスクリーンに対応していると、ニアクリップ面の形も
環境によって変わってしまうので、厳密に処理するのは難しい。
DirectX8.1SDKの入手先がわかりません。誰か助けて
DirectX9か8.0で作ればいいのに
なんで旧バージョンのSDKを欲しがるのか非常に謎なんだが・・・ 何がしてぇの? 会社で昔のアプリの保守でも頼まれたの? それとも何か思うところがあって探してるならそれを先に言ってみろって感じだな もし、頓珍漢な理由で旧バージョンのソースを探してるなら 正直、テンプレに書いたほうがいいと思う さすがにこのパターン何度目だって感じだ ちなみにこのパターンってのは 初心者:「旧バージョンのSDKってないですか?」 回答者:「なんのためにそんなもん探してるの?」 初心者:逃走・・・ 回答者:「おーい・・・」 って感じw
テンプレにCOMとバージョニングとQueryInterfaceについて 4レス位使って説明しといた方がいいかな
>>872 入ってるサンプルやその作りが違うだろう。
8.1ベースで作るのに(Steam利用者の統計では8.1の環境はまだ15%もある)
8.1のコードやヘルプがないのは困ると思うが。
配布している間にきっちり保存しておかないのが失敗というのはありそうだが。
MSはすぐ梯子はずすから。
逆になんで新しいSDKを使わせたがるのか非常に謎。 シェーダバリバリで超絶美麗なゲームでも作ってるわけ?俺みたいに。 国内にはそんなの一握りしかいないはずだけどな。
完全に下位互換ではないしね 特定のツールとか機能が外されてたりもするし
また下位互換と上位互換を混同している馬鹿が来たよ。 そもそもDirectXには下位互換はないし、そんなことは想定されていない。
>>874 SDKが無いとかいって探し回るより、新しい内容に合わせた方がマシ。
無い無いと言って探し回っている暇があったら、とっとと新しいバージョンに合わせた方がよっぽどはやい。
WEB上で古いサンプルを見つけて、コンパイルできないとか言っている奴は、
そもそも見ているところがおかしい。
新しく勉強するのに古い情報を参照したって無意味なのに、その程度のことにすら気がつかない。
環境といっても余計な機能を使わなければ初期のDirect3D対応のビデオカードでも
9のランタイム上で動作は可能だし、困ることは全くない。
旧バージョン探す奴の理由はそのバージョンで書かれた本を見てるからだろ。 エラーメッセージなんて読む気ゼロだから エラー出た→エラーが出ない同一バージョン欲しい ってなる
DirectXランタイム 上位互換 DirectX SDK 下位互換 おまえもわかってないだろw
>>872 とくに今のやつにはD3DRM関係はいってないだろ?
3年前の本のサンプルビルドしようとしたら、ビルド出来なくて困ったぜ
コード部だけ移植試しして面倒だった
すまん。入ってないってのはライブラリファイルの方な もしかしたら入ってるのかもしれんけど、ドキュメントがないから なにを指定すればいいのか判らんかった
DxLibが絡む話で申し訳ないのですが DxLibを使ってVisual C++でゲームプログラミングをしている場合に、 FSAAと回転アルファブレンディングの機能だけをDirectX SDKから使用することはできますでしょうか? テクスチャの読み込み、レンダリング等はDXSDKの関数等を使うとして、 入力や音楽再生など他の処理を扱うライブラリと、DXSDKを介在させることはできるのでしょうか?
公式サイトで聞いてきなよ。 あそこは割と親切でしょ?
ウィンドウモードでフルシーンアンチエイリアシングはどうやってかけるのでしょうか? D3dDevice->SetRenderState(D3DRS_MULTISAMPLEANTIALIAS, TRUE); にしてもかかってくれません。。。
CreateDeviceの段階でなんか指定するんじゃなかったっけ
888 :
デフォルトの名無しさん :2007/09/03(月) 01:07:53
クライアント領域内で動く「ウィンドウ」のサンプルをご存じの方いらっしゃいませんか
具体的には例えばラグナロクオンラインのステータスウィンドウや、
Ajaxで言えば
ttp://prototype-window.xilinus.com/samples.html の"Open a simple window"で開くみたいな奴です
方向性として子ウィンドウを無理矢理使うか、
ウィンドウマネージャーの役割を担うものを作るかだと思うのですが、
前者の場合はDirectXとの兼ね合い
後者の場合マウスメッセージの扱いが課題です…
市販ゲームは家庭用などへの移植性を考えて、Windowsにべったり依存せずに そのゲーム専用のウィンドウシステムを組むんじゃないかな。
WindowsUIを使うのはメッセージを盗まれたり改竄されやすいかもな。
>>888 その辺は必要な機能を絞って自作したほうがいいぜ
Windowsのを使おうとすると今度は他のアプリの影響も受けるってことだしな
できたらできたで今度はエクスプローラの機能をどれだけ潰せるかってことになると思うし
>>888 俺も前にウィンドウマネージャ作ったことあるけど、意外と簡単だったよ。
マウス関係はメッセージではなくGetAsyncKeyStateを使った。
>>892 なにそれ?
ショートカットとかアクセサリ関連のアプリの動作とか止められんの?
テキトーなこといってんじゃねーぞ
俺がやった限りだと製品のレベルはおろか同人のレベルだって不可能だ
895 :
888 :2007/09/03(月) 02:56:50
みなさん暖かい声援ありがとうございます
子ウィンドウ路線が微妙そうという雰囲気ですね
最低限必要なのは、移動、リサイズといったあたりなので、
自作はできると思います
ちょっとがんばってみます
それにしても検索しようとすると「ウィンドウ」or "window"という語が
DirectX window modeのそれだったり窓OSのそれだったり
サンプル探すにしてもなかなか困りますね
かなり面倒ですがCompizを読みながら設計してみます…
ttp://compiz.org/Home/Start フレームワークレベルで良いアイデアがありましたら是非お願い致します
じゃあSDK HELPにしたら
だからD3DXの高レベル関数は使うなとあれほど
ID3DXSpriteとID3DXFontとID3DXAnimationControllerに関する質問はFAQで 「テンプレ読め」とだけ答えるようにしたいものだ。
DirectX900
ID3DXAnimationControllerってやっぱり評判悪いんだ 俺は問題なく使えてるけど
高レベル関数群全般の評判が悪い。
DirectXのモーション付きのXファイルに関する質問です。
MetasequoiaとRokDeBone2で作成したモーション付きのXファイルを使用していますが
モーションは最初は滑らかなのですが時間が経つと次第にカクカクになり
3分も起動しておけば攻撃の最初と最後のモーションしか見えなくなってしまいます。
FPSに変化は無くモーションだけがこのようになり原因も解らず困っているのですが
何か良い解決方法は無いでしょうか?
とりあえずモーションの設定部分を抽出しました(長いのでアップローダに上げました)
もしお解かりになる方がいらっしゃいましたらアドバイスをお願いします。
ttp://www.hsjp.net/upload/src/up2920.txt
D3DXの高レベル関数を使わずに作り直してみてください。
>>904 返信ありがとうございます
んー高レベル関数ってのを色々とググってみてみましたが
イマイチ求めてる情報に突き当たらない・・・もう少し粘ってみます
>>905 >>904 みたいのは真面目に答えてやる気も無いだろうから
無視した方がいいw
最初は全部表示できてるのならどこかしらで情報失ってるんだろうから
ブレークポイント入れて見てみるとかしたらどうかな。
とりあえずソース再うpよろ。
908 :
デフォルトの名無しさん :2007/09/04(火) 18:48:25
xファイルを多数表示すると、実行時すごく時間がかかってしまうのですが、 その重さを解消するにはどうしたらよいですか?
多数ってどれくらいよ
911 :
903 :2007/09/04(火) 19:33:00
910はDirectX SDKは2007Februaryで作成しています
ddsという形式がありますがこれってテクスチャーを張る上で何か利点があるのですか? テクスチャーの形式は何が一番妥当でしょうか?
bmpでも貼っとけ。
>910 >float AnimeSpeed; >float AnimeTime; >float AnimeTimeHold; 試しにdoubleにしたらどうかしら。 それと AnimeTime と AnimeTimeHold は 最初に0で初期化してるの?
916 :
デフォルトの名無しさん :2007/09/04(火) 23:30:26
>>909 数百単位です。
ブロックを表示して、壁代わりにしているので。
対処方あったら教えてください。
917 :
903 :2007/09/04(火) 23:33:00
>>915 >>915 ご回答ありがとうございます。
全てdouble型にして実行してみましたが、
やはり1分を経過した頃からカクカクが目立ち始めてしまいました。
もしかして全然関係の無いとこで何かいじっちゃってるのかな・・・
newでオブジェクトを生成する際にゼロクリアしてますので
値は全て初期化しています。
>917 よく考えたらDirectXってデフォルトでFPUを単精度にするから無関係ね。 (その割にAdvanceTimeとか引数がdoubleになってて謎だけど。) AdvanceTime(ObjMotion.AnimeSpeed); みたいな決めうちでもダメなの?
>>919 いや、かなりマジで
っていうか市販のゲームほとんどそうじゃん
異論あんのか?クズがw
>>920 市販のゲームが全部お前の考えたふぉーまっとなんですか
すごいねー異論はないよすごいねー
おまえが考えたフォーマットってすごいんだな
923 :
903 :2007/09/05(水) 00:26:00
>>918 >AdvanceTime( ObjMotion.AnimeTimeHold, 0 );
の部分を AdvanceTime( ObjMotion.AnimeSpeed, 0 );
にしたところ色々試しましたがカクカクならずに動きました!
これでやっと制作に打ち込んでいけそうです;
こちらで聞いた甲斐がありました。
短いお時間でしたがお付き合いいただき本当にありがとうございます。
ほんとにくだらん揚げ足の取り合いだな
他人のフリをする920
>>922 おう、一部だけなら某大作RPGも使ってるはずだw
もしや特許とっちゃった例の人でつか? 誰でも使ってるロジックを縫い合わせて特許とった気分はどんなもんでつか? 某所で鶏卵って言ってるのはアンタのやつのことでつよ チキン野郎が産んだタマゴという意味でつよ
野郎に卵は産めません(><)
ステンシルバッファについて質問させていただきます。 最初にステンシル値を0で初期化し、複数のオブジェクトを、Zもステンシルも通過した時+1しながら描画するとします。 そして、全部描画し終わった後、特定の値、例えば1以上の部分だけを、 別のテクスチャに描画したいのですが、可能でしょうか? 前に描画したオブジェクトの再描画はなしで、色つきで抜き出したいです。 アルゴリズム的なモノだけでも良いのでお願いします。
可能です。
932 :
930 :2007/09/05(水) 18:22:58
ども。自己解決しました。 スレ汚しスマソ。
リリースし忘れを警告する方法ってありませんか?
発売日をしっかり守る! と紙に書いてパソコンやカレンダーにはっておく。
リリースするまでオナ禁
釣ったら食え
デバッグ版を出しちゃった
デバッグし忘れを警告する方法ってありませんか?
あ、D3DXFontとかの->Release()のことです
スマートポインタを使わずにする方法はないですか?
なんで使わないの
なんでといわれても
使わない理由が特に無いなら使えば
あ、スマートポインタは祖父の遺言で使うなと言われたのです
面白くないよ
あのう、真面目に話しているんですが
はいはい板違い 去ね
わかりました、もう二度と来ません
理由はもうだいぶ組んじゃってるのでスマートポインタで書き換えるのが
面倒だと思ったのですが仕方ないので書き換えます
一応
>>946 >>948 >>950 は偽者ですので
そんなに面倒ならプログラムを組むのをやめるといいよ。
面倒だけどやるっつてんだろうが糞ハゲが 役に立たない上にガタガタ騒ぐなボケ
っていうか、デバッグバージョンのdllを使えば済む話じゃないか? コード上で検出したいなら、グローバルなインターフェースはNULLで初期化しておいて Releaseすると同時にNULLを代入するマクロを使う。 (Releaseの戻り値が0かどうかも確認するといい) 最後に全てのインターフェースがNULLかどうか確認する。
最後のLPDIRECT3D9とLPDIRECT3DDEVICE9のリリースで0になっていませんでした でもどこで忘れているのか見当もつきません;;
スマートポインタを始めて聞いたようなレベルの同僚と共同作業する場合 自分がローテクに降りて行くほうが安全確実である。
悲しいがそれが現実だな
一つずつ切り分けていったら原因箇所がわかり、Releaseの戻り値 すべて0にできました、ありがとうございます
そしてAddRef/Releaseの戻り値に依存したコードは書いちゃ駄目と MS自身が言及している悲しい現実。
デバッグ用に確認してるだけであって、
戻り値によって処理を分岐してるわけじゃないんだろ?
まあReleaseの戻り値が期待通りでなくても文句は言えないんだが。
つか
>>958 そこまでデバッグする暇あるのなら素直にComPtrで書き直せばいいのに
時間かかりそうならスマートポインタに書き換えようと思いましたが SAFE_RELEASEにログを吐くコードをくっつけて ↓見たいな感じで一つずつやっていったらすぐに特定できたので・・・ プレイヤークラス->Create() //ステージクラス->Create() //メニュー表示クラス->Create() ・・・ プレイヤークラス->Destroy() //ステージクラス->Destroy() //メニュー表示クラス->Destroy() ・・・
962 :
デフォルトの名無しさん :2007/09/07(金) 00:33:27
>>961 〜を使うではなくてプログラム自体を
そういうことで悩む必要のない構造にできればレベル+1だw
俺はちゃんと組めばスマートポインタの出番なんてないと思ってる
破綻することがわかってるコードをゴリ押しでもってくのがスマートポインタ
>>962 最後の一行に激しく同意。
階層設計を構造的にきちんとデザインしないからスマートポインターとかでよろしく処理しようと思ってしまう。
こんなふざけた野郎はどうみても釣りだろ。
>>963 構造主義一辺倒じゃ片付かない事例なんていくらでもあると思うんだ
>>965 多人数で組む時とか?
でも、ここは初心者スレだし。
最初からスマートポインタで対処療法しちゃう癖つけるのも宜しく無いよ。
現実のコードが追いつく/追いつかないは置いておいて、
どっちにしろ構造をデザインするのは悪い事じゃないし。
>>965 そういうやっつけ仕事をして日銭を稼いでいるような会社は可愛そうだな。
事例はある事は認めるが、それに甘んじてしょうがなく働くかどうかは本人次第。
俺はとっくにそういったことに見限って10年前からアメリカのソフト会社だから全然違うけどな。
誰も聞いていない自分語りを始める奴は、例外なく心の病気にかかっている。
>多人数で組む時とか? いいえ、事案自体の構造的に、構造主義一辺倒の分析で間に合わないケースがあるよ 初心者スレだからこそスマートポインタに対する冷静じゃない見方を植え付けるのは よくないなあと思ったんだが
>>969 DirectXみたいに構造化された対象を扱うケースで?そんなに頻繁に?
設計がおかしいんじゃねーの?
構造化・・・
スマートポインタをただの開放忘れ防止にしか使ってなきゃいいけど よくわからなくなったインスタンスの所在を一括廃棄するために使ってるとしたら 普通に危険だ この先経験を積んでもロクなプログラマにならないだろう・・・ 俺はそういう奴を何人も見てきたw
俺はそういう奴を何人も見てきたw
具体的に何人?
大抵は日本人だけど中にはインド人とかもいた
廃棄タイミングを制御できない事例について議論しようぜ オブジェクトを生成した階層と、そのオブジェクトを使う階層が違って、かつオンラインのような長期稼動のケースでは、廃棄タイミングを制御するなんて現実的じゃないと思うんだ 思うだけで深い意味はない、素人だから
日本人
曰本入
日本人(笑)
つうか、自動変数でしか管理されて無いオブジェクトってなんなの? そんなもんがプログラム中に頻繁に発生するの?
初心者スレなのになんか難易度の高い基地外が住みついてるなこのスレは
982 :
デフォルトの名無しさん :2007/09/08(土) 02:21:03
質問です。 初心者レベルの問題なのかはよくわかりませんが、 正規化(Normalize)や内積(Dot)・外積(Cross)の使い方がわかりません。 というか、何となく言葉ではわかっているんですが、 それを実際にプログラミングで使用するとなると 一気に?状態になるんです。 ベクトルの長さを1に〜とは言っても「1にしてどうすんの?」 という感じでして・・・ どなたかわかりやすい解説や、わかりやすいサイト等を 知っている方は是非お願いします。
他人の解説を聞いても意味はないよ。他人にとって欠かすことができない処理でも 自分の作るプログラムに必要でないことはいくらでもある。 スーパーマリオもドラクエも法線の計算を使ってないだろうしな。
>>976 それってつまり管理できてないってことでしょ?
ゲーム系だとみんな俺様設計で組んでるから文句言われないけど
業務系でそういうことやると組み直しになるぜ
生成したインスタンスが管理できてないなんて特に最悪
どうせならどこでも通用するプログラマになりたいよね
それにそもそも
>オブジェクトを生成した階層と、そのオブジェクトを使う階層が違って、
この構造がまずそうじゃねぇか、この仕組みに手を入れないで
スマートポインタに手をだしていいのは締め切り1ヶ月前だけだろw
ほんと広範囲に影響がでるもん触ることになってちょっと怖くて組みなおせないよってときは
いいと思う>スマートポインタ
なに興奮してんの
>>986 結構重要な分岐点だから
ここでインスタンスの管理をサボるようになると
マジでロクなPGにならない
重要なことかもしれんけど初心者スレでインスタンスの管理やら説いても伝わるとは思えんけどなあ そして伝わってないなら周りから見ればスレ違いのオナニー長文にしか見えないわけで
場違いな所での場違いな力説の空回り感と言ったら・・・
まあ、ちゃんと管理しなきゃ駄目だよってことが伝わればおk
どーせJavaグラマ上がりのスマートポインタマンセーブタが、設計の手抜きに対して 「事案自体の構造的に、構造主義一辺倒の分析で間に合わないケースがある」 とか寝ぼけてんでしょ。 無視が一番。
チームが分断していてコントロールできない事例なんていくつもある さらにチームではなく、外部ベンダとかに分断している可能性だってある 現実的に優秀なPGが一人いるわけじゃなくて、馬鹿なPGが大勢いることの方が多い 下手したら日本人PGはインドや中国のPGより質が悪いかもしれない じゃあ現実的にどうしようか、って考えたらリソースリークが避けられるスマートポインタは一つの方法としてあると思う (生成したもの全てをスマートポインタにしろといってるわけじゃない) 他には遅延フェッチの実装を助けるとか、リソース管理とか参照回数の計測をしなきゃいけないときとか、純粋にコーディング世界での有用性もあるし 要は使いどころだと思うよ
だったら、まず必要なのは「スマートポインタで逃げる事」じゃなくって、 多人数でも正常に動作する構造設計と品質管理システム。 リークのあるリソースの追跡なんてプロファイラでやる事。 最後の行も、スマートポインタと全然関係無い。 普通にスマートポインタ使わない環境でもやってる事ばっかり。 「要は使いどころ」なのは同意だが、「困ったらスマートポインタ」なんてやってたら バカPGが大勢生産される環境になるだけ。
お前らみんなスレタイを見ろ。
>他には遅延フェッチの実装を助けるとか、リソース管理とか参照回数の まさにスマートポインタの使いどころだと思うけど
設計でつまずくたびにスマートポインタでスマートに逃げる・・・ 逃亡プログラマだなw
体育会系プログラミングってやつか
糞スレ埋め
でもそんなの関係ねぇ
1001 :
1001 :
Over 1000 Thread このスレッドは1000を超えました。 もう書けないので、新しいスレッドを立ててくださいです。。。