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
0709デフォルトの名無しさん
NGNG気分は夏でも暦は10月なんだなこれが
0710デフォルトの名無しさん
NGNGつーか、October入れるのにSummerをアンインストールする必要はない、
というかアンインストール「してはいけない」。
だから君は正しい手順を踏んでるよ。
0711デフォルトの名無しさん
NGNG今回のOctoberでは変化ないな。
変な上がり方はともかく、内容が変わったのに数字に変化ないのはどーかと思うが。
0712デフォルトの名無しさん
NGNG再配布パッケージのリンクなんだが、サポートOSにFreeBSD入ってるのはどう思う?
0713デフォルトの名無しさん
NGNG0714デフォルトの名無しさん
NGNG0715デフォルトの名無しさん
NGNG200MB超えてるんですが orz
0716デフォルトの名無しさん
NGNG0717デフォルトの名無しさん
NGNGやっぱりSDKがあった方がいい。
0718デフォルトの名無しさん
NGNGテレホ終了で自動的にモデムが切れるソフト使えば余裕
0719デフォルトの名無しさん
NGNGってSDKでつか?
それともマネージドコードDirectXもインスコされるランタイムでつか?
0720デフォルトの名無しさん
NGNGランタイム
0721デフォルトの名無しさん
NGNG0722デフォルトの名無しさん
NGNGそういう事見たいやね。
うちの翻訳ソフトの出力:
このダウンロードは、開発者が含むことができる再分配可能なDirectX 9.0cエンド・ユーザーに
彼らの製品を与えます。
この更新は、DirectX 9.0 SDKアップデート(2004年10月)から管理されたコードのための
DirectXアップデートを含みます。
管理されたコードのためのDirectX == Managed DirectX
0723デフォルトの名無しさん
NGNG0724デフォルトの名無しさん
NGNGだけどそれがメンドイ
ところで
DirectX 9.0c Redistributable for Software Developers - Multilingual - 日本語
with updated DirectX for Managed Code (October 2004)
って フレームワーク以外何も入ってない環境でも コレ一つでおK?
0725デフォルトの名無しさん
NGNG元に戻してもおかしくならない方法って結構複雑にならない?
もっと簡単に出来ないのかな。
0726デフォルトの名無しさん
NGNG0727デフォルトの名無しさん
NGNGいや、通常は全画面(画面の解像度とか変えたりするほう)で表示してるけど、
Alt+Tabキーとか押されたら最小化されちゃうから
そのときに描画処理やらないようにするための処理が結構面倒で
何とかならんもんなのかなぁと。
0728725
NGNG今書いてみたらあんまり面倒じゃなかった。
0729デフォルトの名無しさん
NGNG0730デフォルトの名無しさん
NGNG何をしたか書こうな。
0731デフォルトの名無しさん
NGNG面倒だと思ったことをやってみたけど
実際は面倒じゃなかったってだけのことだったんで
書かなくてもいいかなと思ったんだけど書いとくか。
bool deviceLost = false;をどっかに置いといて
レンダリングメソッドにて
public void Render()
{
if ((deviceLost) || (Form.ActiveForm != this))
{
System.Threading.Thread.Sleep(100);
}
続く
0732デフォルトの名無しさん
NGNG{
try
{
device.TestCooperativeLevel();
}
catch (DeviceLostException)
{
return;
}
catch (DeviceNotResetException)
{
device.Reset(device.PresentationParameters);
OnDeviceResizing(device, new CancelEventArgs());
}
deviceLost = false;
}
device.Clear(ClearFlags.Target | ClearFlags.ZBuffer, options.Background, 1.0f, 0);
//ここで描画処理
try
{
device.Present();
}
catch (DeviceLostException)
{
deviceLost = true;
}
}
0733デフォルトの名無しさん
NGNGそれともDirectDrawをDirect3Dから使えるようにしたものでつか?
0734デフォルトの名無しさん
NGNGDirectDrawのDrawはオフスクリーンサーフェスからバックバッファへ転送する。
まあDirect3Dのほうはポリゴンだから変形が楽だとか
演算やシェーダを使ってエフェクトをかけたりすることもできるというあたりかなり高機能
0735デフォルトの名無しさん
NGNG回転するパラメータもないのに。
0736デフォルトの名無しさん
NGNG何を言ってるんですか意味ありまくりですよあなた
>回転するパラメータもないのに。
Draw2DやRotationZで回転するときの中心補正点になるんだよ
使わないなら Vector3(0,0,0)でも指定しとき
0737デフォルトの名無しさん
NGNGありがとうございました
0738デフォルトの名無しさん
NGNGRotationXやRotationYは使える?
漏れのダメポPCだとRotationZしかつかえない
ほかは表示がヘンチクリンだ
0739デフォルトの名無しさん
NGNGこっちでも表示がヘンチクリンだ。
0740デフォルトの名無しさん
NGNGVector3とMatrixの積を返すメソッド。
ヘルプで探したのですが見つからなかったので…。
0741デフォルトの名無しさん
NGNG掛けるだけじゃ出来なかった?
Vector3 v = 〜〜〜〜;
Matrix matrix = 〜〜〜〜〜〜;
v = v*matrix;
0742たけし
NGNGまずsprite.Begin(SpriteFlags.None);とsprite.End();が必要になったのはわかりました。
ですが、Draw関数を以下のように、体力の黄色と赤のゲージを描画するコードだと、1本で体力を表したいのに、上下に2つ画像が描画されます。
sprite.Draw(
barTEX,
new Rectangle(0,0,(hero.energy>0)?hero.energy:0,16),
new Vector3(0,0,0),
new Vector3(10,10,0),
Color.White);
sprite.Draw(
barTEX,
new Rectangle((hero.energy>0)?hero.energy:0,16,300,32),
new Vector3(0,0,0),
new Vector3(10+hero.energy,10,0),
Color.White);
Draw2Dは、
public void Draw2D(Texture, Point, float, Point, Color);
だけうまく描画されましたが、他は描画さえされません。
以前のバージョンのコードを、ちょっと変更してプログラミングしただけなので、それがまずいのかもしれませんが、どうやればうまくスプライトのDrawとDraw2Dを描画できるでしょうか?
0744デフォルトの名無しさん
NGNG0745デフォルトの名無しさん
NGNGプロジェクト開いて検索汁
0746デフォルトの名無しさん
NGNG以前のバージョンではちゃんと表示されてたのか?
0747たけし
NGNGこれでうまくいきました。
0748デフォルトの名無しさん
NGNG0749デフォルトの名無しさん
NGNG0750デフォルトの名無しさん
NGNG0751デフォルトの名無しさん
NGNG0752デフォルトの名無しさん
NGNGしばらくの間
2004夏で我慢することにした
いちいち仕様カエルナヨ・・MSさんよぉ
0753デフォルトの名無しさん
NGNG別にそれで構わんが、2004夏でManagedなら
TextureLoader.FromFileには気をつけろよ。
このせいで2004十月が出たようなもんだから。
0754デフォルトの名無しさん
NGNGManagedで2004夏使ってなおかつTextureLoader.FromFileを使ってるんだが
何がどうまずいの?
0755デフォルトの名無しさん
NGNG使ってて気づかないの?もしかしてエラー出力もチェックしたことないとか?
せっかくキーワードがそのまま書かれてるんだからちょっとは調べろよ。
http://www.gdncom.jp/general/bbs/ShowPost.aspx?PostID=14982
0756デフォルトの名無しさん
NGNGやりたいのは2Dの処理です。パズルゲームとかトランプゲームみたいなのを作りたいと思ってます。
(わざわざDirectXでやるな、といわれそうですが・・・)
いろいろ探してみたんですが、C++で解説してたり、3Dを扱ってたりでお手上げです。
いちおうあげておきます
0757デフォルトの名無しさん
NGNGグビチョン
0758デフォルトの名無しさん
NGNGやりたいことが2Dでも、3Dは勉強しなきゃならんと思う。
DXSDK\Samples\Managed\Direct3D\Tutorialsにあるサンプルを1から6までやるべし。
0759デフォルトの名無しさん
NGNGうむむ、なかなか読み応えありますね
DirectXで2Dをやろうとすると、DirectDrawよりもDirect3D.Spriteを使ったほうが良い場合が多いそうですね(理由はわかりませんが)
とりあえず3Dに挑戦してみます。どうもでした
0760デフォルトの名無しさん
NGNG普通に頂点を作ってテクスチャを張るべし。
0761デフォルトの名無しさん
NGNGほほぅ
肝に免じておきます
0762デフォルトの名無しさん
NGNG0763デフォルトの名無しさん
NGNG2004Summerでまたスプライト関数の引数が変更したらしいな
0764デフォルトの名無しさん
NGNG0765デフォルトの名無しさん
NGNG3DSpriteは仕様変更がウンザリなのと
ちょっと古いPCやドライバの更新もできないような
ヘタレ君の環境だとマトモに表示されないケースが多いのがマズー
0766デフォルトの名無しさん
NGNGGUI+なる謎の物体を突然持ち出す君の方がマズー
君ってチンカス以下だね
0767デフォルトの名無しさん
NGNGつまんね
C#にもC++並のサンプルつけてくれMS
VBに至ってはサンプルナッシングかよ
かわいそうに
0768デフォルトの名無しさん
NGNGオマエモナー
0769デフォルトの名無しさん
NGNG0770デフォルトの名無しさん
NGNG0771デフォルトの名無しさん
NGNGC++とかのほうが情報多いんだし。
0772デフォルトの名無しさん
NGNG……これが仕事でなければ。
0773デフォルトの名無しさん
NGNG0774デフォルトの名無しさん
NGNG0775デフォルトの名無しさん
NGNG黒い箱にスパゲティ入れて遊んでな。
0776デフォルトの名無しさん
NGNG0777デフォルトの名無しさん
NGNGM$の罠にかかった香具師がここにも一人。もうだめぽ。
0778デフォルトの名無しさん
NGNGそんなに楽?すぴーどなどもよろ。
0779デフォルトの名無しさん
NGNGC++のほうがパフォーマンスいいんだから、
そっちで無難にやっておけよと。
0780 ◆Rk6dvtD5gI
NGNG一般的な文言を鵜呑みにして他人をも洗脳しようとする>>779の方がよっぽどクズ。
いろんな系統のプログラムで測定してみたが、
俺の環境ではManagedによるパフォーマンス低下は大体0〜15%。
当たり前のことだが、GPUよりCPUを酷使するプログラムでは
パフォーマンスはネイティブに比べ大きく低下する。
逆にパフォーマンスがほぼGPUでの処理のみに依存しているようなプログラムでは、
体感的にはもちろん、数値的な差もほとんど確認できない。
ただし、MDXが提供するクラスの中には、単なる状態取得プロパティ・メソッドに見せかけて、
実は呼ばれる度にオブジェクトを新規に確保→コピーを繰り返すという、なんとも迷惑なのがかなり多くある。
また最近のバージョンでは減ってきたとはいえ、>>755みたいなバグが未だ潜んでいる可能性は大いにある。
Managedでパフォーマンスを重視するなら、ネイティブでの開発経験はもちろん、
Managedメソッドとそれに対応するネイティブメソッドとの関係を詳細に把握しておくことが必要。
逆にManagedで開発するメリットとしては、やはり圧倒的な開発効率がある。
.NET Frameworkが提供する豊富なライブラリを利用できる上、
対象の説明まで表示してくれるインテリセンスなどIDEのサポートも非常に便利。
上では欠点ばかり書いてしまったが、
MDXのクラスはManagedの流儀に併せてきれいに再構成されているし、
ほとんどのクラスがMarshalByRefObjectから派生しておりAOP的なプログラミングも可能。
何にでも言える事だが、そのデメリットを充分に理解しているのなら、
そのメリットを生かすためにそれを使うことには躊躇しなくてもよい。
俺はもちろんネイティブDirectXも使うし、Managed DirectXもありがたく使わせてもらっている。
0781デフォルトの名無しさん
NGNG0782デフォルトの名無しさん
NGNG>でも、未開拓の言語って触るの面白いんだよ。
ここは同意出来るが、C#が未開拓かと言えばそうでもない。
いつものように既存のものを名前変えただけだろ。
0783デフォルトの名無しさん
NGNGどこかにここのリンク貼られたのか?
0784デフォルトの名無しさん
NGNGへんなのってこれか?>780
至極まっとうな意見だが。
0785デフォルトの名無しさん
NGNG0786デフォルトの名無しさん
NGNG0787デフォルトの名無しさん
NGNG0788デフォルトの名無しさん
NGNGつりなのかどうなのか微妙なところだ
0789デフォルトの名無しさん
NGNG0790デフォルトの名無しさん
NGNG微妙だな。
不覚にも微妙にワロテシモタ
0791デフォルトの名無しさん
NGNG趣味でプログラムしているうちが華だよもう (´・ω・`)
0792デフォルトの名無しさん
NGNGといった、クソ厨のような発言をオマイにささげてみるテスト(debugビルド)
0793デフォルトの名無しさん
NGNG0794デフォルトの名無しさん
NGNG0795デフォルトの名無しさん
NGNG.netフレームワーク + DirectX + ManagedDirectX を
インストールさせなきゃならんのが
イイ手はないですか兄さん
0796デフォルトの名無しさん
NGNG0797デフォルトの名無しさん
NGNG全然面白くない
0798デフォルトの名無しさん
NGNGもうβ出たっけ?
>全然面白くない
面白くする努力するなり
他へ逝くなりご自由に
0799デフォルトの名無しさん
NGNG0800デフォルトの名無しさん
NGNG0801デフォルトの名無しさん
NGNG0802デフォルトの名無しさん
NGNG0803デフォルトの名無しさん
NGNG0804デフォルトの名無しさん
NGNG.NET再頒布パッケージ入れてMDXランタイム入れてもらえば良いんだよな?
0805デフォルトの名無しさん
NGNG1パッケージで
全部インスコさせられたらいいのだがな
0806デフォルトの名無しさん
NGNG0807デフォルトの名無しさん
NGNG0808デフォルトの名無しさん
NGNG■ このスレッドは過去ログ倉庫に格納されています