[過去ログ] SlimDXについて語ろうぜ (197レス)
上下前次1-新
このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
82(2): 2010/12/21(火)16:03 ID:589aNUur(2/3) AAS
それだったら別にリフレクションなんか使わなくても
VertexElement[]を返すプロパティを宣言したインターフェイスをHOGEVertexに実装させて
whereで要求すればいいだけじゃないの?
83: 2010/12/21(火)16:08 ID:IUyb5141(4/7) AAS
それC++でやってたソースみた事あんのか?
なんだかな
C++もC#も知らない
その自分が未熟なことも知らない
しまいには人を見下すだけで会話もできない
84: 2010/12/21(火)16:10 ID:IUyb5141(5/7) AAS
>>82
うん 俺もこんなの使って無い
85(1): 82 2010/12/21(火)16:15 ID:589aNUur(3/3) AAS
直接関係ないけどGetCustomAttributesがフィールドの宣言順に返ってくる保証は無いよ。
順番が保証されてるフィールド情報の列挙方法はリフレクションAPIには無いので、
VertexElement属性には明示的にインデックスを付ける必要がある。
どうせリフレクション使うんだったら、staticプロパティとしてVertexElement[]を返すプロパティを定義してしまって
そっちに属性を付けた方がいいかもしれない。
86: 2010/12/21(火)17:09 ID:IUyb5141(6/7) AAS
>>85
>宣言順に返ってくる保証は無いよ
本番では使って無くてよかったw
後の継承設計を考えると、staticなVertexDeclarationを
渡す、IVertexDeclarationProvider{ GetDeclaration(); }じゃないかな。
たぶん、みんなこういうことしてるのではないかなぁ
DrawableObj<T> where T: struct , IVertexDeclarationProvider
省12
87(1): 2010/12/21(火)18:38 ID:Xai41NPW(1/3) AAS
インターフェイスのstaticメンバはサポートされてないので
staticフィールドを返すインスタンスメンバとして実装してdefault(T).GetDeclaration()かな
88: 2010/12/21(火)20:51 ID:N/+0RCBN(2/2) AAS
>>73
亀レスすまぬ
普通にロスト起こした時にSpriteやらのリセットをしてなかっただけだった。無事に対策できたっぽい
失礼しました
89: 2010/12/21(火)23:09 ID:IUyb5141(7/7) AAS
>>87
ゴメンtypo
× T.GetDeclaration() //コンパイルできません
○ T_array[0].GetDeclaration() //こんなもんかな
それから型パラメータは TVertex とかにしないとスゲー読みづらい
90: 2010/12/21(火)23:25 ID:Xai41NPW(2/3) AAS
いやdefault(T).GetDeclaration()のほうがいい
構造体なのでdefault(T)でインスタンスが作れる
91: 2010/12/21(火)23:36 ID:Xai41NPW(3/3) AAS
それと、リフレクション使うならこういうふうにシングルトンでキャッシュするのがいいよ
class VertexInfo<TVertex> {
public static readonly VertexInfo<TVertex> Instance = new VertexInfo<TVertex>();
public VertexElement[] Format { get; set; }
private VertexInfo() { /*ここでリフレクション使ってFormatを初期化*/ }
}
92: 2011/01/23(日)21:16 ID:v5GChX7G(1/2) AAS
俺MDXから入った身なんだけど、Spriteでの拡大とか回転に悩んでるんだが。
SlimDXでのDirectX9オンリーで作りたいんだけど、MDXで作ってた時みたいにSprite.Draw2DでやろうとしてもDX10/11にしか無いんだよね。
要するにSlimDXでSpriteの拡大とか回転ってどうやんの?
本家DirectXの知識は殆ど無い。
93(1): 2011/01/23(日)21:28 ID:IvAtt79g(1) AAS
Transformに変換行列入れる
ネイティブのD3DXのラッパーっていうのはなんか気持ち悪いからSpriteは自作してるなあ
94(1): 2011/01/23(日)22:19 ID:v5GChX7G(2/2) AAS
>>93
いまいちキチンと分かって無いんだけど、Matrix.Transformation2Dってものがあったんで試してみた。
が、表示されん。きちんと描画してるはずなのに何故だ・・・
95: 2011/01/24(月)00:11 ID:ZV2/0eH0(1/3) AAS
>>94
SlimDXのサンプルは単純でよく出来てるから、
それを真似するところから始めるといいよ。
96(1): 2011/01/24(月)17:28 ID:SbpYcvOy(1/2) AAS
サンプルを見てみたが、SpriteとTexture使った拡大とか無かったわ・・・
うーむ、俺の考え違いだったのかも知れない。やはり一から勉強しなおす必要がありそうだ。
97(1): 2011/01/24(月)17:33 ID:ZV2/0eH0(2/3) AAS
>>96
俺の場合、2Dの板ポリをGPU描画することが大半なので専用の計算をしている。
座標系が2D系と同じにすることを意図して、
Z軸のマイナス側からカメラを向ける。
そして板ポリの座標系がそれに合うようにワールド座標を設定しておく方式。
98(1): 2011/01/24(月)17:45 ID:SbpYcvOy(2/2) AAS
>>97
なるほど、ちょっとじっくり勉強しつつ試してみます。ありです。
ただMDX見たいなDraw2Dのように簡単に拡大とか出来たりする奴はSlimDXのDX9には無いってことでいいのかな。
ずっとMDXに頼ってきて最近SlimDXに移ってきたから・・・ 無知ですみません
99: 2011/01/24(月)18:02 ID:ZV2/0eH0(3/3) AAS
>>98
それならなおさらD3DXSpriteを使えばいいじゃん。
100(1): 2011/01/26(水)21:53 ID:q2pNSJtE(1/2) AAS
度々すまない。
俺が思ってる簡単に拡大とかって言うのは、
Sprite.Draw(位置,Rectangle,サイズ,ロケーション)
見たいなもので、それが無いのかなと甘い考えをしてた。
D3DXSpriteと言われても良く分からなかった。
もうこれで分からなかったら迷惑になりそうなので引きます・・・
101(1): 2011/01/26(水)22:59 ID:Dys02ewd(1) AAS
>>100
D3DXFontには変換座標かけつつ描画するモードがあるから、
たぶんSpriteにもあるはずなんだけど。
ただし、D3DXFontの場合は描画が遅くなったのであしからず。
(なぜかというと、変換かけない場合はVertexエンジンを使用せずに描画するから)
102: 2011/01/26(水)23:00 ID:q2pNSJtE(2/2) AAS
>>101
なるほど。試してみます。
お騒がせしました
103(2): 2011/02/21(月)01:33 ID:FjA/EdKJ(1) AAS
SlimDX初心者です。
画像を表示するためにDirect3D9でテクスチャ表示をしようと思っているのですがどうしたら良いのか教えていただけないでしょうか?
DirectInputを利用したキーボード入力、Direct3D9を利用した背景色の設定は出来ました。
104: 2011/02/21(月)04:26 ID:e+9Xrrk1(1) AAS
>>103
サンプルプロジェクトのソースコードを読め。
105: 2011/02/21(月)20:14 ID:da8+AaWU(1) AAS
>>103
とりあえずこのへん
外部リンク[html]:www21.atwiki.jp
106: [age] 2011/03/12(土)19:58 ID:gPTtXzoi(1) AAS
age
107(3): 2011/03/24(木)15:10 ID:o/XjgpCP(1/4) AAS
3DモデルのツールみたいなものをSlimDXで作ろうとしてるのですが、別ウィンドウでダイアログを
出してボタン等のコントロールを表示することってできるのですか?
108: 2011/03/24(木)15:12 ID:+jtjlJX2(1/2) AAS
もちろんできる
普通にWinFormsやWPFで作って表示すればいいだけ
というより、フォーム上に貼り付けたコントロールの上にSlimDXの描画を行う
109: 107 2011/03/24(木)16:52 ID:o/XjgpCP(2/4) AAS
Winformに配置する部分ってフォームデザイナも使えるんですか?
110: 2011/03/24(木)17:00 ID:+jtjlJX2(2/2) AAS
使える
SlimDXで描画したい部分にはパネルでも貼り付けといて
そのウィンドウハンドルをDeviceのコンストラクタに渡せ
111: 107 2011/03/24(木)17:14 ID:o/XjgpCP(3/4) AAS
なるほど、そのやり方でやってみます。
ありがとうございました。
112(1): 107 2011/03/24(木)17:48 ID:o/XjgpCP(4/4) AAS
フォーム表示までできたのですが、
// var form = new RenderForm("SlimDX Sample"); ←はコメントアウトして
var device = new Device(new Direct3D(), 0, DeviceType.Hardware, パネル.Handle, CreateFlags.HardwareVertexProcessing, new PresentParameters()
というやり方で合っていますでしょうか?
113(1): 2011/03/25(金)10:54 ID:L6sPV2wn(1) AAS
SlimDXのサンプルが掲載されているWebサイトって無いですか?
海外サイトでも構いません。
114: 2011/03/25(金)21:09 ID:vv767kg8(1) AAS
>>112
ウィンドウハンドルを入れるところは合ってるけど、色んなものが抜けてる。
とりあえずDirect3Dオブジェクトを外に出して、更にPresentParametersに
適切な値を設定するところから。
>>113
外部リンク[html]:www21.atwiki.jp
あとSlimDX SDKのサンプル。
115: 2011/03/25(金)21:18 ID:8nQu2/1X(1) AAS
XNACCのサンプルとDirectXSDKのサンプル(C++)が一番役立つ
116: 2011/03/29(火)23:06 ID:7uGGHTvI(1/2) AAS
2点引っかかっている箇所があります。
どなたかヒントなどお持ちの方いらっしゃいましたら教えてください…。
?
新しいテクスチャを作る際のTexture2DDescriptionのパラメータで
Usage=Default
OptionFlags=None
CpuAccessFlags=None
省11
117: 2011/03/29(火)23:06 ID:7uGGHTvI(2/2) AAS
?
テクスチャ(Texture2D)からピクセルを読み出したかったのでGetPixel的なメソッドを作っているのですが
Direct3D11以降、テクスチャのロックをするメソッドはdx11デバイスのImmediateContext.MapSubresource(〜);で正しいでしょうか?
(もしくはtex.AsSurface(〜).Map(〜)…?)
Direct3D10までのTexture2DインスタンスにはMap()メソッドがあるようなのですがDirect3D11のTexture2Dには見当たらず、調べてみたら前述のメソッドがそれっぽいような感じを受けました。
テクスチャのCpuAccessFlagを変更できないのでそのメソッドでいいのか確認できないのですが、もし定石のやり方があれば知っておきたいと思っています。
/////////環境
省7
118: 2011/04/05(火)18:00 ID:+LS+lOHR(1) AAS
海外でもいいので情報交換をしてるフォーラムってないんですか?
119: 2011/04/06(水)02:47 ID:PtBPsaxE(1) AAS
gamedev.netはslimDX関連のスレッドをよく見かけるなぁ
120(1): 2011/04/09(土)10:55 ID:sKYCeLl0(1) AAS
SlimDXでDirectX関連で確保したメモリは、最後に手動で開放しないと残ってしまうんですか?
121: 2011/04/09(土)12:36 ID:QWLtEJqL(1) AAS
うん
たしかナントカManagerみたいなのがあって
そのstaticメンバとして全てのDirectX関連のリソースへの強参照を保持してて
わざわざGCを動かなくしてる糞設計だったはず
122: 2011/04/09(土)13:35 ID:oX/gW5Mu(1) AAS
オレは自前でリソース専用のガベコレを用意して、
明示的に解放させてるな(システムとしては参照カウンタ方式)
SlimDX付属のフレームワークもそうなってるだろ?
123(2): 2011/04/12(火)16:16 ID:Y/I5qVEj(1) AAS
SlimDXにあるUnprojectってスクリーン空間からオブジェクト空間にベクトルを射影させる関数ですか?
MDXにあるUnprojectとは引数が違っている様に思うのですが、使い方が分かりません。
124: 2011/04/12(火)16:22 ID:155qZFtN(1) AAS
>>123
実装を見て考えたら?
Vector3 Vector3::Unproject( Vector3 vector, float x, float y, float width, float height, float minZ, float maxZ, Matrix worldViewProjection )
{
Vector3 v;
Matrix matrix;
Matrix::Invert( worldViewProjection, matrix );
省6
125: 2011/04/12(火)23:28 ID:4dFtS2x0(1) AAS
>>123
俺はこんな感じで使ってる(マウスカーソルを射影)
float z = 0.1f; //0〜1f?射影時の視点からのポイント距離
Vector3.Unproject(new Vector3((float)mouseX, (float)mouseY, z), viewport.X, viewport.Y, viewport.Width, viewport.Height, viewport.MinZ, viewport.MaxZ, mat);
最初と最後の引数以外は全部Viewportから取ってるから
Viewport持ってるなら簡単
最後のmatrixは普通にワールド*ビュー*プロジェクションのマトリクス渡す
126: 2011/04/22(金)02:56 ID:UveiKLLT(1) AAS
>>120
今時、搭載メモリ8G12GB16GBはあたりまえだから、あんまり気にしなくていいんじゃないかな。
127(3): 2011/04/23(土)17:14 ID:H3hA0vRV(1/2) AAS
Xファイルの中にある法線ベクトルのインデックス番号ってどうやったら取れるのですか?
頂点バッファと頂点インデックスまでは取れてます。
128(1): 2011/04/23(土)18:42 ID:0CpVWLj4(1/2) AAS
>>127
普通は頂点に位置とかUVとかと一緒に法線ベクトルそのものが入ってるよ。
129(1): 127 2011/04/23(土)19:33 ID:H3hA0vRV(2/2) AAS
>>128
ありがとうございます、法線ベクトルも取れました。
でも、せっかく取れた法線ベクトルですが、Xファイルから独自形式の(FVFで定義した)もので描画しようと思ったのですが、
法線ベクトルを頂点データに入れてもライティング効果がありませんでした。
struct VertexTex
{
public const VertexFormat Format = VertexFormat.Position | VertexFormat.Diffuse | VertexFormat.Normal;
省8
130: 2011/04/23(土)19:55 ID:0CpVWLj4(2/2) AAS
>>129
Mesh.FromFileで読み込んだMeshに、独自のVertexFormatを
後から定義したいということ?
とりあえず下の例ではXファイルから生成したMeshにNormal追加してるので参考に。
chsarpgamedev - Xファイルの描画
外部リンク[html]:www21.atwiki.jp
デバッガで法線ベクトルが正しそうな値が入っているのを確認して、かつ
省5
131: 127 2011/04/25(月)10:49 ID:xz94dpYm(1) AAS
上記のソースの一部を削除したらライティング処理ができました。
削除した所
//VertexFormat.Diffuse
//vert[n].Color = 取得した色
//public int Color
原因は、頂点データに色を付加してたからみたいです。
色は、別途マテリアルを適用させないといけなかったんですね。
132: 2011/04/26(火)08:04 ID:cWfiSBLo(1) AAS
Direct3D10/Direct3D11の詳細デバッグのやり方
ネイティブのDirectXとSlimDXの相関についてよく分かってなかったので検索しても把握できてなかった・・・
レベル低い話だけど、今後同じところで引っかかる人がいたときのために書いときます
つっこみ所あったら是非つっこんでください
?DebugViewダウンロード(VisualStudio Expressの場合。上位版は要らないらしい)
?DirectX SDKと一緒にインストールされるUtilitiesのDirectX ControlPanel起動
?DirectX 10.x/11タブのEdit Listにデバッグしたいプロジェクトのbin\Debug\フォルダあたりにある「.vshost.exe」拡張子のファイルを追加
省5
133(1): 2011/05/16(月)10:40 ID:XD0rb09K(1/2) AAS
プログラムを終了した時に出力ウィンドウに出てくる下記のメッセージは何を表しているのですか?
Object of type SlimDX.Direct3D9.Mesh was not disposed. Stack trace of object creation:
・・・
Total of 11 objects still alive.
134: 2011/05/16(月)10:52 ID:vb2M0wfD(1) AAS
リソースリークしてるぞってこと
Dispose忘れ
135: 133 2011/05/16(月)11:28 ID:XD0rb09K(2/2) AAS
なるほど、Disposeやっていませんでした。
ありがとうございます。
136: 2011/05/16(月)15:04 ID:SgNiWRkk(1) AAS
あ、最近のSlimDXはそんなこと教えてくれるのね。
対応するDirectX再頒布パッケージが強制的に新しくなっちゃうから、
長らく更新してないわ……。
137(1): 2011/05/16(月)22:48 ID:pYSUjBPJ(1/2) AAS
Dx11でコンピュートシェーダにMatrixを渡すにはどうすればいいんでしょうか?
ImmediateContext.ComputeShaderにはSetMatrix()のようなメソッドがなく、
コンピュートシェーダの.hlslファイルからfx_5_0プロファイルで無理やりEffectを作ってそこに渡してもシェーダー側には渡っていないようです。
138: 137 2011/05/16(月)23:23 ID:pYSUjBPJ(2/2) AAS
すいません、普通にサンプルの中に参考がありました…。
139: 2011/05/20(金)13:29 ID:GMn5NHik(1) AAS
slimDXで使えるFBXやColladaのローダはないでしょうか?
140(2): 2011/07/11(月)12:42 ID:piNnRBf/(1/2) AAS
描画エリアのリサイズをしようと思って、
PresentParameters pp = new PresentParameters()
{
BackBufferWidth = FormWidth, // フォームの幅と高さ
BackBufferHeight = FormHeight,
};
device.Reset(pp);
省4
141(1): 2011/07/11(月)14:51 ID:ZpoF+bdP(1) AAS
>>140
リソースの開放忘れ。
142: 140 2011/07/11(月)16:06 ID:piNnRBf/(2/2) AAS
>>141
一旦開放して再確保したらできました。
143: [age] 2011/08/07(日)18:11 ID:XCPITJXM(1) AAS
あげ
144: 2011/08/15(月)13:06 ID:dzreDaU2(1) AAS
そういえば、SlimDXでDirectX11による開発ってできるんですかね?
むしろVista以降をターゲットにした開発および開発環境整えた猛者はいますか?
145: 2011/08/16(火)16:45 ID:7U3gvwlZ(1) AAS
Vista以降をターゲットにするなら、SlimDXよりもMS謹製のライブラリのほうがいいと思うよ。
サポートされる範囲も多いし。
146(2): 2011/08/18(木)14:49 ID:u3BnXhrZ(1/2) AAS
SlimDXのソースって公式以外であまりアップされていないですか?
147: 2011/08/18(木)16:52 ID:Hrsxw23E(1) AAS
>>146
なぜ公式以外がアプデートする必要がある?
148: 146 2011/08/18(木)17:23 ID:u3BnXhrZ(2/2) AAS
本体のソースではなくて、slimdxで作られたソースの方です。
Web上にslimdxで作成されたサンプルが無いのかなと思ったのです。
149(1): 2011/08/28(日)15:01 ID:EyimipZI(1) AAS
XPでSlimDXは使えますか?
付属のサンプルを動かそうとしたらInitializeDeviceの行のところで決まって
D3DERR_INVALIDCALL: Invalid call (-2005530516)やSEHExceptionのエラーが出るんですが
150(1): 2011/08/28(日)15:56 ID:QGmHgfHf(1) AAS
使えます
151: 149 2011/08/28(日)16:51 ID:+1/bzXgn(1) AAS
>>150
ありがとうございます
となるとグラボの問題かなあ
152: 2011/09/03(土)11:47 ID:vPbwbx1g(1) AAS
DirectXがちゃんとインスコできてないとか
153(1): 2012/01/30(月)16:24 ID:fTr7E4NX(1) AAS
SlimDX.dllをアプリと一緒に配布するときには
readme.txtか何かにライセンスの文章を載せておかないとだめでしょうか?
154: 2012/01/31(火)16:42 ID:cvEf5Ssb(1) AAS
>>153
確かライセンスはMITだったと思うので、それにあわせておけば良い。
ReadmeやHelp(このソフトについて)でライセンス表記をやっておく。。
155: 2012/01/31(火)16:56 ID:hy1DRM+Q(1) AAS
ついでにすみませんが、これって商用もOKなんですか?
156: 2012/04/17(火)23:24 ID:o6MO9aSs(1/2) AAS
ダウンロードした
157(1): 2012/04/17(火)23:33 ID:o6MO9aSs(2/2) AAS
SharpDXとどっちがいいの?
158(1): 2012/04/18(水)03:35 ID:zzmnGwMP(1) AAS
これダウンロードしたんだけど、サンプルフォルダがない
公式にもそれらしいのがないし、一気にヤル気失せた
159: 2012/04/18(水)23:07 ID:jD8EzovV(1) AAS
>>158
今は知らないけど、昔はソースコードをダウンロードしたら、
SDKのソースと一緒にサンプルのソースも付いてたんだけどね。
160: 2012/04/19(木)00:15 ID:QU9JTAnb(1) AAS
気になったので見てみたら最新のSDKには存在しないね
161(1): 2012/04/20(金)11:58 ID:MteNe/qx(1) AAS
>>157
個人でSlimDXで開発してた人もSharpDXに移り始めてるし
有名なライブラリや描画エンジンでもSharpDXが使われているので
これからはSharpDXが主流になりそうだよ
まあこのスレでSharpDXの話をするのもなんだし
SharpDXのスレたててもいいかもね
日本語の情報がほとんど無いから情報交換にも良いと思う
162: 2012/04/20(金)16:00 ID:HYMavAP6(1/2) AAS
>>161
SlimDXと比較して、SharpDXってどんなところがいいの?
上下前次1-新書関写板覧索設栞歴
あと 35 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.022s