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
0284デフォルトの名無しさん
NGNGうまく話をそらせず自爆した典型例だな
0285デフォルトの名無しさん
NGNGそろそろ皆に嫌われてるのに気付かないのかね
0286デフォルトの名無しさん
NGNGMSは最初から.NETをUNIXやMacで動かしたいなんて思っていないと思うのですがどうなんでしょう?
私だけかもしれませんが、実際Windows以外で動かなくてもいいんですが…
っていうか、そんなことしてほしくありません。
0287デフォルトの名無しさん
NGNG0288デフォルトの名無しさん
NGNGコンソール部分はMS自らがFreeBSD用に移植している。
少しは調べてから発言しろ。
0289デフォルトの名無しさん
NGNG0290デフォルトの名無しさん
NGNG何故聞きかじった知識だけで語ろうとするのか理解に苦しむ。
FreeBSD用ならPortsからライセンスに同意するだけで馬鹿でもインストールできるから、少しは試せ。
コンソールや通信部分に関してはWindows側でコンパイルした物がそのまま動く。
GUIはMSのフレームワークを使う限り、エミュレータを除けば何を使ってもWindows側で作った物は動かない。
GUIも独自実装と、MS互換擬きがあるが、実際に使い物になるかどうか自分で試してみろ。
その上で実際に使えると判断したのなら、技術的に突っ込めばいい。
実際にある物を試さないで、想像だけで語って何の意味がある?
私を嫌おうが構わないが最低限、想像ではなくきちんと試せ。
そうすればいちいち突っ込む必要はなくなる。
0291デフォルトの名無しさん
NGNG0292デフォルトの名無しさん
NGNG0293デフォルトの名無しさん
NGNG偉そうに発言するのは
未回答の質問に具体的な解決法を提示してからにしてくれないかな?
そうすりゃ誰も文句言わないよ
ここは貴方が大儀を貫く為のスレじゃないの。わかる?
>>292
ごめ、こんなカボチャみたいな頭の奴に反応してしまった漏れも逝ってヨシですね
0294デフォルトの名無しさん
NGNGきっと。
0295デフォルトの名無しさん
NGNG>MSは最初から.NETをUNIXやMacで動かしたいなんて思っていないと思うのですがどうなんでしょう?
どういう根拠で言ってるのか説明してください ソースはありますか?
妄想ですか?ソースないのなら一度芯でみるのもいいかもしれません
>私だけかもしれませんが、実際Windows以外で動かなくてもいいんですが… っていうか、そんなことしてほしくありません。
ここは貴方のワガママを主張する板ではありません
スレ違いなんで他逝ってください そして二度と戻ってこないでください
http://pc5.2ch.net/test/read.cgi/os/1019057524/l50
http://pc5.2ch.net/test/read.cgi/os/1029750171/l50
276に餌を与えないでください
0296デフォルトの名無しさん
NGNGマウスで視点をグリグリ、
キーボードでカメラを移動というので
つまづいてます。
MATRIX関係の理解ができてないみたいで、
自分で初心者だなぁと思うかぎり。
0297デフォルトの名無しさん
NGNGマウスの移動量やらキーボードの入力を検出して
Transform.View = Matrix.LookAtLHの値を手動で操作するクラス作ってガンガレ
Transform.View = Matrix.RotationYとかでお手軽にカメラ回せるかとも思ったが
ダメポだったーよ
0298297
NGNG>Transform.View = Matrix.RotationYとかでお手軽にカメラ回せるかとも思ったが
>ダメポだったーよ
Transform.View = Matrix.LookAtLH * Matrix.RotationY
で、できますた 参考までに
0299デフォルトの名無しさん
NGNG色々な書籍などを参考にしてみたけど、
なんか円周率やら内積やらでてきて、異様に複雑でした。
割と単純にできるんですね。ためしてみます。
どうもです。
視点の移動については、
平行移動ってやつですかね。
0300デフォルトの名無しさん
NGNGTranslation X、Y、Z軸を基準として 水平移動
他は
RotationX X軸を中心に回転 単位は角度ではなくラジアン
RotationY Y軸を中心に回転 単位は角度ではなくラジアン
RotationZ Z軸を中心に回転 単位は角度ではなくラジアン
RotationYawPitchRoll RoutationX、Y、Z を1メソッドで実行
RotationAxis 任意の軸を定義し、その軸を中心に回転
他はヘルプや116がまとめてるゴミHPなどを参照汁
0301デフォルトの名無しさん
NGNG実は、日曜日一日かけてもできなかった・・・。
また夜にでもがんばってみよう。
0302301
NGNGなぜかZ座標がうまくいかなかったので、
C++のサンプルプログラムのを真似したらできました。
COSやらSINやら、よく理解してないですが・・・。
0303デフォルトの名無しさん
NGNG0304デフォルトの名無しさん
NGNG0305デフォルトの名無しさん
NGNG0306デフォルトの名無しさん
NGNGちょうど線形代数と微分積分にしぼってあるからプログラマにはうってつけだぜ
0307デフォルトの名無しさん
NGNG微積って必要なのか?ちとピンとこない。
0308デフォルトの名無しさん
NGNG知っておいたほうが物を動かすときに便利でしょう。
0309デフォルトの名無しさん
NGNG教養のない中卒の漏れには理解不能な式ばかりでつ
あれ読むなら>306が紹介してるような
普通の基礎数学書のほうがわかりやすいでつね
0310デフォルトの名無しさん
NGNG0311デフォルトの名無しさん
NGNG無理なのでしょうか?
グラフィックボードくっつければ動くようになるのでしょうかー?
このスレと関係しているのかすらわからない(;´Д`)
0312デフォルトの名無しさん
NGNGS3 Graphics ProSavage + utilitiesのデバイス
↑グラフィックボードのこと?
もしそうだとしたらPCパーツスレのほうが
けたたましく詳しい回答が得られると思ふ
0313デフォルトの名無しさん
NGNGグラフィックボードのことです
レスありでした〜
0314デフォルトの名無しさん
NGNG0315デフォルトの名無しさん
NGNG>>79-97あたりを読むと幸せになれるかもね
0316デフォルトの名無しさん
NGNG0317デフォルトの名無しさん
NGNG中卒って将来ヤクザ、暴力団とかそんなレベルの奴だろ?
0318デフォルトの名無しさん
NGNGこういうページは飽きて更新しなくなっても消さないで置いておいてほしいもんだな。
0319デフォルトの名無しさん
NGNGそれはお前の主観
0320デフォルトの名無しさん
NGNGゲーム屋にはちらほら居るよ、
そういう連中は三流大卒よりゃハイレベルだったりする
0321デフォルトの名無しさん
NGNGあまり学歴は関係ないな。
0322デフォルトの名無しさん
NGNGどなたか教えてください・・・
0323デフォルトの名無しさん
NGNGチュートリアルを扱ったHPは
途中で放置なとこが多いような気がしなくもない
>>318
どういう意味で消さないでほしいのか気になりますね
>>322
おまいはVB6でジャンケンゲーム作ることからはじめるとよいよ
あと312あたりも参考に汁
0324デフォルトの名無しさん
NGNG0325デフォルトの名無しさん
NGNGC++でやってたころよりゲーム本編の作成に集中できるというか。
0326デフォルトの名無しさん
NGNG結局MC++と併用することに。
ツール部分を作るのは楽になったが、ゲーム本体は余計に面倒になった。
0327デフォルトの名無しさん
NGNG面倒ならC++だけで作れよ・・
それともう来なくていいからね
0328デフォルトの名無しさん
NGNGウインドウフレームワークが必要な部分に関してはC#側で作った方が圧倒的に楽。
DirectXを利用するという点に関してはC++の方が組みやすいが、
実際のゲーム作成は本体だけ作れば良いわけではない。
本体はC++の方が楽だが、そうなるとツール側と本体の関連プログラムを二重に作らなければならなくなる。
つまり両方の利点を生かす上で、MC++との併用が一番楽だったという話。
作成方法は個人によって異なるとは思うが、何故頭ごなしに併用を否定するのだろう。
0329デフォルトの名無しさん
NGNG0331デフォルトの名無しさん
NGNGから
>>328
を想像することを期待するのですか
0332デフォルトの名無しさん
NGNG無限ループの予感がするから
C++の話はここで終了ね
おねーさんとの約束よ?
>>328はC++やC#じゃなくて空気の読みかた勉強したほうがよいよ
0333デフォルトの名無しさん
NGNG0334デフォルトの名無しさん
NGNG0335デフォルトの名無しさん
NGNG低レベル部分をアセンブラで作って、Cで利用するのはよくやりました。
0336デフォルトの名無しさん
NGNGC++にはないのにC#にはあるメソッドは悲惨でつねほんと
ヘルプがダメポすぎなのにC++のほうは参照できないといふ・・
>>335
他のピノキオが脊髄反応するのような
スレ違いな話題振るのやめましょうね
0337デフォルトの名無しさん
NGNG使いやすいラッパーを作っていければ、開発が楽になります。
C用のライブラリはたくさんあるのに、
C#は今のところ、そういったものを公開している人がいないところが泣き所です。
0338デフォルトの名無しさん
NGNGわざわざ.NET用のラッパーを作る奇特な神はいないのだろう
0339デフォルトの名無しさん
NGNGスレ違いだということで荒れる原因になるという。
全てがC#でなければスレ違いというローカルルールがいつ出来たのかは知らないけど。
0340デフォルトの名無しさん
NGNGやれC++のヘルプを見れだとか言うレスが付くからなんじゃね?
まぁ、あれだ。C#でDirectXを扱うのが困難な状況を改善しない
MSが諸悪の根源なんじゃねーかなぁと。
0341デフォルトの名無しさん
NGNG.NET FrameworkにDirectXを叩くクラスが無いのが問題だと思う。
別にラッパー作りたい訳じゃないから。
0342デフォルトの名無しさん
NGNG直接叩くようにするのは無理っぽい。
いっそC#にもアンマネージの直接アクセス出来る機能を付けるとか。
どうせDirectXを使った時点で移植なんか無理なんだし。
0343デフォルトの名無しさん
NGNG0344デフォルトの名無しさん
NGNG保護された安全な場所から、外の戦場を制圧する武器を作っているような状態で、
出来る限り現地で行動するのと似せて作ってあるけど、やっぱり限界がある。
0345デフォルトの名無しさん
NGNGそれやるとC#の意味ねぇと思うがどうか。
元々C#もDirectXも出所は同じなんだから、いっその事
過去の互換性を捨ててでもDirectXのマネージコード化
を進めそうな希ガス。
DirectX10の話を聞かなくなったから、今度はマネージ
コードだと言われても驚かないな俺は。
0346デフォルトの名無しさん
NGNG0347デフォルトの名無しさん
NGNG話をどっかのサイトで読んだんだが、これがDirectX10の代わりに
来るんじゃないのかね?
0348デフォルトの名無しさん
NGNG0349デフォルトの名無しさん
NGNGあれはむしろ、Windows、WindowsMobile、XBox用のソフトがクロス開発できる
プラットフォームかなと見たが。
0350デフォルトの名無しさん
NGNGそれだ。
.NET FrameworkがWindowsとWindowsMobileのソフトウェア開発の
ハードルを下げたように、今度はDirectXのマネージ化がくるんじゃ
ねーかなと。
0351デフォルトの名無しさん
NGNGマネージ化してるってば。
0352デフォルトの名無しさん
NGNG0353デフォルトの名無しさん
NGNGこれを見た感じ、XNAはマネージ以上にハードル低いように読める。
0354デフォルトの名無しさん
NGNG描画や演算ライブラリが一通りそろっていても、それをイメージ通りに動かす上で、
そのイメージをどうやって伝えるのか、それが誰でも出来るほどに簡単にするすべは何なのかがさっぱり。
HTML作成ツールを例に挙げているが、あれだって配色や素材の問題もあるし、
ツールを使ったからと言ってセンスのいいデザインになるとは限らない。
また多機能にしようと思えば、ツールで補える範疇を超える。
小規模で定型に絞り、限られた範囲という条件で簡単だというのなら、
今までと大して変わるところはない。
0355デフォルトの名無しさん
NGNGレゴブロックみたいに上手くいくかは知らんけど物理エンジン、3Dエンジン、シェーダーは挿げ替えできたほうがいい
0356デフォルトの名無しさん
NGNGここで言ってる理想通りになったらそれこそスバラシイだろうけど
もし仮に実現したとしてもDirectXをコネコネしながら
ゲーム作ったって経験は生きそうな予感
出るの待ってる暇があったら必死こいてコード書いてたほうがよさげ
0357デフォルトの名無しさん
NGNGDirectXをコネコネしながらゲーム作ったって経験は活きるよ。
だけど、多くのゲーム作りたい人はゲームを作りたい訳であって、
DirectXをコネコネしたい訳じゃないよな。仕方なくコネコネ
しているだけでさ。
そう言う意味では、本来のゲーム作り以外の部分のハードルが
低くなる事には意味がある。
無論、現状では実現されてない訳だから、それを待ち侘びるだけ
ではなく、現状でやれる事をやってくってのは大事だと思うけど。
0358デフォルトの名無しさん
NGNGD3Dを使っての2D表示(要はビルボード)をいろいろいじってみたいんだが、
sampleディレクトリにある奴はどれも高度っぽくて参った。
将来的には簡単なシューティングゲームみたいな物を作ってみたいんだけど、
こんな文献が参考になるよーっていうのがあったら教えていただきたい。
…ってスレ違いですか?(´・ω・`)
0359デフォルトの名無しさん
NGNGttp://www.amazon.co.jp/exec/obidos/ASIN/4797327316/
0360デフォルトの名無しさん
NGNGやっぱりというかなんというか
C#本じゃないのが残念
立ち読みしてきまふ
0361デフォルトの名無しさん
NGNGアルゴリズム本であってシューティングを絡めた言語入門書じゃないぞ
0362358
NGNGその本買ったんだけど、ガチガチのアルゴリズム本でした。
いや、承知して買ったんですが。
面白かったんですが、入門書にはならず。
C++のソースついてるけど、規模が大きいから
ソースなぞりながら理解していく、ってのが難しそうなのであきらめました('A`)
0363デフォルトの名無しさん
NGNG0364デフォルトの名無しさん
NGNGC++とDelphiばっかりだけど
0365デフォルトの名無しさん
NGNG透過しなくて困っています。
0366デフォルトの名無しさん
NGNG気合入れて答えろよおまいら
俺?
すまん、わからん
0367デフォルトの名無しさん
NGNGソースのサーフェスのピクセルフォーマットの通りに指定する。
んでもいまどき使う、それ?
0368365
NGNGえ、いまどきは何を使うのでしょうか。
0369365
NGNG367の発言だけで巧くいくほど理解していないようです。
ソースのサーフェスのピクセルフォーマットは
どこで設定しているのでしょうか。
現在のソースは以下のようになっています。
SurfaceDescription description = new SurfaceDescription(); //
description.Clear(); // Clear out the SurfaceDescription structure.
Surface bmpSurf = new Surface("filename" description, draw); // .
ColorKey ck = new ColorKey(); // Create a new colorkey.
ck.ColorSpaceHighValue = ck.ColorSpaceLowValue = Color.Green.ToArgb(); //左上をcolorkey
bmpSurf.SetColorKey(ColorKeyFlags.SourceDraw, ck); //
0370デフォルトの名無しさん
NGNG> ck.ColorSpaceHighValue = ck.ColorSpaceLowValue = Color.Green.ToArgb(); //左上をcolorkey
Color.Green.ToArgb()で取るより、直接サーフェイスから取った方が良くない?
せっかく、「左上をcolorkey」という仕様になっているんだから。
あと、サーフェイスってビデオカードの状態によって誤差が出そうな気がする。
DirectDrawが廃止される以前にC++でいじってた頃の記憶なので、はずしてたらスマソ。
0371365
NGNG本当はbmpに読み込んでbmp.GetPixel(0,0).ToArgb()をやってました。
でもこれもだめらしい。
サーフェイスから直接、ってどうやってとるんですか?
0372デフォルトの名無しさん
NGNGSurface を Lock して、左上と思しきアドレスから、1ピクセル分と思しき
サイズ (2バイト〜4バイト) だけデータを読んで、RGB部分を取り出して使う。
たぶんこんな感じ。
byte [] pixels = bmpSurf.Lock();
switch (description.PixelFormat.RgbBitCount + description.PixelFormat.AlphaBitDepth ) // RGB と仮定
{
case 15: val = pixels[1]*256 + pixels[0]; break;
case 16: val = pixels[1]*256 + pixels[0]; break;
case 24: val = (pixels[2] * 256 + pixels[1]) *256 + pixels[0]; break;
case 32: val = ((pixels[3] * 256) + pixels[2] * 256 + pixels[1]) *256 + pixels[0]; break;
}
val = val & (description.PixelFormat.RBitMask | description.PixelFormat.GBitMask | description.PixelFormat.BBitMask);
>え、いまどきは何を使うのでしょうか
Direct3D を使ったほうが情報も多いしラクだと思います。
しょぼいビデオカードでも VSync に厳密にあわせられてテアリングしないのは良いけど > 昔のDDraw
0373デフォルトの名無しさん
NGNGあ、これが済んで pexels が無用になっらた Unlock を忘れずに。
0374365
NGNG確かにDIrect3dのほうが情報が多いんですよね。
少し3Dもやってみます。
本もどかどか買ったことだし……。
0375デフォルトの名無しさん
NGNGおばかな質問かとバカにされるかもしれませんが・・・。本当に分からないので。
Direct3DとDirectDrawを同時に使うということはできるものなのでしょうか?
Direct3Dでオブジェクトを表示させている画面の上に、スプライトでテクスチャを貼るということは可能でしょうか?
本とかサイトを見る限り、板ポリゴンの上にテキスチャを張っているサンプルが多いのですが・・・。
参考になるページとかありましたら、お教えください。よろしくお願いします。
0376デフォルトの名無しさん
NGNG>Direct3DとDirectDrawを同時に使うということはできるものなのでしょうか?
不可能
>Direct3Dでオブジェクトを表示させている画面の上に、スプライトでテクスチャを貼るということは可能でしょうか?
一部意味不明な部分があるがポリゴンとスプライトの混在は可能
>参考になるページ
Cマガでたまに組む特集ぐらいしか取っ掛かりがないよね
0377デフォルトの名無しさん
NGNG0378デフォルトの名無しさん
NGNG変換済み頂点を使った板ポリゴンで十分だから、いまさら DirectDraw の
スプライトを使う人はほとんどいないと思います。
お金儲けをしようと思って、自販機のお釣り帰ってくるところを探し回る人と
同じくらいのレア度だと思いますよ。
0379デフォルトの名無しさん
NGNG0380デフォルトの名無しさん
NGNG0381デフォルトの名無しさん
NGNG何の問題もなく使えるが、お前は何を言っているんだ?
0382デフォルトの名無しさん
NGNGテクスチャに指定することができたみたいですが
DirectX9になってからはできなくなったというのはホントでつか?
仮にホントだとして同じような機能を実現するにはどーしたらよいのでしょうか?
0383デフォルトの名無しさん
NGNG0384デフォルトの名無しさん
NGNGその為の互換性でもあるんだけどな……。
■ このスレッドは過去ログ倉庫に格納されています