【C#】 Managed DirectX 【.NET】

■ このスレッドは過去ログ倉庫に格納されています
2007/11/15(木) 23:20:19ID:3rb4ETPe
ここは とある スレッド
人気の 言語は C# …

びじゅあるすたぢおつかうと
めんどうなぷろぐらむもかんたんにできるよ!

という訳で、Managed DirectXについて語るべし。
話題を無理やり作ってでも語るべし。

DirectX Developer Center - Microsoft DirectX SDK ダウンロード
ttp://www.microsoft.com/japan/msdn/directx/downloads.aspx
2007/11/15(木) 23:27:54ID:feCDRn/m
初心者ですが3DCGのモデラー作ります。
http://pc11.2ch.net/test/read.cgi/tech/1195130143/
3名前は開発中のものです。
垢版 |
2007/11/15(木) 23:29:27ID:TN3OsQDp
XNAとどう違うのん?
2007/11/17(土) 05:58:20ID:XyIQannM
無いと思っていたら、よくぞ立ててくれたな。

だがわだいはまだない
2007/11/17(土) 10:45:01ID:+zLpfEQW
http://pc11.2ch.net/test/read.cgi/gamedev/1017164698/
ここでやるんじゃなかったの?
結局そこでも盛り上がらなかったし話題も提供できないってのは
2007/11/18(日) 00:33:40ID:HIqrCwvR
個人で書かれたドキュメントもあんまりないんだよな。
知名度自体無さそうだ
2007/11/19(月) 23:19:14ID:paSZs/3x
C#(笑
2007/11/22(木) 23:44:10ID:149fPUF2
C#は別に問題無いだろ。
2007/11/23(金) 04:30:49ID:7/VeMxpE
今時、C#はねーわ。
2007/11/23(金) 09:16:10ID:gtn2VkaU
C#よりも今時のゲーム製作に適した言語ってなに?
C++/CLIか?使ったこと無いけど。
2007/11/23(金) 15:28:59ID:7/VeMxpE
ファビョりすぎてワロス。一生気付かなくていいよ。
12名前は開発中のものです。
垢版 |
2007/11/25(日) 21:04:51ID:hEqezQI1
C++と比べてC#はどんくらい遅いの?
13名前は開発中のものです。
垢版 |
2007/11/25(日) 21:08:33ID:OiLlykW8
0.9倍くらい
2007/11/25(日) 23:17:09ID:3TDei+Hd
0.9倍遅いということは1.11111…速いということになるが、お前の頭は大丈夫か?
2007/11/26(月) 01:16:10ID:bkGdd+aA
C#で開発してるけど、コードが書きやすくて個人的には楽。
16名前は開発中のものです。
垢版 |
2007/11/26(月) 20:40:20ID:ZRVyv466
c++で作ってたら
あまりの手間に「俺、なんでこんなことやってるんだろう」ってむなしさをかんじ
C#に戻りました
2007/11/26(月) 22:53:12ID:63nf71Xk
DXSDKの2007年11月号には付録のマネージドサンプルが付いてないから注意だ!
2007/12/07(金) 01:11:38ID:jcOQV2JU
床ポリゴンの任意のXZ座標に於けるY座標やポリゴンの角度を知りたいのだけど、どうすればいいのだろう。
2007/12/19(水) 22:29:14ID:AqmW6PFU
http://slimdx.mdxinfo.com/wiki/index.php?title=Main_Page
これ面白そう
2007/12/19(水) 22:50:08ID:dB9KcL4v
面白そう!
英語わかんないけどサンプルやってみるぜ
とりあえず最新(Nov 2007)のDirectXじゃないと動かないみたいね
2007/12/20(木) 23:02:30ID:S+K0iauN
使ってみたんだけど深いことやらないから今までと何も変わらないなw
2007/12/22(土) 19:35:59ID:BaXpb+cR
黒歴史
2007/12/22(土) 21:32:45ID:Q8y5bXGo
kwsk
2007/12/23(日) 22:53:03ID:eWqzl+5r
質問というかなんと言うか。
事の始めは30fpsの場合なら描画に関するメソッドをふっ飛ばせばいいやと記述したところから気づいたのですが。

通常の2サーフェイス、垂直同期した設定のデバイスで全体のwhileループ毎に1回Presentします。
このループ内で、2回に1回だけClear、BeginScene、(色々)、EndSceneの一連の描画メソッド群を呼ぶよう記述したところ、
フルスクリーンでは画面が点滅したのに対し、ウィンドウではしっかりと表示されました。
フルスクリーンで起きたことを疑問に思いフリップなどの原理を読んだところ、むしろウィンドウモードで起きていることが変なのだとわかりました。

ウィンドウモードでは何が起きているのでしょうか?
2008/01/22(火) 14:20:13ID:kj45DG06
>>17
これはどうしてなんだろう
MicrosoftがC#を見限ったのかと思ったぞ
2008/01/22(火) 22:02:55ID:8gcJArob
C#はともかくMDXはとっくに見限られてるぞ
2008/01/22(火) 22:16:23ID:mIN1xXx0
今は有志が.NETからDirectXを使えるようにラッピングしてるSlimDXがいいのかな?
2008/01/22(火) 22:34:41ID:8gcJArob
SlimDXいいよ
こんなのが欲しかった
2008/01/22(火) 23:44:28ID:OrSIT/oL
いつだったかMS社員のブログでもちょっとだけ紹介されてたな
30名前は開発中のものです。
垢版 |
2008/01/30(水) 21:45:52ID:iUjGqxVR
3dCGツールみたいなのを簡単に作れるかと思って
C#で作ってるんだけど、画面自体はpictureboxに描いて
操作はボタンとかtabとかで選ぶようにしたんだが

pictureboxにレンダリングするとボタンとかの表示が更新されない
どうやってすればいいの?
2008/01/30(水) 22:33:39ID:Vu+T9uqW
普通に作ったらそんなことにはならない
2008/01/30(水) 23:53:28ID:iUjGqxVR
そうなのか、でも何とかできたよ。ありがと
2008/01/31(木) 05:57:44ID:0wzNWR1X
Mesh.Intersectを使ってIntersectInformationに情報を得たのだが、これを使って三角形の各頂点の座標とかわかるのかな。
FaceIndexを使えばなんとかなりそうな気もしたけど、調べても使い方がよくわからない。
34名前は開発中のものです。
垢版 |
2008/01/31(木) 22:28:59ID:rtDfFv3X
>3dCGツールみたいなのを簡単に作れるかと思って

この無謀さがたまらんわ。  このまま突き抜けて欲しい。
35名前は開発中のものです。
垢版 |
2008/02/03(日) 18:15:34ID:FshDN9yL
3dcgツールって独自規格なのか
36名前は開発中のものです。
垢版 |
2008/02/11(月) 09:09:17ID:4x3go5rA
もっと基本的なC#で2D製作のスレはありませんか?
もしくはC#でゲーム製作に必要なウェブページとか書籍とか紹介していただけませんか?

スレ違いかもしれませんが、よろしくお願いいたします
2008/02/11(月) 11:53:05ID:dALXccIV
マイナーな道だという自覚を持つべき
C++は読めないとしんどい
2008/02/11(月) 14:21:36ID:bcQUmMw2
>>36
うちも四角形専門で、最近C#+MDXに手を出したんですが
結局は SDK に付属のサンプルフレームワークを読み解くのがベストでした。
2008/02/11(月) 21:40:37ID:dSQSXNFn
四角形専門カコイイ
2008/02/21(木) 02:41:30ID:lm7aERjC
VisualStudio2008でMDX使える?
切捨てでxnaとかに移行するの?
2008/02/21(木) 02:52:28ID:zjBQ9W6R
>40
使える
xnaはあれはあれで癖があるのでケース倍ケース
IME系弄ろうとしたらしんどかった>xna
42名前は開発中のものです。
垢版 |
2008/02/29(金) 19:25:31ID:0VghpvKE
MDXでやるくらいならJAVA3Dの方がマシ
2008/02/29(金) 19:40:41ID:wecGO7bd
さすがにVector型使うのにGCを気にしたくないわ
4443
垢版 |
2008/02/29(金) 19:42:20ID:wecGO7bd
誤解されそうなので補足
コレクションじゃなくてベクトル型のことだよもちろん
2008/03/01(土) 21:06:15ID:ESvEWD62
C#ではスタックに積まれることが想定できるStructな構造体なんだっけ?
2008/03/01(土) 21:06:41ID:ESvEWD62
Structなっていうか、
静的な構造体だ・・・
47名前は開発中のものです。
垢版 |
2008/03/19(水) 16:26:58ID:Ec0sfVVS
C#コード書きやすいよね。
俺は同じシューティングゲームをHSP→C++→C#で作ったけど、
美しさで言えばC#が一番上だね。まぁC++でもコーディングが
悪かっただけかもしれないが…。でもC++のテンプレート機能
は使えるな。同じ機能のクラスを重複して書く必要ないし。
C#はそこをなんとかジェネリックで解決してくれればなぁ。
まぁクラスの複数継承ができればもっといいが…
あれってなんでできないんだろ?しないだけなのか?
2008/03/19(水) 18:35:37ID:0rFFHEMG
多重継承は問題が多いから捨てた
C#3.0では拡張メソッド使ってそれっぽいことできるよ
2008/03/20(木) 07:59:22ID:E1EG3/QX
基本的にインターフェースで解決しろ、って姿勢だからな
ベクトルが若干違うが、デリゲートって方法も一応あり

てか、多重継承って使ったことないんだが、あれってどう必要なの?
2008/03/20(木) 13:12:06ID:nrHqDN6V
現状のインタフェースへの不満といえば、

・インタフェースに対して基本的な実装クラスが一つしかない場合、
委譲メソッドを長々と書くのが面倒。見る価値の無いコードが増える。

・クラスとインタフェースが別の定義と分かれているせいで、
やろうと思わなければインタフェース化されないことが多く、
既にライブラリ化されたクラス等を継承して拡張したい場合に
インタフェースが提供されておらず拡張出来ないことが多い。

だからさ俺は、クラス定義のメンバ毎にinterface修飾子を
付与出来るようにすれば、クラスとインタフェースを同時に考えるようになって良いと思うわけよ。
んで使う側ではJavaのようにextendsとimplementsで分けてだな、
同じクラス名から、クラス継承とインタフェース継承を自動的に分離して解釈するわけ。
こうすりゃインタフェース名の先頭につけるIとかもなくなってスッキリだろ。
2008/03/21(金) 15:09:26ID:/r8MUiUL
個人的にはインターフェース好きなんだけどなぁ・・・
なんつーかインターフェースの場合は継承と違って、これ絶対多態性使うかんな!っていう意気ごみがある。
I○○って言う型の変数があれば、絶対何かを管理していると言うかなんと言うか。そういう安心感。
2008/03/21(金) 16:34:39ID:Bb9p5f+c
interfaceは実装を持てないから
結局、まったく同じ処理なのにプロパティやメソッドの本体を各所に書く必要がある。
2008/03/21(金) 16:35:21ID:+eVwtV9C
実装を持たないことに意味があるんだろ
2008/03/21(金) 19:25:23ID:azh28qOl
多重継承最強と
2008/03/21(金) 23:24:30ID:yoX8gI/6
使い手によるわな
2008/03/22(土) 21:23:57ID:vAXUOOot
見る価値のないコードが増えるぐらいどーって事もないが
見る価値のないソースを作っているほうが大問題
2008/03/22(土) 22:41:37ID:xghn2l3z
見る価値のないコード ⊆ 見る価値のないソース
2008/03/25(火) 16:12:46ID:dO0zbCK8
Cutting Edge DX9のアニメーションメッシュを参考にコード書いてるんだけど、
末端のフレームに兄弟フレームがあった場合どうなるん?
2008/03/25(火) 20:48:15ID:dO0zbCK8
すまん勘違いだった。
60名前は開発中のものです。
垢版 |
2008/03/26(水) 02:41:53ID:5YA6TDpT
>interfaceは実装を持てないから
>結局、まったく同じ処理なのにプロパティやメソッドの本体を各所に書く必要がある。

同意。
複数継承できないことの解決になってない。
61名前は開発中のものです。
垢版 |
2008/03/26(水) 11:48:39ID:Na6PWth9
まて、変数メンバとして基本クラスにしたかったクラスのインスタンスを持つのじゃ無理な話なのかそれ
それに3.0なら拡張メソッドとか言うびっくりな文法も存在するからそこら辺で代用できるでしょ。
2008/03/26(水) 11:49:09ID:Na6PWth9
あばばば、あげてしまった
2008/03/26(水) 12:56:02ID:TCtOpY+/
static class Hogeable {
 public interface IHogeable { Hogeable.HogeableObject HogeableObject { get; } }
 public class HogeableObject { public int Value { get; set; } }
 public static void Hoge(this IHogeable hoge) {
  hoge.HogeableObject.Value += 1;
  Console.WriteLine(hoge.HogeableObject.Value);
 }
}
class MyClass : MyBaseClass, Hogeable.IHogeable {
 private Hogeable.HogeableObject hogeableObject = new Hogeable.HogeableObject();
 Hogeable.HogeableObject Hogeable.IHogeable.HogeableObject { get { return hogeableObject; } }
}
//MyClass obj = new MyClass(); for (i=0;i<10;i++)obj.Hoge();
こうすればインスタンスフィールドも持てるんじゃね
2008/03/26(水) 13:50:23ID:Na6PWth9
流石に面倒すぎやしないかw
まあusing2つ追加すればHogeableは消せるから使用側は割と楽だけど。
65名前は開発中のものです。
垢版 |
2008/03/27(木) 02:42:43ID:1iqAdxC6
あれ、結局何がしたいんだ?

MyClassにフィールド追加してるんだったら
直接持ちたい機能を持ってるクラスをフィールドに追加
すればいい話でしょ。

拡張メソッドとか使用したところでオブジェクト生成して
使う側には便利だけど継承側はthisで参照できないからメリットないし

6665=60=47
垢版 |
2008/03/27(木) 09:54:55ID:/nFHNp1Z
>>63
それを避けたいから複数継承したいだけだよ
6766
垢版 |
2008/03/27(木) 09:56:00ID:/nFHNp1Z
間違った
>>61
2008/03/27(木) 14:33:18ID:3wRGum5F
>>63はただの冗談だよw
なんでそんなに継承したいの?
わざわざインターフェイス実装しなくても包含してプロパティで公開すれば済む話でしょ
ところで,thisで拡張メソッドは呼び出せるよ(thisを付けなければ呼び出せない)
6968
垢版 |
2008/03/27(木) 23:31:23ID:d3W1Wa7a
冗談てw

ただ単にプロパティとか書かなくていいから継承したい
てか継承したいのはインターフェイスとは言ってないのだが
インターフェイスなら意味ないからクラスを複数継承したいと

あ、呼び出せるんだ。じゃあ便利だね
70名前は開発中のものです。
垢版 |
2008/06/09(月) 11:07:44ID:hPaVQxMn
http://pc11.2ch.net/test/read.cgi/tech/1212972014/
71名前は開発中のものです。
垢版 |
2008/07/07(月) 17:38:43ID:tUV9S/d8
シャドウマップ用にテクスチャをつくりたいのですが
CreateTextureのような関数はないのでしょうか?
7271
垢版 |
2008/07/07(月) 18:39:04ID:tUV9S/d8
自己解決しました
2008/07/27(日) 21:14:59ID:xK0YwJIG
vista bus spなし .NET3.5

DirectXのSDKを複数入れてたんだが、
整理目的でアンインストールしたらManaged DirectX使ったプログラムが動かなくなっちゃった
DLLなくなってないし、コンパイル通るのにな・・・
74名前は開発中のものです。
垢版 |
2008/07/27(日) 23:06:43ID:6A71A0KI
米国時間23日、マイクロソフトは統合3Dソフト「trueSpace 7.6」の無償提供を開始した。

最新バージョンの7.6では、マイクロソフトが提供する地図検索サービス「Virtual Earth」へ、
3Dモデルを直接書き出す機能が追加されている。Googleが「Google Earth」向けに3D CAD
ソフト会社である@Last Software社を買収し、3Dモデリングソフト「Google SketchUp」を無償
公開したことに対抗する目的と思われる。

trueSpaceは、モデリング、アニメーション、レンダリングと、放送およびポストプロダクション分野まで
カバーする統合3Dソフトウェア。trueSpaceは、モデリング特化型のSketchUpとは違い、3ds Maxや
LightWave 3Dなどと競合する製品を無償化したものであり、機能が豊富な分、操作性はやや難しい
ものとなっている。開発はマイクロソフトが2008年2月に買収した米Caligari社が行う。

この無償化は「Virtual Earth」の普及を主目的としているようだが、標準でDirectX9及びXNA
Frameworkにおける3Dデータの標準形式である「Xファイル」での出力に対応しており、trueSpaceで
作成したモデルデータ及びアニメーションデータはXNA Game Studioなどから直接利用することが
可能である。また、ポストプロダクション向けということもあり、非常に高品質なプリレンダリング動画の
出力なども可能である。

XNA Game Studioで作成されたXbox360用の同人ソフト販売サービスも発表されていたが、同人分野
では1本数十万円という価格帯が一般的な統合3Dソフトの導入が難点であった。このtrueSpaceの
無償提供で、XNA関連分野の一層の活性化が期待される。

http://news4xbox.blogspot.com/2008/07/3dtruespace-76.html
2008/07/28(月) 11:38:58ID:H3XajAOv
>>73
MDXランタイムだけで動作するはずだから、9.0c2006April以降を試しに入れなおしてみたら?
7673
垢版 |
2008/07/29(火) 01:41:37ID:m9T5+D5J
>>75
サンクス
2006AprilのSDK入れたらちゃんと動作してくれた
どうやらアンインストール時にランタイム関連まで削除してしまったようだ
77名前は開発中のものです。
垢版 |
2008/09/04(木) 19:00:51ID:mkD4gvDF
エンターブレイン、ツクール最新作「アクションゲームツクール」を発表、XBOX360/XNAにも対応
http://news4xbox.blogspot.com/2008/09/xbox360xna.html
2008/09/05(金) 01:45:44ID:gUxl4h6P
ソース記事から見ていつもマルチ乙なゲハ厨さんか
死ね
氏ねじゃなく死ね
2009/02/03(火) 22:09:29ID:7V/io6zW
過疎ってるの?死ぬの?
2009/05/11(月) 10:05:43ID:OthZ/4Y/
まさか>>52>>60のような初心者マークはもういないよな。
81名前は開発中のものです。
垢版 |
2009/07/11(土) 20:39:51ID:Za3/AWBN
class InputManager
{
private int pushed_tick = 0;
private Device DInDev;

#region
public void init()
{
DInDev = new Device(SystemGuid.Keyboard);
DInDev.Acquire();
}
public ButtonType KeyDown
{
get
{
//入力してから一定時間の間入力受け付けない(単位:ms)
if (System.Environment.TickCount - pushed_tick < 60) return ButtonType.NONE;
pushed_tick = System.Environment.TickCount;

KeyboardState state = DInDev.GetCurrentKeyboardState();
:
}
}
#endregion
}

init()を実行すると「DLL 'C:\Windows\assembly\GAC\Microsoft.DirectX\1.0.2902.0__31bf3856ad364e35\Microsoft.DirectX.dll' は、OS ローダー ロック内でマネージ実行を試行しています。
DllMain またはイメージ初期化関数内でマネージ コードを実行しないでください。この動作は、アプリケーションをハングさせる原因になる可能性があります。」という例外が吐かれる。これを解決する方法はない?
2009/07/12(日) 10:19:02ID:yE1osiWd
x64環境?
83名前は開発中のものです。
垢版 |
2009/07/12(日) 23:08:08ID:Pm94PkQG
>>82
x86環境だが・・・
解決した。
DirectXを参照に追加するのを忘れたのが原因だった。
スレを汚して済まん
2009/07/13(月) 09:59:39ID:IC1GLBGZ
それでコンパイル通るのか・・・
64bitOSだと、AnyCPUでそういうエラー出るけどな
85名前は開発中のものです。
垢版 |
2009/09/17(木) 14:17:20ID:0Wzq8kp1
なんたる閑散ぶりっつ。
2009/09/26(土) 16:21:16ID:UXrp+uwY
>>85
さっさと諦めてXNAに移行しろよ
2009/09/26(土) 18:50:53ID:2z87+Lgz
XNAには人居るのか・・・?
2009/09/26(土) 19:20:58ID:gKaOv5Va
MDXよりはマシ
XNAが嫌ならSlimDX池
2009/11/25(水) 15:38:27ID:sR9pgnim
助言に従いslimdxに行ったけど、サンプルの大半が動かん。
それも初期化部分で。orz
d3dx9のほとんどのバージョンのdll入っているんだけどなあ。
2009/11/25(水) 15:40:44ID:ST/9wWFa
具体的にバージョンとか試したサンプルとかはどれ?
もし64bitOSならAnyCPUだとまずいケースが多いよ。
とりあえずx86に統一してしまうのがいいかも
2009/11/25(水) 18:01:48ID:ST/9wWFa
とりあえず
August 2009のDirectX SDKとSlimDX SDK を入れて試してみてよ。
弄ってなけりゃ32/64あまり気にせず動くと思うよ
2009/11/25(水) 23:19:11ID:jJ5qat9k
おわ!即レスしてくれてたのね 気づかんかったorz
改めて トントン
明日 再チャレンジしてみるよ
2009/11/26(木) 08:30:53ID:OlZi+JrQ
試したけど、ダメだった。
xp32bit sp3 /directx August 2009 /slimdx 最新版。
試したサンプルはslimdxに付いてくる奴。
ChangeDevice で D3DERR_NOTAVAILABLE: Not available 。
日本語に翻訳されてる方のページ見るとバージョンが違う場合に出やすいようだけど、
もうまんどくさい。orz
opentkとかでopenglに流れます。
あ、そうそうディスプレイカードはnvidiaの7900gt系だと思う。
ありがとうございました。w
2009/11/26(木) 09:32:51ID:OlZi+JrQ
すまない。原因がわかった。
maxvistaっていう日本ではもうメンテナンスされていないソフトを使って
ノートパソコンをセカンドディスプレイに使用しているのが原因だった。
さてさて、0番目のディスプレイのみ使用とすると動くようになるのか
そもそも、そのようにするにはどう書けばいいのか
初心者には敷居が高い。orz
2009/11/29(日) 17:09:21ID:MFAqZwj/
なるほど、動くやつはDirect3D9の中だとMiniTriくらいかな?
SampleFramework使ってるやつはDeviceSettingsあたりいじるといいのかなあ
2009/12/19(土) 21:38:42ID:ejLIJuIy
つうか別にSampleFramework使わなくてもいいのでは?
しかしSlimDXはやっぱり知名度は低いね。
ぐぐっても試してみたとかそんなブログ記事は見つかるのだが。
2009/12/19(土) 23:17:39ID:YwBZXvyF
世の中に腐るほどある非公式DirectXラッパーの中でこんだけ知られてりゃ上等だろ
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況