C#でDirectX9 初心者の館
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
NGNGGDIと違ってドキュメントも難解で何をすれば描画できるのかさっぱりさっぱりなライブラリです。
その上知っている人はレベルが高すぎて聞いても宇宙語でしす(泣
そんなDirectX9を将来に備えて勉強してみようというスレです。
Microsoftの掲示板
http://www.gdncom.jp/general/bbs/ShowForum.aspx?ForumID=29
SDKをダウンロードできるところ
http://www.microsoft.com/japan/msdn/directx/downloads.asp#CDasp#CD
0573デフォルトの名無しさん
NGNG砂糖入れすぎ
0574デフォルトの名無しさん
NGNG臭いのでるデバイスはネットカフェで遊べるよ
東京だけど
0575567
NGNG>DirectPlayはパケット(文字列やら数値やら音声やら)を転送するための手段を提供してくれるだけと考えておいたほうがよいよ
やっぱりそうですよね。もしかしたらそういう「便利な機能もあったりして?」と思っただけです。
お手数をおかけしました。
0576デフォルトの名無しさん
NGNG2の倍数しか扱えないのですか?
0577576
NGNG0578デフォルトの名無しさん
NGNG9入れたら8戻らないとかあったりしませんよんね
0579デフォルトの名無しさん
NGNGできるよ。
Surface.GetGraphics() で GDI+ のグラフィックスオブジェクトをゲットできる。
使い終わったら Surface.ReleaseGraphics() で開放すること。
そのときの注意点は以下の通り。
・サーフェスのフォーマットはバックバッファに使われるのと同じ種類でないとダメ。
・サーフェスをミップマップのテクスチャチェーンに入れてはダメ。
・すでにロックしてあるサーフェスに Surface.GetGraphics() を呼び出すと失敗する。
・サーフェスがレンダーターゲットの場合は、ロッカブルであること。
・メモリプールを Pool.Default にした場合はダイナミックバッファであること。
・メモリプールがスクラッチの場合は常に失敗する。
0580デフォルトの名無しさん
NGNG>2の倍数しか扱えないのですか?
DirectDrawに関してはんなこた〜ない筈
拡大縮小も任意の数値で思いのママだよ
その昔、爺フォースとかのグラフィックボードが
3Dポリゴン(メッシュ)に貼り付けるテクスチャは
2の乗数でないとダメって仕様なのはあったとは思ったが
たぶんそれと勘違いしてるのかと思われ
0581デフォルトの名無しさん
NGNGとりあえずソースよろしこ
もしホントなら逝ってきて体験談をここに記す
0582デフォルトの名無しさん
NGNG0583デフォルトの名無しさん
NGNG>2の倍数しか扱えないのですか?
偶数しか使えないとかいう制限は聞いたことないな
0584デフォルトの名無しさん
NGNGそろそろ届く頃かな?
本の感想きぼん
0585デフォルトの名無しさん
NGNGこれくらいの英語ならさくさく読める感じ。高校レベル+専門用語知識
内容は…あんまり深く読んでないのでパス。
4kちょいの出費が痛くなければいいんじゃない?
0586デフォルトの名無しさん
NGNGSAMSマンセー
0587デフォルトの名無しさん
NGNG君はくだらない人間だな。
0588デフォルトの名無しさん
NGNG0589デフォルトの名無しさん
NGNGPtoPなら普通にチュートリアルあるだろうが
0590デフォルトの名無しさん
NGNGそれは何処にありますか?
ドキュメントの中から探しても見つからなかったんですけど。
0591デフォルトの名無しさん
NGNGヘルプを見ると「指定したライトに対する遅延ライト設定を適用する。」
と書かれてあるのですが、この意味がさっぱり分かりません。
遅延ライトとはどういう意味なのでしょうか?
0592デフォルトの名無しさん
NGNG人のモデルの頭上にテキストをつけたいんですが
C++でもいいのでサンプルないですかね。
0593デフォルトの名無しさん
NGNGSummer 2004 では Commit() はなくなって、代わりに Update() になっている。
Light の各プロパティは、それぞれ変更された瞬間に値がデバイスに反映されるのではなく、
Commit()/Update() されるまで反映されない。
Update(); と Enabled = true; は同じ意味。
“遅延ライト”というのはよく分からない。
そもそも、"light" なのか "write" なのか…。(意味的には後者。)
0594デフォルトの名無しさん
NGNGけひひ。これは本当ですか?
0595デフォルトの名無しさん
NGNG0596デフォルトの名無しさん
NGNGホントだよねぇ。
俺たちをヒトバシラーにしてWinFXのグラフィック関連は使いやすくなるんだろうか?
そうなってもらわないと、報われないよ。ハニワ。
0597593
NGNGあうあう。ここでは“意味”ではなく“効果”というべきでした。
> Changes made to the Light object's properties do not take effect until this method is called,
> or Light.Enabled is set to true.
Enabled = true で Update() と同じ効果(デバイスの更新)が得られる。
Update() は Enabled = true; で代用できる。
Enabled プロパティの本来の目的は Light の有効無効の切り替え。
Light を利用するには Enabled = true; が必須。(Update() だけでは有効にならない。)
0598デフォルトの名無しさん
NGNGDirectPlayのチュートリアルにのってるよ
まずはそこ嫁
0599デフォルトの名無しさん
NGNGまじでこれは本当ですか?
0600デフォルトの名無しさん
NGNG自分で試してみればいいんでない?
0601デフォルトの名無しさん
NGNG>Light を利用するには Enabled = true; が必須。(Update() だけでは有効にならない。)
という時点で少なくとも同義ではない。
よって>>594のけひひは正しい。
0602デフォルトの名無しさん
NGNGVisual Studio .netのアカデミック版使っているんですが、分からないところが・・・。
DirectXのSDKをインストールしてもプロジェクトのところにDirectが追加されません。
それにサンプルもコンパイルが通らないです。
いくら調べても
「SDKをインストールするとプロジェクトに追加されます」
見たいなことしか書いてありません。
どこか設定おかしいのかと思っていろいろいじくって見ましたが、結果は変わらず。
さらに日本語ドキュメントをインストールしたにもかかわらず、そんなものありません。
どこかおかしいとは思うんですが、なにぶんC#初めて4ヶ月足らずなものですからぜんぜん分かりません。
教えていただけないでしょうか?
0603デフォルトの名無しさん
NGNGサンプルブラウザのempty projectをフォルダにインストールするがよい
0604デフォルトの名無しさん
NGNG送信フラグに C++でいうところのDPNSEND_SYNCが設定されてますが
DPNSEND_SYNC=非同期 IDirectPlay8Peer::SendTo 要求を取り消す。
これだけではワカランです
非同期の要求を取り消す=同期させるってとこですか?
何に同期させるのか、同期と非同期が具体的にどう違うのか知ってる方いたら教えてくらはい
0605デフォルトの名無しさん
NGNGありがとうございます。
一応インストールしてみました。
しかし、インストールして実行してみますと、なんか
「オブジェクト参照がオブジェクトインスタンスに設定されていません」
と意味がさっぱり分からない警告が出ます。
教えてくれたことの意味を取り違えていたらすいません。
何かいい本ないでしょうか・・・・。
実はは格闘ゲーム(2D)を作ってみたいのです。
参考になる書籍などを探しているのですが、なかなか見当たりません。
そもそもそういったものはDirectXを使わないでも実現できるものなのでしょうか?
DirectXの概念といいますか、何も分からないもので。
すいません。
0606デフォルトの名無しさん
NGNG0607デフォルトの名無しさん
NGNGそこそこ実用的な速度になったよ。
ただ、同じことをGDI+でやらせようとすると無茶苦茶遅い。
0608605
NGNG使ったほうが、というより勉強した方がっていうのが正しいですけどw
でも・・・まだDirectXのサンプルのコンパイルが通りません・・うるうる(涙
昨日書き込んだ後からもずっと解決策を探していましたが、いまだにできません。
あと書籍のことですが、DirectX関連の本は全部3Dグラフィックばっかりで・・。
自分にはとても・・・・経験足りなくて分からないです。
2D関係のことを解説している本はあるでしょうか?
C++では見つけたような気もしますが、C#が見つからないです。
なにか書籍はあるでしょうか?
またまた申し訳ありませんが、よろしくお願いします。
0609デフォルトの名無しさん
NGNG0610608
NGNG鳥肌が・・・・。
でもやってみないとこの先進めなさそうですから、がんばって読むしかなさそうですね。
ありがとうございました。
英語分からなくてもソースコードだけで十分という方もおられるようですが
それだけの技術はまだないっす・・・・・。
和訳ソフトを共同で読み進めていけるぐらいだと期待して、購入いたします。
0611デフォルトの名無しさん
NGNGどっか立ち読みで確認できる本屋の情報きぼん
0612デフォルトの名無しさん
NGNG0613デフォルトの名無しさん
NGNG気になるなら、amazon.comのほうのレビューを読んでみたらどうかな。
0615デフォルトの名無しさん
NGNG技術情報を得るのにケチるなよ。
0616デフォルトの名無しさん
NGNGデータをヴュー変換後のモノとして扱えばそれで2Dな訳だ。
Object Space
↓
World Space
↓ ← Model-View/World 変換
Camera Space
↓ ← Projection 変換
Homogeneous Space
↓ ← Viewport 変換
Window Clipping Space
(これが実際のウィンドウでの座標になる)
Managed DirectX では
CustomVertex . TransformedXXX となっているのがヴュー変換後の座標値。
CustomVertex.Transformed
CustomVertex.TransformedColored
CustomVertex.TransformedColoredTextured
CustomVertex.TransformedTextured
0617デフォルトの名無しさん
NGNG0618デフォルトの名無しさん
NGNG>ヴュー
ワラタ(失礼)
0619508
NGNG0620デフォルトの名無しさん
NGNG2003年10月号?
ほかにもあるなら教えてけれ
0621デフォルトの名無しさん
NGNGここの管理者が書いてる。
何度か特集があったんで立ち読みしてきたが、
これのために買うくらいなら、ヘルプ、サンプルを眺めたほうがよっぽどまし、なレベルだ。
0622デフォルトの名無しさん
NGNG2004/03 学校の図書館でコピーしたのを持ってるから間違いない。
0623618
NGNG結構前だった気がする。ということで検索したら2001年10月号だった。
ttp://www.cmagazine.jp/contents/200110.html
当時はEnter the 3D Programmingなんかも連載していて参考になった。
0624デフォルトの名無しさん
NGNG0625デフォルトの名無しさん
NGNGそろそろ和書も多くなっていいと思うけどなぁ。
0626デフォルトの名無しさん
NGNGvs.netのDirectXウィザードで作られたアプリがビルドできなくなった。
名前空間がないとかどうたら言われて・・・
0627デフォルトの名無しさん
NGNGリリースノートくらい読めよ・・・
マルチくらい自覚しろよ・・・
0628デフォルトの名無しさん
NGNGやり方知ってる方います? スクリーン座標と地面座標の合せ方がちょと
わからないんですけど・・・。
0629デフォルトの名無しさん
NGNGあと地面は平坦か?
ぐらいは書けよ…
0630デフォルトの名無しさん
NGNG0631デフォルトの名無しさん
NGNG0632デフォルトの名無しさん
NGNGこっちのほうが正しくねえか?
説明の文章をまともに書けない奴は、プログラムもまともに書けない。
0633610
NGNG本当に助けてください・・・。
あれからずっとプロジェクトのところにDirectXという項目を追加させるための設定をいろいろ見ていましたが
やはりいまだにできません・・・。
ttp://www.plustarnet.com/aspil/Programming/
ttp://www.wander.jp/dotnet/index.html
を見ても解決できませんでした・・・・。
これ以上打つ手がなくて困っております・・・。
本当はあるんでしょうが、私の実力だともう限界です。
設定でなにやってんだ?って感じでしょうが
教えていただきたく存じます。
0634デフォルトの名無しさん
NGNG0635デフォルトの名無しさん
NGNG0636デフォルトの名無しさん
NGNGどちらも可である可逆式ですか・・?
例えばあるメッシュが表示されてたとして
スクリーン座標(X,Y)にはそのメッシュが表示されているか調べるメソとかないんでしょうか
あるいはあるメッシュのスクリーン座標(X,Y)を返すメソとか
0637デフォルトの名無しさん
NGNG0638デフォルトの名無しさん
NGNGあれ?ウィザードには追加されないんですか?
そうだったら・・・・なんて無駄な努力を・・・・。
申し訳ありません・・・・。
その参照の設定というのを教えてもらえませんでしょうか?
0639デフォルトの名無しさん
NGNG0640デフォルトの名無しさん
NGNGプ
0641デフォルトの名無しさん
NGNG>>480-481
とかじゃ駄目?
0642デフォルトの名無しさん
NGNG0643デフォルトの名無しさん
NGNG最新版のSDKじゃなくて
一つ前のやつ(summer2003update)を入れればウィザードが出ますぜ。
購入した本がウィザードがあることを前提にして解説してたもんで
summer2003で学習してますが・・・
いつか最新のSDKに切り替えないとまずいんでしょうね。
0644デフォルトの名無しさん
NGNGどこをどうやったら半透明になるのかサッパリわかりません。
半透明の設定はどこを設定すればいいのでしょうか?ご教授をお願いします。
0645デフォルトの名無しさん
NGNGマテリアルのアルファ値をさげればよろし
RenderState.AlphaBlendEnableもかえる
0646デフォルトの名無しさん
NGNGデバイス.RenderState.DestinationBlend=Microsoft.DirectX.Direct3D.Blend.InvSourceAlpha;
デバイス.TextureState[0].AlphaOperation= Microsoft.DirectX.Direct3D.TextureOperation.Modulate;
ブレンド設定とか αオペレーションの設定も必要〜
と追加してみるてすと
0647デフォルトの名無しさん
NGNG0648641
NGNGおお!
これは気が付きませんでした・・。
できました!!
ありがとうございます。
でもなぜ2004だとウィザードに追加されないのでしょうね。
やはり最新バージョンの2004で勉強していったほうがよいのでしょうか?
2004はどこか変わっていたりするんでしょうが、どっちの方がいいのかなと・・・。
0649644
NGNG645
> マテリアルのアルファ値をさげればよろし
マテリアルのメソットにアルファの値を入力できるような項目がないのですが・・・。
0650645
NGNGmaterial.Diffuse = System.Drawing.Color.FromArgb(128, 255, 0, 0)
とか
>>646をやればアルファ下げる必要はない気もする
だめならとか
device.RenderState.SourceBlend = Blend.SourceColor;
device.RenderState.DestinationBlend = Blend.InvSourceColor;
0651644
NGNGできました!!
おかげさまで助かりました。ありがとうございます。
0652デフォルトの名無しさん
NGNG>でもなぜ2004だとウィザードに追加されないのでしょうね。
メンテが大変だからウィザードはもう作らない、サンプルexeからプロジェクトをインストールしてくださいな、
みたいなことがリリースノートに書いてあった気がしますが。
うろ覚え。
0653デフォルトの名無しさん
NGNG線形代数と微分積分位でしょうか?
空間図形は役に立ちますかね・・・。
0654デフォルトの名無しさん
NGNGttp://yaneu.com/yaneurao/3dcg/
0655デフォルトの名無しさん
NGNGとりあえず線形代数だけわかっていれば問題ない。
微分積分はまじめに計算することはめったにない。
たいていコンピュータ向けの解法をつかう。
たとえば微分だと極小区間の単純な差分で求めたり
積分でもモンテカルロ積分をつかったり。
0656デフォルトの名無しさん
NGNGレスどうもです。
とりあえず、線形代数から学んでみようと思います。
0657デフォルトの名無しさん
NGNGが工学社からでるらしい。
0658デフォルトの名無しさん
NGNGhttp://www.esbooks.co.jp/books/detail?accd=31431355
これですね。
本屋さんでみかけたら覗いてみます。
0659デフォルトの名無しさん
NGNGDirectX9 3Dゲームプログラミングって本、アマゾンで
買っちゃったんだけど、インキネ技を上下巻にわけて
延々と解説してる。もうちょっと書く事あるんじゃないかと・・・・・・。
ステップ・バイ・ステップなのはいいんだけどさぁ。
俺はEric Lengyelの数学本だけでよいや。
シンプルにまとまってるし、そこそこ内容も詰め込まれてる。
ttp://www.amazon.co.jp/exec/obidos/ASIN/1584502770/qid=1095931465/sr=1-2/ref=sr_1_2_2/249-9283699-1129136
0660デフォルトの名無しさん
NGNG0661デフォルトの名無しさん
NGNGその本、和訳版でてるよね。
ゲームプログラミングのための3Dグラフィックス数学
ってやつ。
ある程度数学わかってないと、初心者には難しい。
0662デフォルトの名無しさん
NGNGだよね。本屋でDirectXのコーナーを見てると鬱になる。
「俺がもっとましなヤツ書いてやるぜーっ!」って思う。
0663デフォルトの名無しさん
NGNG確かに、その人の本はどれもおすすめできないね。
特にこの本の第一章は、読んでると腹の底からモーレツにムカついてくる。
ttp://www.amazon.co.jp/exec/obidos/ASIN/4875934998
0664デフォルトの名無しさん
NGNG和訳版は一応でているが、
値段がべらぼうに高いのに、それに見合うだけの内容が全然ない。
紙面のマージンをべらぼうに取りすぎ。
0665デフォルトの名無しさん
NGNG洋書のおすすめの書籍って何かありますかね?
Game Programming Gemシリーズが有名みたいですが。
0666デフォルトの名無しさん
NGNG純粋にアルゴリズムについて調べたければ、ゲームの枠に虎割れてはいけない。
数学とかソフトウェア工学とか、学会の論文を当たってみても、
金を斯けずともおいしいものはゴロゴロと転がっている。
0667デフォルトの名無しさん
NGNGレンダ毎に
Device.RenderState.ZBufferEnable=true;
としてやっているのですが、
後から描画したオブジェクトがZ-Bufferを無視して
前面に描画されてしまいます。
考えられる問題点としてどのようなことが挙げられるのでしょうか。
宜しくお願いします。
0668デフォルトの名無しさん
NGNG0669デフォルトの名無しさん
NGNGDevice.Clear()でZBufferをクリアしてない。ってのは?
0670デフォルトの名無しさん
NGNG0671667
NGNG>668
マトリクスと使っていないというのは、
具体的にどういう状況を指しているのでしょうか。
>669
レンダ毎に
Device.Clear(ClearFlags.Target|ClearFlags.ZBuffer, Color.DarkBlue, 1, 0);
とやっております。引数に何らかの問題点が…?
>670
ポリゴン数が多すぎるのも原因になるのでしょうか。
およそ、400,000ポリゴン使っております。
0672デフォルトの名無しさん
NGNGその設定だったら問題なさそうなんだが
そいうときはもっと簡単な手法で確認すれ
例えばチュートリアルの三角形やら虎メッシュを2つ表示してみるとか
それでOKなら おまいさんのコードかグラボのどっちかがダメってことで
0673667
NGNGDevice.Transform.Projection
に設定するMatrix
Matrix.PerspectiveFovLH(fieldOfViewY, aspectRatio, znearPlane, zfarPlane)
の第3引数であるznearPlaneの値に問題があったようです。
問題解決以前はznearPlaneの値を0に設定していました。
この値を適度な正の数値に変更をしたら、
とりあえず見た目の問題は解決しました。
但し、この数値が小さいと、
局所的にZバッファが無視されるという現象が発生しました。
改めてこのあたりの数学的な意味を勉強し直す必要があるようです。
ご指示を頂きありがとうございました。
■ このスレッドは過去ログ倉庫に格納されています