1 :
名前は開発中のものです。 :
04/05/05 12:33 ID:dP7V/vQq DirectXについては基本このスレで話していこうとものです。 基礎的な質問+高度な質問も簡潔かつ簡単に答えることをモットーにして頂き このスレの回転を早めて常にアクティブなスレにしたいと思っております。 このスレに質問等を書かれる方はまず最初に自分でしっかりと調べたのちに聞かれることをお願いします。 質問に対する答えも簡潔に出来る限りわかりやすくお願い致します。
(´_ゝ`)<そして全日空
3 :
名前は開発中のものです。 :04/05/05 13:08 ID:MrXU4j8T
5 :
名前は開発中のものです。 :04/05/05 13:47 ID:MrXU4j8T
8 :
名前は開発中のものです。 :04/05/06 17:34 ID:JOxU/j0K
( ´_ゝ`)<そして全日空
cygwinからDirectXを使う方法も教えてくれ。 素直にOpenGL使ったほうが早いか?
>>10 gcc使いたいってことだよね。
俺はDirectX8以前の頃にCygwin+SDL、Cygwin+DirectDrawを
やってたんだけど、DirectDrawのときはdllをCOMインタフェース
経由で呼び出していた。ヘッダファイルは自前で変換してたが
ネット上でgcc用のportが存在することを後で知った。
mingw32(with Dev-C++)もいい感じらしい。
DirectX9+BCC(BCBX)はすんなりイクという話を聞いたが、まだ試してない。
>>10 フリー版のVS.NETが出たんだから
素直にそっち使ったほうが早いんじゃない?
VCとVSを混同している馬鹿がいるのはこのスレですか?
>>12 フリーになったのはVC++Toolkit2003(IDE無し)ね。
>>11-14 情報thx
でも駄目だ。
gccからはDirectX9.0bはまだ使えなさそうだし、
Platform SDKダウンロードしても
Win32.makってファイルが無いせいで
サンプルのビルドすらできやしねー。
BCC+DirectXをいってみます。
>>17 Win32.mak入ってるよ。Platform SDK(のCore SDK)。
includeの中にある。
>>18 ほんとだ。thx
どうしてcygwinのfindで見つからなかったのかと思ったら、
ファイル名がWin32.「M」akだった。
質問です。 DirectSoundでWAVEを再生するところまでつくり、次はストリーム再生を 作ろうとサンプルコードなどを見ながら作ってたのですが、 LPDIRECTSOUNDNOTIFY lpDSN; lpdsb->QueryInterface(IID_IDirectSoundNotify, (void**)&lpDSN); ↑サウンドバッファ を実行させると、リンクエラーが出て外部シンボルIID_IDirectSoundNotify は未解決です。 と出てしまいます。 VC6ですが、どなたか解決方法知ってますでしょうか
>>20 DirectSoundのDLLを静的リンクで呼び出してるなら
libファイルをリンクする必要があるんじゃないか。
>>20 ソースの頭に
#pragma comment( lib , "dsound.lib" )
って追加しな
23 :
20 :04/05/22 10:28 ID:FMUKeovj
そうか!ありがとうございます。 ・・・と、思ったら、>22の式は追加してありました・・・ じゃあ、原因は他にあるのでしょうか。
dxguid.libは?
25 :
20 :04/05/22 21:08 ID:QemK3kxi
できました! しかし、むかーし試しに作ったときはこれ入れなかったような・・・ ありがとうございました。
26 :
名前は開発中のものです。 :04/05/23 12:05 ID:i0TzxYFQ
SDKインストールしてdllをデバッグ版にすると WMPやDivXPlayer等でムービー再生した後、 必ずエラーが出ます(assertに引っかかる) リリース版に戻したら出ないから、多分デバッグ版のdll のせいだと思うのだけど、いちいち開発作業中の時だけ デバッグ版にするのは面倒なので、なにか良い対処方は ないでしょうか?
対策1 デバッグ版を使わない 対策2 WMPやDivXPlayerでエロムービー見ない 対策3 スクリプトで開発環境起動前&終了後にランタイム自動更新
>>26 その書き込みで思い出したが、その症状俺もなったことある。
解決策も見つからないまま、OSから再インスコして回避したわ。
確か、Win98SE時代だったと思う。
>>26 はWin2KかXPで、そのトラブル出るのか?
DirectXのランタイムには、リリース版など存在しない。
デバッグ版/リテール版
頂点シェーダーとピクセルシェーダーって結局何が出来るの? 何かサンプル見ただけでは凄そうには見えない。 こんなことが出来るんだぜ!って言うサンプルっぽいのない? 教えてヌルい人。
あーサンプルじゃ駄目なのか。 最近の洋ゲーは使いまくりだろ。
34 :
名前は開発中のものです。 :04/05/25 02:01 ID:Ek7Dq4UE
35 :
名前は開発中のものです。 :04/05/25 13:24 ID:ICaRrwFL
テクスチャの読み込みをしすぎるとどうなりますか?
PCが爆発します
>>35 VRAMやRAMやHD(スワップ)がいっぱいになる。
そしてメモリ不足エラーが出る。
ぜんぜんちがうよ
39 :
名前は開発中のものです。 :04/05/28 11:45 ID:RHmeZuoM
どんなサンプルでもいいので皆さんが作ったエフェクトのサンプルの ソースを公開してください
>>31 ぶっちゃけ、大したことはできない。
固定機能で回りくどい事をしないといけなかったことがシェーダだと
効率よくできるだけ。
>>39 SDKのサンプルでも見てくれ。
っていうかエフェクトだけじゃ抽象的すぎて何を見たいのか分からん。
42 :
名前は開発中のものです。 :04/05/28 12:31 ID:uAri/so6
t-potのサンプルを参考にして(というかほとんど全パクリで)ボーン処理のシェーダを書いたんですが
ライティングが中途半端にうまくいきません。VC++6.0で作ってます。
状況としては、
○デバッグモード:100%望んだように動きます
△リリースモードでF5(このファイルにはデバッグ情報が含まれてませんと出ます):色が変になります。
陰影はついてくれてます
×リリースモードでctrl+F5:lit命令が上手くいってないのか、モデル全体が黒く塗りつぶされます
シェーダを使うのは今回が初めてなので、なにか基本的なことを見落としてるのかもしれません
気づいたことがあったら教えてくれませんでしょうか。
http://gamdev.org/up/img/626.zip ソースです
何か初期化を忘れているとか、そんなんじゃねーのか?
>>42 ごめん。
俺、HLSLかCG以外のシェーダプログラムみると吐き気がするんだわw
>>42 そのlitは0以下をクランプするためだけに使ってるんだよね?
それってmaxじゃ駄目なん?
ちなみに、リリースモードとデバッグモードで動作が違う原因の9割が
初期化のミス。
あとアンビエントの計算がちょっと気になるが、まぁいっか。
t-potにボーンとかスキンメッシュのサンプルなんてあったっけ?
ぬおぉ・・・
48 :
名前は開発中のものです。 :04/05/29 04:32 ID:Uaz1UdRd
49 :
42 :04/05/29 14:24 ID:54pOn5GZ
>43,>44,>45 アドバイスありがとうございました。プログラム側が怪しい雰囲気が濃厚なので もうちょっと見直してみて、それでもだめならHLSLに挑戦してみます
50 :
名前は開発中のものです。 :04/05/29 14:34 ID:uUf6SfjO
>>49 HLSLに移ってから悩めよ。
手間が全然違うからw
51 :
名前は開発中のものです。 :04/05/30 20:31 ID:/o8ZeJNe
/ / } _/ノ.. /、 / r;ァ } ry、 {k_ _/`;, ノノ パンパン / / } ;' `i、 _/ノ../、 _/ 入/ / `ヽ, ノノ / < }''i" ̄.  ̄r'_ノ"'ヽ.i ) ―☆ {k_ _/,,.' ;. :. l、 ノ \ ` 、 ,i. .:, :, ' / / \ ,;ゝr;,;_二∠r;,_ェ=-ー'" r,_,/ ☆ 【ラッキーレス】 このレスを見た人はこのコピペを10分以内に 3つのスレへ貼り付けてください。 そうすれば14日後好きな人から告白されるわ宝くじは当たるわ 出世しまくるわ体の悪い所全部治るわでえらい事です
自分のPCにDirectXのVerいくつが入ってるのか調べるにはどうしたらいいのですか。
3Dゲーム作りたいんだけど 何から勉強すればいい? というかサイトとか本おせーて
56 :
名前は開発中のものです。 :04/06/04 22:15 ID:I7wyYjo8
57 :
名前は開発中のものです。 :04/06/06 09:18 ID:Q4UVLz4O
DirectX8のテクスチャーで2Dスプライト風の表現をしています。 複数の小さな一枚絵をまとめて正方形テクスチャーに登録して、表示にはテクスチャーの 一部を指定して表示しているのですが、微妙にドットがずれて表示されます。 正方形テクスチャー一枚に、一枚絵を一枚だけ登録して、常にテクスチャー全体を表示すれば ドットずれはなくなるのですが、メモリを無駄に消費しそうで困っています。 どうすればよいでしょうか?
まずはヘルプを読め。
>>57 テクセルの中央を指定すれば解決。
生意気な古いビデオカードでは駄目だったりするが無視。
そこに書いてあるとおりにやってもはっきり行ってうまくいかないビデカが多いんだよな。
そうか? 具体的に問題の起こるGPUをカモン。
63 :
57 :04/06/06 20:36 ID:EGzuBYaV
おかげさまで、自分の環境ではちゃんと表示されるようになりました。 感謝感謝。
>>61 両面にテクスチャを貼ったときに
裏面のときは逆にずらさないといけないんだけど
それってできないよね?
裏面って判断がこっち側じゃできないしね。
なんのこっちゃ?
裏だろうが表だろうが、回転後にずらせば何の問題もない。 判断する必要性など微塵もない。
67 :
名前は開発中のものです。 :04/06/07 22:50 ID:FwHuc4eG
DirectXを使ったゲームをやっていると毎回一定時間プレイした後フリーズしてしまいます 正確にフリーズするまでの時間を計ったことはありませんが大体10分弱くらいです スペック的に何の問題もないような軽いものでも必ずフリーズします HDDのデフラグやOSのリカバリなど試してみましたが効果ありませんでした OSはMe、DirectXは9.0bです 考えられる問題として何かありますでしょうか?
MEかな?
MEですか・・・orz
Meなんか入ってるPCのグラボはなんだ?
熱暴走してんじゃねーか…?
MEとDirectX9.0というあたりが、 牛丼に蜂蜜かけるという暴挙に感じられる。
>>70 オンボードチップセットです・・・
言われて気がついたんですけどドライバの更新するの忘れてて、最新のにしたら解決したっぽいです
つまんないオチですいませんでした
>>74 ちょっと不安だったんですけどやっぱり板違いでしたか、すみませんでした
ちなみに直ったと思ったらやっぱり全然直ってなかったのでとりあえずOS買い換えてみることにしました
76 :
はじめての開発 :04/06/08 15:17 ID:q0xZ9OCf
DirectX8をGCCでやりたいのですが、まったくわかりません。 どなたか、詳しく教えてください
検索しろ
XPでDirectXを9から8.1に戻す必要が生じたんですが、 MSのダウンロードサイトで8.1b for 98/Meのやつを今落としてます これ入れて大丈夫なのでしょうか?ていうかこれしかないのか どうかわからないのですが…ご指南ください
80 :
79 :04/06/09 01:12 ID:CKAXd81C
ぐぐってみましたが、 ・古いバージョンは新しいものに上書きできない ・9を削除するのに必要なフリーソフトがある とのことで、そこに行ってみましたが、いま休止してるようで 入手できずorz
81 :
79 :04/06/09 01:14 ID:CKAXd81C
戻す必要を生じたゲームソフトは、一度普通に遊べたんですが、 もっかい起動すると駄目でした。確認すると9に非対応、8.1を使えと・・ 9のまま遊べないか模索してみます
少しは考えて投稿してはどうか
84 :
名前は開発中のものです。 :04/06/11 05:09 ID:GW4miGK7
結局いまのところシャドウボリューム使ってゲームで使える程度の速度で まともな品質でソフトシャドウ出すのって無理?あーでもボリューム使っても 結局alphatest使って書いてる木の葉の影とかが真四角になっちゃうしなぁ。 なんかだだっぴろい屋外のフィールドの建物とか木とかの影おとすのに 良い手法ってないですか?リネIIとかFF11とかはどんなカンジになってる?
リネ2は平面上にキャラの影をおとして張ってるだけ、 だから光源方向に建物の凸凹があると影が変な位置に映る。
まあぶっちゃけユーザーからすれば、影とかに凝るよりも 普通に遊べる速度であることのほうが必要だし 現段階では気にする必要ないのでは? 実験目的だったらスマソ
87 :
名前は開発中のものです。 :04/06/12 10:30 ID:nJebHZqt
つか、いっそ影そのものを省いてしまっても別に違和感はない。 円影だってとりあえずついてるレベルならいらないw 落下地点がミソになるアクションゲームだと無いと辛いけどね。
その辺は絵柄によるな。あとはシーンによる。
89 :
名前は開発中のものです。 :04/06/18 09:45 ID:z15bpwIY
ソフトシャドウまでやってくれると心地よいけど、ジャギーだらけのディジタルな影を付けられてもうっとおしいことがしばしば。 というオレの3Dエンジンもいまんとこソフトシャドウサポートしてません。ステンシル2パス描画(ライトオフシェイダー・オンシェイダー)なのでただでさえ重いし。 16パスくらい描ければステンシルソフトシャドウも簡単にできるんだけどね。なんかうまい手はないものか。 ライトマップも簡単なフィルタリングしかしていないのでかくかく。 やぱい、完璧に世間に遅れをとっている。
万能の影エフェクトは“今のところ”無いからな。 より多くの選択肢を提供しておいて、状況に応じて最良のもの 「気持ちよく」選択できるようになってなければプログラマの オナニーに成り下がるシナー。
91 :
89 :04/06/18 18:15 ID:z15bpwIY
>状況に応じて最良のもの「気持ちよく」選択できるようになってなければ それはテクの蓄積ってやつじゃないか?数年前はプラナーシャドウオンリーだったけど、今はそれも選択しの一つなわけで。 数年前の某ゲーで使ったプラナー投影マトリックス(単なるy=0 N(0,1,0)平面と直線の交差)だけど、こんなんで良かった時代が笑える。 pMat->_11 = L.y;pMat->_12 = -L.x;pMat->_13 = 0.0f;pMat->_14 = 0.0f; pMat->_21 = 0.0f;pMat->_22 = 0.0f;pMat->_23 = 0.0f;pMat->_24 = 0.0f; pMat->_31 = 0.0f;pMat->_32 = -L.z;pMat->_33 = L.y;pMat->_34 = 0.0f; pMat->_41 = 0.0f;pMat->_42 = 0;pMat->_43 = 0.0f;pMat->_44 = L.y;
92 :
89 :04/06/18 18:23 ID:z15bpwIY
今肝心なのは物理エンジンだね。物体同士の衝突と力点割り出しとか結構大変。これもリアルとスピードでトレードオフがあるし。レンダリング並の仕事量(物理用語でない方)が要求される。
93 :
90 :04/06/18 19:08 ID:xHeZzj8T
スマン。今読み返したら話の流れを一気に飛ばしてた。詫びる。 補間すると、俺は小物なので目下の関心はドラスティックな新技法の開拓ではなく ある程度知られた既存テクの組み合わせとか、状況によって発生するartifactの 削減とか、なんか地味〜な話題になってしまうんで。確かに場違いな発言であった。
94 :
90 :04/06/18 19:10 ID:xHeZzj8T
で、結果として
>>90 みたいな、オーサリングツールの方向に
話が飛んでしまったという流れだった。と自己分析。
95 :
90 :04/06/18 19:14 ID:xHeZzj8T
>>92 なんかネタに見えるんだが・・・。俺ってへそ曲がり?
>>92 >今肝心
おいおい。その感覚はやや異質なものがありますよ。
「今肝心」の手前に「漏れの」を付け加えましょう。
剛体近似可能なものなら、既に定石的な手法が幾つも存在しますし
状況に応じた軽いチューニングで実用上差し支えない安定した結果
を得られますし、細かい不満点(例えば絵的に見栄えのする動きに
練りこんでいく部分など)はプログラマから切り離した作業で
改善したほうが効果的ですし。
DirectX9(sumemr 2003)を使ってフォントをつかったテキスト描画をしたいんですが どういった方法が挙げられますか? 1.DIBにいったん描画→テクスチャ転送にでテクスチャを表示。 2.D3DXFontオブジェクトを使ってDrawTextAなどを使う。 とりあえず思いついたのは上の二つくらいなんですが。
とりあえずさ、自分で思いついた方法で実際に組んでみろって。 何もしない内から無為に考え込む癖は是正したほうがよろし。
GetGlyphOutlineで取得したフォントをテクスチャに転送。 DIBを経由すると極端に遅くなるし、D3DXFontは論外。
GetGlyphOutline使うのはちょっとめんどいけどなー。
101 :
松本人志 :04/06/21 18:28 ID:+ROY13ZK
表示されりゃえぇやん、趣味なんやし。
DirectXを使っている方って文法とか全て覚えているのですか?
だいたいがヘルプ見てるだろ。
104 :
97 :04/06/22 02:39 ID:EKpBL9rJ
そうですね。とりあえず組んでみます。 初心者なのに構造とかを先に考えるのは悪い癖だなぁと自分でも思ってます。 みなさまありがとうございました。
const BYTE Table5[] = {0x00, 0x40, 0x80, 0xC0, 0xFF}; const BYTE Table17[] = {0x00, 0x10, 0x20, 0x30, 0x40, 0x50, 0x60, 0x70, 0x80, 0x90, 0xA0, 0xB0, 0xC0, 0xD0, 0xE0, 0xF0, 0xFF}; const BYTE Table65[] = {0x00, 0x04, 0x08, 0x0C, 0x10, 0x14, 0x18, 0x1C, 0x20, 0x24, 0x28, 0x2C, 0x30, 0x34, 0x38, 0x3C, 0x40, 0x44, 0x48, 0x4C, 0x50, 0x54, 0x58, 0x5C, 0x60, 0x64, 0x68, 0x6C, 0x70, 0x74, 0x78, 0x7C, 0x80, 0x84, 0x88, 0x8C, 0x90, 0x94, 0x98, 0x9C, 0xA0, 0xA4, 0xA8, 0xAC, 0xB0, 0xB4, 0xB8, 0xBC, 0xC0, 0xC4, 0xC8, 0xCC, 0xD0, 0xD4, 0xD8, 0xDC, 0xE0, 0xE4, 0xE8, 0xEC, 0xF0, 0xF4, 0xF8, 0xFC, 0xFF};
あ゛ー、ミスった… GetGlyphOutlineってアンチエイリアスかけない場合の処理書くの('A`) マンドクセ
>>106 ハゲドー。
GGO_BITMAPのときでもバイトマップで返してホスィよな・・
結局描画するときに変換しなきゃいかんし。
ぬ る ぽ
109 :
108 :04/06/26 15:01 ID:4jQjSpOQ
「ガッ」されない。 ちょっと、しあわせ。
DirectXの書籍を探しているのですが、 これは絶対に読んでおけみたいな定番はないですか? 例えば Advanced Windows とかプログラミング Windows とかのような。
何かあった時にはペゾルト嫁とか言うかわりに ヘルプとサンプル嫁という世界なのですな。 読んでわからなかったら、その時にはまた何か考えるとします。
113 :
デフォルトの名無しさん :04/06/29 22:19 ID:Q9s/hxiB
HLSLをコンパイルしてどう展開されるか を調べるたいんだが、なにかいい方法ありませんか? シェーダープログラム(アセンブラ)の形式で 見れるのがいいんだけど。。
>>111 なぜかDirectXのいい本無いよね。
3Dの初学者だったら、OpenGLのほうがいいんじゃないか?
いい本がいっぱいあるし。DirectXのようにコロコロ仕様が変わったりしないし。
ドット絵を拡大して2Dでぐりぐり動かしたいなーと思って X9のスプライト機能使ってみたんですが、 なんか勝手にアンチエイリアシングされちゃってドット絵らしさがなっちゃうんですが・・・ X9のスプライト機能をアンチエイリアシング無しで使う方法ってあるのでしょうか? 教えてエロい人! ・・・スプライト機能で楽しようと考えている俺が間違っているのか?
>>115 サンプラーの設定を変える。
HRESULT IDirect3DDevice9::SetSamplerState( DWORD Sampler, D3DSAMPLERSTATETYPE Type, DWORD Value);
例:
//拡大時・縮小時フィルタを点サンプリングに
pD3DDevice->SetSamplerState( 0, D3DSAMP_MAGFILTER, D3DTEXF_POINT );
pD3DDevice->SetSamplerState( 0, D3DSAMP_MINFILTER, D3DTEXF_POINT );
>>115 DirectXのラスタ化ルールをよく理解しる。
頂点構造設定ですが、SetFVF()ってDX9では旧式で、SetVertexDeclaration()がDX9でのやりかたですよね? なので、CreateVertexBuffer()のFVFを0にして、SetFVFを使わずに SetVertexDeclarationオンリーにしてみたんだけど、シェーダーオンリーだと動くんだけど、固定パイプラインを使うと飛びます。 固定パイプライン使うなら旧来の方式じゃないとだめなんですか?
119 :
115 :04/06/30 18:41 ID:+yXY0JqQ
>>116 情報アリがd御座います
でも、昨日既に試してました。ダメだったんです。
で、ふとX7のヘルプを見ていたら、
嫌〜なことに気づいてしまいました。_| ̄|○
X7のスプライト機能の準備をする関数のD3DXPrepareDeviceForSpriteってヤツ。
中で
SetTextureStageState(0, D3DTSS_MINFILTER, D3DTFN_LINEAR);
SetTextureStageState(0, D3DTSS_MAGFILTER, D3DTFG_LINEAR);
とかやってるんですよ・・・
それでピーンときて
>>116 を
ID3DXSprite::BeginとEndの間に挟んでみたんですよ・・・・
_| ̄|○ チャントナッタヨ
ID3DXSprite::Beginの中でバイリニア服用してビンビンの悪寒ヽ(;´Д`)ノ
Bigin・・・BeginSceneの外に持っていけないし、外したら勝手に呼び出されるし・・・
>>116 を毎フレーム殺るしかない薬缶。
毎フレームやっても問題ないのでしょうか?
スプライト機能使うの諦めたほうが早いような気がしてきた・・・
121 :
155 :04/06/30 20:18 ID:+yXY0JqQ
あ、よく考えたら199はID3DXSprite::Begin内部でステート変更してるてことか。
今更俺が毎フレーム2コ程度ステート変更しても問題ないか。
結局
>>116 が一番正しかった。
漏れがアホだった。
ありがd
連投自己レススレ汚しスマソ
(;´_ゝ`).oO(番号間違えすぎ 155->115 199->119)
123 :
116 :04/07/01 15:19 ID:WXjsa61Z
>>121 で、できたわけね。
ステートのチェンジのオーバーヘッドだけど、逆に何回ステートチェンジすると気にするほどパフォーマンスが変わるか調べてみれば?
ま、CPU→GPUへのデータの流れが少ない方がいいわけで、オレは、ステートの写しを取っておいて、現在のステートと同じであれば変更しないっていう風に組んでいる。
124 :
118 :04/07/01 15:22 ID:WXjsa61Z
結局、固定パイプラインを使うには、vertexDecl方式でなく、FVF方式でないとダメなようだ。 新式があるのに旧式でないとだめって、こういうのいやだな。 OpenGLにしとけばよかった。
旧式の固定を使うのに、新式で使えないのは当たり前だが。 古い機能を新しいメソッドに持ち込む方が混乱を招く。 間違いなくDirectXは向いていないから、今からでもOpenGLに逝った方がいい。
126 :
124 :04/07/01 17:45 ID:WXjsa61Z
>>125 は?
固定パイプラインが古い(obsolete)機能?
X9ネイティブだとシェーダーオンリー??
初耳だ。
インタフェースとしてはlegacyかな。 お手軽プログラミングの需要はあるので今後も 固定パイプラインインタフェースは残されるだろ。 尤も、最近のビデオチップは固定パイプライン機能を プログラマブルシェーダでエミュレートしてるので ハードウェア的にはobsoleteかな。
ただ、D3Dインタフェースが今後も「薄いハードウェアレイヤー」 の性格を帯び続けるなら、ハードと遊離しつつあるインタフェースが サクっと廃れる可能性もあるな。
129 :
127 :04/07/01 18:41 ID:WXjsa61Z
固定パイプラインが、vertexDecl方式でなく、FVF方式じゃないと動かない手抜きを指摘にしているんだけど。 固定でvertexDeclを参照すればいいだけの話だ。 >旧式の固定を使うのに、新式で使えないのは当たり前だが。 なにが「当たり前」なんだか。
>>129 んー?私はMSでもID:1vEsR6h1でもありませんので
私に当たり散らすのは止めていただきたいですな。
敵(MS)を見誤っていませんか?
カルシウム取り深呼吸をし、
>>118 の姿勢を思い出しましょう。
>なにが「当たり前」なんだか。
知りませんよ。私に聞かないでください。
確認しますが、私は「固定パイプラインが古い(obsolete)機能? 」という
質問に対して返答をしたまでですよ。ご不満ですか。
固定機能をシェーダーで書けば、無理に混在させる必要は無いんだけど。 新しい部分と古い部分を混在させて、自ら不具合を招いているのに、 周りに当たり散らすのはいかがなものか。
ところで、何の権利があっておまえらそんな「偉そう」なの?
なんか典型的な無能タイプだな…
こういうタイプは >固定でvertexDeclを参照すればいいだけの話だ。 なぜ参照しないかなんて全く考えないんだろうな。
Direct3Dなんて最初から見向きもしなかった俺は勝ち組
でもアンタ、フェードアウト組みに入ってますから!残念!!
知ったかしかいないじゃん。 覗いて損した。
スレを覗いたごときで何かが得られると思ったとは、 なかなか幸せな脳味噌をしているようだ。
なんだ、ど素人がプロの振りをしてみるスレだったのか。
ところで喪前らレス先番号ぐらい書いてくれ。
>>139 「覗いた」という表現から察するに137へのレスか。
>>140 どのスレの話をしてるのか知らんが
138がリンク貼ったスレの話なら同意だ。
なんだ、底辺が素人をバカにするスレか。
もとい、ろくな仕事させてもらえない底辺が、素人相手に鬱憤を晴らすスレですねここは?
>>144 >そんなに悔しかったの?
おれは118じゃないよ。傍から見て、底辺どもの争いは醜いなと思って。
とくに
>>125 は、底辺で鬱屈としている奴特有の攻撃性だなと。
穢れた底辺とこれ以上かかわりたくないのでこれで。
うほ。なんだかよく分からんことになってますね。
一連の流れを読ませていただきましたが、超ド素人の私のような人間でも明快に分かるのは
「底辺」「素人」といった、自分に都合の良い人間像を脳内生成して、それを勝手に信じ込んで
勝手に火病を起こして勝手に暴れている fdoAETWb のような人は何を言っても説得力ないよ
ということ。
>>125 にはやや陰険な印象を覚えますが、WXjsa61Z の
>>126 以降の狂いっぷりというか
八つ当たりっぷりを見ていると、こちらも弁護不能というか自業自得でしょ。冷静じゃないよ。
他人を貶める言葉だけ突然書く時点で
>>145 も同類。
自分だけは違うと勘違いしないように。
そんなにてぇへんだ、てぇへんだと言いたければ、
江戸時代にでも生まれれば良かったのにね。
148 :
名前は開発中のものです。 :04/07/02 09:22 ID:fdoAETWb
なんだ、自作自演のスレか。
粘着荒らしが誕生する過程を目撃した。
MFCとDIRECTXを一緒に使用する事できる?やり方がわかんね。 それと、やっぱMFCは使用しねぇ方が良いかね?記述が長くなるとか色々言われてるし
やり方がわからんのなら使用するな。
いやいや、MFCは使えるけど、それとDIRECTXを一緒に使うのにやり方がわかんねって意味。
Win32API単体とDirectXの組み合わせは出来るの?
APIで作ったDirectX9.0のプログラムを一つのクラスに無理やりまとめて、 動かしていた事もあったヨ。
>>153 MFCとDirectXを組み合わせてるサンプルがあるだろうが
そこまでMFCにこだわる理由がわからん。
Win32APIでウインドウの作成からDirectXの利用が一通り出来、 MFCも問題なく使えるのであれば、 MFCとDirectXの併用において迷う部分など無いはずなのだが、 いったい何が分からないのだろう?
俺はWTL使ってる
161 :
名前は開発中のものです。 :04/07/10 16:05 ID:4OvPBLsu
そういう本売ってるよ、自分見たし 工学社だったはず
162 :
名前は開発中のものです。 :04/07/11 01:14 ID:RsNErYr5
ある程度本格的な3Dゲームを制作するには、ビデオメモリは何MBあれば十分? 個人的感想でいいので誰かおせーて。
じゃあ俺の「個人的感想」。 「ある程度」の程度次第だと思います。
>>162 じゃあ256MB。これだけあれば十分だろ。
足りないから動かないなんてないし。
VRAMを管理する時代は終わってるし。
>>162 ある程度の料理をするのに塩は何グラム必要ですか?
個人的感想でいいので誰かおせーて。
>>165 一日の最高摂取量を5グラムとすると、
3で割ったぐらいが一食分じゃなかろうか?
一人分とはどこにも書いてないぞ。
>>167 1人分がわかれば「ある程度の料理に必要な塩の量」も目星がつくだろ。
「ある程度の料理」を大衆料理を指しているなら、
「ある程度の料理に必要な塩の量」 = その料理に必要な塩の量 X 人数 + α
という式を頭に描くことができればもう解決だろう。
ここで「ある程度本格的な3Dゲームに必要なVRAM」を考えてみよう。
そもそも「ゲームに必要なVRAM」ってなんじゃろなってところから考えてみよう。
これは「ゲームのワンシーンに必要な最大VRAM」と言い換えるとわかりやすい。
要するに「ゲームの一番派手なシーンに必要なVRAM」がこれである。(システムをどう作るかにもよるが・・・)
ここで式が立つ。
「ゲームのワンシーンに必要なVRAM」
= マップに必要なVRAM + ワンキャラに必要なVRAM X キャラ数(ワンシーンに登場する最大キャラ数)
+ ステータス画面やらに必要なVRAM + エフェクトやらに必要なVRAM + その他
と、大雑把な検討を付けることができる。
ためしに64X64ぐらいのテクスチャが何枚使えるか?とか
頂点いくつのモデルがどのくらい使えるか?とか考えてみて、
次に、どのくらいのクオリティにしたいかを考えてデザイナと譲れない線を決めて逝って
必要VRAMを決めてみてはどうだろうか?(ショボイマシンでは強制的にテクスチャの解像度を2分の1にするって手もあるw)
ある程度本格的なんだから現実世界と見分けがつかないほどじゃないの
170 :
名無しさん@そうだ選挙に行こう :04/07/11 12:35 ID:CZk0RtKK
いや、つーか必死すぎ
ある程度本格的なX+Y=Zには、いくつ代入すれば十分? 個人的感想でいいので誰かおせーて。
172 :
名無しさん@そうだ選挙に行こう :04/07/11 14:48 ID:CQ76X3a+
文字が炎で浮かびあがるみたいなのを再現したいのですが どうすればいいですかね?
173 :
名無しさん@そうだ選挙に行こう :04/07/11 15:21 ID:3khxCyza
256*256*256のボリュームテクスチャが最低32枚は要るな。
セルオートマトン
ライフゲーム
>>172 ここで聞くよりネットで探したほうが遥かに早い。
古くはDirectDrawやGDI、
最近のならDirect3DやらShaderやらソースは転がりまくりだ。
ライフゲーム…懐かしい。そう言えば俺が一番最初に作ったソフトはライフゲームだった。
178 :
名無しさん@そうだ選挙に行こう :04/07/11 19:06 ID:6WfdSZuv
>>172 文字をモデルでなくテクスチャーで描画するなら、シェーダーでバンプマップと、ディフューズライトマップと、ノイズをうまく使えば作れると思う。
179 :
名無しさん@そうだ選挙に行こう :04/07/11 20:08 ID:SNLob6Bm
XSIファイルって何? SoftimageXSIのファイルのことですか?
どこのXSIだか分からないが、その可能性が高い。 多機能なファイルなので、有料物が多いが多種のコンバーターが用意されている。 特定のソフトのデータを別のフォーマットに変換するときに、直接変換できないのであれば、 いったんXSIを経由することによって解決できる。
181 :
名前は開発中のものです。 :04/07/12 12:41 ID:iMN5IpxO
DirectXのXSIはシーンファイルだと思うのですが 手持ちのシーンファイル(LWとか)をXSIに変換したいのです。 SoftimageXSIは高くてとても買えないし。 よろしかったら変換ソフトを教えてもらえませんか? そんなに高価でなければ買いたいのですが‥。
>>181 PolyTrans
www.oakcorp.net/polytrans/
183 :
名前は開発中のものです。 :04/07/12 13:37 ID:d8+m1zeC
すごいフリーソフトですね。 こうゆうのを探してました。 ありがとうございました。
>>183 182のことなら売りもんだよ。
日本版で4〜5万、直輸入で300-400$ぐらい
185 :
181 :04/07/12 19:31 ID:9tsuxA4f
>182 XSI BVH LWS Xの相互変換! まさに自分がほしかったものです。 5万くらいなら買えるし。 さっそく評価版をダウンロードしてみます。 ありがとうございました。
186 :
名前は開発中のものです。 :04/07/12 21:02 ID:YFu3Yt3V
ソースないです
>>186 他の調味料で我慢せよ。
(例:ソース焼きそば→たらこ、明太子、醤油バター)
やきそばは、塩に限る
VC++6.0でXファイルを表示することができたけど、 このXファイルをプログラム内で変形させたり、 歩かせたりしたいのに、参考になるサイトが見つからないYO! 歩かせるのってもしかして体のパーツを別々に作らなくてはならない・・・? 変形させるのってXファイルから座標の情報が分かれば大丈夫だと思うけど、 どういう風に取得するのやらOTL
190 :
名前は開発中のものです。 :04/07/13 01:03 ID:4wlf1v+d
bakaな質問しますけど、DirectX7対応ゲームをプレイする為に DirectX8完全対応なゲフォ4に 無理矢理DirectX7とDirectX7用の古いグラフィックドライバーを インストールするのは無理があるでしょうか? DirectX7環境のほうがスムーズな2D描画できると思うんで。 というか未対応にもかかわらず古いグラフィックドライバーぶっこむと グラボぶっ壊れるかな・・・・・
>>189 DirectX9にtinyのサンプルあるから見とけよ。
>>190 違うビデオチップのドライバを無理やりインスコして壊れない保障はない。
んなの当たり前。つーか板違い。自作PC板のゲフォスレで聞きな。
>>190 そもそも、ゲーム開発ではなくゲームプレイで何を言ってる?
DirectX7で作られたバイナリの処理が、
DirectX8環境で実行させると全く違う物になると言いたいの?
だからDirectX7をインストールしたいと…
DirectX7でブロック転送やらで作られた処理のバイナリを
DirectX8環境で実行させると、勝手にスプライト処理とかになって遅くなると
そんな感じに思ってるの?
>>192 DirectXにスプライト処理が存在すると、
そんな感じに思ってるの?
最近バカみたいな質問が多いのは、バカが増えたからだよな。
期末テストも終っただろうしな。
にっぽんの将来は、まっくらだ
ふと思ったんだけど、 結局IDirect3DDevice9::PresentはどういうときにVSYNCと同期とるの? ウィンドウモードでもVSYNC待ちするん?
ヘルプの D3DPRESENT_PARAMETERS構造体の PresentationIntervalを読めば、その謎は解決すると思う 俺もちょうどこの前、同じところで悩んで調べたとこ
>>197 >ウィンドウモードでもVSYNC待ちするん?
するよ。自動。
難しい会話してますね。
201 :
名前は開発中のものです。 :04/07/14 15:38 ID:6+nKd7SH
文字が炎で浮かびあがるみたいなのを再現したいのですが どうすればいいですかね?
>>172 ここで聞くよりネットで探したほうが遥かに早い。
古くはDirectDrawやGDI、
最近のならDirect3DやらShaderやらソースは転がりまくりだ。
セルオートマトン
ライフゲーム
205 :
名前は開発中のものです。 :04/07/14 17:39 ID:8+MeTEKK
本もってる人しか分からない質問でスマソ。 「DirectX9vol.2 3Dゲームプログラミング C#によるキャラクタの歩行アルゴリズム」 って本なんですが。 サンプル(リスト5.5)をC++に直して実行したんですげど、 キャラクタが一歩進んで逆モードになったとたんに上半身の姿勢が傾いて その後はそのまま歩行するんですが、これって仕様ですか? 真っ直ぐの姿勢のまま歩行させたいんだけど、何時間も迷ってます。 お助けを・・・。
サンプルそのまま動かしてみて 違う動作なら自分のバグだろう
207 :
名前は開発中のものです。 :04/07/14 19:57 ID:8+MeTEKK
>サンプルそのまま動かしてみて 実は動作させる環境が無いんです(win98のk6-2 350mhz vc++5.0)
208 :
189 :04/07/14 21:02 ID:rbPUkRjn
tinyのサンプル見て何がなんだか分からなかったけど、 サンプルのコードの一部をコピってぐぐってみたらそれらしいHPがでてきました。 頂点シェーダーっていうのをぜんぜん知らなかったよ。 これからまた勉強します。 ありがとうございました。
>>205 仕様かどうかはソース見ればわかるでしょ。
210 :
名前は開発中のものです。 :04/07/14 23:14 ID:+gnIx0lG
ここも某BBXも、完全に厨房王国と化してしまったな。
夏到来だぜ
夢を見る210
213 :
名前は開発中のものです。 :04/07/14 23:33 ID:3SlC6+or
>>189 VERTEX構造体に、ブレンド値(ウェイト=行列補間値 = wM+(1-w)M )を入れるんだよ。
D3DのドキュメントのGeometry Blendingを読め。
214 :
213 :04/07/14 23:36 ID:3SlC6+or
補足: ブレンドする行列をそれぞれM1,M2とすると、ある頂点のウェイトw [0,1]によって頂点を変換する行列M'を求める。 M' = wM1+(1-w)M2
215 :
197 :04/07/14 23:41 ID:YAk9BLuw
217 :
名前は開発中のものです。 :04/07/15 00:02 ID:a0RqXKRX
218 :
名前は開発中のものです。 :04/07/15 00:16 ID:5qtxwqQC
パーティクルって何?
219 :
214 :04/07/15 00:20 ID:74XWLGbU
>>216 そうだよ。
SetTransform() で、WORLD1に、M1, WORLD2にM2を設定する。
あと、全ての頂点にブレンド値wを設定。
バーテックス・ブレンディングの変換行列はこうなる。
M' = wM1+(1-w)M2
これは線形補間。
>>217 素人さんは書き込み遠慮願えますか?
221 :
名前は開発中のものです。 :04/07/15 00:36 ID:5qtxwqQC
炎で文字を表現していのですがどうすればできますかね?
つまんね
>>219 マジで行列を補間すると思っちゃってるの?
>D3DのドキュメントのGeometry Blendingを読め。
アンタこそよく読んだほうがいいよ。
>>219 それは拡大縮小のやり方?
頂点すべてにwをかけて、
wを変化させることで拡大縮小を行うという意味?
225 :
名前は開発中のものです。 :04/07/15 01:05 ID:74XWLGbU
>>224 まったく違う。ボーン数1のとき,
ブレンドする行列をそれぞれM1,M2とすると、ある頂点のウェイトw [0,1]によって頂点を変換する行列M'をD3Dが求め、その変換行列によって頂点をD3Dが変換する。
M' = wM1+(1-w)M2 ← D3Dが行列M1→M2をウェイトwで補間する。
例えば、CUSTOMVERTEX構造体はこんな感じ。
{
D3DVECTOR3 coord;
float w; ←区間[0, 1]
}
ユーザーが設定するのは、
頂点座標をPとすると、変換後の座標P'= PM'となる。
>>223 おまえまったく判ってない。
226 :
225 :04/07/15 01:08 ID:74XWLGbU
ユーザーが設定するのは、上の例の場合、M1,M2のWORLDマトリックスと、すべての頂点のw。 ウェイトが1であれば、100% M1となり、0であれば100% M2となり、0.5であれば、(M1*0.5 + M2*0.5)となる。
227 :
225 :04/07/15 01:10 ID:74XWLGbU
>>223 こういうアホがいるからみんな消えていくわけだな。
>>225 だから違うよ。
変換後の座標をウェイト値で合成するんだろ。
行列を線形補間してそのまま使ったりしたらまずい。
229 :
名前は開発中のものです。 :04/07/15 01:44 ID:a0RqXKRX
230 :
名前は開発中のものです。 :04/07/15 01:50 ID:a0RqXKRX
>>225 の発言を抜粋。
「素人さんは書き込み遠慮願えますか? 」
「おまえまったく判ってない。 」
「こういうアホがいるからみんな消えていくわけだな。 」
・・・鬱だ氏んでくれ
>>225 。
231 :
名前は開発中のものです。 :04/07/15 02:33 ID:5qtxwqQC
炎の文字はどうやって表現すれば・・・
>>225 スキニングによるボーン処理のweightと
ボーン変換における各key_frame間の補間が
混同されすぎてます。
key_frameが十分細かく設定されているなら貴方の言う補間処理は不要でしょう。
しかし、頂点が複数のボーン影響を受ける事とは別の話です。
スキニング、ボーンのウェイト、姿勢の補間を理解する事をお勧めします。
>>231 可愛そうだからマジレスしてやると、
その技術はDirectXとは全く関係が無い。
結論を言うと、スレ違いだね。
適切なスレで質問すると良いだろう。
DirectDrawでウィンドウモードで完全にVSYNCさせるのって無理?
>>228 「 変換後の座標をウェイト値で合成するんだろ。
行列を線形補間してそのまま使ったりしたらまずい。 」
たしかに、D3Dではベクトルを合成しているのは認める。しかし、
V'= V{wM1+(1-w)M2}, V'= wVM1+(1-w)VM2
この2式の結果は同じ。嘘だと思うなら試してみ。
>>229 > あと「行列を補間する」の意味を教えれ。
M' = wM1+(1-w)M2
って定義してんだろ。
> ・・・鬱だ氏んでくれ
>>225 。
おまえがしねよ。数学もできないでプログラマなんかやってんじゃね。
行列の線形補間は可能に一票。 ただし、行列の段階だろうが座標だろうが、 元が行列のデータを補間すると回転要素の劣化が激しいので、 補間が前提であれば、成分を混ぜた物を使う時点で愚策。 行列でしかデータを吐けないエクスポーター等は使うべきではない。 行列の場合は、補完しなくてもいいように、 細かくデータを吐きだして無駄にデータ量をとるのを覚悟するしかない。
238 :
名前は開発中のものです。 :04/07/15 13:37 ID:Z96KWdeU
>>225 ,
>>235 ,
>>236 おまえがしねよ。同次座標も同次変換も知らないでプログラマなんかやってんじゃね。
> たしかに、D3Dではベクトルを合成しているのは認める。しかし、
> V'= V{wM1+(1-w)M2}, V'= wVM1+(1-w)VM2
> この2式の結果は同じ。
(゚Д゚)ハァ?
239 :
228 :04/07/15 14:14 ID:znH2PgHO
>>235 だから変換後に合成するのと合成した行列で変換するのは違うって。
たとえば単位行列とY軸で180度回転してる行列を補間してみればわかる。
これは極端な例だけど回転要素が近い行列同士でも
この問題が起きてるので線形補間してそのまま使うのはまずいって。
それ例は、行列の補間でも、変形後の座標の補間でも、同じだと思われ。 このスレにはバカしかいないのか?
189が惑わされているといけないから言っとく。 サンプル通りに変形済みの頂点合成しとけば問題ない。 頂点シェーダに手を出したら、とりあえずトゥーンシェーディングをやって見る。 案外面白いから。 テクスチャの使い方を学ぶ良いサンプルだと思うし。 スキニングで行列を補間するメリットってあるの?
引き篭もりは多いが、バカは
>>240 ぐらいだろ。
>>240 面倒なんで一行目だけ
・単位行列
1 0 0 0
・Y軸で180度回転
-1 0 0 0
これをウエイト0.5で補間したら
0 0 0 0
になってまずいだろ。
これは極端だとしても違う回転要素の行列を線形補間しただけだと
スケーリングが掛かったような変な行列になる。
回転要素が違う行列を線形補間したものと
クォータニオンやオイラー角を補間してそれで作った
行列の中身は違うだろ。
>>242 >>235 もバカでしょ。
同一人物だとしたらもう手に負えないんで
もう行列の補間が正解でいいです。
補間が前提ならクオータニオンを使うべき。 行列はどのような方法を使おうと、回転要素に問題が発生する。 ちなみにクオータニオンを使っても、180度をブレンドなら、かなりのゆがみが発生する。 行列ならゆがみを通り越して、ひしゃげる。
勘違いをしていたが、スキニングのウエイトか。 アニメーションとかモーションブレンドの話をしてた。 ちょっと逝ってくる。
247 :
240 :04/07/15 15:54 ID:37qRmEuN
>>243 さっきも書いたが、
変換後の補間するやり方で、その例をやってみろよ。
同じ結果になるだろ。
なぜなら、行列の補間も、変換後の座標の補間も、どっちも所詮線形変換だから。
自分が本当のバカであることを証明したいだけなのか?
248 :
240 :04/07/15 15:58 ID:37qRmEuN
>>244 行列の補間は間違い。
行列の補間は同次座標を含めた4次元座標での線形補間、
変形後の座標の補間はもちろん3次元座標での線形補間。
どちらも単なる線形補間なのでそもそも「正しい」など言えないのだが、
ウェイトを使ったブレンディングの概念により近いのは明らかに後者。
249 :
240 :04/07/15 16:04 ID:37qRmEuN
書き忘れたが、
>>243 の例で、二つの方法の結果が等しくなるのは、
用いられている二つの行列が、同次座標を変化させない変換を表しているから。
まさかここまで言わないと理解できないほどのバカはいないと思うが、念のため。
>なぜなら、行列の補間も、変換後の座標の補間も、どっちも所詮線形変換だから。 >行列の補間は同次座標を含めた4次元座標での線形補間、 もうアンタの勝ちです。間違いない。
251 :
名前は開発中のものです。 :04/07/15 21:59 ID:nzaxTIty
水、雷を表現したいのですがどういった方法がありますでしょうか。
253 :
名前は開発中のものです。 :04/07/15 22:28 ID:6ceo0B9C
>>221 ,231,251
1.炎、水、雷などを写真に撮ります。
2.ビルボードで表示したいように並べます。
3.ヽ(゚∀゚)ノヤッター!!
256 :
189 :04/07/16 00:35 ID:rarOkq+Y
結局意味分からんかった。 もっと勉強して出直してきます。 ご迷惑かけました。マジで。
>>255 >DirectDrawでウィンドウモードで完全にVSYNCさせるのって無理?
いや、DX8以降のD3Dと統合されたのではなく、
DDrawでの話しなんすが。
>>257 今ヘルプ見られないから適当だが、同期とる関数がある。
D3DPRESENT_PARAMETERSのPresentationInterval = D3DPRESENT_INTERVAL_ONE ; じゃねーの。
260 :
257 :04/07/16 10:31 ID:x3ikW9YG
>>258 言われてみてもう一度よくさがしてみたら、
>IDirectDraw7::WaitForVerticalBlan
>メソッドは、アプリケーションが垂直帰線消去間隔と共に同期する方法を提供する。
あったあった、これっぽいね。thx
しかし、D3DとDDrawの区別が付かないやつって多いのか?
まぁDX8以降マニュアルからも消えちゃったし、しょうがないのか…
>>259 >D3DPRESENT_INTERVAL_ONE
DX9以降、それは使わない。ヘルプ参照。
>>260 微妙に困るよね>DDrawのマニュアル
まぁDX7SDKのマニュアルありゃ済む話ではあるが
>>262 それがDX8以降のサンプルを見ると、微妙に変更点があるっぽいんですよね。
(ラッパー関数が増えた?)
ぱっと見て違うのが、DDオブジェクトをnewで確保してたりとか。
C#のガベージコレクタを効かせるためなのかな?
そういう変更点の説明がまったく無いのがなんとも気持ち悪い。
264 :
名前は開発中のものです。 :04/07/17 15:48 ID:YfC7nJ2s
荒れるから終わってる話を蒸し返すなよ…
じゃあ話題を変えてみよう。 DWORD dwExecuteBufferSize; D3DEXECUTEBUFFERDESC D3DExecuteBufferDesc; ZeroMemory(&D3DExecuteBufferDesc, sizeof(D3DExecuteBufferDesc)); D3DExecuteBufferDesc.dwSize = sizeof(D3DExecuteBufferDesc); D3DExecuteBufferDesc.dwFlags = D3DDEB_BUFSIZE; D3DExecuteBufferDesc.dwBufferSize = dwExecuteBufferSize; hRes = m_lpD3DDevice->CreateExecuteBuffer(&D3DExecuteBufferDesc, &m_lpD3DExecuteBuffer, NULL);
>>264 V'= V{wM1+(1-w)M2} = wVM1+(1-w)VM2
まだこれがわかんねーやつがいるよw
『数学もできないバカプログラマー達だ。
まあこのスレの住人はほとんどそういう奴らばっかなのは事実だが。』
おまえのことだよプッ
>>264
>>266 そんな話題に変えてもなつかしすぎて誰もついてきてこれないぞ
むしろ、どう反応すればいいのか迷うが。 実行バッファを作って終わりなんだもの。
270 :
名前は開発中のものです。 :04/07/19 08:58 ID:48ZX7Scm
荒んでるとこすまんがDirectInput7で教えてくれ('A`) 今作ってるゲームを二人プレイ用に改造してるとこなんだが、2つ目以降の Joystickデバイス取得の具合がどうもよろしくないのよ・・・ LPDIRECTINPUT7 pDI = NULL; LPDIRECTINPUTDEVICE7 pDIdev1 = NULL; LPDIRECTINPUTDEVICE7 pDIdev2 = NULL; BOOL CALLBACK GetJoystickCallback(LPDIDEVICEINSTANCE lpddi,LPVOID *pvRef) { HRESULT hResult; hResult = pDI->CreateDeviceEx(lpddi->guidInstance, IID_IDirectInputDevice7,(void**)pvRef, NULL); if(hResult == DI_OK)returnDIENUM_CONTINUE; returnDIENUM_STOP; } こういう列挙コールバックを書いて・・・ (省略) hResult1 = pDI->EnumDevices(DIDEVTYPE_JOYSTICK,(LPDIENUMDEVICESCALLBACK)GetJoystickCallback,&pDIdev1,DIEDFL_ATTACHEDONLY); hResult2 = pDI->EnumDevices(DIDEVTYPE_JOYSTICK,(LPDIENUMDEVICESCALLBACK)GetJoystickCallback,&pDIdev2,DIEDFL_ATTACHEDONLY); こんな感じでデバイスを取得しようとすると、PCにジョイスティックが1つしか繋がってない時でも 2回目のEnumDevicesがDI_OKを返しちゃうのよね(ちゃんと失敗を返してくれない) ちなみにPCからジョイスティックを抜いて実行するとちゃんと1つ目から取得に失敗する。 何故か1つでも繋がってると2回目のEnumDevicesまで成功してしまうという・・・ いろんなサンプル見たけど1つ目を認識させるとこ止まりで参考にならんかった 漏れのコードが間違ってるのは明白なんだが解決方法がワカラン ジョイスティックが1つの時に2回目以降がDI_OKを返さなくする正しいやり方を教えて下され
>>270 EnumDevicesは1回だけ呼ぶんだよ。
それでGetJoystickCallbackをループさせて、複数のデバイスを取得する。
そら、最初から列挙し直したら同じものを列挙するだろ。 誰かがデバイスのインターフェイスを取得しようが、 別に列挙の条件から外れるわけではないからな。 一回の列挙で一度にやるか、二回回すなら、取得済みのデバイスを無視するとかしないと。 ちなみに俺は、IDirectInputDevice8::GetPropertyでDIPROP_JOYSTICKIDを使って、 使用するデバイスを選べるようにしている。
うーむ、コールバック関数をよく理解できんな… コールバック関数内でCreateDeviceExを2回呼んで終わりにすればいいのかな? ちょっとやってみる
コールバック内で2回CreateDeviceExやったけど同じだった・・・orz
思いっきり勘違いしてた
修正したらうまく行ったみたい
因みにこんな感じにしてみますた
BOOL CALLBACK GetJoystickCallback(LPDIDEVICEINSTANCE lpddi,LPVOID *pvRef)
{
HRESULT hResult;
if(pDIdev1 == NULL){
hResult = pDI->CreateDeviceEx(lpddi->guidInstance, IID_IDirectInputDevice7,(void**)&pDIdev1, NULL);
if(hResult == DI_OK)returnDIENUM_CONTINUE;
elsereturnDIENUM_STOP;
}
if(pDIdev2 == NULL){
hResult = pDI->CreateDeviceEx(lpddi->guidInstance, IID_IDirectInputDevice7,(void**)&pDIdev2, NULL);
if(hResult != DI_OK)pDIdev2=NULL;
}
returnDIENUM_STOP;
}
なんか恥ずかしいコードだな・・・
>>271-272 サンクスコ
確かにしようもないことで荒れるけど、業務系板と比べると『しようもない』のレベルの次元が違う。
確かにしようもないことで荒れるけど、業務系板と比べると『しようもない』のレベルの次元が違う。
レベルの次元
それは破滅しますが、ので、そこに、さらにある、 オペレーティング・システム・ボードと比較して、 それを確かにする方法、レベルの次元、の 「そこに、さらにある、実行する方法」異なります。
Forceware60シリーズリリース。 GeForce6800にDirectX9.0c(WindowsXPSP2RC2)と Shader3.0環境は整った。
ぬるぽ
ポルンガ
アハーン
285 :
名前は開発中のものです。 :04/07/24 23:31 ID:fQM+YmNW
恐らく、それらはTAKOのビットを装備しており、それを焼き、沸騰させて、それが大阪と呼ばれる時、ゆで団子になるでしょう!
今制限の多いエフェクトやHLSLでしこしこライブラリ作ってるけど 近い将来その制限も緩和されてゴミとかすんだろうな なんだかむなし
287 :
名前は開発中のものです。 :04/07/25 09:44 ID:mxjAoDQK
ここはひどい日本語でつね
288 :
ヘルジャック :04/07/25 10:21 ID:ovE6k6xQ
289 :
名前は開発中のものです。 :04/07/25 10:35 ID:rIHwuKxk
>>288 ヘルジャックさ、
現在のフレームのキャラクタの位置を決定してから
マップの表示範囲を決めるようにしないか?
つまりマップの描画にはキャラクタの座標が必要になるわけだが。
290 :
名前は開発中のものです。 :04/07/25 10:36 ID:XPpA5MG/
誘導されてきたのですが 質問いいですか? ビルドしてVCから実行するとHALで起動して普通に実行できるのですが、EXEファイルを 直接実行するとREFになっていますみたいなメッセージがでてその後 Geniric application error.Enable debug output for detailed information. とメッセージがでて強制終了します。強制終了する前にプロパティをみると REFになっています。 直接起動するとなぜREFで起動するのかとメッセージの意味がよくわからないのですが教えてもらえませんか。 使用ソフトはVisual Studio AcademicでビデオカードはGeforceFX5200です。
主人公が画面の真ん中にくるような処理ね あと obj.cppがスプライトやってるんだけど y座標でソートしてからキャラを描写したいんだけど リスト構造のソートのやり方がよくわからないから 教えて
>>288 操作は
Alt+Enterがフルスクリーン
1キーがキャラを生成
Deleteで削除
293 :
名前は開発中のものです。 :04/07/25 10:46 ID:rIHwuKxk
>>290 それだけじゃわかんねぇよw
>>291 そのまえに2DなのにY座標でソートして描画すんの?
キャラが重なったとき 下にいるキャラの頭でそのキャラの上のキャラの足が隠れるようにしたいんだ なんか今のはオブジェの生成した順番になってるから描写すると変な重なりに見える
295 :
名前は開発中のものです。 :04/07/25 11:10 ID:rIHwuKxk
>>294 ああ、そうか、とりあえずゲームの世界は構築してあるな。
Y座標が画面からみて奥行きになるわけね。
リストのソートがわからないのも問題だけど
この場合はこのリストはソートしない方がいいな。
だってこれ、スプライトのリストじゃん。Y座標のソートと関係ないよ。
必要なのは描画するときだけで、フレームごとに変わるんだから、
こういうときは、一時的に関数内でポインタの配列を作って、リストの要素のポインタ一つ一つを
用意した配列にとっちゃってそれをソートするんだ。
これで配列のソートと同じだ。
言ってること理解できるかな?
ポインタをとってポインタをソートするんだ。
296 :
295 :04/07/25 11:18 ID:rIHwuKxk
おっと間違え。 スプライトのリストじゃなくてオブジェクトのリストか。 まあ、それでもソートはしちゃ駄目だね。 て、いうかリストの順番に意味をもたせるのはあんまりよくないんだな。
298 :
名前は開発中のものです。 :04/07/25 11:29 ID:rIHwuKxk
>>297 >なんだか難しそうだがやってみまつ
楽勝でしょ?
でも、自分で考えようとするとハマルかもw
そういうときは手順をしっかり書いて見る
1.十分な数のポインタ配列を用意。(もしくは可変配列)
2.オブジェクトリストのポインタを全部ポインタ配列にとる。
3.Y座標でソートする。
(一番楽なソートをアルゴリズムの本をみるなり、どっかのサイトからパクッてこい。)
(この手のものいちいち自分で作ってると日が暮れるぞw)
4.できた配列を元にして描画する。
で、終わりだ。
>>290 そういうのは、やはり実はエラってるってケースが多い。
DXをデバッグバージョンにしてログをみるといい。
300 :
名前は開発中のものです。 :04/07/25 11:45 ID:rIHwuKxk
>>290 ,297
#include <crtdbg.h>
_CrtSetDbgFlag(_CRTDBG_ALLOC_MEM_DF|_CRTDBG_LEAK_CHECK_DF);
じゃあ、おまいら、とりあえずメモリリーク支援なw
上のヘッダをインクルードして、関数をWinMain関数がはじまってすぐのところにそのままおけ。
デバッグモードで実行してみればアウトプットウィンドウになんか出るからみてみろ。
特にヘルジャック、メモリリーク出してるぞ。
ダブルクリックで飛べないから、結構みつかりにくいな。
ひとつひとつ要素を削ってってメモリリークの有無を確認して場所を特定していくしかないな。
頑張れ。
>>300 すぐにどこがメモリリークしているかわかったぜ
Mapで確保したメモリをfreeしていないのと
Script クラスも解放していなかったからだ
でもねタスク処理でアプリの終了時に全タスクkillはメンド
>288 DirectXとは関係ないけど、個人的志向として言いたい。 タスクの関数ポインタをvoid *で持つ意味ないだろ。 > void (*proc)(struct task_tag *); 何でもありのCスタイルとはいえ、無意味な型安全性の損失は如何なものか。 と書いたところで、君が m.minami とやらではなさそうだな。 >300 「プログラムの終了時にはどうせOSが解放するからfreeしない」 というタイプの人なんじゃないの?
WM_DESTROYでTaskAllKillがコールされるようにしたら リークはでなくなったようだけど アプリを閉じるとブレークポイントがどうのって画面がでて一時停止するようになっちゃった それと ポインタの配列にコピーしてそれを描写にはしたけど バブルソートがいまいちうまくいかない
お前たち、ここは DirectXスレですよ! 最近の流れの話題は、べつの適切なスレでやって欲しい
まぁいいじゃね、話題も無かったし たまにはこういうレベルの話も、ほのぼのして良い
夏休みの間くらいガンマンしてやれ。バキューン
307 :
名前は開発中のものです。 :04/07/25 15:59 ID:rIHwuKxk
こんな感じに実装したんだけど なんか実行してみると重なりはおかしいまま OBJ **obj_sort(int prio) { OBJ *ObjList[OBJ_MAX];// オブジェワーク OBJ *o = ObjTop; OBJ **OA = ObjList; //オブジェのリストを取る while (o != NULL) { *OA=o; OA++; // リストを進めます o = o->next; } //ソート部分 return BubbleSort(ObjList); }
OBJ **BubbleSort(OBJ **o) { OBJ *temp; // ソーティング(Y座標にてソート) for (int i = 0; i < ObjCnt - 1; i++) { int sort = 0; for (int j = 0; j < ObjCnt - i - 1; j++) { if (o[j]->obj_y > o[j + 1]->obj_y) { temp = o[j]; o[j] = o[j + 1]; o[j + 1] = temp; sort++; } } if (sort == 0) break; } return o; }
void obj_draw(TASK *t) int x0 = map_x >> 8; // マップのどの位置を表示するか決める int y0 = map_y >> 8; int x1 =((map_x & 0xff) >> 3) & 31; // スクロールのあまり int y1 =((map_y & 0xff) >> 3) & 31; int x,y; int s=0; // オブジェ描写 OBJ *o = ObjTop; OBJ **a; a=obj_sort(0); while (o != NULL) { o=a[s]; s++; if (o->stat==NOW_USE) { x=*o->obj_x+o->dx-(32*x0)-x1;y=*o->obj_y+o->dy-(32*y0)-y1; if(x<640&&y<480&&y+o->h>0&&x+o->w>0)//見えない部分まで描写しない DD_DrawBitmap(x,y, Bitmap[o->tex_no],o->xx,o->yy,(o->xx+o->w),(o->yy+o->h),o->Trans); } // リストを進めます //o = o->next; if(s>=ObjCnt)o=NULL; } }
>OBJ *ObjList[OBJ_MAX];// オブジェワーク obj_sort関数は最終的にこの配列へのポインタを返してるようだが、 この配列はスタック上に取られてるからobj_sort関数から帰ったときにはもう無いぞ。 とりあえず↓にしてみなさい static OBJ *ObjList[OBJ_MAX];
かーっ なんでうごかないのか! とりあえずソートの昇順 降順 を入れ替えて見たら OBJ **BubbleSort(OBJ **o)の if (o[j]->obj_y > o[j + 1]->obj_y) { を if (o[j]->obj_y < o[j + 1]->obj_y) { 主人公が手前に表示されるようになっているからポインタの内容は失われていないみたい OBJ **BubbleSort(OBJ **o) がおかしいのか
if (o[j]->obj_y > o[j + 1]->obj_y) { 原因が分かりました えーと if (*o[j]->obj_y > *o[j + 1]->obj_y) { にすると改善 つまり今までは *がなかったために obj_yのポインタのアドレスでソートしていたのでした.
316 :
名前は開発中のものです。 :04/07/25 22:01 ID:rIHwuKxk
>>315 おおー。できてんじゃん。
一日で大した進歩だと思うよ。いやマジで。
>>316 てへ (*^_^*)
どうも リスト構造の並び替えはしない とかとても勉強になりました.
ボスケテー ウィンドウモードで D3DPRESENT_PARAMETERSの PresentationInterval=D3DPRESENT_INTERVAL_DEFAULT としたら、 ディスプレイは60Hzで動いてるのにFPS45しかでないよーヽ(;´Д`)ノ カクカク ナンデダロ D3DPRESENT_INTERVAL_IMMEDIATE にするとFPS300くらいでヌルヌルポ動くのに
319 :
名前は開発中のものです。 :04/07/26 23:24 ID:6Ccm5Gt6
>>318 他のアプリ、例えばDirectXのサンプルでも同じ動作をするのか?
また、手持ちの他のグラボは試してみたか?
また、ドライバは更新してみたか?
と、色々いじってみなきゃわからねーよ。マジで。
描画が間に合わないフレームあんじゃなの?
>>319 他のアプリやらサンプルでもそうなんです。
グラボ1コしかナッシングなんです。ていうかノーパソ。
ドライバ一番新しいんです・・・・
どこから切り込めばよいのやら_| ̄|○ 鬱だ
>>320 いえ、同期なしだと300とか出るんですよ
ていうか何も描画しないでPresentだけしてもFPS45とか_| ̄|○ イッタイナンナンダ
なんだ、液晶モニターってフレーム間引いて表示してるのあるべ?
表示の問題なのけ? 1秒間にループ回った回数を表示させても45なのでしが いや流石の俺でも目視でFPS45とか測れないべ
325 :
名前は開発中のものです。 :04/07/26 23:57 ID:6Ccm5Gt6
>>321 それじゃ、心配ナッシングw
もう、どうすることもできないんだからw
同期無しにして、タイマーでテキトーに画面更新しとけば?w
ノーパソ買った自分を恨めw
ところで、ノーパンとノーパソって似てねぇ?
>>302 void * 意外にどうやって関数ポインタを持つ
327 :
321 :04/07/27 00:26 ID:XAPogr5S
(゚∀゚)フッキレタ!
>326 >302にも書いてあるけど void (*proc)(struct task_tag *); で、procが struct task_tag *を引数に取り返値がvoidの関数へのポインタ変数になる
329 :
321 :04/07/27 16:25 ID:XAPogr5S
_| ̄|○ 一晩寝かせたらコードいじってないのにFPS60出てるし なんの不具合なのやら
再起動でOS側の方が良い状態になったんじゃないかい とくに突飛な変更はしてないようだし
昨日はバックでなんか重たいものが動いてたとか
9.0c出たけど、もう既出か?
333 :
名前は開発中のものです。 :04/07/28 01:22 ID:cdE8Yajg
334 :
321 :04/07/28 01:52 ID:L+MbB46M
漏れは今涙が出そうです。
まさかウィンドウモードだと
同期タイミングにシステムタイマが影響するなんて
思いもしませんでした。
そしてそのことを知るきっかけをくれた
>>333 には
感謝してもしきれない程です。
タイマ分解能を1_秒にしてあげたら
FPSは60でヌルヌルポと動いてくれやがりました。
ありがとう
>>333 ありがとう
>>333 ヽ ( ゚ ∀ ゚ ) ノ バ ン ザ ー イ
DirectXの新しいの出たな。
>>333 そのスレ見てないけど、厨房回答者なら2chの方が多いから平気じゃねぇか?
えー変更点を列記すると、 複数のメッシュインスタンスで単一のジオメトリデータを使い回ししたいときに 有用な機能を提供。Shader3.0要らしいので我輩はスルー。 エフェクトでステートブロックをサポート。イラネ。 PRT用のD3DXオブジェクト追加。イラネ。 XFileローダーIDirectXFileに代わる新しいID3DXFileが追加。ホトンドオナジ。 こんなところかなぁ、夏2003と殆ど代わっていないので 入れ替えても問題なしだな。
summer2004に入れ替えてコンパイルしたら、リンク通らなくなった! ウワァァン!!
>>337 ?
俺はVisualStadio2003だが、
インストーラが勝手にパス変更までしてくれて
無問題に通ったよ。
一箇所エフェクト関係でソース直しただけで。
ああ、そういえば、VisualStadio6.0用のライブラリが extrasにあったような。そのせいか?
今回のSDKにはDirect3D用のコモンコントロールがついてるのな。 なんだか次世代って感じ。
「Stadio」2回じゃもう言い訳できんな
>>340 まじでぇぇぇぇ!!
みてくるか
…イタリア版だったりしてな。 俺はVisual Studio 6.0なんで、extras入れていじってみるよ。
>>339 トンクス
ちょうどリンク通らなくていらいらしてたとこなんだ。
extraは気づかなかった
344 :
337 :04/07/28 20:22 ID:ea6AWAyR
d3dx9.dllを入れ替えたらコンパイルできたーよ。 でも、シェーダ使って、テクスチャ複数重ね、環境マップやってるところが 無茶苦茶か真っ白になってる… うーん、俺のプログラムが行儀悪いからなのか… 何か設定の仕方が変わったのか…
345 :
337 :04/07/28 20:24 ID:ea6AWAyR
dll じゃなくて libだ… デバッグ用のd3dx9dt.libはextraに入ってないんだね。
いよいよ持って2003買え、ということか… どこからその金捻出しよう
2005から無料にしてくれるに違いない。今からゲイツ様に土下座しとく。_| ̄|○
ちょっと待って、それじゃVS6(VC6)じゃ、 今回のアップデートはしちゃ、まずいって事? 貧弱なノートの回線で、ようやくDLしたのにそりゃないぜ… しかし、いくらなんでもそんな分けないと思うがなぁ 自分で試したいけど、DirectXってOS入れ直さない限り バージョンダウン出来ないのがジレンマ
>>349 今回は、前のバージョンと共存できるみたいだよ。断言はできないが。
デフォルトのインストール先はprogram filesの下だし
VCのディレクトリ探索の優先順序をちょいと変えるだけで、
前バージョン(2003summer)の実行ファイルもできた。
(旧バージョンも残ってるんで)ちょっと悩んだんだけど、 Xファイル読み込み部分を新APIを使ったものに書き換えてみたんだが… アニメーション付きXFileを全部読み終わって最後のID3DXFileDataオブジェクトを Releaseするとライブラリの中でAccess Violation。 LWのXファイルエキスポータで吐き出した奴なんで、今バージョンのXファイルパーザには 都合の悪い記述があるのかもしれないけど…原因突き止めるのめんどい
352 :
351 :04/07/29 00:15 ID:Y8Uc6wdA
やっつけで移行したから、Release忘れをやらかしているとこがあったのが原因ぽい。 …単にメモリリークするんでなく、アクセス例外出すのは、むしろ親切、かなぁ
>>351 人柱乙。
俺のXFileパーサーは
約6000行もあるので(無駄な部分が多いだけ)
移行には躊躇してしまう。
質問なんですが、これからDirectX9を学ぶなら ビデオカードもDirectX9対応のものを買った方が 良いでしょうか? 買う場合はゲームとかは特にしないので G-FX5200辺りのカードを考えたりします。 どうか、アドバイスをお願いします。
お金が充分にあるならそうすべき。 お金がないなら、今のボードを我慢して使うべきだぜ〜! まだ高えし
356 :
354 :04/07/29 17:38 ID:TPfQskJx
アドバイスありがとうございます。 当分は今のボード(GF2-MX400)を使って その間に、お金の方も貯めておこうと思います。
2004Summerって、2003Summerにあった新規プロジェクトウィザード無くなってる? EmptyProjectが追加されるって噂だったけど見あたらないし。 >340 なにそれ、詳細きぼん
EmptyProjectが見当たらないって、サンプルブラウザからインストール 出来ますがな。 サンプルがインストール形式になったのは、ちょっと便利かも。
>>358 EmptyProjectってサンプルにいたのか_| ̄|○thx
Emptyっていう割にはいろいろ入ってる気がしますが
始めたばっかの俺には何やってるかさっぱりだ(´・ω・`)
>>354 そんなモン持ってて買い替えを考えるなんて金持ちだなぁ
361 :
名前は開発中のものです。 :04/07/29 22:24 ID:BuKOqKsi
VC++.NET2003使用で、DirectX9.0c summer2004 をインストールしたけど、fxの変更点(Pass() -> BeginPass() )以外何も問題なかったよ。わざわざユーザーの迷惑を顧みず関数名を変えているのは謎だが。 というか、何が変わったの?シェーダー3.0サポートだけ?若干D3DXライブラリ関数が増えているような気がするけど。
今回も名前がファッションショーのようなマイナーアップ。
363 :
名前は開発中のものです。 :04/07/29 22:34 ID:BuKOqKsi
GF2-MX400から5200って変えるメリットないんじゃない?GF2はシェーダーをサポートしてなかったっけ? グラフィックカードのシェーダーバージョンのリストってどっかのサイトにないかな? ATI Radeon 8500 vertex shader:1.1, pixel shader: 1.4 とかのリスト。 知っている人いたら教えてください。
最低でもピクセルシェーダ2.0対応のほうがよくない? せっかく換えるなら
365 :
363 :04/07/29 23:14 ID:BuKOqKsi
directX9.0をアマチュアで作る際、GeforceFX系とRADEON系、適しているのはどちらなのでしょうか? 似たようなものなのでしょうか? GefroceFX系は最適化しないと全く性能が出ないという話と、RADEON系はPCが不安定になるという話とで漠然とした不安があるのですが・・・・
アマチュアなめんなよ
>>366 公開する物を作るなら、安めのヤツでもいいから両方持ってた方がイイです。
さらに各種チプセト内蔵グラフィックについてもテストできる環境だとなおイイです。
とりあえず1つだけ、というならどっちでも好きな方でイイと思います。
傾向としては、渡すパラメータを間違ったりした時に
nVidiaだとなんか普通に動作しちゃったりするのに対し、
ATIだとアプリが落ちるのが多いです。(以前はブルースクリーンでOSごと落ちたりしたが...)
ドライバの品質はnVidiaの方がまだ上ですね。
nVidiaで少しでも安定した開発環境を...でもイイし。
ATIで動けばnVidiaでも動くに違いない!...でもイイかと。
VC2003でDirect3Dアプリをデバッグすると 頻繁にフリーズする。デッドロックじゃなくて 非常に重くなってるだけだと思うんだけど 2時間で10回ぐらい再起動ではきつすぎる。 VC6ではこんなことなかったのに。 皆さんはどう?
初歩的な質問で申し訳ない。なんだか的はずれな質問かもしれんが‥‥ DirectX 9.0 SDKを使用してアプリを作った場合、 それを動作させる環境はDirectX 9.0以降になるの? あるいは使用した機能によって対応Verが異なる?
9SDKで8以前に対応させることは可能。
使用した機能によってそのバージョン以上のランタイムが必要。 9.0SDKで作ってもDirectX8.0までの機能しか使っていなければ、 8.0以上のランタイムがあれば動作する。
回答ありがとうございます
>>367 RADEONのほうが高機能だけれども、みんながRADEON使ってるってわけでもないから
結局無意味になるような・・・という感想です
(低機能製品に合わせたものを作らざるおえない)
>>369 両方ですか!?それはむずかしい・・・・
ATI系はミスに厳しすぎて手間取りそうだから、nVidia系にしときます。
でこぼこなフィールドを作っているのですが、 キャラをその上で歩かせるために、ポリゴンのある一点のY座標を取得 したいのですが、そんな都合のいい関数ありますか?
RAYじゃダメなの? サンプルにあるでしょ。
Pickのやつでしょうか? D3DXIntersectの関数だけで大丈夫ですか? 使ってみたんだがいまいちうまくいかない。
>>378 おお、サンクスです。
vPickRayOrigにはカメラの位置と同じ座標でいいのでしょうか?
vPickRayDirの意味がいまいち分からない。とりあえずこれと同じようにやってればいいのかな。
多分誤解しているというか、レイの考え方を理解してないので、一度 自分で図に書いてみることをお勧めする。 レイはキャラクター位置の適当な高さから、真下に向けて飛ばす。 んで、ポリゴンとの交点からキャラの足元の高さを求める。
親切にありがとうございます!だいぶ分かってきました。 これから試行錯誤して頑張ってみます。
>>373 DirectMusicにバージョン定数が見あたらないのはそういう事?
でも3DやInputは指定しといた方がいいよね多分。
Pickって充分速いの? なんか全部のポリゴン調べてそうなんで、フィールドのメッシュは あらかじめ自前で用意しマップ区画にポリゴン割り当てて、高さを検索 するようにしてんだけど、素直にPick使ったほうがいいのか?
MMOみたいに広大なマップはどうやって作ってるんでしょうか? 一定区画毎に3Dソフトでモデル作成してるの?
>>384 Morrowindっていうゲームのエディタ覗いてみるといいかも
2Dも3Dも基本的には地面はゲームエンジン上でハイトマップとかで作られてて
そこに乗せるオブジェクトなんかをモデラーで作ってインポートして配置してる
386 :
371 :04/07/31 08:55 ID:3u9dAkWC
>>372 >>373 なるほど。回答ありがとう。
これで安心して9.0 SDKをインスコできます。
まあ使い方はこれから勉強するわけですが‥‥。
387 :
名前は開発中のものです。 :04/07/31 13:05 ID:OQmxmCVI
前は出なかったのに Direct3D9: Decl Validator: X1039: (Global Error) Declaration can't map to fixed function FVF because nonzero stream index is used. DxGameLib.exe の 0x77e33887 で初回の例外が発生しました : Microsoft C++ exception: long @ 0x0012eaf8。 Direct3D9: (ERROR) :DrawPrimitive failed. こんな↑エラーが出るようになった。 つまりどうしろと・・・。
>>387 エラーメッセージそのままのことするだけだが。
389 :
名前は開発中のものです。 :04/07/31 13:24 ID:OQmxmCVI
>>388 ゼロでないストリームインデックスが使用されるので、宣言は固定関数FVFに写像することができません。
ってつまりどうすりゃいいのですか?
390 :
名前は開発中のものです。 :04/07/31 14:31 ID:MH/J5A09
DirectX8.1でDirectPlayをしています、ランチソフトでホスト、クライアントを作りたいのですが。 ふたほうともユーザーサイドで作ることにして、クライアント側ではネット上でIPなしにホストを認識できるのでしょうか? サービスプロバイダーを介して処理するプログラムをよく見ますが、こいつが処理してくれるのでしょうか? ふたほうともSDKサンプルServer、Clientを参考に作ってます。 「ふたほう」って何ですか?
391 :
名前は開発中のものです。 :04/07/31 14:35 ID:A32qmFzS
ふたほう。それは甘く切ない。 ふたほう。それは全ての希望。 ふたほう。それはやがて気づく自分の愚かさ。
>>391 なるほど。やがて気づくものだったんですね。
ありがとうございました。
鍋の蓋が加熱によって生じた圧力で吹き飛ぶ、蓋砲のことです。 大変危険ですので、子供は真似するなよ。
イメージ エイゾウ ○| ̄|_煤:'、―=≡●
>>389 固定機能TLでは、複数のストリームは使えないはずだが。
つまりストリーム0にPosition、ストリーム1にtexcoordとかは駄目。
それがやりたきゃTLはSWシェーダにするとか。
396 :
名前は開発中のものです。 :04/07/31 18:54 ID:OQmxmCVI
>>395 HLSL使ってるんですけど、複数のストリームって使えないんですか?
>つまりストリーム0にPosition、ストリーム1にtexcoordとかは駄目。
これ↑駄目なんですか?
9.0bまでは動いていたんですけど・・・。困りました。
>>390 皮肉って突っ込まれているのに、結局素で返されてるよ…。
永遠に間違ったまま人生を終えるんだろうか?
>>396 それぞれのD3DVERTEXELEMENT9の配列みせてみそ。
399 :
名前は開発中のものです。 :04/08/01 14:10 ID:xMA3M3cR
>>398 //普通の
D3DVERTEXELEMENT9 normal[] = {
0, 0,D3DDECLTYPE_FLOAT3,D3DDECLMETHOD_DEFAULT,D3DDECLUSAGE_POSITION,0,
1, 0,D3DDECLTYPE_FLOAT3,D3DDECLMETHOD_DEFAULT, D3DDECLUSAGE_NORMAL,0,
2, 0,D3DDECLTYPE_FLOAT2,D3DDECLMETHOD_DEFAULT,D3DDECLUSAGE_TEXCOORD,0,
D3DDECL_END()
};
//バンプマップ
D3DVERTEXELEMENT9 bump[] = {
0, 0,D3DDECLTYPE_FLOAT3,D3DDECLMETHOD_DEFAULT,D3DDECLUSAGE_POSITION,0,
1, 0,D3DDECLTYPE_FLOAT3,D3DDECLMETHOD_DEFAULT, D3DDECLUSAGE_NORMAL,0,
2, 0,D3DDECLTYPE_FLOAT2,D3DDECLMETHOD_DEFAULT,D3DDECLUSAGE_TEXCOORD,0,
3, 0,D3DDECLTYPE_FLOAT2,D3DDECLMETHOD_DEFAULT,D3DDECLUSAGE_TEXCOORD,1,
4, 0,D3DDECLTYPE_FLOAT3,D3DDECLMETHOD_DEFAULT, D3DDECLUSAGE_TANGENT,0,
4,12,D3DDECLTYPE_FLOAT3,D3DDECLMETHOD_DEFAULT,D3DDECLUSAGE_BINORMAL,0,
D3DDECL_END()
};
すいません。こんな感じです。
上はエラーは出ませんが、表示はされません。
下はエラーが出て、表示もされません。
400 :
344 :04/08/01 18:22 ID:KObr4ywu
俺のバンプも表示されなくなっちまったぜ〜へっへっへっ…うわ〜ん! D3DVERTEXELEMENT9 declDisplay[] = { {0, 0, D3DDECLTYPE_FLOAT3, D3DDECLMETHOD_DEFAULT, D3DDECLUSAGE_POSITION, 0},//x,y,z {0, 12, D3DDECLTYPE_FLOAT3, D3DDECLMETHOD_DEFAULT, D3DDECLUSAGE_NORMAL,0},//nx,ny,nz {0, 24, D3DDECLTYPE_D3DCOLOR, D3DDECLMETHOD_DEFAULT, D3DDECLUSAGE_COLOR,0},//color {0, 28, D3DDECLTYPE_D3DCOLOR, D3DDECLMETHOD_DEFAULT, D3DDECLUSAGE_COLOR,1},//specular {0, 32, D3DDECLTYPE_FLOAT2, D3DDECLMETHOD_DEFAULT, D3DDECLUSAGE_TEXCOORD, 0},//tu0, tv0 {0, 40, D3DDECLTYPE_FLOAT3, D3DDECLMETHOD_DEFAULT, D3DDECLUSAGE_TEXCOORD,1},//tu1,tv1,tw1 {0, 52, D3DDECLTYPE_FLOAT3, D3DDECLMETHOD_DEFAULT, D3DDECLUSAGE_TEXCOORD, 2},//sx,sy,sz {0, 64, D3DDECLTYPE_FLOAT3, D3DDECLMETHOD_DEFAULT, D3DDECLUSAGE_TEXCOORD, 3},//tx,ty,tz {0, 76, D3DDECLTYPE_FLOAT3, D3DDECLMETHOD_DEFAULT, D3DDECLUSAGE_TEXCOORD, 4},//xx,xy,xz D3DDECL_END() };
401 :
名前は開発中のものです。 :04/08/01 21:38 ID:xMA3M3cR
>>400 実はまだ手をつけていないんですが、
HLSLで組んだもの(自作)は今のところ全滅ですw
今からSDKのサンプル見て違いを探します。
402 :
名前は開発中のものです。 :04/08/02 00:55 ID:Cumi6unV
デバッグしてたら、変なところぶっ壊したらしく PCがおかしくなりますたw
(ノ∀`)アチャー
404 :
名前は開発中のものです。 :04/08/02 12:58 ID:48yMNFmC
RPGツクールXPは、RPGを作るためのソフトです。 非常に高性能・高機能ですので、RPG以外のゲームを作ることもできます。現時点では、最高のツクールソフトと言えるでしょう。 RGSSというスクリプト言語がベースになっており、プログラミング言語に近いことができます。 また、従来のツクールシリーズの作り方も踏襲しており、RGSSを意識しなくても、ゲームを作ることができます。 簡便さと発展性を兼ね備えた、究極のツクールと言って良いでしょう。 と、言ってみる
C++は、ゲームを作るためのソフトです。 非常に高性能・低機能ですが様々なライブラリを使用できるので、ゲーム以外のソフトを作ることもできます。現時点では、最高の作るソフトと言えるでしょう。 Cというプログラミング言語がベースになっており、スクリプト言語より凄いことができます。 また、従来のCの作り方も踏襲しており、オブジェクト指向を意識しなくても、ゲームを作ることができます。 簡便さと拡張性を兼ね備えた、究極の言語と言って良いでしょう。 でどうだ。
>405 C++はソフトじゃありません。
また微妙なとこを突いてきたな
408 :
名前は開発中のものです。 :04/08/02 17:45 ID:2byonaka
「ふたほう」の、
BBXの例の漢字読めない厨房って、
>>333 が書いてる「厨房回答者」と同一人物だ・・・。
409 :
名前は開発中のものです。 :04/08/02 18:21 ID:D6TGTUyj
>>399-400 特に問題ないね、なぜ駄目なんだろう。
俺はノートPCに開発環境を移した関係で
ピクセルシェーダー関係は確認していなかったんだが
やっぱりバンプは失敗するのかな。
とりあえず頂点シェーダーのみは無問題だったが。
ふた:訓読み
ほう:音読み
すごいと思った。
参考にしようと思った。
>>409 を書き換えてあげます。
特にといだいないね、なぜだもくなんだろう。
俺はノートPCにひらはつたまきょうを移したせっけいで
ピクセルシェーターせっけいはたしにんしていなかったんだが
やっぱりバンプはうしぱいするのかな。
とりあえずいただきてんシェーダーのみはなといだいだったが。
411 :
名前は開発中のものです。 :04/08/02 22:02 ID:Cumi6unV
>>409 ご迷惑おかけしました。
SDKのソースと見比べてみたところ、
実はエフェクトの設定を下のように設定しなければいけなかったみたいです。
これで表示されるようになりました。
お付き合い頂き誠にありがとうございました。
effect->Begin(&tem,0);
effect->BeginPass(mPass);
//描画処理
effect->EndPass();
effect->End();
俺もPassをBeginPassに変更した点以外同じ。 でも駄目だった。 何が悪いのか考えるのも、めんどっちーから前のバージョンに戻した。 時が解決してくれるだろうw
413 :
名前は開発中のものです。 :04/08/02 22:33 ID:Cumi6unV
>>412 前のバージョンではBeginとEndが無くても動いたわけですがその辺は大丈夫でしょうか?
つまり、私の場合はeffectのBegin関数とEnd関数が無かったわけですが。
>>412 オレの場合、EndPass()を忘れていた所があって、9bでは動いていたけど、9cではエラーになったよ。
Begin( numPass, 0 );
BeginPass(0);
draw();
EndPass(); ←これを忘れていたら9cでは×だった。
End();
もし、VC++使っているんだったら、DirectXコントロールパネルでDirect3DをDebugモードに切り替えると、VCの"output"ウィンドウにDirectXのエラーメッセージがでるよ。
メッシュをちゃんと描いているのに画像が出ないとかDirectX内部でエラー処理されて無視されているわけわかんないバグ取りに役立つ。
エフェクトは挙動がおかしいところがちょっとあるな。 ID3DXEffect::SetTechniqueの直後に ID3DXEffect::GetCurrentTechniqueを呼び出すと 同じテクニックが返ってきたり返ってこなかったり。
416 :
名前は開発中のものです。 :04/08/04 19:09 ID:WFS4G4PK
ある基底行列mBasisをmRotationで回転させたいのですが D3DXMatrixMultiply( &mBasis1, &mBasis, &m_mRotation ); と D3DXVECTOR3 vR( mBasis( 0, 0 ), mBasis( 1, 0 ), mBasis( 2, 0 ) ); D3DXVECTOR3 vS( mBasis( 0, 1 ), mBasis( 1, 1 ), mBasis( 2, 1 ) ); D3DXVECTOR3 vT( mBasis( 0, 2 ), mBasis( 1, 2 ), mBasis( 2, 2 ) ); D3DXVECTOR3 vR1, vS1, vT1; D3DXVec3TransformNormal( &vR1, &vR, &m_mRotation ); D3DXVec3TransformNormal( &vS1, &vS, &m_mRotation ); D3DXVec3TransformNormal( &vT1, &vT, &m_mRotation ); mBasis1 = D3DXMATRIX( vR1.x, vS1.x, vT1.x, 0.0f, vR1.y, vS1.y, vT1.y, 0.0f, vR1.z, vS1.z, vT1.z, 0.0f, 0.0f, 0.0f, 0.0f, .0.0f ); では違う値になってしまいます。 下は望む結果が出るのですが、上は誤差?なのか下と微妙に違う結果になります。 なぜでしょうか?
自己解決しました。 mBasisが転置になってました。 もうちょっと調べてから書き込めばよかった・・
418 :
416 :04/08/04 19:48 ID:WFS4G4PK
違った。 正解はこれみたい。 D3DXMatrixMultiplyTranspose( &mBasis1, D3DXMatrixTranspose( &D3DXMATRIX(), &mBasis ), &mRotation ); 行列は頭がこんがらがるなぁ。
DirectDrawSurfaceで教えてくらはい 16bppのSurfaceのピクセルフォーマットは555と565以外の物って存在するんすかね? あと、16bppでPrimarySurface作った後でSYSTEMMEMORY上に16bppオフスクリーンSurface作った時、 ピクセルフォーマットは同じである保証はあるのでしょうか? (Primaryが565でOffScreenが555だったりしたらイヤン)
>>419 この世に生き残っているのは555と565だけ。
プライマリとオフスクリーンのフォーマットは同じ。
RGB5A3だな
422 :
419 :04/08/04 21:49 ID:hKOnHnTA
マリガトン いらん心配だったみたいね
>>419 明示的に指定すればプライマリと違うフォーマットでも作れるぞ。
何も指定してなければプライマリと一緒。
というわけで、保証されてはいないが、特に指定した覚えがなければ
気にする必要はない。
425 :
名前は開発中のものです。 :04/08/10 16:50 ID:s68euKkc
アニメーションっていうのかな? 3Dの人などのモデルを歩かせたいんだけど間接とかで動かしたいん だけどどうすればいいのかわかりません。 どなたか助けて
>>425 ワンスキン・スキニング・ボーンなどなど。
SDKサンプルに入っているのを見ようとは思わない?
スキンメッシュ使ってんなら、 自分で指定した行列をセットすればできるよ。
428 :
名前は開発中のものです。 :04/08/10 22:12 ID:OALsNdeP
DirectX9cを使ってる人はどれくらいいんの?
838861人くらいかな
BBXでカキコしたけど相手にされなくて こっちに来て助けを求めている羊が何名かいるようだな。
【ふたほう】厨房王国BBX【効率を削減ライブラリ】 【ホーマット】厨房王国BBX【重いどうり】
432 :
名前は開発中のものです。 :04/08/12 12:08 ID:Pu8PGMOq
いきなりMMOにチャレンジする初心者の多いこと… まずは一人で遊べる「インベーダーゲーム」とかでも作ってみたらどうよ? そんでもって、インベーダーと砲台をMMO化しると。
作りたいゲームと作れるゲームには大抵ひらきがあるからな。
MMO企画厨は、技術検証もせずに たいていシナリオ先行型w
MMO厨でシナリオ先行って聞いたことないなw 大抵スキルとか生産とかで大妄想して ネットワークコードも書かずに終わる
437 :
名前は開発中のものです。 :04/08/13 20:31 ID:eFu2IU8S
Xファイル出力でキャラを表示させたのですが、アニメーションの最前線では どういった形で動いてるの? Xファイル(頭、手、体、足)みたいに分けてそれを行列を使ってとかですかね? それともXファイルをいくつも用意してそれを変えてく? さあ、どっち!!
> アニメーションの最前線 分野が広すぎて、どの分野のことを言っているのか分からず意味不明。 とりあえずXファイルじゃないことは確か。
440 :
名前は開発中のものです。 :04/08/13 22:50 ID:2yEX/S7c
>>437 「どっち!!」じゃねぇよ馬鹿。
ボーンもしらねぇ糞餓鬼は糞して寝ろ
アニメーションの最前線では、 動作部分のセル画を一枚一枚書いているのですよ。 ボーンもスキンもましてや行列なんて関係ありません。
おばあちゃんだめ。 ここにはお父さんもお母さんもいないもん。
DirectX8.1を利用してゲームを作ろうと思っているのですが、 DirectX9の参考書は沢山あっても、DirectX8で良いのがありません。 DirectX9の参考書で勉強しても支障はないでしょうか?
>>443 DirectX9はdirectdrawとdirect3Dが一つに合体してるよ
>>443 DirectX Graphics以外は、普通に使う分には全く(ほぼ)同じ。
DirectX Graphicsでの目立った違いは、
プレゼンテーション周り、シェーダ・エフェクト周り、SetVertexShader→SetFVF。
ほかの資料などを参照してそこらへんを読み替えられるのであれば、
全く問題ない。
合体ではなく廃止。 ついでに言えばその状況はDirectX8からなんだが、何が言いたいんだ?
廃止されたらサーフェイスの初期化ができなくなる よって合体なり
>>447 Direct3Dからは合体ではなく完全に廃止。
サーフェイスとDrawはイコールではない。
後は3Dデバイスからは隔離された形で、DirectShowとC#用に残っているだけ。
7までは確か DirectDrawの初期化 Surfeceの作成 ↓ 上のを使ってDirect3Dの初期化 となってたから、合体でも別にいいんじゃないか。 というか、合体だろうが廃止だろうが、そんなこたーどうでもいいじゃないか。
451 :
名前は開発中のものです。 :04/08/15 15:50 ID:tEZqQFNr
2003summerSDKでDirectPlayを試してみてるんですが、 HRESULT hr; と定義すると 「'hr' : 識別名を宣言するのに、型が指定されていません。」 とエラーが出てコンパイルできません。 こんなところでエラーが出てさっぱり意味がわからないのですが、 これは何なんでしょうか。ご存知の方がいたら教えてください。お願いします。
452 :
451 :04/08/15 16:19 ID:tEZqQFNr
板間違えました。他いってきます。すいません。
#if !defined() ってどういうことですか? #ifndef とちがうのですか? directxのサンプルでは同じように使っているような気がするのですが・・・。 初心者です。お願いします・・・。
>>453 ヘルプに書いてあるけど、同じ意味を持つよ。
456 :
443 :04/08/16 08:54 ID:0pYdmfWN
みなさん、とても参考になりました。 8より9の参考書を買った方が使えそうなので、ネットと併用して勉強しようと思います。 ありがとうございました!
457 :
名前は開発中のものです。 :04/08/18 06:12 ID:aECUphq4
自HP(ライフ)の状態によって、文字の色を変えたく思っています。 文字自体は一枚のテクスチャ(グレースケールの.bmp)に全て描いてあります。 色ごとにテクスチャを用意するのは辛いので、 頂点カラーとブレンドして表示したいのですがどうにも上手くいきません。 .bmpの情報をアルファ、頂点カラーを色とするには どういう手順でやれば良いのでしょうか…。DirectX9です。
458 :
名前は開発中のものです。 :04/08/18 08:52 ID:gKvCATyJ
>>457 頂点カラーでは効率が悪いので定数色にすればいい。
d3dDevice->SetTextureStageState( 0, D3DTSS_CONSTANT, 文字の色 );
d3dDevice->SetTextureStageState( 0, D3DTSS_COLOROP, D3D3DTOP_SELECTARG1 );
d3dDevice->SetTextureStageState( 0, D3DTSS_COLORARG1, D3DTA_TEXTURE );
d3dDevice->SetTextureStageState( 0, D3DTSS_COLORARG2, D3D3DTA_CURRENT );
d3dDevice->SetTextureStageState( 0, D3DTSS_ALPHAOP, D3D3DTOP_SELECTARG2 );
d3dDevice->SetTextureStageState( 0, D3DTSS_COLORARG1, D3DTA_TEXTURE );
d3dDevice->SetTextureStageState( 0, D3DTSS_COLORARG2, D3D3DTA_CURRENT );
459 :
458 :04/08/18 09:00 ID:gKvCATyJ
間違った!これね。 d3dDevice->SetTextureStageState( 1, D3DTSS_CONSTANT, 文字の色 ); d3dDevice->SetTextureStageState( 0, D3DTSS_COLOROP, D3D3DTOP_SELECTARG2 ); d3dDevice->SetTextureStageState( 0, D3DTSS_COLORARG1, D3DTA_TEXTURE ); d3dDevice->SetTextureStageState( 0, D3DTSS_COLORARG2, D3D3DTA_CURRENT ); d3dDevice->SetTextureStageState( 0, D3DTSS_ALPHAOP, D3D3DTOP_SELECTARG1 ); d3dDevice->SetTextureStageState( 0, D3DTSS_COLORARG1, D3DTA_TEXTURE ); d3dDevice->SetTextureStageState( 0, D3DTSS_COLORARG2, D3D3DTA_CURRENT ); よくわからんがtextureFactorの方がよさそうか。 d3dDevice-SetRenderState( D3DRS_TEXTUREFACTOR, 文字の色 ); d3dDevice->SetTextureStageState( 0, D3DTSS_COLOROP, D3D3DTOP_SELECTARG2 ); d3dDevice->SetTextureStageState( 0, D3DTSS_COLORARG1, D3DTA_TEXTURE ); d3dDevice->SetTextureStageState( 0, D3DTSS_COLORARG2, D3DTA_TFACTOR ); d3dDevice->SetTextureStageState( 0, D3DTSS_ALPHAOP, D3D3DTOP_SELECTARG1 ); d3dDevice->SetTextureStageState( 0, D3DTSS_COLORARG1, D3DTA_TEXTURE ); d3dDevice->SetTextureStageState( 0, D3DTSS_COLORARG2, D3D3DTA_CURRENT );
460 :
458 :04/08/18 09:04 ID:gKvCATyJ
ぎゃーまた間違った!鬱だ氏のう 慣れないことはしないもんだ。。 d3dDevice->SetTextureStageState( 0, D3DTSS_CONSTANT, 文字の色 ); d3dDevice->SetTextureStageState( 0, D3DTSS_COLOROP, D3D3DTOP_SELECTARG2 ); d3dDevice->SetTextureStageState( 0, D3DTSS_COLORARG1, D3DTA_TEXTURE ); d3dDevice->SetTextureStageState( 0, D3DTSS_COLORARG2, D3D3DTA_CONSTANT ); d3dDevice->SetTextureStageState( 0, D3DTSS_ALPHAOP, D3D3DTOP_SELECTARG1 ); d3dDevice->SetTextureStageState( 0, D3DTSS_COLORARG1, D3DTA_TEXTURE ); d3dDevice->SetTextureStageState( 0, D3DTSS_COLORARG2, D3D3DTA_CURRENT );
461 :
457 :04/08/18 09:29 ID:aECUphq4
試してみたのですが出来ず、 調べてみたら、うちのビデオカードはD3DPMISCCAPS_PERSTAGECONSTANTの フラグが立ちませんでした…_CONSTANT使えないみたいです。 折角書いてもらったのに申し訳ないです(´・ω・`)
頂点バッファの頂点に対応した画面上の座標の取得方法はどうやるのですか? DirectX 8.1のVCです。
頂点バッファと実際の座標は対応していません。 よって取得する方法など存在しません。
>457 とりあえずおまえの設定した SetTextureStageState SetRenderState を書け。
>>457 単純に頂点カラーに色入れて
COLOROPをMODURATEにすれば動きますよ。
α成分も変更したけりゃALPHAOPもMODURATEにする。
あと、文字以外の周辺の部分は透明にするんじゃないの?
それならbmpにグレースケールじゃなくて、真っ白なtgaのα成分に文字書かないと。
この方法は頂点カラー設定がめんどくさいとか、
真っ白なテクスチャで無駄が多いとかはあるけど
一番単純だし、ほぼすべてのビデオカードでサポートされるから
とりあえず最初はこの方法でやるのがよいと思われ。
467 :
名前は開発中のものです。 :04/08/18 17:58 ID:4mdm1QSQ
>>461 シェーダーかけりゃめちゃ簡単なんだけどね。
で、頂点カラー使う必要ないでしょ。カラー取得をマテリアルにして、
SetRenderState( D3DRS_DIFFUSEMATERIALSOURCE, D3DMCS_COLOR1 );
マテリアルのディフューズカラーに使いたい色をセットして、マテリアルをセットし、
テクスチャ(文字色は白ね)とセットしたディフューズカラーを掛け算。
SetTextureStageState( 0, D3DTSS_COLORARG1, D3DTA_TEXTURE );
SetTextureStageState( 0, D3DTSS_COLORARG2, D3DTA_DIFFUSE );
SetTextureStageState( 0, D3DTSS_COLOROP, D3DTOP_MODULATE );
以上
専門用語ばっかりでよく分かりません 専門用語を使わないで教えてください
469 :
467 :04/08/18 18:03 ID:4mdm1QSQ
俺も間違えちゃった。一番上のやつ↓ね。COLOR1じゃなくってMATERIALだから。
SetRenderState( D3DRS_DIFFUSEMATERIALSOURCE, D3DMCS_MATERIAL);
>>468 無理。
471 :
467 :04/08/18 18:43 ID:4mdm1QSQ
そういうことか。ぜんぜん質問読んでなかった。そんだったら、 ビットマップの方でα値を各ピクセルにセットしておく。 マテリアルのディフューズカラーのα値は最大(1.0fか、255)にしといて、任意のカラーをRGBをセット。 マテリアルをセット。 したら、アルファブレンドの設定をして, SetRenderState( D3DRS_ALPHABLENDENABLE, TRUE); SetRenderState( D3DRS_SRCBLEND, D3DBLEND_SRCALPHA ); SetRenderState( D3DRS_DESTBLEND, D3DBLEND_INVSRCALPHA );←もしくは、D3DBLEND_ONE あとはさっき書いたとおり、 SetRenderState( D3DRS_DIFFUSEMATERIALSOURCE, D3DMCS_MATERIAL); SetTextureStageState( 0, D3DTSS_COLORARG1, D3DTA_TEXTURE ); SetTextureStageState( 0, D3DTSS_COLORARG2, D3DTA_DIFFUSE ); SetTextureStageState( 0, D3DTSS_COLOROP, D3DTOP_MODULATE ); でテクスチャをサンプラー0にセットしてフォントを描画。
472 :
457 :04/08/18 21:21 ID:aECUphq4
帰ってきたら更に沢山のレスが(n‘∀‘)η シアワセー 全て試してみましたが、見事に文字色が変わっております。 どうして上手くいくのかまだ良く分からないので、これから じっくりヘルプとにらめっこしてきます。 皆さんレスありがとうございました。
473 :
名前は開発中のものです。 :04/08/18 22:52 ID:PhkND6gf
ソースコード載せて話すると余計わけわからなくならねぇか? ようはα情報だけ生かして、文字を描画したいって話だろ? 色をテクスチャからとってこないで、自分で付けて、 αだけテクスチャからとってくる。 実現方法は好きにしろ。って話じゃないの?
SetRenderState( D3DRS_DIFFUSEMATERIALSOURCE, D3DMCS_MATERIAL ); ↑これってライティングがONでないと効果ないみたいね。
>>474 早くHLSLに変えろ、
頭悪くなるぞ。(マジで)
DirectXのこの辺は最悪だと思うよ。(俺は)
「この辺」が何を指すのかわかりません
477 :
名前は開発中のものです。 :04/08/19 15:12 ID:DiZ9VDt0
この辺と言えばその辺しかないだろ!! ちなみにPS1.3も同じくらい最悪。 nVidiaもなんでこんなもん作ったんだか
これ それ
まあ愚痴は無能の典型って事で。
バカでも分かるようにもっと簡単な仕様にして欲しいよ>DirectX ゲームアルゴリズムの方に注力したいのに DirectX周りの事に振り回されるのは勘弁
ダイレクトXが何でもやってくれるから人間は何もやらなくなるんだよな
もっと何でもやってくれ
私の代わりに仕事してください
485 :
名前は開発中のものです。 :04/08/19 21:09 ID:4Ari2O79
486 :
名前は開発中のものです。 :04/08/19 21:13 ID:4Ari2O79
>>477 「この辺」って固定パイプラインの暗黙の仕様のことだろ?
たしかにそういう面はある。
原因がまったく不明のバグがそれだったりする。
ジャ ・ ジャ ・ ジャ ・ ジャンクロード バ ・ バ ・ バ ・ バ バ ン ・ バンダム WOW!
>>489 draw.cpp:72 の
,&D3DXVECTOR3(0.0f, 0.0f, 0.0f));// 上の向き
を
,&D3DXVECTOR3(0.0f, 1.0f, 0.0f));// 上の向き
にしたら見えたぞ
暇なんでDX9cのHLSLの最適化について最近わかったことを書いてやろう。 ・structはuniform引数に使ってはならない。 実際には使わないメンバがあったとしてもそのまま残ってしまう。 同様に、例えば、uniform引数としてfloat変数を4つ定義していた場合 最適化によってこれがfloat4にまとめられるといったことはない。 あらかじめ意識してベクトルにまとめられるものは自分でまとめておく必要がある。 ・preshaderは、式の並びに影響される。例えば、 auto変数 = uniform変数 * uniform変数 * auto変数 は正しく最適化され、uniform変数が1つ減らされるのに対し auto変数 = auto変数 * uniform変数 * uniform変数 はなったりならなかったり挙動不審になる。 ・pixel shader v1.3 以下は最適化度が低い。 なって当然の最適化がされないケースが多い。
492 :
489 :04/08/20 10:15 ID:ovGi7XBj
>>490 マジサンクス!
盲点だった・・・。てっきりそこはできていると勘違いしていた。
本当にありがとうございました。助かりました。
【トーリス】厨房王国BBX【ガリー】 \ ∩─ー、 \/ ● 、_ `ヽ / \( ● ● |つ | X_入__ノ ミ 、 (_/ ノ /⌒l /\___ノ゙_/ / ===== 〈 __ノ ==== \ \_ \ \___) \ ====== (´⌒ \ ___ \__ (´⌒;;(´⌒;; \___)___)(´;;⌒ (´⌒;; ズザザザ (´⌒; (´⌒;;;
ID3DXSprite使って描画する場合Shader使えねーの?
495 :
名前は開発中のものです。 :04/08/21 15:11 ID:4tMYKEeH
>>491 ところで、HLSLコンパイラーの吐いたコードどうやって読んでいるの?
バイナリを直接? それとも逆アセする方法がある?
496 :
名前は開発中のものです。 :04/08/21 18:31 ID:/l6AyBmh
>>495 2004夏に、D3DXDisassembleEffectという
逆アセンブラが追加されてる。
インデックス値やブレンド値について全然理解できないんですけど、 これについて勉強できる本とかお勧めありませんか? よろしくお願いします。
498 :
名前は開発中のものです。 :04/08/22 00:50 ID:P2Ty49Qy
インデックスが全然理解できないなら 今のうちにあきらめるってのもありだと思う。
500 :
名前は開発中のものです。 :04/08/22 02:39 ID:sxzctg75
501 :
名前は開発中のものです。 :04/08/22 02:47 ID:sxzctg75
>>497 バーテックス・ブレンドでもαブレンドでもいいけど基本は、
B = ブレンド値の値域は0.0〜1.0とし,X1, X2 を任意の実数とすると,
X1とX2をブレンド値Bでブレンドした値Xは,
X = BX1 + (1.0 - B)X2
ってだけの話。
任意の実数は何の数字ですか?
>>502 別に実数でなくても、ベクトルだって行列だってテンソルだって調味料だってなんだっていい。
混ぜ合わせたい物同士を好きな割合で混ぜようね、ってだけの話。
例えば3と10を0.4でブレンドすると 0.4*3+(1.0-0.4)10=7.2 の7,2は何を表すのですか?
505 :
名前は開発中のものです。 :04/08/22 15:00 ID:P2Ty49Qy
>>504 そうやって考えるからわからねぇんだろ。
わかりやすい例でいうとだな。
例:白(白100%)に黒(黒100%)を30%でブレンドします。
(結果は白に近い灰色(白70%)ってわかるよね?)
白(255,255,255)
黒(0,0,0)
30%だから0.3
(0,0,0)*0.3 + (255,255,255)(1.0-0.3) = (255,255,255)*0.7
0.7だから70%。これがブレンド。
用語として覚えておくといい言葉がソースとディスティネーション
プログラムのソースコードではよくsrcとdestって略して使う人が多い。
この例の場合だと黒がsrcで白がdestってなる。
506 :
名前は開発中のものです。 :04/08/22 21:03 ID:XlCpKW53
DirectX9についてるサンプルのStencilShadowVolumeについて質問 エフェクト中のVSでシャドウボリュームをファークリップ面まで引き伸ばしてるのはわかるんですが 投入されたすべての頂点がこのシェーダによってファークリップ面に投影されるだけに見えます。 ですが実際は元の頂点とファークリップ面に投影された頂点を繋ぐfaceがレンダリングされています。 GenerateShadowMesh中のdegenerate quadのあたりが肝なのかもと考えたんですが、うまく解釈できません。 これはどのようなカラクリで元の頂点と投影された頂点を選別しているのでしょうか? ご存知の方がいたらご教授ください。
カ ラ ク リ ロ ボ
>>505 俺は
>>504 じゃないけど、分かり易い!
なるほどそういう意味だったか。
インデックス値の付け方についても分かりやすく教えて欲しい・・・。
509 :
506 :04/08/23 01:02 ID:mRY69xBL
ウホッ うたたねしてから酸素エアチャージャーでリフレッシュしたらピキューンと来たよ。 というよりFXファイルに露骨に書いてあった。よく見ろ俺。
510 :
506 :04/08/23 01:02 ID:mRY69xBL
sageわすれた。orz
508 名前:名前は開発中のものです。 投稿日:04/08/22 23:45 mRDiSQCY
>>505 俺は
>>504 じゃないけど、分かり易い!
なるほどそういう意味だったか。
インデックス値の付け方についても分かりやすく教えて欲しい・・・。
509 名前:506 本日のレス 投稿日:04/08/23 01:02 mRY69xBL
ウホッ
うたたねしてから酸素エアチャージャーでリフレッシュしたらピキューンと来たよ。
というよりFXファイルに露骨に書いてあった。よく見ろ俺。
510 名前:506 本日のレス 投稿日:04/08/23 01:02 mRY69xBL
sageわすれた。orz
514 :
名前は開発中のものです。 :04/08/23 13:16 ID:beHyX9iL
テクスチャブレンディングでD3DTOP_MULTIPLYADDを用いた結果 リファレンスだと正常に描画出来るのですがHALだと駄目です。 capsはD3DTEXOPCAPS_MULTIPLYADDは立ってます。 デバッグモードでも特にコメントはありませんでした。 何が駄目なんでしょう? 原因を特定出来る良い方法はないでしょうか?
516 :
名前は開発中のものです。 :04/08/23 14:42 ID:beHyX9iL
>>515 マジですか?
IDirect3DDevice9::ValidateDeviceもS_OKで特に問題ないのに・・。
でも、IDirect3DDevice9::ValidateDeviceのヘルプをみると
固定機能パイプラインって異常に制限多いんですね、、
ちょっとぐらい出力がおかしくても、仕方ないかって気分になります、、
固定機能パイプライン(゚听)イラネ
東京湾アクアラインも(゚听)
その結果パイプカット(゚听;)
コロッケパン(゚听)
チンポコ(゚听)
素朴な疑問。
>>501 程度の数式も理解できなくて、508はこの先どうするんだ?
数式は証明が無いと分からないだろ 頭の良い人が作った式を素人がみただけで分かるわけ無いよ
自分一人じゃ何も調べられない何も作れないダメ人生を送るに決まってるじゃん。
2chで煽る奴って初心者なのかな? いちいちダルくないのか?
526 :
508 :04/08/24 13:23 ID:qV4bxq5D
>>522 いや、この数式は単純だから理解できます。
ただこれを人間の間接に使おうとしたらどうやったらいいのかわからなくなった。
>>524 それが人生はうまくいってるんですよw
就職決まったし、かわいい彼女もできたし。
プログラムは趣味だけど、これがなかなかうまくいかないww
>>526 おまえ面白いな
関節に使おうとしたらどうしたら・・・って
関節にゃ角度と位置しかないんだから
それぞれに出た係数掛け合わせりゃいいじゃないか
>>505 も言ってるけどsrcとdest間違えるなよ
あと回す順番も
>>527 人生面白い。
それぞれに出た係数ってよく分からないけど、
どっからそれが出てくるの?
>>528 >それぞれに出た係数ってよく分からないけど
>どっからそれが出てくるの?
え・・・。なんで分からないのか分からないんだけど。
『人間の間接に使おうとした』の部分を具体的に
説明してくれない?
現在値〜目標値の補間を行う、という話なんだから
目標値は当然あなたが用意するわけで。普通は
アニメーションファイル等から読み込んでるはず。
530 :
名前は開発中のものです。 :04/08/24 18:32 ID:MQ0gFcqi
少し質問なのですがDirectXの頂点シェーダのライティングの処理に関してなのですが 例えば三角形ABCが存在してそのABCの中にライトを当てて三角の中に丸い光が当たっている ようなことができないみたいなことを聞いたのですが、これは三角形の頂点で処理を していてその頂点を含んでいないので求めている処理ができないようですが 具体的に頂点に対してどういった処理をされているのか分かる方おりましたら 教えていただけませんでしょうか。もしかすると書いていることが間違っている可能性もあるので そのときはご指摘よろしくお願いします。
>>530 頂点単位法線ベクトルを N、ディレクショナルライト単位ベクトルを Lとすると、
その頂点の明るさ=N・L (・は内積)
>>530 ようするに、それを Vertex Lighting に対して、Per Pixel Lighting といいます。
固定機能パイプラインでも、LIGHT構造体に減衰パラメーターと、
シェーディングパラメータとしてPHONGシェーディングがあるので
もしかしたらできるのかもしれないけど、固定は知らない。
シェーダーで記述すれば、per pixel lighting は可能です。
フォンシェーディングでも ポリゴン内にスポットライトは無理。 お前にも家族がいるだろう、、ライトマップでも使うんだな。
すいません、 恥かしながら視点の変更でつまずいてしまったのですが、お聞きしてよろしいですか? 下のコードにおいて、 D3DXMatrixRotationY はきちんとY 軸回りにカメラの位置が回転するのですが、 D3DXMatrixTranslation はカメラが微動だにしません。 どなたかご教授お願いします。 static D3DXVECTOR3 targetPos(5.0, 5.0, 5.0); static D3DXVECTOR3 eyePos(10.0, 10.0, 10.0); static float t = 0.0; D3DXVECTOR3 d3dVec = eyePos; D3DXMATRIX d3dMat; t += (1 / g_game.GetFrameRate()); if (t > 0.1) { t = 0.0; //D3DXMatrixTranslation(&d3dMat, 1.0, 1.0, 1.0); // (←なぜか変換できない) D3DXMatrixRotationY(&d3dMat, D3DXToRadian(1.0f)); // Y 軸回りにカメラの位置が回転する } eyePos.x = d3dVec.x * d3dMat.m[0][0] + d3dVec.y * d3dMat.m[1][0] + d3dVec.z * d3dMat.m[2][0]; eyePos.y = d3dVec.x * d3dMat.m[0][1] + d3dVec.y * d3dMat.m[1][1] + d3dVec.z * d3dMat.m[2][1]; eyePos.z = d3dVec.x * d3dMat.m[0][2] + d3dVec.y * d3dMat.m[1][2] + d3dVec.z * d3dMat.m[2][2]; D3DXMatrixLookAtLH(&d3dMat, &eyePos, &targetPos, &D3DXVECTOR3(0, 1, 0)); m_pD3DDevice->SetTransform(D3DTS_VIEW, &d3dMat);
535 :
名前は開発中のものです。 :04/08/25 00:29 ID:qRb4hBww
>>534 D3DXMatrixTranslation でできた行列を確認してミロw
536 :
534 :04/08/25 01:10 ID:0I+idDk/
>>535 ああっ!転置行列になってる!!Σ(゚д゚lll)ガーン
ベクトル要素計算部分をコピペした私が悪かったです。ごめんなさいぃ・・・。
537 :
534 :04/08/25 02:29 ID:0I+idDk/
転置行列じゃなくてw成分の計算やってませんでした・・・あぁぅ。
こういうのは初心者相談スレで質問しとけ。
//D3DXMatrixTranslation(&d3dMat, 1.0, 1.0, 1.0); // (←なぜか変換できない) これ絶対狙ってるだろ、お前。
>>536 ひょっとして、このコードでd3dMatに回転と移動を合成した行列ができると思っているの?
D3DXMatrixTranslation(&d3dMat, 1.0, 1.0, 1.0); // (←なぜか変換できない)
D3DXMatrixRotationY(&d3dMat, D3DXToRadian(1.0f)); // Y 軸回りにカメラの位置が回転する
行列の掛け算の意識ある?
541 :
名前は開発中のものです。 :04/08/25 13:08 ID:zbS3DhhP
DXの深度バッファのヘルプには >使用する数学的処理が原因で、Z バッファに生成される z 値は、 >Z バッファの範囲 (通常 0.0 から 1.0) 全体に均等に分布されない傾向がある。 >特に、遠くのクリップ面と近くのクリップ面の間の比率は、z 値の不均一な分布に強い影響を与える。 >近くの平面の距離に対する遠くの平面の距離の比率を 100% とした場合、 >深度バッファ範囲の 90% がシーンの深度範囲の最初の 10% に費やされる。 とありますが、具体的には透視変換後のZ値(0.0f〜1.0f)はどのようにZバッファへマッピングされるのですか? 単純にキャストしていると思えないんですが・・。
サーフェイスを作った後 画面の指定した場所に2Dの点を打つには どうやったらできますか? 教えてください
>>541 D3DFMT_D16_LOCKABLE 指定して、自分で見てみればいいんじゃないの?
今日は人間の間接に使う行列の乗算の順番で悩みました。 でも夜中まで頑張ったおかげで意味が分かってきました。 こんなことに何時間も費やしてる俺はアホか・・・。
545 :
542 :04/08/27 12:40 ID:fXeR5OoH
僕の質問にも答えてください よろしくお願いします
>>542 ちょっと情報が少なくて答えるのが難しい。
DirectXのどのバージョンを使っていますか?
せめてDirectDrawかDirectGraphics(Direct3D)の
どちらを使っているか書こう。
>画面の指定した場所に2Dの点
これももう少し具体的に。
DirectX9を使ってます 画面に点というのは X座標とY座標に色の付いた点を表示することです 点で線を描いたり色を塗ったりしたいです アニメーションみたいに動くようにもしたいです
自力描画の学習用途ならDibSectionのほうが良いぞ
>>547 ここで質問する前に、チュートリアルで図形の表示くらいは最低限やっているよね?
それで何が問題なのか具体的に言ってみてくれ。
ポリゴンじゃ無い点が打ちたいのです 処理速度が速いのでダイレクトXが使いたいです
サーフェイスをロックして書き込めばいいだけでは?
サーフェイスをロックするんですね ロックしてみます
点という単位を使う時点で、速度的に問題外なんだが。 しかもVRAMにランダムアクセスをかければ余計に遅くなるし、 システムメモリー側に領域をとるのなら、 DirectXを使ったからと言って、速度は上がらない。
ダイレクトXで2Dのゲームを作るときは普通どうやるんですか?
まあロックするとDirect3Dの意味が殆どなくなるし 普通はトランスフォーム済み頂点フォーマットを使うべきだろうな。 D3DXVECTOR4 pos( 横座標, 縦座標, 0.0f, 1.0f); // -1.0f〜1.0f d3ddevice->SetVertexShader( NULL); d3ddevice->SetPixelShader( NULL); d3ddevice->SetViewport( &viewport); d3ddevice->SetFVF( D3DFVF_XYZRHW); d3ddevice->DrawPrimitiveUP( D3DPT_POINTLIST, 1, &pos, sizeof(D3DXVECTOR4));
ありがとうございます そうしてみます
そもそもなぜ点が必要なのか分からないのだが、 まさか一枚絵を毎フレーム1ドットずつ描こうとかしてる?
一ドットずつ書こうとしてますよ
それ無駄だから、チュートリアルのテクスチャのところまで最低限やってくれ。
点というのがひょっとしてドット絵のことを指しているんじゃないかと思えてきた。 ゲーム上においては、基本的に絵はポチポチ打つもんじゃなくてペタッと貼り付けるものだぞ。 いまどきでいえば、その方法はポリゴン+テクスチャ。 2Dとポリゴンは相容れないとか思ってないか? たしかに数年前はそういう信仰が隆盛した時期があったが、 今ではたとえば2D格ゲーのキャラもゲージも一枚絵背景も、2Dポリゴンでぺったん。 (スプライトに特化したハードチップ積んでる業務用とかは別だけど)
貼り付けると日本のアニメみたいでドット絵はディズニーアニメのような気がします
(;´Д`)…?
(;゜Д゜)…???
本物ですな
久々の、本物再来ですな
>>561 ディズニーアニメも貼り付けて作ります。
育てよう。
2枚のテクスチャをアルファブレンドで半透明表示をしようと しているのですが、色々試行錯誤してみましたが、 全く変わりません。下地の画像(Dest)、上書きの画像(Src)、共に表示は正常(アルファブレンド無しで不透明表示)です。 以下、問題になりそうな所で設定したものを列挙してみます。 ・頂点バッファの色α値、Srcが0x80で、Destが0xff(頂点バッファは2つ用意) ・設定したSetTextureStageStateの引数を列挙すると、 (0, D3DTSS_ALPHAOP, D3DTOP_MODULATE); (0, D3DTSS_ALPHAARG1, D3DTA_TEXTURE); (0, D3DTSS_ALPHAARG2, D3DTA_DIFFUSE); (0, D3DTSS_COLOROP, D3DTOP_MODULATE); (0, D3DTSS_COLORARG1, D3DTA_TEXTURE); (0, D3DTSS_COLORARG2, D3DTA_DIFFUSE); ・引き続き、設定したSetRenderState、 (D3DRS_DESTBLEND, D3DBLEND_INVSRCALPHA); (D3DRS_SRCBLEND, D3DBLEND_SRCALPHA); (D3DRS_LIGHTING, FALSE); (D3DRS_ZENABLE, TRUE); (D3DRS_ALPHABLENDENABLE, TRUE);
569 :
568 :04/08/28 11:10 ID:Lw21I10N
[上の続き] ・BeginScene内 { #define D3DFVF_CUSTOMVERTEX (D3DFVF_XYZ | D3DFVF_DIFFUSE | D3DFVF_TEX1) pDevice->SetFVF( D3DFVF_CUSTOMVERTEX ); pDevice->SetStreamSource(0, g_pVB[0], 0, sizeof(CUSTOMVERTEX)); pDevice->SetTexture(0, g_pTexture[0]); pDevice->DrawPrimitive( D3DPT_TRIANGLESTRIP, 0, 2); pDevice->SetStreamSource(0, g_pVB[1], 0, sizeof(CUSTOMVERTEX)); pDevice->SetTexture(0, g_pTexture[1]); pDevice->DrawPrimitive( D3DPT_TRIANGLESTRIP, 0, 2); } (最初はSrcの描画時、ALPHABLENDENABLEをFALSEで Destでは、ALPHABLENDENABLEをTRUEにしてましたが、 変わりませんでした。(2枚不透明)) はぁ、分からむ。他に原因が有りそうな気がするが、色々試したんだけど。。
>>568 頂点の初期化部分も見てみたい。
× v->color = D3DXCOLOR( 0xff, 0xff, 0xff, 0x80 ); // floatでない
○ v->color = D3DCOLOR_ARGB( 0x80, fxff, 0xff, 0xff );
みたいなケアレスミスの悪寒。
単純に順番だったりしねーのかと小一時間(ry
572 :
568 :04/08/28 13:09 ID:Lw21I10N
573 :
568 :04/08/28 13:45 ID:c9wMyvzy
ソースあげてから、気付いた自分の失態。 あぁ、恥ずかしい。変な所にreturn S_OKが入ってた。 それでは設定されないのは当たり前だ。 ワールド行列、ビュー行列、射影行列を設定しないようにしたら、 うまく表示されるが、すれば何も表示されなくなる。なぜ? 迷惑かけました。ありがとうございました。 誰も読んでない、と願う。即、削除だ
574 :
名前は開発中のものです。 :04/08/28 16:24 ID:++PpbaSY
DirectInputを使ったジョイスティックの入力のやつが正しく動作しません。
コンパイルは通っても、完成したEXEファイルを実行するとウィンドウは開くのですが、一瞬で終了します。
ダイアログボックスで細かく調べた結果、86行目辺りに問題があるようです。
ソース :
ttp://shiva.dip.jp/up/box/up2160.zip 86行目の部分について、サンプルではIID_IDirectInput8となっていましたが、
IID_IDirectInputでなければエラーが出てコンパイルできません。
エラー : 外部シンボル '_IID_IDirectInput8A' が未解決 (C:\C\YUKA\DX\TEST3.OBJ が参照)
リンクしたライブラリは dinput.lib dxerr9.lib dinput8.lib です。
環境 : WindowsXP BCC5.5 DirectX9SDK(アップデートなし)
よろしくお願いします。
C\YUKA\DX\ うそくせーーーーーーーーーー
>>574 dxguid.lib も必要な気がするが、
coff2omf で作ったやつだと駄目な気がするな。
directX色々ためしてやっとコンパイルできるようになったんだけど ライブラリー(.lib)を普通はリンカに教えるのにコンパイラーに教えないと コンパイルできないのはなぜですか?
>コンパイラーに教えないと コンパイルできない コンパイルじゃなくてリンクだろ。 恐らく#pragmaのことを言ってるんだとは思うが、もうどうにでもしてくれ。
578のいうとおりだとするとリンカでは出来なくて コンパイラーに教えないとコンパイルできない説明はどうしますか?
MSのコンパイラだからもちろん決まってるじゃんか 「仕様です」
ていうか 577はコンパイルとリンクの違いのとらえ方がちがうな ふつうDirectXのプログラムをビルドした場合 プログラム自体の main.cpp→main.objはできるからコンパイルはできてる でもライブラリの場所が設定されてないとBltFastとか関数の実体が見つからない系の言葉がでるじゃん ようするにコンパイルはできるけどリンクができないって事だ コンパイルは絶対できてるよ インクルードファイルもちゃんと読めていれば
それではライブラリーの場所を指定するんじゃなくて ライブラリーをcppと同じ様にオプションを付けないでコンパイラーに 教えないとコンパイルできない証明になってないの
とりあえずどういうオプションつけてコンパイルしてるんだか晒して欲しいな 何が言いたいんだかよくわからん
日本語すらまともに書けないんじゃ、どうしようもない。
DirectXコンパイルリンクうんぬんの前に、
相手に内容が伝わる日本語を書く練習をしてくれ。
>>579 も
>>582 も意味がさっぱり分からん
専門用語使わないと説明できないから仕方ない
ライブラリー コンパイラー にワラタ
さほど笑う所でもないと思うけどなぁ。 あまりそういうミクロなことに大きく反応しない方がいいよ。 知ったか臭が出まくるから。
>582 コンピュータ関連に限ったことじゃないけど 最後にのばし「ー」は書かないお約束なんだよ コンピュータ プログラマ コンパイラ ライブラリ コンピュータ関連の書籍を読むと、このルールになってるから 自然と気づくものなんだけどね まぁ日が浅いということで教えてあげますた じゃないと>587が何にワラタかわからないもんね
専門用語云々ではなく、文章が成り立っていないのが理解できないのだろうか? 作文すらまともに出来ないのに、プログラムなど出来ようはずがない。
そもそも英語をカタカナに直すのが間違っているのだよ!! computerでいいじゃない!
>>589 教えてあげますた?
馬鹿にしてあげますたの間違いでしょ。
それは屈折だね。 人に教えてもらうことにトラウマがあるのかな。
コンピュータ の検索結果のうち 日本語のページ 約 2,630,000 件中 1 - 50 件目 (0.48 秒) コンピューター の検索結果のうち 日本語のページ 約 2,640,000 件中 1 - 50 件目 (0.44 秒) コンピューターの完全勝利!!
もうね・・・
コンピータ の検索結果のうち 日本語のページ 約 753 件中 1 - 10 件目 (0.16 秒) コンプータ の検索結果のうち 日本語のページ 約 220 件中 1 - 10 件目 (0.31 秒) コンピョータ の検索結果のうち 日本語のページ 約 31 件中 1 - 10 件目 (0.27 秒) コンピャータ の検索結果のうち 日本語のページ 約 7 件中 1 - 4 件目 (0.15 秒)
>>589 >最後にのばし「ー」は書かないお約束なんだよ
それは古いJISZ8301の話で2000年に改正
erなどで終わる英単語のカタカナ表記
・原則として最後に長音を付けるが慣用にならって省略可能
・国語規範に従うなら長音を付けなければいけない
コンピューター 【computer】 電子回路を用い,与えられた方法・手順に従って,データの貯蔵・検索・加工などを高速度で 行う装置。科学計算・事務管理・自動制御から言語や画像の情報処理に至るまで広範囲に 用いられている。電子計算機。 三省堂提供「デイリー 新語辞典」より
>データの貯蔵・検索・加工などを高速度 >科学計算・事務管理・自動制御から言語や画像の情報処理に至るまで広範囲 肝心のDirectXが抜けているな。もうだめぽ。
テクスチャを滑らかにするためにdx8の時は↓みたいにしてたんですけど、 SetTextureStageState(0, D3DTSS_MAGFILTER, D3DTEXF_LINEAR) SetTextureStageState(0, D3DTSS_MINFILTER, D3DTEXF_LINEAR) dx9になったらできなくなりました。どうやればできますでしょうか?
テクスチャー
SetSamplerStateメソッドを使えばできます
あ、あれ?なんか書き込みが消えてってる…
606 :
574 :04/08/30 00:54 ID:+VHuiRh9
>>576 ありがとうございます。
でも dxguid.lib をリンクしても解決しませんでした。
普通のウィンドウズアプリケーションの入力にしたほうがいいのでしょうか?
//dinput使いたいですけど・・・
>>606 よくみたら、なぜdinput.libとdinput8.libが両方リンクされてるんだ?
609 :
608 :04/08/30 08:38 ID:JziNAVt5
あっと、たぶん横軸の左がニアクリップ、右がファークリップ、 縦軸の下が0.0f、上が1.0fだと思う。 つーか手抜きにもほどがあるな。両方ゼロ入れたら止まるし。
610 :
574 :04/08/30 13:35 ID:0w3YomC2
>>607 dinput.libだけだとエラーが出ます。
Error: 外部シンボル 'DirectInput8Create' が未解決 (C:\C\YUKA\DX\TEST3.OBJ が参照)
それでdinput9.libもリンクしてみたところ、このエラーが消えました。
>>610 コンパイラーにライブラリーを教えないとエラーがでる
>>610 DirectX9ではIDirectInput8インタフェイスが使われているのだから当然といえば当然
613 :
577 :04/08/30 15:28 ID:NHnH5VCa
いまビルドのオプションみてみたところ コンパイラーに教えるのは間違えで libファイルをライブラリーファイルとしてではなくオブジェクトとして 教えないとリンクできないことがわかりました
614 :
541 :04/08/30 16:36 ID:G+2ZLJ7k
>>574 ありがとうございます!早速実行してみました。
横軸は透視変換前のZ値(Zn〜Zf)、縦軸は透視変換後のZ値(0.0f〜1.0f)ですね。
それで例えば、Znを1、Zfを100で再計算してみると
変換前 : 変換後
10 : 0.93
20 : 0.96
になります。
この0.93と0.96を16itなり24bitなりのZバッファに入れることになると思うんですが
どういう風に入れてるんだろうと疑問だったんです。
が、よく考えてみたら単にreinterpret_castで良さそうですね。
透視変換後のZ値をfloat型だとして、符号ビットはいらないし指数は固定にすればいいし
正味必要なのは仮数23ビットなんで、24bitZバッファなら間に合うし16bitはシフトすればいいですし。
libのリンクは↓をよく使う #pragma comment(lib, "d3d9.lib") 特に他人に渡したりするときこっちのほうがいいと思う
ダイレクト3D9のチュートリアル3の意味が全然分からないんですが、わからないのは普通ですか?
普通じゃないよ
618 :
574 :04/08/30 22:24 ID:p9cFUGYb
>>611 ,
>>612 なるほど。
えっと、BCCでは結局dinputを使ったアプリケーションの開発はできないのでしょうか?
普通にキーボードから入力させることにして、
ユーザーにはJoyToKeyを入れてもらうことにしたほうがいいですか?
なんでdirectx9なのにdirectx8を使ってるの?
8のインタフェイスしか無いからでしょ。 9は、そのほとんどが3D関係のアップデートだし。
622 :
608 :04/08/30 22:49 ID:Har10E7G
>>614 ああ、透視変換後って話だったか。
実際の数字見てないけど、たぶん仮数部がそのまま収められると見て間違いないだろうね。
623 :
574 :04/08/30 23:47 ID:p9cFUGYb
>>619 わかりません。
>>620 そうなんですか、
気にはなっていたのですが。
>>612 上のURLのライブラリを使ってます。
というか、それを入れないとBCCでの開発は不可能だと聞きましたので。
LunaBCCはよさそうなのですが、
DirectXの勉強のためにも一から自分で組みたいなと思っているんです。
すいません。
>というか、それを入れないとBCCでの開発は不可能だと聞きましたので。 自分で作れば不可能ではなくなる。
>>623 dxguid.lib dxerr9.lib dinput8.libでIID_IDirectInput8にしてコンパイル通ったんだが・・・・
Xファイルを複数読み込むときにですね、 配列を使ってやろうとしたんですけど、 なぜかできませんでした。 クラスとかが使えないとまずいですかね?
クラスを使える使えないは別問題。
LPD3DXMESH lpD3DMesh = NULL; // メッシュ D3DMATERIAL9 *D3DMaterial = NULL; // 質感 LPDIRECT3DTEXTURE9 *lpD3DTexture = NULL; // テクスチャー DWORD dwNumMaterials = NULL; // マテリアル数 10個Xファイルを読み込むなら↑が10個分必要?
そうだが構造体にまとめたほうがよさげ
10個書くのが面倒なら 構造体なりクラスなりまとめりゃあいいんじゃねえの? それかD3DXMESHCONTAINERかそこら使うとか。 DirectX以前に、文面から明らかにあんたのC/C++の知識・経験不足。
631 :
574 :04/08/31 02:34 ID:jUJY5ORF
>>624 なるほど・・・
>>625 コンパイルできました!
ありがとうございます!
dinput.libと、dinput8.libの二つをリンクしてたのが原因・・・みたいです。
だめなんですね、この二つをリンクするのは。
632 :
麻耶子 :04/08/31 11:21 ID:IY1iJSYZ
よくPS2とかのゲームで3Dのキャラクタが剣を振ったりしてるじゃないですか。 そういった3Dのキャラクタのアクション?アニメーション?ってどういった原理 でやってるんでしょうか?DirectXでXファイルを読み込んでそのデータを どうすれば動くんですか?そういったやり方なのかXファイルをアクションの 数分用意するんでしょうか?どなたか教えて頂けたら幸いです。
…
わざわざ名前を付ける意図がわからん ネカマ効果でも期待してるのか?
ちょっと検索すればいくらでもでてくるだろうが
directXは行列の計算とか難しいこと出来なくても出来ますか?
>>636 行列の計算はDirectXがやってくれるから簡単だよ。
行列でできることは移動、回転、拡大縮小だよ。
638 :
628 :04/08/31 17:04 ID:CPB7EMQ0
639 :
麻耶子 :04/08/31 17:29 ID:RyLy+xPH
>634 質問するとき名前を名乗るのは当然でしょ。 2chはそういうことしなくていい場所なら失礼致しました。 2chはほとんど男でしょうけど私は女です。ゲーム作るのが楽しい女もいることは覚えておいて下さい。
640 :
名前は開発中のものです。 :04/08/31 17:49 ID:Eqw4COEC
LightWave,Maya等を使ってモデルデータとシーンデータ(モーションデータ) を作って動かすか、プログラムであらかじめ動きを作っておく
>>639 何を持って当然というかは知らないが、
不特定多数に対して質問するときは名乗らない場面も非常に多い。
ついでにそういうスレ違いのレスはsageるのがルール。
>質問するとき名前を名乗るのは当然でしょ。
自分のしていることは間違っていないと言いたそうなこのレスをする前に、
ルールを守ったらどうだ?
基地外だから無理かもしれんが
>ついでにそういうスレ違いのレスはsageるのがルール。 そんなルールは無いけどね
>>643 暗黙のルールだろ。
人に挨拶されたらこっちも挨拶するのはルールと言うぞ。
法律で定められてなくとも立派なルールだ。
まあ真性の馬鹿に何を言っても無駄だろうけど。
645 :
名前は開発中のものです。 :04/08/31 21:13 ID:QGRYGa+M
すいません、フルスクリーンにするにはどうしたらいいのでしょうか? D3DPRESENT_PARAMETERSのモンバWindowedをFALSEにしてもフルスクリーンになりません・・・ TRUEだったらウィンドウに画像が表示されるのですが、FALSEだと起動した瞬間に終了します。
>>645 DirectXサンプルに答えがあるのになぜ見ない?
D3DPRESENT_PARAMETERS構造体のBackBuffer〜というメンバに値を設定してる? これ設定しとかないとならなかった気がする。
>>644 それはルールじゃないからね。
まあ真性の馬鹿に何を言っても無駄だろうけど。
>>648 社会のルールだろうが低脳
もう一回小学校からやり直せ
と思ったけど書き込みを見た感じリア消か、
まあそりゃあ世間知らずでもしょうがいないわな
>>649 無駄なスペースを空けるのはルールに入らないんですか?
ルールがどうとか言ってる奴らは自治スレに行ってください
652 :
645 :04/08/31 22:16 ID:5qxSKzLw
>>646 サンプルの量が多すぎてどれを見ていいのか分かりません。
今、サンプルやらチュートリアルを見ながら色々試してみてたのですが、
ウィンドウモードで起動したのが終了できなくなりました。
×ボタンもないし、タスクバーのやつを右クリックしてもメニューが表示されません。
>>647 してます・・・
サンプルのソースは初期化とかの基本的な部分は共通のファイルに入っていて 各サンプルはそれをincludeしてる形だから。
sageが絶対のルールだと思っているsage厨は死ね。 ageようがsageようがどうでもいいだろ。 もうage,sageごときでムダに他人に突っかかるなよ。
655 :
638 :04/08/31 23:02 ID:WIKYyYv2
>>642 ありがとうございます!!
でもなぜかDLできない・・・。
サーバービジー状態・・・。
656 :
638 :04/08/31 23:16 ID:WIKYyYv2
DLできました。 細かい添削本当に感謝!
>>650 age、sageの是非はスレの流れによって意見も異なるが、
>>649 みたいな無駄な改行が是とされるケースは皆無だよな。
これはまさに自爆ってやつだろう。
煽りに「リア消」って単語選ぶあたり、リア厨なのかもしれない。
どっかに9.0bないかな・・・・(2003summerの前のやつ)
MSのサイトからDLできないの DirectX関係の参考書の付録CDによく収録されてるけど
思ったが、DirectXの初心者用質問スレを立てたほうが良いのと違うか。
夏休み終わったから立てなくていいよ
662 :
645 :04/09/01 13:30 ID:6Lnyvx3i
フルスクリーン化がどうしてもできません・・・ ググっても Windowed のところを TRUE から FALSE にしろとしか書いてないです。 あと、ただ画像を表示させるだけのプログラムがものすごく重いのですが、 これはウィンドウモードだからですか? 後ろにあるアプリケーションを表示しようとすると30秒くらいかかります。 マウスカーソルもかなり重いです。
サンプルで全画面にしても変わらないの? 普通のダイレクトXのアプリの全画面は動く?
>>662 とりあえずフルスクリーン初期化時に
D3DPRESENT_PARAMETERS
の中身とCreateDeviceがどんな感じなのかかいてみたらどうでしょう。
>画像を表示させるだけのプログラムがものすごく重いのですが、
>これはウィンドウモードだからですか?
ウィンドウモードがHEL動作しかできないビデオカードでもつんでいるんでは?
古いビデオカードはフルスクリーンしかHAL動作しないのもあるよ。
DirectXサンプル内で、ウィンドウ動作するやつは正常に動いていますか…?
a
666 :
645 :04/09/01 15:27 ID:8UoVVY3m
>>663 >サンプルで全画面にしても変わらないの?
サンプルは・・・昨日4時間ほど戦っていたのですが、
どのサンプルをどうしていいのやら分かりません。
>普通のダイレクトXのアプリの全画面は動く?
はい、フリーゲームでも市販のゲームでも、
普通のDirectXのゲームはフルスクリーンでちゃんと動きます。
※動かなかったのは、DXSDK\Samples\C++\Demos\Bin\Donuts4.exe です。
『あなたのグラフィックアクセラレータでは無理です。
それかあなたのグラフィックカードがデスクトップのカラーモードに対応していません。
16Bitで試せハゲ。』
と出て終了してしまいます。
しかし、このメッセージはフルスクリーンになってから出るので、
フルスクリーンにはなるみたいです。
667 :
645 :04/09/01 15:28 ID:8UoVVY3m
>>664 こうなってます。
D3DPRESENT_PARAMETERS param;
ZeroMemory(¶m,sizeof(param));
param.BackBufferWidth=640;
param.BackBufferHeight=480;
param.BackBufferFormat=D3DFMT_UNKNOWN;
param.BackBufferCount=1;
param.SwapEffect=D3DSWAPEFFECT_DISCARD;
param.Windowed=TRUE;//ここをFALSEにすると起動した瞬間に終了してしまいます。
やっぱそこか フルスクリーンにしたいのにD3DFMT_UNKNOWN(フォーマット不明)はないんじゃないかと。
>>667 今試したけど、フルスクリーンでD3DFMT_UNKNOWNにしたらデバイス作成失敗ぬるぽ。
GetAdapter〜とかできちんと取得したやつを使ったほうがよさげ。
IDirect3D9::CreateDevice メソッド ・ウィンドウ モードのみについて、BackBufferFormat = D3DFMT_UNKNOWN。フルスクリーン モードの場合はフォーマットを指定する必要がある。 リファレンスより
671 :
645 :04/09/01 15:58 ID:8UoVVY3m
673 :
645 :04/09/01 16:55 ID:8UoVVY3m
フルスクリーン化成功しました!
GetDisplayModeがよく分からなかったので、
色々調べてD3DFMT_R5G6B5にしたらできました。
R5G6B5は16ビットだということなのですが、
ということは256色しか表示できないということですよね?
>>672 すいません、ヘルプも見たんですけど、
英語と専門用語ばかりでなかなか理解できなかったんです。
DirectXの入門用書籍でも購入したほうがいいでしょうか。
はじめてDirectX触るんなら初心者向けの書籍を買っったほうがいいと思われ とりあえず ・初期化まわり ・行列の基本的な使い方 ・ビュー、カメラの設定 ・ポリゴン表示 ・光源の設定 ・Xファイル表示 これくらいを網羅していれば簡単な3Dシューティングくらいなら作れるようになるべ あとはシェーダを理解すれば初心者卒業かなと思うけど、どうよ? 漏れも最初はヘルプのどこを見ればいいのかすらわからんかったし
>673 …16bitだから65536色だと
2*2*・・・2(2^8)=256 2*2*・・・2(2^16)=65536
>>673 日本語のヘルプも一応読んだほうがよさげ。
日本語訳はクソだが英語をあまり読めなさそうなので。
>>673 は日本語ヘルプの中の英語と専門用語が理解できないんだよ
プロファイリングの結果、
>>673 はガチ小学生。
彼はいずれお前らを凌駕するプログラマとして君臨することだろう。
「センパイそんなことも分からないんですか〜?」とか言ってな。
680 :
645 :04/09/01 17:46 ID:8UoVVY3m
SDKには付いてないけどExtraに付いてる
682 :
645 :04/09/01 18:02 ID:8UoVVY3m
Extra・・・ですか。 調べてみます。 回答してくださった皆様、ありがとうございました。 フルスクリーン化できたので次は簡単なアニメーション表示でもやってみます。
ブルースクリーン化なら思わぬ時に意図せず出来たりする。
684 :
名前は開発中のものです。 :04/09/01 19:58 ID:W7LS8TrD
HLSL無しでお願いします。 面ごとに、ごくごく簡単な陰影を付けたいのですが、 法線無しでライティング計算をDirectXに任せる方法ってありますでしょうか? たぶん無いような気がするので、重ねてお尋ねしたいのですが、 自前でローカル座標から射影空間まで座標変換し、ライティングも計算して、TLVertex型で描画するのと、 固定パイプラインなどに任せるのでは、CPUなどにもよると思いますが、どちらが一般に早いのでしょうか? 自分でやってみた所、どう見ても後者の方が速かったのですが、 腕の良い人ならばどうなのかなと疑問に思いまして…。
ハードウェアT&Lが一般的な現状では、CPUが変換・ライティングを行うより、 GPUに任せた方が高速になるケースが多いです。 TLVERTEXを用いた描画では、CPUとGPUの速度差もさるこことながら、 VertexBufferを座標変換・光源計算の度に書き換える必要があるため、 VertexBufferの中身をCPUからアクセスできる空間(おそらくシステムメモリ)から、 GPUからアクセスできる空間(おそらくビデオメモリ)へ転送する時間の分、損になります。 法線無しでのライティングの計算ですが、HLSLなどを用いて書いたカスタムシェーダ 無しの場合、LVERTEX型+ライトマップを用いる方法がいいのではないでしょうか。 この場合、光源の向きや位置が動き回るケースでは使えませんが、 法線情報の無いLVERTEX型でも(前計算された)ライティングを行うことが出来ます。
あ、若干早とちりがありました。LVERTEXには元々色情報が含まれるので、 >面ごとに、ごくごく簡単な陰影を付けたいのですが、 というように、面単位で充分というのであれば、わざわざライトマップを 張らなくてもいいですね。
687 :
684 :04/09/01 20:29 ID:W7LS8TrD
>>685-686 即レス、丁寧な説明な上、最適解まで頂いちゃってお礼の言葉もありません。
仰るとおり、まさに光源固定でいかに…みたいな所で悩んでいました。
ぼんやりとしていたハードウェアとの関係も、おかげで良く分かりました。
折角なのでライトマップも勉強してみます。ありがとうございました!
>HLSL無しでお願いします。 >面ごとに、ごくごく簡単な陰影を付けたいのですが、 >法線無しでライティング計算をDirectXに任せる方法ってありますでしょうか? 頂点座標でデフューズキューブマッピング
>678 そうだろね あのドキュメントオンリーではつらい初心者も多いだろうね ドキュメントの対象は開発者 入門書の対象は入門者(初心者) だから初心者は書籍買って読んで、ひととおりやってみた後でドキュメントを読み返すとわかるようになるんじゃないかな てゆうか漏れはそうだったけどね ドキュメントと付属のサンプルだけで勉強してる香具師は尊敬するよ 書籍じゃなくても思いつく限りの単語でググればソース公開してるところもあるし、それも参考になるよ(DirectX8以前のものも多いけど) あと初心者はいきなりゲームを作ろうとすると挫折率高いかも Xファイルのビューアとかパーティクルのデモみたいのをとりあえずの目標にしたほうがいいんじゃないかな 逆に言うとそれらが作れればちょっとしたゲームは作れるようになってるはずだからね
ここに来てる人はどのくらいのものが作れるのだろう・・・。 プロもいるんだろうか。
>>690 安心しろ、間違い無くいる。
つーか、プロの平均レベルが君が考えるほど高くないっていったほうが納得がいくだろうか?
ネットで技術ページ立ち上げてる特異な人ばっかりに目がいくけど
プロったって普通の人が大半だよ。
692 :
名前は開発中のものです。 :04/09/02 10:02 ID:/RYufvp9
DirectGraphicsで透過色つき描画したいのですがどうしていいのか分かりません。
ググって調べたのですが、
DirectX Texture Tool でα値を持つddsファイルを作って、
それを読み込めばいいと出たのですが、
その通りにやってもできません。
DirectX Texture Tool の画面では透過した部分の色が水色になっているので、
αチャンネルを持つ画像自体はちゃんとできていると思います。
また、以下の記述を付け加える必要があると書いてあるサイトも見つけたので書いてみたのですが、
透過してくれませんでした。
lpD3DDevice->SetRenderState(D3DRS_ALPHAREF,(DWORD)0x00000066);
lpD3DDevice->SetRenderState(D3DRS_ALPHATESTENABLE,TRUE);
lpD3DDevice->SetRenderState(D3DRS_ALPHAFUNC,D3DCMP_GREATEREQUAL);
この記述をする場所が悪いのかとも思い、
色々な場所で試してみたのですが、だめでした。
■環境
BCC
DirectX9.0b SDK
■参考にしたサイト
ttp://www.plustarnet.com/aspil/Programming/2d10.htm ttp://www.c3.club.kyutech.ac.jp/~sukiyaki/dir/color.html どうすれば透過できるのでしょうか?
見たところ、キミが有効にした機能はアルファテストであって、アルファブレンドではない。
694 :
692 :04/09/02 14:22 ID:Oi5rE6iZ
>>693 ありがとうございます。
アルファブレンドの有効で調べてみたところ、
lpD3DDevice->SetRenderState(D3DRS_ALPHABLENDENABLE,TRUE);
で有効にできるとのことなので、書いてみましたが透過されませんでした。
D3DXLoadSurfaceFromFile関数の第7引数でカラーキーを指定できるというのも見つかったのですが、
これを使うと、指定した色を透過することはできるのですが、
それで描画すると、その部分が最初に置いた画像まで透過されてしまい、
クリア時の色が見えて変な状態になります。
アルファブレンドをどう演算するかの設定が入ってないし。
>>694 DirectXサンプルに答えあるのになぜ見ない。
サンプルって分かりづらい。
RenderState関係のALPHAとついていないものも含めて、色々いじってみながら動作確認していってはどうでしょうか RenderState関係の値がどんな意味をもってるのか、どう変わるのかがわかるから
サンプルがあればこのスレいらんね 削除依頼だしとけよ
夏休みも終わったというのに可愛い逆ギレをするなあ。
701 :
692 :04/09/02 17:51 ID:3tiwSpK0
ありがとうございます。
>>695 アルファブレンドの演算で探してみましたがなかなか出てきません。
これかなと思うものを見つけたのでこれを書いてみましたがちゃんと思い通りに表示してくれませんでした。
lpD3DDevice->SetRenderState(D3DRS_ALPHABLENDENABLE,TRUE);
lpD3DDevice->SetRenderState(D3DRS_SRCBLEND,D3DBLEND_SRCALPHA);
lpD3DDevice->SetRenderState(D3DRS_DESTBLEND,D3DBLEND_INVSRCALPHA);
>>696 サンプルはどれを見ていいのか分からない上、
虱潰しに見てもインクルードとデファインの量が多くて混乱します。
読んでるとどれが自作関数なのかとかわけが分からなくなってきます。
>>698 なるほど。
やってみます。
αブレンドについて検索していると"テクスチャ"に関しての頁がよく引っかかるのですが、
"テクスチャ"が出てくるということは3Dですよね?
2Dオンリーでいきたい場合でも、スプライトを作成して3Dのように作っていくものなんでしょうか?
描画するときに、 lpD3DDevice->StretchRect 関数を使っているのですが、
これはあまり見ません。
702 :
ゼロ :04/09/02 18:24 ID:aGa7pwv+
?
2Dのみでいく場合でもテクスチャを張ったポリゴンを描画するのが一般的です。 テクスチャ座標を持ったトランスフォーム済み・ライティング済み頂点(=2D+深度の頂点)を用意して、 DrawPrimitive(UP)などで描画します。
ひょっとして描画ってlpD3DDevice->StretchRectでやってんのか。 それじゃ抜けるわけねーだろ。
705 :
692 :04/09/02 20:48 ID:Rip4iOsW
>>730 ,
>>704 ありがとうございます。
根本的に間違ってたみたいですね。
3D表示のほうを勉強しなおしてきます。
706 :
名前は開発中のものです。 :04/09/03 03:29 ID:mQdBoXPi
スプライトの表示ができません。
起動して一度はフルスクリーンになるのですが、すぐに終了してしまいます。
色々調べたところ、132行目・150行目(lpD3DXSprite->Begin();・lpD3DXSprite->End();)に問題があるようです。
この2行をコメントアウトした場合、画像こそ表示されないものの、
勝手に終了することはありません。
スプライトの作成に失敗したのかとも思い調べてみましたが、
スプライトの作成には成功しているみたいです。
検索してサンプルソースと見比べても、特におかしいところもないみたいなのですが・・・
その他、読み込む画像の形式を変えてみたり(BMP,DDS)もしましたが、
解決しません。
コンパイルは通ります。
ttp://shiva.dip.jp/up/box/up3042.zip どこが悪いのかわかりません。
分かる方よろしくお願いします。
環境は
DirectX SDK 9.0b
BCC5.5
です。
>706 VCでコンパイルしてみたけど動いたよ 環境としてグラボも書いたほうがいいと思う あとVCでは以下をはずす必要があったけど #define sqrtf(float)sqrt #define atanf(float)atan #define asinf(float)asin #define acosf(float)acos #define tanf(float)tan #define sinf(float)sin #define cosf(float)cos
DirectXサンプルを実行してみろよ
>>706 うちもBCCでコンパイルしたら動いたから、グラボの詳細も書いたほうがいいかも。
710 :
706 :04/09/03 12:57 ID:NP76qImc
>>707 それはBCCでコンパイルする際に書かなきゃいけないやつです。
>>708 ・・・DXSDK\Samples\C++\Demos\Donuts4.exeは動作しませんでした。
>>707 ,
>>709 グラフックボードの詳細です。
DirectX診断ツールで調べました。
Card name: ATI RAGE MOBILITY AGP (Japanese)
Manufacturer: ATI
Chip type: ATI RAGE Mobility P/M AGP 2X (A21/2)
DAC type: ATI Internal DAC
Device Key: Enum\PCI\VEN_1002&DEV_4C4D&SUBSYS_112A10CF&REV_64
Display Memory: 4.0 MB
Current Mode: 1024 x 768 (16 bit) (60Hz)
Monitor: ( Monitor Max Res:
>710 >Chip type: ATI RAGE Mobility P/M AGP 2X (A21/2) >Display Memory: 4.0 MB なんか非常に怪しいですね モバイル関係はよく知りませんがDirectX9未対応なのでは? DirectX8でも(特にシェーダとか)微妙なんじゃないでしょうか? ノートなんですかね ノートは基本的に3Dには向かないと思います
ATI RAGE「D3D? ガーハッハ、無理言っちゃいけねえなボーズ」
最近DirectX勉強し始め、 ポリゴンの三角形を表示できるようにはなったのですが、 分からなかったことがあるので、質問させてください。 「表示した三角形の"頂点一つ"を(カーソル等で)動かす」のような処理は どうすれば出来るのでしょうか? ポリゴン自体を書き直すか、 VertexShaderを使うしかないのでしょうか・・・?
VertexShader「表示した三角形の"頂点一つ"を(カーソル等で)動かす? ガーハッハ、無理言っちゃいけねえなボーズ」
>>713 ロックするかシェーダー使って動かすだけ。
>713 VertexBufferいぢれ
シェーダーってなんですか?
∧⊂ヽ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ (゚Д゚)ノ < シェーダ | ⊃| \__________ | | ⊂ノ〜 ∪
影男
721 :
706 :04/09/03 17:54 ID:Nns2Tjlt
>>711 はい、ノートです。
どこが怪しいのでしょうか?
グラフィックカード自体分からないので、これが何なのかよく分かりません。
俺以外の人がコンパイルしてうまくいくということは、俺のグラフィックカードが問題なんでしょうか?
DirectX診断ツールの、ディスプレイのところの、
「Direct3Dのテスト」というやつをやってみたのですが、
Direct3D7、Direct3D8、Direct3D9のテストは全て成功しました。
結局俺はどうすればいいのでしょうか?
>721 DirectX UtilitiesのDirectX Caps ViewerでHALの機能をチェックすれば多分未対応の機能が特定できるはずなんだが よくわかってないと、何がなんだかわからないかも まずDirectX9の開発や学習を行うならDirectX9対応のグラボが必要 まずは対応グラボから調べてみましょう そして対応グラボを積んだマシンを組みましょう 今ならDirectX9対応PCでも5〜6万で組めるはず で、どうしてもお金がないというならLPD3DXSPRITEつかうのやめて自力でポリゴン使ってみてください
>>721 てか、そのグラボDirectX6までしか対応してないし。
724 :
706 :04/09/04 00:06 ID:+XRuHJsS
漏れのノートはIGP340Mだが、 ピクセルシェーダを使ったプログラムはまったく映らんな。 バーテックスシェーダの方は普通に映るが。 ピクセルシェーダはソフトウェアエミュレーションはまったくダメポ? DirectX8 SDKベースだからかもしれないが。
726 :
706 :04/09/04 20:17 ID:cci5DIFE
あ、ちょっとまってください、重要なことに気づきました。
ソースを組んでみるあたって、配布されていたサンプルを参考にしたのですが、
そのサンプルに添付されていたサンプルの実行ファイルは正常に動作します。
どういうことなんでしょうか?
俺のグラフィックカードがDirectX9に対応してないことは分かったのですが、
動くものと動かないものがあるのはこれはどういうことでしょうか?
まだ練習段階なので、そのサンプルで使われていない関数とかは使ってないはずなんですが・・・
参考にしたのは、ここの「Direct3DXを使った2Dの描画」というサンプルです。
ttp://www.geocities.jp/toru_website/sample/index.html#dxg
>>725 IGP340MはVS11のみ対応。
ノート用にしてはまずまずの性能だが、
固定パイプラインでテクスチャフェチ同時可能数3がキツイ。
>>706 つーか基本中の基本
デバックモードにして出力メッセージ確認はやったのか?
あとID3DXSpriteはDirectX9.0cで仕様が変わったから
そっちに変更してみたら?
まあどうせGPUの限界が原因だろうから意味は薄いだろうが。
728 :
名前は開発中のものです。 :04/09/04 23:32 ID:YrqQlDJp
SDK Update (Summer 2004)をインストールしたら vs.netのDirectXウィザードで作られたアプリがビルドできなくなった。 名前空間がないとかどうたら言われて・・・
729 :
名前は開発中のものです。 :04/09/04 23:51 ID:TzAUQGCx
タイトル画像を表示するために、 ポリゴンを640x480で作ってそれにテクスチャ(640x480)を貼って表示したんですが、 ただ一枚の画像を表示しただけなのに少し重くなりました。 directxを使った方法でこれより軽い方法ってあるのでしょうか?
640x480は内部で1024x1024として作られるから小さいのを継ぎ接ぎにすると多少パフォーマンスがあがるかも。 ただの一枚でも64x64と512x512とでは全然違う。
単純なコピーができればいいだけなら、 2の累乗に縛られるテクスチャじゃなくて、単なるSurfaceで済ます事も出来無くないが。
>>732 >>733 どういうことなのでしょうか?詳しく教えてくだせえ。
やっぱりGDIでタイトルを描画するのはおかしいですか?
これだとGDI→DirectXの描画はできても、
DirectX→GDIはできないんですかね?
DirectXのClear()じゃ、指定した色で塗りつぶすだけだから、
DirectXの描画すべてをクリアすることはできないんですよね?
タイトルバー付きの一般的なウィンドウでDirectGraphics使う時に タイトルバーをドラッグしたり、右クリックしてコンテキストメニュー出したら 描画が止まっちゃうのって、どうやって回避すればいいんでしょうか? 最初ウィンドウのメッセージループで描画処理してたので 「そりゃ止まるだろ」と思って描画は別スレッドでするようにしたんですけど やっぱりタイトルバーをドラッグすると描画が止まります
描画だけ別スレッドにしても止まるのは変わらないと思われ
>>736 描画だけのフレームワークなので、描画のチェックは
Clearの色を適当に変えてただけなんです・・・けど、
その適当に変わる値を何も考えずにメインスレッドから取ってましたw
言ってる意味はわかるけどまだその部分つくってねーしとか思ったんだけど
よくよく考えてみたら言われたとおりの症状だったという
どうもお騒がせ致しました
738 :
名前は開発中のものです。 :04/09/05 20:09 ID:LNnO5mBK
ところでDirect3Dでは四角以上の多角形ポリゴンは直接扱えないの? TriangleStripを使うべき?
>ところで 何がどころでか意味分からん。 >Direct3Dでは四角以上の多角形ポリゴンは直接扱えないの? 扱えない。 >TriangleStripを使うべき? 状況による。
まぁそのとおりだな
741 :
706 :04/09/06 18:43 ID:V8QjG5yQ
>>727 すいません・・・よく分かりません・・・
ところで
■ビデオボード
Direct3Dに対応していること
8MB以上のVideoRAM推奨
■その他
DirectX8.0以上
と書かれたDirect3Dで3D使いまくり、DirectShowでAVI流しまくりの市販のゲームが正常に動作するのですが、
これはDirectX8で作れば俺のPCでも動くことを意味していますか?
>>741 >これはDirectX8で作れば俺のPCでも動くことを意味していますか?
マジレスすれば「わからない」
正確にいえば、プログラムとあなたのPCのグラボ(及びドライバ)との相性次第。
わかりやすく言うと
たとえば頂点シェーダを使おうというプログラムを動かす。
・グラボが対応した機能を持っている場合ハードウェアでその処理を行う(HAL)
・持っていない場合、ドライバが代替処理を行う(HEL)
・代替処理すら行えずに、失敗した旨だけをプログラムに返す場合もある
:失敗が返ってきたらどうするか、の処理をプログラムが行う
続行不可と判断したらそこで落とすかもしれないし、なにか別の処理で誤魔化すかもしれない
:プログラムがそのへんきちんと対処してない場合
落ちたり凍ったり、最悪そのまま無視して進んだりする
あなたのグラボが「何が出来て何が出来ないか」に対し
プログラム側は「出来ない場合どうするのか」に神経を配る必要がある。
744 :
706 :04/09/06 22:51 ID:V8QjG5yQ
ありがとうございます。 難しいですね・・・ DirectXSDKの別のバージョンを入れてみようと思うのですが、 Directx8.0aとDirectX9.0cならどちらがいいでしょうか? OSはWindowsXPHomeです。
>Directx8.0aとDirectX9.0cならどちらがいいでしょうか? 状況による。
互換があるから最新の入れとけば済むはなしだろ
747 :
706 :04/09/07 03:40 ID:5msrndUr
748 :
名前は開発中のものです。 :04/09/07 05:49 ID:v4ArB185
だからなんでも人に聞くなって
SDKが怪しいと思うなら換えてみて自分で確認すれば済むでしょ。
DIRECT3D_VERSIONはちゃんと指定するように
ただ、コンパイラが通らないならともかく実行時におかしいなら
SDKの問題である可能性はかなり低いのでは?
ソースは読んでナイけど
dxinfo (
ttp://www.netsphere.jp/dxinfo/ )で確認してみたら
該当するグラボは、サポートしてる機能がかなり少なめなので
サポートしていない機能をどっかで使っているんじゃないすか?
あと、ドライバは当然最新の物を使ってますよね?
749 :
706 :04/09/07 12:02 ID:TBCKv50G
>>748 ありがとうございます。
それじゃ実際に換えて試してみます。
とりあえずDLだけで20時間以上かかるので、すぐには試せませんがw
SDKの問題ではなくグラフィックカードのほうが問題のようです。
それで、他のバージョンのSDKなら俺のグラフィックカードでも大丈夫かなと思いまして。
ドライバは最新のものを入れてます。
スレチガイかも知れないけどdirectXとopengl使わないで ビデオカード使うにはどうやればいいの?
今こそglideを使うときですよ。
WinG
>>706 つうかリファレンスラスタライザでいいじゃん。
俺もノートだけどピクセルシェーダ使えないから
リファレンスラスタライザで開発してる。
オレもノート買いたいんだけど、シェーダー開発するのに グーなGPU搭載ノートパソコンはなに?
755 :
706 :04/09/07 19:59 ID:38FrSDaD
>>753 リファレンスラスタライザ使ってみましたが変わりません。
やっぱりグラフィックボードが駄目みたいです。
#DirectX9.0cSDKは4%ダウソ完了。
>>755 リファレンスラスタライザはそういう
ハードが原因の出来る出来ない問題を解消する為にあるんだぞ。
そんな訳あるかいな。
DXのコンパネ開いて、リリースビルドからデバックビルドに変更、
メッセージレベルも最高にして、デバッカから問題のアプリを起動させて
出力メッセージをコピペしろ。
>>754 MOBILITY RADEON 9700が載ったノートが割安みたいだな。
ワンランク落としてPS1.x対応のモデルでも良いかもしれんが
お勧めはしない。
9c SDKでとうとうVC6捨てられたみたいね。
759 :
754 :04/09/08 01:30 ID:7mDX3neD
>>757 ありがとう。NVIDIAのよりいいかな? うちのデスクトップRadeon入れているんだけど、この2年間,ドライバーのバグ具合にホント悩まされたんで、ATIのは2度と買わないって誓っちゃったんだよな。
まぁ、ノートだと選択の余地が無いからしかたないけど。
あ、ちなみにそろそろノートPCは新モデルの時期だから、 新しいの買うにせよ型落ち品買うにせよ慎重にね。
>>759 ATIのドライバは今でも地雷だらけだよ。
ドライバを更新したいときは一度ハードウェア板いって人柱(笑)の出現を待ったほうがいい。
自分のもってるグラボと同じ人の報告が上がるまでドライバの更新はしないほうがいい。
アンインストールしても直らない場合が結構ある。(レジストリやらなんか設定色々いじらんと直らないし)
#ハードウェア板ではドライバはnVidiaの方が上ってことで既出になってる。
#でもnVidiaってねぇ〜w
やっぱ本命は3dfxかな。 フルスクリーンオンリー萌え! 16bitカラーオンリー萌え! カード馬鹿でかメモリ無駄使い萌え! 単なる2DライブラリGlide萌え!
765 :
706 :04/09/08 14:26 ID:3qmea7dT
>>756 あ、なるほど、
リファレンスラスタライザってそのためにあるんですか。
えっと・・・自分で調べてリファレンスラスタライザにしたんですが・・・
リファレンスラスタライザにするときは、
CreateDeviceの第二引数を D3DDEVTYPE_REF にするだけでいいんですよね?
>>710 #ifdef __BORLANDC__
#endif
で囲いなよ・・・
>>767 もしくは、プロジェクト編集→コンパイル3のコンパイル条件に突っ込む
769 :
706 :04/09/09 00:19 ID:tIm82McJ
>>767 囲むのって正弦とか余弦のやつですよね?
囲ったらコンパイルが通らなくなりました。
未定義の関数 'sqrtf' を呼び出したとかで。
囲ったらその部分が処理されない・・・?みたいです。
>769 #include <math.h>
772 :
名前は開発中のものです。 :04/09/09 01:32 ID:3rMKjg5I
>>762 って、きっと、偉そうなこと言っときながら、GUIなPCしか触ったことないんでしょうね。
DOS時代を知らないんだな、こういう香具師。
773 :
名前は開発中のものです。 :04/09/09 01:56 ID:06xWR5oW
774 :
名前は開発中のものです。 :04/09/09 02:37 ID:KDPOt7JK
DirectSound?で流せる音の形式は当然waveは流せますが それ以外は?
>774 自前でwaveに変換
>>774 MP3やWMAを使いたいのなら
一度DirectMusicで読んでバイパスして展開された音データを
DirectSoundに渡せばオッケ
>>639 だったらコンビニで商品の場所を聞くときも 道に迷って人に聞くときも
名前名乗ってるんだな?そういうことなら失礼致しました
亀レス御免で披露するような屁理屈じゃないな。 そういうのは8月いっぱいで卒業しなよボク。
いつ入学したんだ?
プログラミングを始めたとき
生理を始めたとき
782 :
754 :04/09/10 21:42:11 ID:HDS3fr6r
>>760-762 サンクス。
9700なら、Shader ver2.0とかいけるし、買うなら9700
搭載機かなやっぱ。9200でもいいけど。
正直、geForce 5200でもいい。ただ、15インチ液晶が欲しい。
どうなってやがんだ!スプライト機能は!! ヘルプ見てもBegin()は引数なし、Draw()は7つの引数のはずなのに! おかしいと思って「LPD3DXSPRITE」でSDKファイル全体を検索。 そしたら、どうやらBegin()は引数1つ、Draw()は5つになってやがる! 英語のヘルプには載ってるようだが、ちゃんと日本語にも対応させろ!!コルァァ!
やたら古い話題で一人で騒いでんじゃねえよよチンカスが。
そもそも無能な人間ほど不必要なD3DXSPRITEを使うから仕方がない。
>>785 ほんと謎だよな。
お世辞にも使いやすいとはいえない糞機能をどうして使うんだろうな。
モデル読み込んだほうが100倍早いよ。
Xファイルのフォーマット知ってりゃテキストファイルでちょちょっと書けば
テクスチャと色とαの指定までできて、且つ、モデルの表示と全く同じルーチンでできるのになw
ゲームが完成しねぇ奴ってのはきっとこういう無駄なことを延々とやり続ける奴なんだろうなw
>786 いや、モデルを読み込むほどのものでもないと思うが…
>>787 なんで?
Xファイルで頂点4つのモデル読み込んで表示した方が100倍楽だよ絶対に。
応用も効くし。
>>787 外部からデータを指定したいにしろ、テクスチャ管理や、
アニメーション制御とか考えると、Xファイルが特別便利ってわけじゃないしなぁ
「こういう無駄なこと」が、自分の上の文のことだったらスマソ
およ
ぐっすんおよ○
三枝兄さんキタ━━━━━━(゚∀゚)━━━━━━ !!
793 :
名前は開発中のものです。 :04/09/12 09:50:42 ID:wqSEFWNT
>>789 なにいってんだ?
D3DXのスプライト機能なんて使うぐらいなら、Xファイル読み込んだ方が楽っていってるんだぞ。
わかってる?
>>793 ちなみにどんなxファイルを書けばいいの?
単純なテクスチャの表示なら、Xファイルとしてデータを用意するより、 普通に4点指定した方が楽だと思うが。
一番処理が軽いのはどれ? 4点指定?Xファイル?スプライト?
そりゃ四点指定だろ
そもそもレンダリング時の最終形態が一つしかないのに、 そういう疑問をもてること自体が疑問なんだが。
Xファイルだろうとスプライトだろうと 最後は同じパスを通るってのになぁ そんな基本中の基本すら知らないのか
読み取りや解析のオーバーヘッドとか些細な事言っていいですか?
>>800 みんな同じという意味ではなく、どれが一番早いか明白だという意味。
分かっていればそういう解釈にはならないはずだが。
Xファイルのローディングなんかは通常無視できるほど小さいものだから、 それを無視した上で「どれを採用しても同じ」と言っている風に解釈したけど何か問題が?
まだC++に慣れて間もない人は自分でスプライトクラスとテクスチャ管理クラスを自作してもいいんじゃないかな てゆーか慣れてない人ほど勉強がてら作ってみれ class CMySprite { public: CMySprite(); ~CMySprite(); void SetRect( const RECT* rect ); void SetColor( D3DCOLOR color ); void SetVertexColor( const D3DCOLOR* color_list ); void SetTexture( LPDIRECT3DTEXTURE9 pTexture ); void Draw( LPDIRECT3DDEVICE9 pDevice ); private: // 略 }; たとえばこんなの
>>802 >Xファイルのローディングなんかは通常無視できるほど小さいものだから、
そもそも描画の時の話をしているのに、なぜファイルの読み込みの話になっているのか。
さらにXファイルを前提にすると、
階層構造や複数のメッシュを持ったデータをレンダリングする為のロジックを経由するため、
必要もないのに無駄な場所に処理が渡されることになる。
そして余分な処理が入って遅くなるんだが、
少なくともそれが分かっていれば、そういう頓珍漢な解釈はしない。
805 :
799 :04/09/12 15:36:34 ID:QQ73P6UC
あーひょっとして誤解されたのか。俺の言いたいことは
>>798 と全く同じ。
どんな描画命令も最後はdraw*Primitive*()を通るので
最も経路の短い無駄の少ないものが最速なのは自明、という意味で書いたんだが
自分で検証させたほうが早くない?
807 :
706 :04/09/12 21:17:30 ID:nJj5t+0R
>>756 DirectXのコントロールパネルはやっと見つけたのですが、
デバッガから起動するというのが分かりません。
DXErr.exeかと思ったのですが、違うみたいなんです。
>>807 ランタイムをDebugにしてビルドもDebugにし、普通に実行すればいいのですよ。
D3DXSpriteにこだわってる人って、3Dに興味なくて 半透明とか回転が使いたいがためにDirect3D使って いるだけの人なんでは? 「Xファイルのほうが楽ジャン」ってのは3D前提で、 既にXファイルの再生機構をもっている人の言い分かと。
Xファイル読み込んでテクスチャ張るなんて数行じゃねえか(#゚∀゚)
>>809 いや、チュートリアルにXファイルをロードして表示するまでが載ってるでしょ?(たしか)
つうか2Dなら尚更直に頂点垂れ流した方が手っ取り早いし処理も速いじゃねぇか 何故スプライトの話でXファイルが出てくる?なんなんだ、この話の流れは
なんでスプライトなんかにわざわざXファイルを… そのまま画像ファイル指定すればいいのに 偏見だが、英数字を全角で書く奴言うことは…
>>812 ファイルから大きさも指定できるし、色やαも指定できるし
いいところばっかじゃねぇかよ!
>>814 Direct3Dを使えばそういう利点があるのは理解できる。
が、板一枚を扱うのにXフォーマットは大げさなのでは?ってことっしょ?
まあ、往年の家庭用ゲーム機みたく、小さなチップの組み合わせで絵を組み立てたいとか、
プログラムレスで多関節を組み立てたいとか、そういう用途に使えなくもないがな。
>>815 >が、板一枚を扱うのにXフォーマットは大げさなのでは?ってことっしょ?
大げさも何もXファイル使う方が楽だろ。
応用も効くし。
別に板1枚じゃなくたって、モデリングツール(メタセコイアダウンロードしる!)があれば
ゲーム中のウィンドウの配置すべて設定しておくとかって使い道だってできるぞ。
これが何言ってるのかわからなかったり、便利だと思わない奴はただのアホだと思うよw
Xファイルでいちいち指定しなければならないのが面倒なのと、 その程度なら自前で実装しても手間が変わらないし、 動的なものなら逆に手間が増える。
人生色々 実装もイロイロ
多分816はコーディングが面倒な人間なんだよ、うん。
スプライトに関することで申し訳ありませんが、 D3DXMatrixTransformation2D の ScalingCenter の値を変えても 変化が無いような気がするのですがどうなんでしょう。
俺はただのアホなのか
まぁ、
>>816 頑張れ、と一言だけ
漏れもただのアホ ノ
>>823-824 えぇぇぇぇぇ?
なんで?
ステータス画面なんかの絵の配置とか自分でやるの面倒じゃねーかよ。
Xファイルでやればその辺分離できるじゃん?
色やαだって設定できるのに。
2Dだったらその辺の糞なマップツールより使い勝手いいっつの。
プログラム側でいじりたいときだって、値受け取るだけだぞ。
わからん。俺にはお前等が全くわからん。
α値などは後から動的に変更するように作るので、 Xファイルを経由すると作りにくくなるだけ。 それとステータスなども必要に応じてサイズを可変にするので、 Xファイルの存在価値はない。 そのまま使うとかなり不便で限られた用途になってしまうし、 カスタマイズするのなら、使わない方が遙かに楽。
まあXFileはカスタマイズ前提なんで 自分でオリジナルフォーマット使おうが XFile使おうが大して差は出ないんでねえの? XFileはバイナリフォーマットも楽に扱えるし悪く無し。
モルダー スカリー
829 :
706 :04/09/13 18:09:53 ID:uDZ+3Rel
>>808 すいません、デバッグビルドというのが分かりません。
_DEBUGを定義しておいて、
コパイル時のコマンドライン引数に-vと-yをつければ
*.tdsファイルにデバッグ情報が出力されるとのことなのですが、
tdsファイル自体開けませんよね?
実行しても新しいファイルはできないみたいですし。
DirectXのコントロールパネルの設定は、
>>756 氏に言われた通りにしました。
あと、関係あるかどうか分からないのですが、
さっきDXDIAGを見てみたら、
3Dのところに問題があると出て、3Dの回避をするか否か選択するダイアログが出ました。
回避すると、3Dのチェックをするボタンが使用不可になっており、
回避しないとその場で強制終了します。
2・3日前まではこんなことはなかったのですが・・・
>829 706さん、どうにかしてVCを買いましょう VCのデバッガは便利です 今のあなたの状況だとデバッガがないとしんどいでしょう 706さんのように初心者はbccよりVCでやることをおすすめしますよ いや、ある程度経験をつめばbccでも対処できるとは思いますが まったくの初心者にそれを求めるのは無理ですからね VC.NETは1万ちょっとの出費です 学生ならアカデミックでさらに安く購入できるはずです 「そんな金だせねーよ」という人もいるでしょう 706さんの場合はDirectX7あたりでの開発が無難でしょうか? DirectX9SDKであってもVERSIONを指定することで9以前のバージョンの開発が可能のはずです ちなみに私も昔は貧乏学生でしたので自分の環境でできる精一杯のことを工夫してやっていました(DirectDrawで3Dとか) 706さんもこれでめげずに、なんとか続けてくださいね
でも向いてない事をいつまでも続けるより 別な事をはじめたほうがいい事有るかもよ
VCは買わなくてもコンパイラーはただで使えるよ MSのデバッガーもただでつかえるよ
>>831 Direct3D7は歴代最強の難易度だと思ふ。
>>832 俺ほどの豪の者ですらMSタダデバッカには太刀打ちできなかった。無理だと思ふ。
「弘法筆を選ばず」というのは大嘘。 その道に長けた人ほど、洗練された道具を持っている。 必要な物ぐらい金を出して買うべき。
まぁ最新グラボを積んだマシンを組んでVC買うのが早道なのは確かだけど 貧乏学生だったらそれは無理だからねー 簡単に諦めるより、何かしら方法を模索していくのも人生かとw
趣味レベルなら5,000円ぐらいのボード+フリーのVCでも十分でしょ。 >706のATI RAGE Mobilityが3Dやるのに向いてないだけ。 >706自身もプログラマに向いてないけど。
>>834 弘法筆を選ばずはそうゆう意味じゃなくて
弘法は良い筆も持ってるけど悪い筆でも上手く書けるって
意味なの
意味も分かってなくて大嘘というお前が大嘘
悪い筆でもうまく書けるという意味があるのは否定していない。 しかし良い筆を持つのは、良い筆の方がうまく書けるから。 結局は道具を選んでいるわけで、筆を選ばないというのは嘘になる。 その程度のことも理解できない能無しが何を吠えているんだか。
>>837 いや、ちがうと思う。
意味は「弘法大師は、筆の善し悪しにかかわらず見事に書く。名人の腕は、道具や材料によって左右されないというたとえ。」
ってあるから、これは「どんな筆を使っても最高の出来に仕上げる」って意味だから
「良い筆ももってるけど」って意味は無い。
「選ばず」(左右されない)ってんだから、関係ないって意味でしょ。やっぱ。
私は弘法じゃないので、良い筆で書く。 買えませんが orz
筆だの筆おろしだのどうでもいいが 706なんかは名人ではないのは確か 名人目指してがんがってくれ ということは、やっぱりそれなりの筆が必要ってことなんだけどなー
>>838 弘法筆を選ばず野意味はどんな筆でも上手く掛けるが
良い筆で書くと相対的に悪い筆よりうまく書けるといいたいわけ?
そんなのただの屁理屈で説明になってないよ
>>879 なにいってんの?
弘法が良い筆もってなかったわけ無いだろ
弘法筆を選ばずの意味は 下手な人が筆のよさの量だけ上手さがアップしても 人の能力はアップしないって意味で 弘法は習字の能力がマックスになってて筆を変えてもそれ以上上には行かない って意味 このスレで弘法筆を選ばずの場合は、VCネットを買うと全体の能力は上がるが 能力は上がらないって意味だな
>>842 論破されると屁理屈とか言い出した上、頭に血がのぼってポイント先を間違える。
見苦しいことこの上ない。
どんなに能力の高い人間でも、状況が許すのなら結局は道具は選ぶ。
>>844 あのさー
お前ポイント間違えてるよ
弘法筆を選ばずを無理にプログラミングに結び付けようとしてるみたい
だからわざわざ付き合ってやったんだけど
俺は書道のことをゆってて弘法筆を選ばずがプログラミング関係があるように
思い込んで大嘘とかいってるのお前の妄想だろ
弘法はプログラミングするのか?アホ
死んで来い
上手いプログラマーが別の世界の弘法と上手さが 同じくらいの上手さと勝手に決め付けてるみたいだけど 弘法の上手さは今のプログラマーでは海外のすごいプログラマーだと 思うなそうゆう人は道具を選ばないんだよ 君は自分がプログラミング界の弘法レベルと思って自惚れてるから 自分が道具を選ぶから大嘘だとか思っちゃったんだろうね これが本音でしょう
弘法が筆を選ばずってことわざが嘘だったら 辞書にこれは嘘ですって書いてあるはずだろ 書いてないから嘘じゃない 論理的に考えることを覚えたほうがいいよ
結論:弘法大師は偉い
849 :
名前は開発中のものです。 :04/09/13 23:05:15 ID:TlpvMxVt
>G1SPhSRm ( ´,_ゝ`)間違えたなら、「間違えました」って言えよw
ことわざがその言葉で表されている特定の状況下でしか使えなかったら、 あらゆる例えが無効になってしまうわけなんだが。 逃げ回るにしてももう少しましな論法を選ぶべき。 比喩とか例えは、言葉通りの状況でないと使えないのか? >弘法の上手さは今のプログラマーでは海外のすごいプログラマーだと カイガイノスゴイプログラマー ここは笑うところですか? >辞書にこれは嘘ですって書いてあるはずだろ 辞書に書いてあるのは昔から伝わっていることわざだから。 昔から伝わっている意味が載っていても、それが正しいかどうかは辞書が判断してくれるわけではない。 どう論理的に考えても、辞書が言葉の意味ではなく、その真偽まで判断しているとは考えられないし、 そんな辞書は見たことがない。
何マジになってんのこの人(ギャハ 馬鹿じゃない?wwww
一つだけいってあげよう ことわざが当てはまらないと大嘘と 始めにいったのは君 まずそれを訂正しなさい 自分でも間違ってるときずいているはずだ 本気でおもってるのならかなりのアホだ
ええと、これはどこかの何箇条かにあった、最後の知能障害を起こすという奴?
さあ、出すんだ弘法は筆を選ばずが嘘だという証拠を
>>706 の件についてだけど整理してみた
実行環境 ATI RAGE Mobility(ノートPC)
コンパイラ BCC 5.5.1
>>706 氏自作プログラム
BCCでビルド→RAGEで動作せず、名無しさんの環境で動作する
VCでビルド→名無しさんの環境で動作する
サンプルプログラム
添付バイナリ→RAGEで動作する
>>706 のソースを見てない(消えてた)けど
>>706 氏が加えた変更にRAGEだけが動かなく
なるような変更が加えられたってことだよね
オレの勘だけどVRAM不足じゃない?
ちなみに空海は筆の作り方についての論文を残すほどの筆ヲタ
議論・勉強系のスレでは、「スレのためにスルー」精神を広めたい今日この頃。
証拠が無いんなら 弘法筆を選ばずは本当だったってことで 大嘘といったje0jue7Dが大嘘決定だな
この大嘘やろうが!!!! 嘘つきは泥棒の始まりですよ 早く自首して死刑になってください!!
格言に論理の破綻を許さないというスタンスは この機会に捨ててしまった方が良いかも知れん。 2度ある事は3度あるはずなのに3度目に成功する(3度目の正直)という格言もある。
俺はな、嘘つきが一番嫌いなんだ 反省もしないで俺に偉そうなこと言ってきやがって このスレからデテケーバカチンガ
>>851 頭に血がのぼったあと、それでも悔しくて
>>852 となるわけだけど、
>始めにいったのは君
これはそうだけど、
>まずそれを訂正しなさい
訂正も何も、全て論破したのに、その反論がない上に、
心のよりどころが、カイガイノスゴイプログラマーと、
言葉の真偽まで書き記された究極の辞書だし。
>さあ、出すんだ弘法は筆を選ばずが嘘だという証拠を
証拠も何も、弘法が実際に良い筆を使っていたことは史実で伝わっている。
史実に対する証拠を出せと言うのなら探してくるけど、
それはそちらでも否定していないわけなんだが。
ことわざは実際にどうであったかではなく、後生の人間が例えとして作ったもので、
そのことわざ自体は必ずしも偉人が作ったわけではない。
教訓などを言い表すため極端になっていたりして、それが絶対の真実ではない。
「船頭多くして船、山に登る」が辞書で嘘と書いてなくても、
それが真実ではないし、ことわざは今回のように時として反例として用いられる。
引っ込みがつかなくなったからと言って、知能障害を起こしてまで盲信したふりまでしているし。
>>858 なんか可哀想になってきた。
862 :
名前は開発中のものです。 :04/09/13 23:37:11 ID:TlpvMxVt
>G1SPhSRm ( ´,_ゝ`)略w
弘法が良い筆を使っているのが証拠になるのか 悪い筆を絶対に使わなかったが論理的に証拠だろ だから論理的に考えろっていってるんだよ あとな事実じゃないというのなら筆を選んだという事実を なぜ持ち出すんだ 決定的に矛盾してる 知能指数いくつだよ 俺は150はあると思う
スレだけに、スレたレスはスルーする。
お前は一貫性が無いから矛盾をしてきされて深みにはまっていくんだな 知能がサルなみで可愛そうなのはあなたよ
866 :
名前は開発中のものです。 :04/09/13 23:40:56 ID:TlpvMxVt
>G1SPhSRm ( ´,_ゝ`)もうわかったから、糞して寝ろw
バカを相手にするのは時間の無駄。 スルーを覚えましょう。
ここは馬鹿の国ですね 馬鹿の為の馬鹿による馬鹿のスレです 馬鹿はこのスレからウセロ
史実と諺がごっちゃになってますね…
852 名前: 名前は開発中のものです。 [sage] 投稿日: 04/09/13 23:10:13 ID:G1SPhSRm 一つだけいってあげよう ことわざが当てはまらないと大嘘と 始めにいったのは君 まずそれを訂正しなさい 自分でも間違ってるときずいているはずだ 本気でおもってるのならかなりのアホだ 853 名前: 名前は開発中のものです。 [sage] 投稿日: 04/09/13 23:10:43 ID:je0jue7D ええと、これはどこかの何箇条かにあった、最後の知能障害を起こすという奴? 854 名前: 名前は開発中のものです。 [sage] 投稿日: 04/09/13 23:12:31 ID:G1SPhSRm さあ、出すんだ弘法は筆を選ばずが嘘だという証拠を
おい、やめろよ 恥ずかしいじゃないか 俺はもう降りる じゃあな
863 名前:名前は開発中のものです。 本日のレス 投稿日:04/09/13 23:37:12 G1SPhSRm 知能指数いくつだよ 俺は150はあると思う 知能指数いくつだよ 俺は150はあると思う 知能指数いくつだよ 俺は150はあると思う
そろそろIDが変わる時刻か…。 結構な短時間に厨房迷言集がを作ってしまった。 スレ汚しスマン。
いまNHK教育でやってるぞ
なんだよ。プログラマーってのは変な議論をするのが好きなんだな。 よっぽろストレスがたまる職業なのか。
すげー無意味な議論が続いていて笑った なんだこのスレ
流れに合わずすいません、お助け下さい。DirectX9です。 例えですが、6個の頂点情報(D3DFVF_XYZのみ)と対応するインデックスのみで、 色と、メリハリの効いた陰影があるboxを描画したく思っています。 フラットシェーディングならばこの用途にぴったりと思い試してみました。 しかし面に色すら付けられない有様です。頂点法線の情報がないせいかマテリアルは適用できず、 またLVertex等ではライティング計算をDirectX側に任せられない上、いちいち色指定が冗長で…。 ヘルプには「フラットシェーディング時には面法線(※頂点では無い)が自動的に 計算される」とあります。なんとかこの辺を利用して、ライティング等を DirectXに任せられないのでしょうか?
879 :
878 :04/09/14 00:11:27 ID:TX8PjuRf
すいません間違えました ×6個の頂点情報 ○8個の頂点情報
ライティングしたいなら法線有りの24頂点でいいじゃない。
881 :
878 :04/09/14 00:29:17 ID:TX8PjuRf
>>880 レスサンクスです。
とはいえ、どうしても同一頂点はひとつの情報(と言うかバッファ)で扱いたいんです。
24頂点だと、インデックス値が全く意味無くなりますし…。
882 :
878 :04/09/14 00:31:14 ID:TX8PjuRf
失礼、全くじゃないですね うーん、それにしても、なんとかならないものか…
遅くなっていいならD3DRS_NORMALIZENORMALS。 頂点数が多くなっても普通に法線を設定しておいた方が無難だと思うが。
884 :
878 :04/09/14 01:13:38 ID:TX8PjuRf
>>883 レスありがとうございます。
早速試してみましたが、しかし上手くいきませんで…。
D3DRS_NORMALIZENORMALSは
頂点法線を、長さ1に正規化する以外の機能もあるのでしょうか?
(例えば頂点法線を自動で算出してくれる等の)
>884 頂点情報、インデックスまであるんだったら自分で法線算出できるんじゃないかね やりかたは適当にググてみるか適当に作ってみたら?
886 :
878 :04/09/14 01:37:03 ID:TX8PjuRf
>>885 ありがとうございます、法線算出自体はそれほど苦ではないです。
頂点をマウスで掴んで、移動したりなど、編集可能にしたいのですが、
その際、頂点情報が散らばっていると分かりづらいなというのが第一でして。
頂点に対する抽象度を、ひとつ上げれば良いのですが、
今後の複雑な操作や、私の実力を考えると、
できれば情報は1対1で、分かりやすくしておきたいなと…。
>>886 それと法線とどんな関係があるのでしょうか?
弘法の法と関係あるかな?
889 :
878 :04/09/14 02:07:57 ID:TX8PjuRf
>>887 >>878 の例で言いますと、実際の…というかEntityな頂点情報は8頂点です。
首尾良くここで何か情報を頂き、そのままの情報のみで描画可能ならば
頂点バッファの数も8頂点で済み、1対1で分かりやすくなります。。
しかし、もし方法が無くて法線情報を付けなければとなると
頂点バッファの方で描画用に必要な頂点が不特定(この場合24頂点)になり、管理しづらいなと。
以上が
>>886 と法線との関係です。弘法とは無縁です。
>>889 なるほどー。
でも8頂点じゃ色が出力できねーじゃねーのかな?勘だけどw
立方体に真上から光なんか当てると上の面は一番明るくて
横の4つの面は上の面より暗くなるじゃん。
この時点で1つの頂点に複数の色が必要なわけで法線云々じゃなくて
そもそも出力できねんじゃね?(ようしらんけどw)
891 :
878 :04/09/14 02:54:25 ID:TX8PjuRf
>>890 ライティングまで自分で計算し、頂点カラーを直接指定して
描画する場合は、仰るとおりだと思います。
ただ一般には、頂点カラーよりも、マテリアルと法線でもって描画する方が多い気もします。
この法線を
>>878 で挙げた「面法線」とやらに任せたいのですが…。
ちょっと記憶が曖昧なのですが、以前同じツールを作った時は、
確かに頂点法線情報無しで、実装できてたんです(当時はまだDX7か8でしたが)。
これが今回こだわっちゃってる理由でして。
ちなみに以前のソースが入ったHDDは壊れてしまい、
今は直るという噂を頼り、冷蔵庫で冷やしています…。
>>878 要は共有頂点を扱えないのね?
グローシェードなら、共有頂点の含むフェイスの法線の平均でやるのが簡単。
フラットシェードなら、法線情報を分けるしかないかな?
どうしても共有頂点を分けないなら、フェイス毎にロックして法線情報を書き換えとかアホな方法も…
どのみち、この先マテリアル毎に描画とか必要になるんだから
頂点を分けた方が良いんじゃない?
あ、後はシェーダー使って、
頂点ポジション情報ストリームと法線情報ストリームを分けて持ってるとか?
…つーかこの方が分かり図らいか…
ま、我侭言うなって…
話がつまんねーよ 弘法の無意味な議論とか続けろよ そっちの方が遙かにおもしれえ
894 :
878 :04/09/14 03:33:33 ID:TX8PjuRf
>>892 うーん、となると「自動で計算される面法線」とやらは
どこで使われてるんですかねぇ…(ヘルプのシェーディング>比較)。
面法線の定義からして、単なる頂点法線の平均とは思いたくないのですが…。
変更が少なく済み、なおかつ分かりやすいので、マテリアル毎の描画は、
インデックスバッファの方を、マテリアル毎にソートしてやりたいと思ってます。
皆さんお付き合いありがとうございました。そろそろこの辺で…とはいえ
情報をお持ちの方がいらっしゃいましたら、よろしくお願いします。
>自動で計算される面法線 DX9ヘルプで見たこと無いよ? >変更が少なく済み、なおかつ分かりやすいので、マテリアル毎の描画は、 >インデックスバッファの方を、マテリアル毎にソートしてやりたいと思ってます。 あんた、UVの事考えてないでしょ? 頂点を別個で持つのが普通だって。 キツイ言い方すると、出来ない事に延々と悩むのは無駄という物。
>>895 894でも良いんですが、「シェーディング モードの比較」で検索すれば一発かな。
英語だと「Comparing Shading Modes」、Automatic face normalsとなっています。
テクスチャ情報は扱わないんです。これがそもそも今回の設計の発端となってます。
仰るとおりなのですが、
>>891 、3段目の理由により、諦めきれなくて…。
スレの進行の邪魔にならないよう、もし可能でしたら、レスよろしくお願い致します。
フラットシェードでやってみたら?
>>896 よーく見たら、図の注釈みたく書いてあるのね…
えーと、英語でも日本語でもいいんだけど
どこにフラットシェーディング時に自動で計算されて、シェーディングに使用される
と言う意味で書いてある?
今、試してあげたけど
ライティングあり、テスクチャなし、法線なし、フラットシェード
でマテリアルの色が暗く出たけど…マトモなライティングじゃなさげだけど?
やっぱ、レンダリング時に面法線を使ってくれるなんてないんじゃない?
因みにライティングを切ったら色出たけど(当然シェーディング無し)
前の奴ってライティング切ってるんじゃない?
>>898 スマン、追加。
アンビエント切ってなかった。
暗く出てる色ってアンビエントの所為だった。
やっぱ、法線なしじゃライティングされてないね。
>>855 >>706 の環境ではリファレンスラスタライザ上も動作せず、も加えてくれ。
スプライト一枚表示するだけのプログラムなのでVRAM不足は考えにくい。
つーかもうどうでもいいや、後はBBXにでも行けって感じ。
>>901 立てる板を間違えてる。もっとふさわしい板があるから探せ。
>>901 俺が議論したいんじゃねぇよ
バカかお前は
文意を理解しろよ文盲
>>843 習字じゃなくて書道と言ってくれ・・・(´Д`;
プログラマってコンパイラみたいだな。 頑固にエラーエラーって。柔軟さが無いよね。 まぁどーでもいいけど。
疲労困憊る
>>905 柔軟になればエラーが無くなるんなら苦労しない
そりゃ、融通の利かない石頭(シリコン)相手にしてるんだもの。 日常レベルからエラーに敏感になるさ。
昔、BASICでエラーの出る行を削除してエラーがなくなるまで繰り返した。 これを応用すればエラーはなくなるはず。
ちゃんと動いたか?
>909 最後は画面の初期化命令の行だけになりそうだね
DX9で D3DXCreateTextureFromResource関数を使って リソースファイルからjpgファイルを テクスチャとして読み込ませるのがうまくいきません。 リソースファイルに IDR_xxx RT_RCDATA DISCARDABLE "xxx.jpg" と追加する以外に何かしないとダメなんですか? BMPファイルを IDB_xxx BITMAP DISCARDABLE "xxx.bmp" として読み込ませるのは、うまくいくんですが・・・
>>912 D3DXCreateTextureFromResource関数から
エラーは出てる?
なんで、どう「うまくいきません」のか書かないの?
>>914 それは初心者には難しい。
あえて聞くまいw
いまはリソースからのjpgファイルの読み込みがD3DXCreateTextureFromResource関数でできません。
って伝わっただけでもよしとしよう。
すいません。エラーは、 D3DXERR_INVALIDDATA でした。 「メソッドの呼び出しが無効である。たとえば、メソッドの パラメータに無効な値が設定されている場合などである」 へルプにはありますした。 まず、引数を調べてみることにします。
>>ID:scgzpgiP
r;ァ'N;:::::::::::::,ィ/ >::::::::::ヽ
. 〃 ヽル1'´ ∠:::::::::::::::::i
i′ ___, - ,. = -一  ̄l:::::::::::::::l
. ! , -==、´r' l::::::/,ニ.ヽ
l _,, -‐''二ゝ l::::l f゙ヽ |、民神板はお前の日記帳じゃねえんだ
レー-- 、ヽヾニ-ァ,ニ;=、_ !:::l ) } ト
ヾ¨'7"ry、` ー゙='ニ,,,` }::ヽ(ノ チラシの裏にでも書いてろ
:ーゝヽ、 !´ " ̄ 'l,;;;;,,,.、 ,i:::::::ミ
::::::::::::::::ヽ.-‐ ト、 r'_{ __)`ニゝ、 ,,iリ::::::::ミ
::::::::::::::::::::Vi/l:::V'´;ッ`ニ´ー-ッ-,、:::::`"::::::::::::::;゙ , な!
:::::::::::::::::::::::::N. ゙、::::ヾ,.`二ニ´∠,,.i::::::::::::::::::::///
:::::::::::::::::::::::::::::l ヽ;:::::::::::::::::::::::::::::::::::::::::::/ /
::::::::::::::::::::::::::::::! :|.\;::::::::::::::::::::::::::::::/ /
お前が削除依頼出せよ?
http://qb5.2ch.net/test/read.cgi/saku/1030111834/
DirectXに直接関係あることじゃないんですが、 3DのRPGやアクションなどの場合、 衝突判定はどうやっているのですか? それと壁や木に衝突したときに方向キーを押したら滑っていくようにしたいのですが、 これは初心者には難しいですか?
検索・・・してねぇだろうなぁ〜。
>衝突判定はどうやっているのですか? 検索すればいくらでも見つかるだろうが、これだけは言っておく。 アプリの種類、特性、モデルの数、複雑さ、お前の能力、センス、時間、こだわり次第。 アプリが100こあったら13通りはある。
>>衝突判定
ふと思ったんだが知恵と勇気を使えば中学生にも発想できるんだよな。
そりゃ
>>918 はよりスマートな演算手法を使うべきだと顕在意識でも
無意識下でも自覚しているんだろうけど、ちょっとヘタレすぎてないか?
不完全なアルゴリズムを提示して相談したほうがより良い返答を期待できるだろ。
煽り、罵声も増えるだろうけどな。
君ら、なんでそんな低レベルな質問と返答でそんなに偉そうなの?
勇気は無くても大丈夫だろ
レベルは関係ない。 腰が低いのは質問するときだけ!
>920 >アプリが100こあったら13通りはある。 なんかワラタ >918 まずは2Dのゲームで考えてみたら? 昔の2Dのアクションゲームとかでも壁にぶつかったら壁にそって滑るってのは結構あったし
DirectXに関係ないことを書くなボケ
衝突判定など、最新の高速なのが海外にいっぱいライブラリで転がってるとうれしいね。
時間積分して何か障害物にめり込んだら、めり込まない位置まで法線方向に押し戻す。
まんPに衝突判定。ハァハァ。
930 :
名前は開発中のものです。 :04/09/17 21:27:30 ID:ugHwMHvE
Directxについて分からない事があり困っています。 Directx9.0が必要なゲームを買って、PCにDirectx9.0をダウンロードしたのです が、ゲームを起動すると、 『システム内にDirectX9.0cと互換性のあるビデオカードを検出できませんでした。 DirectX9.0cに対応するビデオカードが装着されていて、製造元が提供する最新の ドライバがインストールされていることを確認してください。』 と表示されます。 そこで、Windows Updateで最新のドライバを更新したのですが、起動することが できませんでした。このことに関係あるのかは分かりませんが、更新の履歴確認で は、『Windows Media Player9.0の更新』が進行中のままになっていました。 それから、PCはMEを使っています。 PCの初心者で、本当に分からなくて困っています。 よろしければ、どなたか教えてください。お願いします!
なぜビデオカードの名前を出さないのだ。 それ以前に板違いだ。
9.0対応のビデオカードとWindowsXPを買ってくる。
PCゲーム板へGo
934 :
名前は開発中のものです。 :04/09/17 21:38:40 ID:ugHwMHvE
あ!板違いなのですか。 DirectXについての板だったのでよいのかと思い、書き込みしてしまいまし た。すみません。
>934 あなたはゲームをする側 この板は作る側
936 :
名前は開発中のものです。 :04/09/17 21:53:36 ID:LmI0jVDg
Directxについて分からない事があり困っています。 Directx9.0が必要なゲームを作るため、PCにDirectx9.0をダウンロードしたのです が、ゲームを作ろうとすると、 『システム内にDirectX9.0cと互換性のあるビデオカードを検出できませんでした。 DirectX9.0cに対応するビデオカードが装着されていて、製造元が提供する最新の ドライバがインストールされていることを確認してください。』 と表示されます。 そこで、Windows Updateで最新のドライバを更新したのですが、起動することが できませんでした。このことに関係あるのかは分かりませんが、更新の履歴確認で は、『Windows Media Player9.0の更新』が進行中のままになっていました。 それから、PCはMEを使っています。 PCの初心者で、本当に分からなくて困っています。 よろしければ、どなたか教えてください。お願いします!
ビデオカード変えろ
938 :
名前は開発中のものです。 :04/09/17 22:11:45 ID:mh0H/69j
メディアプレーヤーの更新が 毎度途中で失敗するは、俺もなったことあったな。 XPを再インストールしたら直ったぞぇ。
>>912 > IDR_xxx RT_RCDATA DISCARDABLE "xxx.jpg"
RT_RCDATA
じゃなくて
RCDATA
にしてみれ。
940 :
912 :04/09/18 12:25:30 ID:4abBz0m0
>>939 RT_RCDATA を RCDATA と書き換えたら
jpg画像からテクスチャが作れるようになりました。
ありがとうございました。
時間積分ってなんですか? 例をまじえて詳しく私に教えてください
速度→位置 これ以上はビジネスになるよ。いくら出せる?
100万出すから教えてください 銀行振り込みでいいですか? 口座番号教えてください
じゃあ赤い羽根募金に100万募金してきて。 その証拠画像か映像出したら何でも教えてやるよ
100万円募金するので先に教えてください
どーでもいいーよ
200万円だすので教えてください
そろそろ次スレの季節だね。まだ早いかな。
☆ チン マチクタビレタ〜 マチクタビレタ〜 ☆ チン 〃 Λ_Λ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ヽ ___\(\・∀・) < まだ〜? \_/⊂ ⊂_ ) \_____________ / ̄ ̄ ̄ ̄ ̄ ̄ /| | ̄ ̄ ̄ ̄ ̄ ̄ ̄| | | 愛媛みかん |/
テンプレ直すの忘れた。 ☆ チン マチクタビレタ〜 マチクタビレタ〜 ☆ チン 〃 Λ_Λ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ヽ ___\(\・∀・) < 次スレまだ〜? \_/⊂ ⊂_ ) \_____________ / ̄ ̄ ̄ ̄ ̄ ̄ /| | ̄ ̄ ̄ ̄ ̄ ̄ ̄| | | 愛媛みかん |/
| 糞スレ【「弘法筆を選ばず」の正しい解釈とは?】 |
│
http://academy3.2ch.net/test/read.cgi/min/1095086445/| マチクタビレタ〜 < の削除依頼、まーーだーーー!? >
☆ |_ _ _ _ _ _ _ _ _ _ _ _ _ |
ヽ ☆ ∨ ∨ ∨ ∨ ∨ ∨ ∨ ∨ ∨ ∨ ̄∨ ∨ ∨ ∨
=≡= ∧_∧ ☆。:.+: ∧_∧ マチクタビレタ〜
/ 〃(・∀・ #) シャンシャン ( ・∀・) ♪.:。゚*
〆 ┌\と\と.ヾ∈≡∋ゞ / ̄ヽ/,― 、\ o。。。 マチクタビレタ〜
|| γ ⌒ヽヽコ ノ || | ||三∪●)三mΕ∃.
ドコドコ || ΣΣ .|:::|∪〓 || \_.へ--イ\ ゚ ゚ ゚
. /|\人 _.ノノ _||_. /|\ ∧_∧ (_)(_) ☆:.°+
( ・∀・ )っτ 。::.☆ο
マチクタビレタ〜 ♪〜 ( つ‡ / | マチクタビレタ〜
| (⌒) | ☆1
♪ ∬∬ マチクタビレタ〜 彡 し'⌒^ミ A 〃
∧_∧ ( ‘) / ̄ ̄  ̄ /.| ∧_∧ ____
( ・∀・)_// | ̄ ̄ ̄ ̄ ̄ ̄ ̄| .| ( ・∀・)) _/
_( ( / Cミ | 腐れDirectX | .| . (\ ∧// 〜♪
\((○ ̄ /_ | .|/ >、\ξ) 〜♪
Σソ\_/(_)ミ /∠(,,,)>\
(_) (_) \| (_)
957 :
次スレはちゃんと臭えケツふいてからな。 :04/09/18 23:57:50 ID:qSHVhroT
しかし、何を考えてあんな板に立てたんだろうな。
959 :
名前は開発中のものです。 :04/09/19 22:25:50 ID:NLCzQVAi
SDk8.1ってマイクロソフトからDL出来なくなった? リンクからDL出来るページに飛んでも何もない・・。
>959 SDKは、もう9があるんだから8いらないでしょ?
DX9が動かないPCで開発してるんかな?
もう当分9のままだから9で行っときなさい。 LonghornのWindows Graphics Foundationも最初は9相当らしいですよ。
自分が知ってる(見れる)サンプルが8しかないから… とか言う下らない理由なんだろうな… 8にこだわる理由。
961が正解。最先端の性能で開発してる人もいるし そういう環境じゃない人もいるってこと。
8は動くけど9は動かない環境ってあるのか? まぁ9のSDKで8の開発は出来るっしょ。多分。
>965 >8は動くけど9は動かない環境ってあるのか? あるでしょ でもDirectX9SDKでそれ以前の開発は可能だからSDKは最新版でいいと思う あ、でも開発とテストをする環境が一つしかないんだったらランタイムライブラリの関係で新しいSDKが入れれないのかな?
ここのスレの方はどんなゲームを作っているんですかねー。 レベル高そう。ぜひやってみたい。
>>967 発言を見る限り、プロの人間は確実にいる。
後は店頭に並んでるゲームを買ってくだしゃんせw
あのう ダイレクトエックスを使った ゲエムは二ホンでは作られてないような気がするのですが エロゲーとかならありうりますがwwwwwwwwwwwww
>969 XBOX
>>969 アヒャヒャヒャヒャヒャw
おまえんとこ、開発環境変わるたびにツール1から作りなおしてるの?
馬鹿じゃねぇの?w
PCでDirectX使ってツール作るに決まってるだろボケw
directXでツール使ってる会社ありませんよ 素人が知ったかぶらないでね
>>972 じゃあ、どうやってPC上で動かすのかご教授いただこうか。
あきらめろ
orz
>975 まぁあきらめてOSから再インスコしなおせ
☆ チン マチクタビレタ〜 マチクタビレタ〜 ☆ チン 〃 Λ_Λ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ヽ ___\(\・∀・) < 次スレまだ〜? \_/⊂ ⊂_ ) \_____________ / ̄ ̄ ̄ ̄ ̄ ̄ /| | ̄ ̄ ̄ ̄ ̄ ̄ ̄| | | 愛媛みかん |/
次スレはマジでム板のスレに統合させるわけ? こっちの板で独自なのがあっても良いと思うんだけど?
そんじゃ立てて
ム板のスレはヒサンなことになってるようだから、こっちでいいんじゃない。
うん
985 :
名前は開発中のものです。 :04/09/22 12:31:23 ID:CjMm2GWP
HLSLでのピクセルシェーダについて質問です。 HLSLのPSでforループを書いてみたんですが、 ループ回数を変数で制御すると正しい値が得られません。 GeForce6800 + ps_3_0 なら動的ループが正しく使えるものだと思っていたのですが、そうでもないのでしょうか。 要するに、 for(int i=0; i<16i++){ iを利用した式 } みたいにすると意図した計算が行われる(forで指定した回数の計算が行われる)のに対して、 int VALUE; for(int i=0; i<VALUE; i++){ iを利用した式 } とした上でSetIntでVALUEを与えると、正しい計算が行われません。 (どうやら一回だけ計算して抜けてしまうようです。) whileの評価式で変数と変数の比較を使ったときも同じことが起きました。 ちなみに、ループ回数を定数にすると、fxcが勝手にループ展開を行うようで、 命令数制限の突破によるエラーが起きてしまいます。 どうするべきでしょうか? #というか、鬱だ氏のう DirectXが切れていたのでこっちにきたわけですが、BBXにでも行った方がいいですか?