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
0596デフォルトの名無しさん
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バッファが無視されるという現象が発生しました。
改めてこのあたりの数学的な意味を勉強し直す必要があるようです。
ご指示を頂きありがとうございました。
0674デフォルトの名無しさん
NGNGなるほど、プロジェクション変換で間違ってたんですね。
解決して良かった、良かった。
プロジェクション・マトリックスはワールド座標系を同次座標系に
変換するマトリックスです。
0675デフォルトの名無しさん
NGNG>変換するマトリックスです。
なに言ってんのあんた。
「ワールド座標系」と「同次座標系」は言葉のカテゴリが全然違うでしょ。
プロジェクション行列は、ビュー座標からプロジェクション座標への変換。
DirectXでは、どっちの座標も同次座標で表される。
0676デフォルトの名無しさん
NGNG0677デフォルトの名無しさん
NGNGワールド座標をベクトル(x,y,z,1)とするとこれに(ビュー行列x射影行列)
を掛けて求まったベクトル(x',y',z',w')の各成分をw'で割ると
スクリーン座標が求まる。っつーかこれがわかってないと
3Dプログラミングができないと思うんだけどどうしてんの?
0678デフォルトの名無しさん
NGNGc:\Windows\media\start.wavで再生の練習しようとしたんだけど、
うまくいかなくてどーにもこうにもおかしいと思ったんです。
自分のコードが駄目かもと思ったがサンプルのbinにあるcsPlaySoundでも再生不可能。
ほかのファイルなら自分のもcsPlaySoundもOK。
調べていくとBufferTooSmallExceptionってのが発生してるらしい。
ということは極度に小さい長さのファイルは再生できないってこと???
そんなあほな…。C++じゃこんなことなかったのに。
というわけで折角C#に移行しようとしたのにいきなり出鼻を挫かれたという感じ。
0679デフォルトの名無しさん
NGNGセットアップ中の承諾したあとにコンポーネントをダウンロードしますってところから
進みません
漏れには何が何だかわからないんです(´・ω・`)
どうしたらいいのですか。・゚・(ノД`)・゚・。
0680デフォルトの名無しさん
NGNG視点固定でマウスで操作しないタイプならなんとかなるポ
その説明でも分からない漏れは死んできまつ
0681デフォルトの名無しさん
NGNG0682デフォルトの名無しさん
NGNGhttp://www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/DirectX9_c/directx/graphics/programmingguide/fixedfunction/transforms/transforms.asp
これでも読めれ。
多分、同次座標系が解らんと意味がわからんと思うので解説。
3DCG用途では透視変換や平行移動を4行4列の行列で扱える
ようにするため同次座標系というのをつかう。同次座標系では通常の
3次元ベクトル(x,y,z)に等質wを加えた(x,y,z,w)で表現される。
通常の3次元ベクトル(これをユークリッド座標系という)と
同次座標系との相互変換は以下のとおり。
・3次元ユークリッド座標系でx,y,z)で表されるベクトルを同次座標系(x',y',z',w')に変換
w=1とし、x,y,zはそのままつかう。(x',y',z',w')=(x,y,z,1)となる。
・同次座標系(x,y,z,w)を3次元ユークリッド座標系(x',y',z')で表されるベクトルに変換
同次座標系の各成分をwで割る。(x',y',z')=(x/w,y/w,z/w)となる。
以上から例を挙げれば同次座標系(x,y,z,w)と(2x,2y,2z,2w)は3次元ユークリッド
座標系上では同一のベクトルとなる。
ビュー行列と射影行列はネットでも検索して勉強してくれ。
昔(DirectX5とか6とかの時代)はSDKの解説はもうちょっと詳しかったし
もっぱら話題の中心がこんなことばっかりだったからもっと解説している
サイトが多かった(宇治社中とかが親切だった)けど、今はあまりこんなの
だれも解説しないからな。初心者には厳しいかも。もし手に入るようだったら
昔のDirectXのSDKのリファレンスでも読んでくれ。
0683682
NGNG書籍で情報を得るなら以下の2冊がいいと思ったけど初心者には
必要なところを抜き出して読むのが難しいかもしれない。
・コンピュータグラフィックス 理論と実践
http://www.amazon.co.jp/exec/obidos/ASIN/4939007375/qid%3D1096460418/249-2167903-6130707
・ゲームプログラミングのための3Dグラフィックス数学
http://www.amazon.co.jp/exec/obidos/ASIN/4274064050/qid%3D1096460363/249-2167903-6130707
たしかどちらかといえば「ゲームプログラミングのための3Dグラフィックス数学」
のほうが数学としてはわかりやすくまとまっていたように記憶している。
(手元に本がないし長らく読んでいないので詳細がわからない)
0684デフォルトの名無しさん
NGNGVector3.Projectつかえばいい
ここにサンプルあるから
ttp://www.interq.or.jp/black/minami-m/
C++だけどね。まあわかるよ。
0685デフォルトの名無しさん
NGNGstart.wavなのに始められない、ってなんか笑えるな。w
いや笑っちゃいけないのかもしれないけれど…
0686デフォルトの名無しさん
NGNG俺はYouTooFoolExceptionが発生して半分あきらめてる
0687デフォルトの名無しさん
NGNG俺に対してTooFoolってこと?
それにしても短い音は駄目っぽ…
音の後半を無音にすれば行けるがスッキリしないな
あとDuplicateに対応するのってManagedだとCloneなんだろか。
0688デフォルトの名無しさん
NGNG0689デフォルトの名無しさん
NGNGハンドルされていない例外 ThreadAbonedException が発生したため、このスレは
0690デフォルトの名無しさん
NGNG0691デフォルトの名無しさん
NGNGYouIsBigFoolManException
だろw
0692デフォルトの名無しさん
NGNG0693デフォルトの名無しさん
NGNG有名なネタだ
0694在日外国人参政権反対
NGNG0695デフォルトの名無しさん
NGNG■ このスレッドは過去ログ倉庫に格納されています