【C++】 DirectX初心者質問スレ Part38 【C】

このエントリーをはてなブックマークに追加
1デフォルトの名無しさん
回答する人も、質問する人も必ず読んでください

これらに当てはまる人のための質問スレです。
1.C/C++は多少理解している。
2.最近DirectXを始めたばかり
3.SDKを見ても、Googleで検索しても、いまいち理解できない人
4.余計な雑談は不要ですよ

【 回答してくださる方 】
・ できるだけ優しく質問に答えてあげてください。
・ 優しく教えるのが嫌でしたら、解決するためのヒントだけでも結構です。
 「ググれ」「SDK見れ」以外の回答でおながいします。
・ 神ですら理解不能な質問は無視して下さい。

【 質問する方 】
・ どんな事で躓いているのか明確にしよう。
・ 長くならないなら躓いている部分のコードを晒してみれ。
・ 解決した場合、お礼を言うのは当然だが、何をどうしたら解決したかを明確に書こう。
・ 回答して貰ったら、出来るだけお礼もしよう。

>>2リンク
2デフォルトの名無しさん:2013/06/01(土) 00:57:03.52
現在の最新バージョンはDirectX 11.1です。

Games for Windows and the DirectX SDK
http://blogs.msdn.com/b/chuckw/

DirectX Tool Kit
https://directxtk.codeplex.com/

DirectXTex texture processing library
https://directxtex.codeplex.com/

C#でDirectX又はXNA系の情報を探してる人は
MonoGame
http://www.monogame.net/

SharpDX
http://sharpdx.org/

【C++】 DirectX初心者質問スレ Part37 【C】
http://toro.2ch.net/test/read.cgi/tech/1338850300/
3デフォルトの名無しさん:2013/06/01(土) 01:31:38.18
>>1
4デフォルトの名無しさん:2013/06/01(土) 03:22:18.32
windowsプログラミングはテンプレでいいよね
5デフォルトの名無しさん:2013/06/01(土) 22:39:56.69
.obj形式のファイルに複数のマテリアルが設定されている場合、どうやって関連づければいいか教えてください。
6デフォルトの名無しさん:2013/06/01(土) 23:28:25.76
マテリアルごとにメッシュのグループを形成するだけで、
関連づけとか意味不明。
7デフォルトの名無しさん:2013/06/03(月) 04:29:09.56
               ノ      ゚.ノヽ  , /}      ...
            ,,イ`"     、-'   `;_' '    ..::::::::::::::...
   ,-、  _.._   (        (,(~ヽ'~     ..:::::::::::::::::::::::
 )'~  レー'  〉   ヽ       i`'}       .:::::::::::::::::::::::
 ~つ     '-ー、  i       | i'     ...:::::::::::::::::::::::
 /       <  /     。/   !  ......:::::::::::::::::::::::::    これは>>1乙じゃなくて
/         ~^´     /},-'' ,●::::::::::::::::::::::::::::::::::::
i、        ,i' _,,...,-‐-、/    i  ::::::::  .:::::::::::::
..ゝ        <,,-==、   ,,-,/      .:::::::::::            放射能がうんたら
 )       {~''~>`v-''`ー゙`'~       ..:::::::::                          ........::.
 {        レ_ノ            ..::::::::.                         ......:::::::::
ノ         ''           ..:::::::                        ...::.:...:::::::::
                     .:::::::::                     ...:......:::::::::::: .
                    .:::::::::::.        .....      ..  ..::::::::::::::::::::::::   :::.
                    ::::::::::::::::.::::::....:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::.. ::  ::..
                    .:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: :::    ::.
                    ::::::::::::::::: :::::::::::::::::::::::::::::: :::::
                          .::    ::.  :::
8デフォルトの名無しさん:2013/06/04(火) 08:04:41.98
質問させてください

C言語とDXライブラリの組み合わせでプログラミングする際に
必須となるマシンスペックはどのくらいでしょうか?

14歳からはじめるC言語入門
についてくるサンプルが動くマシンと動かないマシンがあるので。
9デフォルトの名無しさん:2013/06/04(火) 08:05:41.71
Pen4
1GHz
Windows2000
くらいで大丈夫
10デフォルトの名無しさん:2013/06/04(火) 17:04:40.71
ありがとうございます。
Pen2
128MB
266Mhz
WindowsXP
だと動きませんでした

Pen3
256Mhz
500Mhz
WindowsXP
だと動きました
11デフォルトの名無しさん:2013/06/04(火) 18:12:28.01
DWORDの宣言を見ると
typedef unsigned long DWORD
となっているが
なぜlongの名前をかえてDWORDにしてるの?
longのままじゃ不都合があるの?
12デフォルトの名無しさん:2013/06/04(火) 18:21:33.45
ああ、不都合があるよ。32bitから64bitとかに移った時とかな
てかそれをここで聞くか?
13デフォルトの名無しさん:2013/06/04(火) 18:26:37.60
算術シフトしたら面倒だし。
14デフォルトの名無しさん:2013/06/04(火) 19:48:53.39
開発中のアプリでフルスクリーンモード的なのを搭載したいのですが、
モニタの縦横比の違いで画面が歪むことが予想されます
最新のエロゲとかですらそんなのばっかりです

そこでウィンドウモードでウィンドウの大きさを変えるだけの方が
楽でほぼ同等の効果が得られるのでいいかなと思っているのですが、変なやり方じゃないでしょうか?
15デフォルトの名無しさん:2013/06/04(火) 21:50:54.77
変です
16デフォルトの名無しさん:2013/06/04(火) 21:52:45.97
ウィンドウモードのままウィンドウを全(前)面にするって意味?
ネトゲあたりはよく搭載してる方式だし別に変じゃないと思うよ

ちゅーかアスペクト比が狂うなら、そこ直すんじゃなくて
オフスクリーンにシーン全体描いて、バックバッファに転送する時に
自前でボックス挟むようにするのが先だと思うが
17デフォルトの名無しさん:2013/06/04(火) 23:20:20.51
極まれだが、フルスクリーンで縦横比ディスプレイが原因の時がある
多くのゲームでその現象が起こるのなら可能性は跳ね上がるぞ
18デフォルトの名無しさん:2013/06/04(火) 23:22:43.27
途中で書き込んでしまった・・・
フルスクリーンで縦横比がおかしくなる現象はディスプレイが原因になる場合があるって意味だ(´・ω・`)
19デフォルトの名無しさん:2013/06/04(火) 23:42:15.52
まあ大昔と違って、GPU自体にアスペクト比を保てるようなスケーリング機能があるはずなんだが
ドライバのバージョンやモニタの相性によって有効にならん時も多いからなあ

そういう場合はアプリ側に仮想スクリーンの機能があると印象が良いだわね
2011:2013/06/05(水) 02:23:15.57
ごめん
詳しく教えてほしい
21デフォルトの名無しさん:2013/06/05(水) 02:45:19.08
C(C++)のルールでlongはint以上としか定義されてない
環境によってlongは16bitだったり64bitだったりする可能性もある。
windowsSDKではDWORDは符号なし32bit固定で使いたいので
環境ごとの符号なし32bitに対応させてtypedefしてる。

コンパイラとかマシンが変わってもコードをなるべく書き換えなくていいようにする仕組みだと思えば良い
22デフォルトの名無しさん:2013/06/05(水) 05:05:42.28
DirectX11でのレイピックのしかたが分からんちん
ぷりぃずへるぷみぅ
23デフォルトの名無しさん:2013/06/05(水) 07:04:57.42
レイピックにDirectXのバージョンは関係ない。
24デフォルトの名無しさん:2013/06/05(水) 08:54:23.63
>>21
解りやすいよ
詳しくありがと
25デフォルトの名無しさん:2013/06/05(水) 09:10:52.67
>>23
D3DXIntersectに相当するものが見つからなくてさ
自前で判定しなきゃダメかー、諦めて算数勉強しなおしてくる
26デフォルトの名無しさん:2013/06/05(水) 17:44:53.28
DirectXMathならDirectX::TriangleTests::Intersectsてのがあるべ
メッシュライブラリを何使ってるかによるだろうが
三角形の頂点座標が取得できてるならこれでいけるべ
27デフォルトの名無しさん:2013/06/05(水) 18:34:22.08
>>26
うほっ!あったw
さんくす愛してる、ちゅっちゅっ
28デフォルトの名無しさん:2013/06/07(金) 10:34:49.86
今度はDirectX11.1縛りだとCModelViewerCameraのGetぼげほげMatrixが使えんとな
11は見通しが悪いわ検索しても引っ掛からんわでお手上げ

目的はリアルの座標をワールド座標に変換する事によって俺が二次元の世界の住人にげふんげふん
マウス座標の一番出前でぶち当たった平面を判定するまでに必要になる
ワールドプロジェクトビューポート辺りの行列かそれに準ずるモノを取得するメソッド名だけでも知りたい
誰か知ってたらおすえてけんろ;
2922:2013/06/07(金) 11:25:44.14
書いてから思った
9の頃から最初は初期化とかとか本とか転がってるコードに頼りっぱなしで
そもそも設定の仕方とか全然理解してないんだな俺
出直してくる

λ......
30デフォルトの名無しさん:2013/06/07(金) 11:27:49.38
少年はかくして大人への階段を一歩のぼった
31デフォルトの名無しさん:2013/06/07(金) 21:08:26.76
解ってきたかも
どう射影するかはバーテクスシェーダ次第だからDirectXとかライブラリの類じゃどうしようもないのか

くっそめんどくせぇぇええぇぉぇいぅははははだめだこりゃ
また行列から勉強し直してくる orz=3
32デフォルトの名無しさん:2013/06/08(土) 01:29:37.60
ブログに書いてろゴミ
33デフォルトの名無しさん:2013/06/10(月) 00:06:07.33
d3dx11d.lib がinclude出来ないとエラーが出るのですが、どうすればいいのでしょうか?

環境はwindows8の64bitでvisual studio 2012 for windows desktopです。
追加のインクルードディレクトリにはIncludeと\Lib\x86を追加しています。
34デフォルトの名無しさん:2013/06/10(月) 00:48:28.85
d3dx11d.libってことはWindows 8 SDK以前のプロジェクトをビルドしようとしてるんだろうけど

>Includeと\Lib\x86
これどこのよ。自分でインストールしたDirectX SDK?
書き間違えなだけかもしれんが一応突っ込んでおくと
Lib\x86を追加するのはインクルードじゃなくて「ライブラリ」ディレクトリな
35デフォルトの名無しさん:2013/06/10(月) 04:49:39.69
>d3dx11d.lib がinclude出来ない
36デフォルトの名無しさん:2013/06/10(月) 13:21:01.56
SDKをインストールしたとは一度も言っていない

たぶんサンプルのソースか何かで
どのバージョンを使ってるかも意識してないんだろうな
37デフォルトの名無しさん:2013/06/10(月) 23:50:08.65
>>33
インクルードディレクトリにInclude
ライブラリディレクトリにLib\x86を追加するんだ
38デフォルトの名無しさん:2013/06/11(火) 00:11:18.03
windows8でvisual studio 2012なんだろ・・・?
そんな面倒なことしなくてもdirectXは動くんだぜ
39デフォルトの名無しさん:2013/06/11(火) 00:57:32.71
ところがね、Windows 8 SDKだとD3DXが付属してないので
例えばDirectX SDKのサンプルのような2010以前のプロジェクトを
%DXSDK_DIR%にパスを通さずビルドしようとすると、この手のエラーが出るのよね
40デフォルトの名無しさん:2013/06/12(水) 00:15:58.13
キャラクタ画像を用意してビルボードで表示しているんだけど
画像のα値> 0 に設定している部分は深度バッファに書き込んで
画像のα値= 0 に設定している部分は深度バッファに書き込みたくないんだ
どうすればいいかな?
41デフォルトの名無しさん:2013/06/12(水) 00:41:20.79
書き込みたくないときだけ深度バッファをNULLにすればいいだろ
42デフォルトの名無しさん:2013/06/12(水) 00:52:20.21
ああ、勘違いしてたわ・・・ステンシルバッファみたいなことしたいって意味か
directX9ならここでも見てみたらどうだ?

ttp://marupeke296.com/DXG_No18_WhatIsStencilBuffer.html
43デフォルトの名無しさん:2013/06/12(水) 01:15:07.00
後出し情報すみません、DirectX11 です
ステンシルバッファを使う方法は確か無理だったはずです

ステンシルテスト → 深度テスト → ピクセル描画
の流れだったと思うのですが、ピクセル描画の際にα値が 0 であるならば
ステンシル・深度テスト通過時に書き込んだ情報をなかったことにする
ということがやりたいことです
44デフォルトの名無しさん:2013/06/12(水) 01:26:30.02
アルファトゥカバレッジで代替できんか?
45デフォルトの名無しさん:2013/06/12(水) 01:46:53.16
んじゃピクセルシェーダのコードにアルファ値が0ならdiscardするようにすればいいんじゃないか?
確か深度バッファにも出力しなくなるハズだが

if(Color.w == 0)
discard;
こんな感じだ
46デフォルトの名無しさん:2013/06/12(水) 01:48:12.00
できました!!  ありがとうございます
47デフォルトの名無しさん:2013/06/12(水) 01:51:26.92
ん?アルファトゥカバレッジの方で解決したのか?
48デフォルトの名無しさん:2013/06/12(水) 02:13:48.14
アルファトゥカバレッジの方でできました!!  はずでした・・・
閾値が 0.5 と思ったより高かったので、思った動作になりませんでした
軽くググってみたのですが、閾値を設定する方法はないみたいですね

discard ってステンシルバッファへの書き込みはしないんですね
MSDN の説明をみるとてっきり書き込みされるものかと思ってました

discard のほうでやりたいことを実装出来ました
いろいろな方法を教えていただき、ありがとうございます
49デフォルトの名無しさん:2013/06/13(木) 20:57:41.79
#define VERTEX_T_FVF ( D3DFVF_XYZ | D3DFVF_DIFFUSE | D3DFVF_TEX1 )

の FVF ( の隙間を消すとエラーになるんだけどなんで?
50デフォルトの名無しさん:2013/06/13(木) 21:12:22.02
マクロだから
51デフォルトの名無しさん:2013/06/13(木) 21:23:26.96
>>49
DirectXに関係ない文法の話を書くなクズ
52デフォルトの名無しさん:2013/06/13(木) 23:08:55.73
>>49
初心者とかそういうのをぬきにして向いてないというほかない
53 忍法帖【Lv=2,xxxP】(2+0:5) :2013/07/07(日) NY:AN:NY.AN
directx11.2対応のビデオカードってgeforce8xx/radeonHD9xxxからかな?
win8.1と新Xbox専用というからにはJaguarのiGPUは対応するはず。
intelのiGPUはbroadwellで対応するのだろうか。
54デフォルトの名無しさん:2013/07/13(土) NY:AN:NY.AN
Haswellって一応仕様は11.1になってるんだな
持ってないから実際には調べられないけど
55デフォルトの名無しさん:2013/07/16(火) NY:AN:NY.AN
http://blogs.msdn.com/b/chuckw/archive/2012/08/22/directx-sdk-s-of-a-certain-age.aspx

これ更新されてた
11.2関連を追加してのかな
56デフォルトの名無しさん:2013/07/16(火) NY:AN:NY.AN
どうもそうっぽいね。
57デフォルトの名無しさん:2013/07/19(金) NY:AN:NY.AN
SDKのサンプルしか実行出来ないのだが…何故?
58デフォルトの名無しさん:2013/07/20(土) NY:AN:NY.AN
なんの話だよ
59デフォルトの名無しさん:2013/08/17(土) NY:AN:NY.AN
ネタがないな
directxtoolkitのreadme翻訳してくれてる人がいた

http://www.enoie.net/blog/?p=8254
60デフォルトの名無しさん:2013/08/20(火) NY:AN:NY.AN
Directx9で、リアルタイムで色が変化するタイルマップを作りたいです

頂点色をリアルタイムに変更して描画したいですが、方法が分かりません

初心者の私に知恵を授けて頂けないでしょうか?
61デフォルトの名無しさん:2013/08/20(火) NY:AN:NY.AN
>>60
動的頂点更新だね。
Lock、Unlockで検索してみて。
62デフォルトの名無しさん:2013/08/20(火) NY:AN:NY.AN
>>61
早速調べてみます
ありがとうございます
63デフォルトの名無しさん:2013/08/21(水) NY:AN:NY.AN
Portする人向けのお話

Living without D3DX

http://blogs.msdn.com/b/chuckw/archive/2013/08/21/living-without-d3dx.aspx
64デフォルトの名無しさん:2013/08/21(水) NY:AN:NY.AN
ありがてぇ!
65デフォルトの名無しさん:2013/08/24(土) NY:AN:NY.AN
DirectXのD3DXCreateTextureFromFileEx関数で画像の縦横サイズ指定しても、
反映されない(スプライトいっぱいに引き伸ばされる)んですがどうしたらいいですか?

IDirect3DTexture9* pTexture = NULL;
D3DXCreateTextureFromFileEx(pDevice3D,_T("unko.bmp"),32,32,0,0,D3DFMT_UNKNOWN,D3DPOOL_MANAGED,D3DX_FILTER_POINT,0,0,0,0,&amp;pTexture);
66デフォルトの名無しさん:2013/08/24(土) NY:AN:NY.AN
パラメータで引き延ばすように自分で設定しているからだ。
アホか。
67デフォルトの名無しさん:2013/08/24(土) NY:AN:NY.AN
>>66
すみません、具体的にはどういう設定なんでしょうか?
68デフォルトの名無しさん:2013/08/24(土) NY:AN:NY.AN
使っている関数のヘルプぐらい読めよ。
69デフォルトの名無しさん:2013/09/03(火) 16:42:12.36
DirectX11でのシェーダの質問です
単色ポリゴンとスプライト(ポリゴン+テクスチャ)を描画するためのシェーダは切り替えずに描画できますか?
70デフォルトの名無しさん:2013/09/03(火) 21:41:12.22
Direct3D11(SM5.0)なのですが
ポストプロセスをしたいので、ピクセルシェーダからUAVに出力して、
何らかの処理をしてから、それをスワップチェーン内のバックバッハに描画したいのですが、
最後にバックバッハに描画する時、やっぱりRTVの使えるピクセルシェーダを通す必要があるのですか?
それだと、バックバッハ全体を占めるクアッドを用意する必要がありませんか?
71デフォルトの名無しさん:2013/09/03(火) 21:45:39.95
>>70
まずは日本語を勉強しろ
72デフォルトの名無しさん:2013/09/03(火) 21:59:00.95
>>71
どこに問題がありますか?

最後にピクセルシェーダを通して描画をするとすると、頂点シェーダが必要だから、
ポストプロセス済リソースをマップした四角形ポリゴンを用意する必要があるのではないですか?
大変な無駄だと思うのですが…。

ポストプロセスを実行するまでは良いのですが、その結果をどのようにして画面に描画するべきかわからないです。
73>>70, >>72:2013/09/03(火) 22:09:30.35
失礼致しました。これは自分でどうにかするべき問題であるようです。お騒がせして申し訳ありませんでした.
74デフォルトの名無しさん:2013/09/03(火) 22:09:36.25
>>72
四角形ポリゴンを用意する必要があるに決まっています
75>>70, >>72:2013/09/03(火) 22:14:12.67
>>74
なんと、、、やはりそうなのですね。

どうにかしてバックバッハのUAVを作成しようとしたのですが…むづかしいみたいですね。

勉強になります。ありがとうございました!
76デフォルトの名無しさん:2013/09/03(火) 22:41:29.72
>>69
頂点色(あるいは定数バッファで設定した色)×テクスチャのシェーダーにしておけば、

頂点色のみで描画したい場合 → 頂点色×白テクスチャ
テクスチャを描画したい場合 → 頂点色(白)×チェクチャ色

で統一できる。
77デフォルトの名無しさん:2013/09/04(水) 19:26:00.98
UAV作るのにバッファを用意してるだろ?
だったらバックバッファにUAVに使ってるバッファをコピーすればいいだけの話
もちろん同じサイズじゃないとだめだけどな
78デフォルトの名無しさん:2013/09/05(木) 17:50:49.11
>>77
ありがとうございます、やってみます。
79デフォルトの名無しさん:2013/09/05(木) 21:26:37.11
>>77
できました!
バックバッファ(スワップチェーン)とUAVのリソースを DXGI_FORMAT_R8G8B8A8_UNORM で、
HLSL側のUAVリソース宣言を RWTexture2D<float4> で ID3D11DeviceContext::CopyResource() を呼んだら、何も問題なく動きました。
本当に助かりました! すごい
8074:2013/09/05(木) 21:42:13.38
普通バックバッファと描画バッファの大きさ同じだよな… スマソ
81デフォルトの名無しさん:2013/09/08(日) 03:17:21.20
DirectX、面白そうだなと本を買ってサンプルを実行したが、
いきなり「fatal error LNK1104:」というものにぶち当たっている

ググっても「パスの指定が間違っている」としか出てこないし
それ以外に見直すべき設定とかありますか?
82デフォルトの名無しさん:2013/09/08(日) 07:07:36.59
はい
もちろん
83デフォルトの名無しさん:2013/09/08(日) 09:59:30.83
初学者にとってはコンパイルに成功するまでが試練。
84デフォルトの名無しさん:2013/09/08(日) 10:29:01.19
本で使っている DX と インストールしてるDXのバージョンが違うという罠ではないか
85デフォルトの名無しさん:2013/09/08(日) 15:02:30.26
なんかのサンプルを適当に実行しようと思うのが間違いだと思う。
helloWorld的なdirectXを初期化するためのプログラムをまず組むべき
86デフォルトの名無しさん:2013/09/08(日) 19:40:27.43
なんかのサンプルを適当に実行してみようと思うのは別に間違いじゃないと思うよ。
81は本のサンプルじゃなくてMSのDirectX SDK(つまり11以下)のサンプルのビルドはできるくらいなの?
87デフォルトの名無しさん:2013/09/08(日) 19:48:36.03
おまえらSDKインストールしたことないの?
サンプルブラウザとか立ち上げたこともないの?
DXSDKはサンプルのバイナリ入ってるだろ

それはそれとして、インストールしたのにサンプルが実行できないならほかに原因があるな
インストールしたSDKとは別のサンプルなんじゃねぇの?
馬鹿丸出し?
88デフォルトの名無しさん:2013/09/08(日) 20:39:29.41
VC2012に入っているSDKだけでコンパイルが通るように、
D3DXとか必要性のないものは全て切り離した。
おかげでいちいちDirectXのSDKを気にする必要がなくなってさっぱりしたよ。
89デフォルトの名無しさん:2013/09/08(日) 21:01:57.08
同感。
D3DX切り捨ては英断だよ。
90デフォルトの名無しさん:2013/09/08(日) 21:06:57.79
D3DXとかDirectXTKとか気持ち悪い気がして使う気になれない
91デフォルトの名無しさん:2013/09/08(日) 22:25:44.90
テクスチャ作りかたが分からないからそこだけ利用してる
92デフォルトの名無しさん:2013/09/08(日) 22:40:05.77
テクスチャの読み出し部分はGDI+で簡単に代用できる。
93デフォルトの名無しさん:2013/09/09(月) 01:58:35.72
シェーダはバイナリ用意して突っ込むの?
94デフォルトの名無しさん:2013/09/09(月) 07:14:48.99
VS2012なら統合環境にシェーダコンパイラ標準装備。
それとDirect3D10とVista以降ならOS側にコンパイラ標準装備。
95デフォルトの名無しさん:2013/09/11(水) 07:32:59.94
(*´・∀・)(・∀・`*)ヘー
96デフォルトの名無しさん:2013/09/12(木) 02:06:51.59
D3DXと違ってDirectXTKやTexみたいにみたいにオープンで
随時更新していくってのはいいと思う
97デフォルトの名無しさん:2013/09/16(月) 22:44:41.11
98デフォルトの名無しさん:2013/09/17(火) 00:36:31.62
D3DXVECTOR3ってどこのヘッダファイルで定義されてますか?
d3d9.hとd3dx9.hをインクルードしているんですが、定義されていないと出てしまいます
99デフォルトの名無しさん:2013/09/17(火) 01:11:15.96
>>98
おまえには開発をやるセンスがない
100デフォルトの名無しさん:2013/09/18(水) 01:15:41.62
3D空間上のZ=0の位置に平面マップを表示してます
マップを回転する機能を追加するときに
ピコーン!マップじゃなくてカメラを回転すればいいんだ!
と思いカメラをz軸中心に回転させてみました

所が、90度回転させた状態でカメラを左右に移動(カメラのx座標値を変化)させようとすると上下に移動しちゃいます

マップを回転する時はマップ全体を回転するのが一般的なんでしょうか?
101デフォルトの名無しさん:2013/09/18(水) 01:17:34.56
>>98
d3dx9math.h
102デフォルトの名無しさん:2013/09/18(水) 07:17:06.34
そりゃまぁ、z軸に回して単純に移動行列にをかければな・・・
103デフォルトの名無しさん:2013/09/18(水) 07:20:48.62
>>100
左右移動のベクトルに回転をかけておけばいいだけの話
104デフォルトの名無しさん:2013/09/19(木) 10:26:53.60
>>103
>>102
なるほど!!勉強になります
ありがとうございました
105デフォルトの名無しさん:2013/09/19(木) 16:00:51.59
Windows8.1で新設されるDirectX11.2ってDX11までの機能しか使わなければ
DX11のVistaやDX11.1一部対応のWin7でも動くと考えて良いのですかね?
流石に古いOS全滅だとシャレにならないので…
(DX9cとかだとSDKの更新とかでDX9cを使ってても
Win2kやWin9xでは動かないプログラムになったりしたはずだけど…)
106デフォルトの名無しさん:2013/09/19(木) 16:16:35.62
uni糞code
107デフォルトの名無しさん:2013/09/23(月) 08:25:45.01
http://blogs.msdn.com/b/chuckw/archive/2013/09/20/directx-sdk-samples-catalog.aspx?wa=wsignin1.0

便利なリンク集
Tutorial08-10なんて以前あったっけ?
108デフォルトの名無しさん:2013/09/27(金) 09:19:13.10
Windows SDK for Windows 8 を
スタンドアロンマシンにインストールする方法はありますか?
109デフォルトの名無しさん:2013/09/28(土) 10:41:02.42
VisualStudioをメディアに焼いてインストールするってのは駄目なの?
110デフォルトの名無しさん:2013/09/30(月) 13:45:54.86
イメージのダウンロードが見つからんな 探し方が悪いんだろうけど
111デフォルトの名無しさん:2013/09/30(月) 13:53:50.79
>>110
探し方が悪いんじゃない
頭が悪いんだ
112デフォルトの名無しさん:2013/09/30(月) 15:23:52.64
質問です。
D3D11のD3D11_PRIMITIVE_TOPOLOGY_POINTLISTで描かれる頂点の大きさを変更するにはどうしたら良いですか?
ググってみても全然引っかかりません。
ジオメトリシェーダでなければ出来ないとかありますか?
113デフォルトの名無しさん:2013/09/30(月) 15:25:30.07
>>112
探し方が悪いんじゃない
頭が悪いんだ
114デフォルトの名無しさん:2013/10/01(火) 13:50:03.21
まあ、pointは大きさ変えられんしな
115112:2013/10/01(火) 15:05:01.86
>>114
まじすかorz
でもそれが分かっただけでも大収穫です!!
常に1pxでマルチサンプルを有効にするとちかちかする。これが仕様なんですね。
ジオメトリシェーダに頂点渡して四角ポリゴンを返すようにします。
さんくす!!
116デフォルトの名無しさん:2013/10/02(水) 08:31:09.39
ちなみにLineの太さも変えられないからな
117デフォルトの名無しさん:2013/10/02(水) 09:11:12.81
思いっきりLineとwidthでググってましたw
ポリゴンとLineを同時に表示すると前後関係が曖昧になってLineが欠けたりするんですよね。
シェーダで何とかしてみます。
118デフォルトの名無しさん:2013/10/23(水) 20:50:59.02
今から勉強するとしたらDirectX9.0がいいの?それともやっぱりDirectX11.0を勉強したほうがいいの?
119デフォルトの名無しさん:2013/10/23(水) 20:53:34.37
>>118
それを自分で判断できるように頭を鍛えろ
120デフォルトの名無しさん:2013/10/23(水) 20:56:34.00
>>119
個人的にDirectX9.0のが無難かなとは思って売るんだけど、来年XPのサービスきれたら9.0は居場所なくなるんじゃないかとおもって迷ってた
121デフォルトの名無しさん:2013/10/23(水) 21:16:39.85
D3DXと決別するのなら、シェーダコンパイラがOS側に実装されている、
Direct3D11を使うのをおすすめする。
122デフォルトの名無しさん:2013/10/23(水) 21:51:24.76
自分も11をオススメする。
123デフォルトの名無しさん:2013/10/24(木) 01:37:16.19
11で9のハードウェアをターゲットに出来るって最近しった
124デフォルトの名無しさん:2013/10/24(木) 01:46:26.29
>>123
まじかよ俺のXP搭載化石PCちゃんまだしばらく息できる?
125デフォルトの名無しさん:2013/10/24(木) 01:53:25.74
DirectX11のエンドユーザーランタイムはもちろん必要
つまりOSはVista以降
126デフォルトの名無しさん:2013/10/24(木) 06:05:45.54
http://blogs.msdn.com/b/chuckw/archive/2013/10/18/visual-studio-2013-and-windows-8-1-sdk-rtm-are-now-available.aspx

新しいSDKとVSのお話それに伴い過去の記事が更新されてる
Expressの場合PIXがDesktop版じゃなくWindows(Store用)の方にしか入ってないらしい
127デフォルトの名無しさん:2013/10/24(木) 09:48:43.54
D3D10以降のモデルデータ読み込みってどのようにしていますか?
D3DXLoadMeshFromXと同等のものを作りたいです。
128デフォルトの名無しさん:2013/10/24(木) 13:09:18.54
>>127
作ればいいだろ
OpenGLと共通のフォーマット決めて、ライブラリ化して使ってる
iOS、Androidでも使うからな

最初はFBXでも使っとけ
129デフォルトの名無しさん:2013/10/24(木) 22:43:27.50
流石にxファイルはコンバートしちゃった方がいいような気がする
130デフォルトの名無しさん:2013/10/24(木) 23:05:29.44
極論すれば、保存用のデータフォーマットなんてどうでもいいんだよ
メモリ上で保持するフォーマットをしっかり決めて、そのデータを操作する処理をライブラリ化する
コンバートなんていくらでもできるだろ?
D3DXはUserDataを処理できて便利だったけど、D3DXが廃止なので現状は自作が妥当
131デフォルトの名無しさん:2013/10/25(金) 00:08:17.14
自分が使っているモデリングソフトのプラグインを作って、
好きな形式で吐き出せばいいだけの話。
132デフォルトの名無しさん:2013/10/25(金) 15:26:27.41
TiledResources怖い
即ブルースクリーン
133デフォルトの名無しさん:2013/10/25(金) 15:36:52.45
そうなの?w
134デフォルトの名無しさん:2013/10/26(土) 04:01:24.61
DirectX11を使用していて、あるシーンのデプスマップ(Z値を画像化したもの)を出力したいのですが
深度ステンシルテクスチャをD3DX11SaveTextureToFileを利用して出力しようとしたところ、上手くいきませんでした(画像が生成されない)
どのような方針でプログラミングを行えば、デプスマップを画像として出力できるのか、ご教授お願いします
135デフォルトの名無しさん:2013/10/26(土) 04:26:02.87
色じゃなくてZ値書き込むシェーダでも書けばいいんでないかい?
136デフォルトの名無しさん:2013/10/26(土) 07:31:52.37
>>134
マルチサンプリングしてる?
だとしたら、一旦マルチサンプルじゃないテクスチャにコピーしたらいけるかもしれないよ。

http://maverickproj.web.fc2.com/d3d11_04.html
http://maverickproj.web.fc2.com/d3d11_01.html

コピーにはID3D11DeviceContext::ResolveSubresourceというAPIを使うらしい。
これ知らなかったなぁ。
137デフォルトの名無しさん:2013/10/26(土) 10:14:31.31
DirectXMath.hのXMMATRIXをd3dx9のLPD3DXEFFECTのSetMatrix関数で使う方法と
DirectXMathとd3dx9mathを物理演算の為に倍精度で使用する方法があれば教えてください。
138デフォルトの名無しさん:2013/10/26(土) 10:36:28.62
>DirectXMath.hのXMMATRIXをd3dx9のLPD3DXEFFECTのSetMatrix関数で使う方法
XMMATRIXのメンバをD3DXMATRIXにコピーするしかないんでねーの?

>DirectXMathとd3dx9mathを物理演算の為に倍精度で使用する方法
ムリなんじゃないかな・・・
139デフォルトの名無しさん:2013/10/27(日) 15:47:28.32
device.SetRenderTargetで約16msかかるけど、こんなもん?
ってまさかPresentで止まってるのか
140139:2013/10/27(日) 17:36:10.70
あー
present中はlockされるんだな
141デフォルトの名無しさん:2013/10/27(日) 18:05:53.69
directx june 2010sdkで作成した自作ゲーム(32bit)が
起動させると、偶に動作が全体的に重たくなる現象が発生します
効果音、BGMは正常に再生されます
PC環境は CPU i7、メモリ8G、HDD 700G、windows8(64bit)、Directx11runtimesのノートです

そういう時その自作ゲームを終了して
他のゲームを動作させてみたら問題なくプレイできました
こういう場合、PCを再起動すると、自作ゲームの速度は正常になります
以前使っていたノートではそういう現象は全くありませんでした

どなたか原因がわかる方、ご教授願えないでしょうか
142141:2013/10/27(日) 18:09:05.30
追記

自作ゲームは内部で特別な事をしているわけではなく
強いて挙げれば
BGMに2〜3個の10メガ以上のWAVをメモリに全て読み込んで
ストリーミングではなく、そのまま再生しています

ゲームではd3dx9_43.dllを使っています
143デフォルトの名無しさん:2013/10/27(日) 18:17:18.02
エスパーレスしろとな?
144デフォルトの名無しさん:2013/10/27(日) 18:20:05.60
>>143
馬鹿にかまうな
145141:2013/10/27(日) 19:58:28.94
自己解決しました
diectxとは全然関係ない部分が原因と判明
wait処理のコードがおかしかった模様
スレ汚し申し訳なかった
146デフォルトの名無しさん:2013/10/27(日) 22:18:32.45
D3DPRESENT_INTERVAL_DEFAULTで同期を取ると
Present()は一般的に16msになると思ったが

QueryPerformanceCounterを使い、空ループ測定したら、不定期に30msなるフレームを発見した。
自分環境が原因?

空ループ
while(true)
{
QueryPerformanceCounter終わり
QueryPerformanceCounter開始
device->Present()
}
147デフォルトの名無しさん:2013/10/27(日) 22:20:44.21
>>146
アホスギワロタ
148デフォルトの名無しさん:2013/10/27(日) 22:21:17.82
測定結果をグラフにしたttp://www.dotup.org/uploda/www.dotup.org4616605.png
縦軸がμs 横軸がフレーム数
基本16msだが、ときどき30msになった
149デフォルトの名無しさん:2013/10/27(日) 22:32:02.63
間に合わなかったから次の同期待ちに回されただけだろ。
だからなんだよ、頭悪いな。
150デフォルトの名無しさん:2013/10/27(日) 22:40:01.18
>間に合わなかったから次の同期待ちに回されただけ
それは誰でもわかるだろ
ほぼ空のループでなぜ発生するか知りたいんだよ
151デフォルトの名無しさん:2013/10/27(日) 23:09:02.51
>>150
真性の馬鹿がいる…
152デフォルトの名無しさん:2013/10/27(日) 23:14:36.84
>>150
お前は自分本位で他人に気が回せない奴だから、
プログラムでも状況が理解できないんだよ。
てめえだけで世界が動いているわけじゃ無いのを理解しろ。
153デフォルトの名無しさん:2013/10/27(日) 23:26:23.77
>>152
せめてプログラムの観点から煽ってくれないか
154デフォルトの名無しさん:2013/10/28(月) 02:10:54.61
何それカッコイイ
155デフォルトの名無しさん:2013/10/28(月) 07:02:54.20
>>153
もろにプログラムの指摘なのに、気がつかないのか?
156デフォルトの名無しさん:2013/10/28(月) 09:40:36.89
>>155
あなたが言うプログラムの指摘の部分を教えてくれないか?
157デフォルトの名無しさん:2013/10/28(月) 20:42:49.20
どれだけ馬鹿なんだよ。
他人を「他のプログラム」、世界を「OS」に置き換えてみろ。
158デフォルトの名無しさん:2013/10/28(月) 21:33:43.62
くっさ
159デフォルトの名無しさん:2013/10/28(月) 21:53:28.09
>>157
「他のプログラム」が原因だと言いたいのか?
160デフォルトの名無しさん:2013/10/28(月) 21:59:45.08
>>159
お前理解力のない頭の悪さが元凶
161デフォルトの名無しさん:2013/10/28(月) 22:03:54.17
頭が悪いと生きていくのが大変だよね。
162デフォルトの名無しさん:2013/10/28(月) 22:15:34.67
>>160
お前の説明力が低いという認識は持ってるか?
163デフォルトの名無しさん:2013/10/28(月) 22:16:07.10
間違った記憶で害悪を撒き散らすしね
164デフォルトの名無しさん:2013/10/28(月) 23:44:39.44
理解力が足りない奴はそれを他人のせいにするから、
TVなんかも馬鹿でも分かる大衆番組ばっかりになってるんだよね。
ごくごく一般的な知能を持った奴をうならせるようなもっと面白いものを作りたくても、アホが理解できないから作れない。
本当にお荷物だよな。
165デフォルトの名無しさん:2013/10/28(月) 23:48:03.11
余計な雑談は不要ですよ
166デフォルトの名無しさん:2013/10/28(月) 23:57:21.53
表現力が足りない奴はそれを他人の(ry
167デフォルトの名無しさん:2013/10/28(月) 23:59:17.57
傲慢な合理主義さまの乱入だ
168デフォルトの名無しさん:2013/10/29(火) 00:13:11.12
結局>>146の原因分かる人いる?
わずかなコマ落ちは気にしない人が多いのか
169デフォルトの名無しさん:2013/10/29(火) 00:19:16.27
原因わかるかと聞くより
お前らの環境でも発生する?のほうが適切だな
170デフォルトの名無しさん:2013/10/29(火) 00:20:26.09
うむ
ついでにその原因を調べられるぐらいのスキルは身につけろ
使ってるエディションは知らんが、VSまじ便利
171デフォルトの名無しさん:2013/10/29(火) 07:08:33.93
自分の環境で発生するものは他人の環境でも絶対発生する、
それがアスペの発想だから聞く必要など無いという判断だ。
172デフォルトの名無しさん:2013/10/29(火) 08:40:18.33
まじめすぎんだよな。
173デフォルトの名無しさん:2013/10/29(火) 08:41:21.31
だから、発生するか?
という質問に言い直してるのだが
174デフォルトの名無しさん:2013/10/29(火) 08:46:25.21
ソースを自分で書いて、検証した結果を報告せよというご命令ですね。
175デフォルトの名無しさん:2013/10/29(火) 08:49:37.01
だから最初から言っているだろう。
なんでも自分中心で、人のことなど考えずに生きているのが原因だって。
全てにそういう態度が表れているよな。
176デフォルトの名無しさん:2013/10/29(火) 08:53:29.03
>>174
極論だとそうなるが、ただの空のループのソースが
必要なレベルの人がここに居るのか?
177デフォルトの名無しさん:2013/10/29(火) 09:26:04.53
DirectXのバージョンも不明、どう初期化しているのかも不明、フルスクリーンかどうかも不明、
他人が作ったら条件の違う別のコードにしかならないことすら理解できないアホは、
プログラムなんてやめた方がいい。
178デフォルトの名無しさん:2013/10/29(火) 13:42:24.16
ユーザーから情報が得られたので解決した
>>177とか見ると、ここで質問した自分がアホだったことを理解した
179デフォルトの名無しさん:2013/10/29(火) 14:23:16.95
結局自分の馬鹿さ加減が原因だっただろう。
最初から言われていたのに今頃気がつくとは遅すぎる。
180デフォルトの名無しさん:2013/10/29(火) 15:37:02.11
しょーもない奴に噛み付いている奴も
馬鹿だってことに気づいとけよ
181デフォルトの名無しさん:2013/10/29(火) 23:08:48.83
レイヤードウィンドウにDirect2Dで描画してみたのですが
透過を解除すれば表示されるのですが、透過したままだと
何も表示されません。根本的におかしいでしょうか?
http://codepad.org/1P1V7d2g
182デフォルトの名無しさん:2013/10/29(火) 23:14:19.30
そもそもDirect2Dを使わなければ表示できているのか?
183デフォルトの名無しさん:2013/10/29(火) 23:20:50.16
>>182
はい。WPFのDrawingContextでの描画は表示できています。
184デフォルトの名無しさん:2013/10/30(水) 07:09:04.99
いったんDirect2Dで書いたデータをファイルへ出力
α値などが狂っていないか確認
185デフォルトの名無しさん:2013/10/30(水) 08:18:43.05
>>184
α値ですか。調べてみます。ありがとうございます。
186デフォルトの名無しさん:2013/11/05(火) 15:43:03.58
Direct 3D 9です
ゲームに手書き系のフォントを使いたいのですがwindows に同梱されていないので困ってます
.ttf などフォントファイルを同梱して使いたいのですが方法は無いでしょうか
あらかじめ画像として書き出す、ユーザにインストールしてもらうなどの方法は検討した上で質問しています
187デフォルトの名無しさん:2013/11/05(火) 15:45:03.49
>>186
その前に、フォント関係のライセンスを調べて絶望しろ
188デフォルトの名無しさん:2013/11/05(火) 15:50:18.96
>>187
理解済みです
やり方としては可能なのでしょうか
189デフォルトの名無しさん:2013/11/05(火) 17:12:09.22
ゲーム内でのレンダリング方法とフォント自体のライセンスから自ずと決まるもんだと思うが
選択肢としてはlibfreetype等のttfファイルを直接読み込めるライブラリで実行時にラスタを生成するのが普通じゃね
190デフォルトの名無しさん:2013/11/06(水) 08:30:15.93
質問させてください。
NVIDIA SDK 9.52のDirect3DのサンプルをVisual Studio 2003でビルドしたのですが、
ビルドはできたものの実行に失敗してしまいます。

リリースビルドの場合だと、
「incorrect ersion of direct3d and/or d3dx」
というエラー文が出ます。

原因が分からず、困っております。
誰かお分かりの方はいらっしゃいませんか?

ちなみにDirectX SDKはSummer 2004を使っています。
OSはWindows7です(Visual Studio 2003は非サポートを承知で無理矢理インストールしました)
GPUはGeforce GT 520です。
191190:2013/11/06(水) 08:35:01.12
ちなみに、SDKのサンプルに始めから入っているデモのexeは正常に実行できます。
Visual Studio 2003でビルドしたexeだと失敗してしまう感じです。

一方、OpenGLを使ったサンプルの方は、Visual Studio 2003でビルドして正常実行できています。
Direct3Dのデモだとダメな感じです。
192デフォルトの名無しさん:2013/11/06(水) 10:31:22.49
manifest
193デフォルトの名無しさん:2013/11/06(水) 17:08:15.15
DirectX SDK が古いだけでは?
194デフォルトの名無しさん:2013/11/06(水) 18:24:29.96
>>190
build した exe を
おまいの Windows 7 じゃなくて
Windows 2000 とかで動かしたらどうなる?
195デフォルトの名無しさん:2013/11/06(水) 20:12:23.02
馬鹿にかまうな
いまどき2003とか使ってるあたり、研究室で課題をやろうとした馬鹿学生なんじゃないの
構うとつけあがるから放置推奨
196デフォルトの名無しさん:2013/11/06(水) 20:36:21.50
数年前のレスコピペしてるのかと思ったよ
197190:2013/11/06(水) 22:05:58.20
皆様レスありがとうございます。

>>194
XPマシンで動くか試してみようと思います。

>>195
すみません。学生ではなく、社会人です。
2003を使っているのは、NVIDIA SDK 9.52の多くのプロジェクトが2005以降だと
すんなりビルドできないためです。手直ししてもよいのですが、
2003でいけるならそれが早いと思いましたので。
少なくとも、Visual Studioのバージョンの差に起因する問題ではないような気がしています。

もう少し、自分で模索してみます。
198190:2013/11/07(木) 07:06:27.31
自己解決しました。
http://www.nvidia.co.jp/object/sdk-9.html
によると、DirectX SDKのバージョンはFebruary 2006ベースとあるようなので、
某所でFebruary 2006を入手して、February 2006でビルドしてみました。

すると相変わらず「incorrect version of direct3d and/or d3dx」と出るので、次にDXUTの互換性を疑いました。
サンプルで使っているDXUTを使わずに、February 2006にあるDXUTを使うようにしてビルドしてみました。

そうしたら、上手く動作しました。

February 2006ベースとあるのに、使っているDXUTのバージョンが違うってどういうこと?
という疑問はあるのですが、とりあえず動作するようになったのでよしとします。

同じ問題にはまった方がいらっしゃったら少しでも参考になればと思います。
199デフォルトの名無しさん:2013/11/08(金) 11:57:56.96
で、>>146の原因は?

バカだアホだはもういいので
「○○が示すように△△が原因だ」で答えてよ
200デフォルトの名無しさん:2013/11/08(金) 14:50:40.39
>>199
素直に教えてくださいって言えよ、低脳
煽れば勢いで答えてもらえるとでも思ってんのか、ゴミしか組めない低スキルPGが
201デフォルトの名無しさん:2013/11/09(土) 00:10:38.85
こういうパターンで、「教えてください」と頼んで教えてもらえた例はとんと見ないな。
202デフォルトの名無しさん:2013/11/09(土) 00:46:48.82
いや別に16msがどーのこーのそんな話に興味は無いけど
>>151とかあまりに幼稚な返答だったので、どんな人間かと思って

で、>>146の原因は?

バカだアホだはもういいので
「○○が示すように△△が原因だ」で答えてよ
203デフォルトの名無しさん:2013/11/09(土) 02:02:56.10
環境とか教えてくれないとわかんない
あとソースください
204デフォルトの名無しさん:2013/11/09(土) 12:07:38.45
自前で画面座標からワールド座標に変換ってどうやるの?
DXライブラリだとConvWorldPosToScreenPos関数があるんだけど
205デフォルトの名無しさん:2013/11/09(土) 12:19:55.39
まずはスクリーンの奥行きをどう定義するのかを明確にしろ。
206デフォルトの名無しさん:2013/11/09(土) 19:35:25.26
レイトレーシングでググるといい。よくわかんなかったらdirectxmathのXMVector3Unprojectを黙って使うといい
207デフォルトの名無しさん:2013/11/11(月) 09:31:37.43
Direct3D9/Win7だが、
DXコントロールパネルから
リテール/デバッグのランタイム切り替えが
効かなくなっているような・・

皆さんはどう?
208デフォルトの名無しさん:2013/11/11(月) 09:49:56.13
そもそもデバッグを使うことがない。
209デフォルトの名無しさん:2013/11/11(月) 14:50:35.62
聞かれたことに答えられない馬鹿は黙ってろよ
210デフォルトの名無しさん:2013/11/11(月) 23:54:03.83
Win7 64bitだけどうちもD3D9のDebugランタイムは使えないぽい
以前調べたときに海外のプログラミング系フォーラムで同じ症状を数人見かけたけどどれも解決には至ってなかった
Retailオンリーでいくしかないのかも
211デフォルトの名無しさん:2013/11/12(火) 01:03:21.66
Windows7自身DirectX9おまけで動かしてるからな
212デフォルトの名無しさん:2013/11/12(火) 01:39:07.64
XPなくなると9で書く必要性もないしもういいかな
213デフォルトの名無しさん:2013/11/12(火) 23:59:31.53
DX9と心中しようと思ってたのに
それは困る。
214デフォルトの名無しさん:2013/11/13(水) 06:11:25.68
引退時なんじゃないか
215デフォルトの名無しさん:2013/11/13(水) 10:40:41.94
WebGLの時代が来る
DirectXは細々と残るだけ
216デフォルトの名無しさん:2013/11/13(水) 19:32:48.22
へーそうなんだー
217デフォルトの名無しさん:2013/11/14(木) 10:27:51.83
初めてWebGLやべえと思った
https://www.shadertoy.com/view/4dsGWB
正直、頭下げて謝るしかない
218デフォルトの名無しさん:2013/11/14(木) 10:36:35.52
エロ中尉
219デフォルトの名無しさん:2013/11/14(木) 13:13:25.63
D3DX9のID3DXSpriteは頂点カラーでグラデーション掛けたりプログラマブルシェーダで描画出来ますか?
220デフォルトの名無しさん:2013/11/15(金) 01:05:51.98
ゲーム会社を受けるのに、DXライブラリを使って製作しても大丈夫ですかね?
221デフォルトの名無しさん:2013/11/15(金) 01:40:22.89
>>220
本当に採用されたいなら…分かるな?
222デフォルトの名無しさん:2013/11/15(金) 01:46:11.45
>>220
同じ内容のゲームでも
DxLibを使っている方とライブラリを自作してる方だったらどっちを採用すると思う?
223デフォルトの名無しさん:2013/11/15(金) 01:52:52.67
>>222
どっちがいいかって言うと後者だけどそこまで求めて無いと思うぞw
224デフォルトの名無しさん:2013/11/15(金) 03:29:57.95
DxLibで制作したゲームで採用する会社なんて

…あとは言わなくても分かるな
225デフォルトの名無しさん:2013/11/15(金) 04:47:39.67
gameは技術よりアイディア
226デフォルトの名無しさん:2013/11/15(金) 07:13:28.04
おまいらもこんなの作れるの?
http://www.nicovideo.jp/watch/sm22228785
227デフォルトの名無しさん:2013/11/15(金) 15:36:49.38
3Dのスキルがあれば、普通に作れるだろ
特別に難しいことしてるわけでなし、エフェクト等を削除して、
単純なプリミティブで同じようなものを作るだけなら難しくはない

これが難しいと感じるのは、スキンメッシュすら操作できない低スキルだけゃないか?
228デフォルトの名無しさん:2013/11/15(金) 21:29:33.97
モデルを作るのが大変
229デフォルトの名無しさん:2013/11/15(金) 21:40:37.88
>>228
>>226のURL先をよくみろよ
リソースは借り物だぞw
230デフォルトの名無しさん:2013/11/15(金) 21:44:59.79
おまいらすげー
231デフォルトの名無しさん:2013/11/15(金) 22:03:16.11
DXライブラリを使うのはかまわんが、それを利用して、
シェーダで非常にコストパフォーマンスの高い表現をした、とかだと普通に評価されるだろう。
コンピュータのアーキテクチャや数学をよく理解していることが伝わるようなものならなおよし。
232デフォルトの名無しさん:2013/11/15(金) 22:24:59.25
プログラマーとしてなら
ライブラリ使ってでも物作れるタイプはゲーム製作側に
描画エンジンやツール等きちんと作れるタイプはライブラリ製作側に
あてられるのでどっちでもいいと思うよ。
そのかわりちゃんと作ってね。

結局会社入るとDxLibじゃないけど社内のライブラリで作ることになるし、
他人の作ったものを組み込める能力も必要だと思うよ

ゲームバランスとかはあんま求めてないよ

あと、大手は入社してからきちんと勉強させるので
学生レベルの作品なんてあんまり重視してなかったりする
結局コミュ力とやる気
233デフォルトの名無しさん:2013/11/15(金) 22:32:18.19
あー新卒の話な中途や院みたいな年寄りはレベル見るよ実用重視
234デフォルトの名無しさん:2013/11/15(金) 22:56:31.21
ぐぐればたくさん資料が出てくるこの時代に
DirectX程度も自前で記述できないんじゃやる気無いね
235デフォルトの名無しさん:2013/11/15(金) 23:31:47.45
ゲーム会社は休みなしで24時間元気に働ける奴を取るんだよ
236デフォルトの名無しさん:2013/11/16(土) 03:37:23.03
絞るだけ絞って
いらなくなったら
使えなくなったらぽい
237デフォルトの名無しさん:2013/11/17(日) 01:17:46.93
そいつが勉強してないで時代についていけずに使えなくなっただけ
238デフォルトの名無しさん:2013/11/18(月) 15:35:26.24
>>220 はあちこちのスレで同じ質問をしてるが
スレごとに答えが様々で面白い
239デフォルトの名無しさん:2013/11/18(月) 16:12:59.47
実は回答者は一緒なんだぜ
240デフォルトの名無しさん:2013/11/18(月) 18:55:14.60
質問者も回答してるんだぜ
241デフォルトの名無しさん:2013/11/19(火) 06:11:14.52
24時間元気に働いていたら、勉強する時間が無いな
242デフォルトの名無しさん:2013/11/21(木) 12:59:41.42
>>226
スゴイなー
今夜間専門通ってて、独学で頑張ってるけどまだまだだな〜

でも同人でもここまで出来る、っていう希望にはなるよ
243デフォルトの名無しさん:2013/11/21(木) 21:44:59.99
>>226
クオリティ高ぇw
244デフォルトの名無しさん:2013/11/21(木) 21:49:24.40
>>226
1:35くらいのっところの音楽の曲名ってなんだっけ
245デフォルトの名無しさん:2013/11/22(金) 16:58:04.75
>>226 みたいなゲームを作るのに必要な知識ってどんなのがある?
三角比とベクトルくらいは分かるんだけど、ホーミング系ってどう実装してるんかな
246デフォルトの名無しさん:2013/11/22(金) 17:38:20.37
247デフォルトの名無しさん:2013/11/22(金) 17:40:23.58
248デフォルトの名無しさん:2013/11/22(金) 17:43:28.95
249245:2013/11/22(金) 18:36:44.75
参考になりそうなリンクありがとう
250デフォルトの名無しさん:2013/11/22(金) 23:13:04.97
動画みたいなの作れたら楽しそうだな(´・ω・`)
251デフォルトの名無しさん:2013/11/23(土) 02:53:28.29
>>226
一から作るとしたら、一ヶ月で作れって言われても(素材が揃ってても) 出来そうにないな
252デフォルトの名無しさん:2013/11/23(土) 03:49:30.33
地面との衝突判定って、地形データから高さデータ作って、それと比べてるの?
それとも地形と直に判定してるの?
253デフォルトの名無しさん:2013/11/23(土) 06:03:42.09
物理演算があるなら空間分割して直じゃない?
254デフォルトの名無しさん:2013/11/23(土) 12:47:56.24
横からの質問ですけど

その場合はレイをy座標に飛ばす感じが基本なんですかね・・
255デフォルトの名無しさん:2013/11/23(土) 12:50:33.91
>>226
コメントにあったけどマジで専門学生なのかな?
だとしたら、このレベルを相手に就活しないといけないのか・・
256デフォルトの名無しさん:2013/11/23(土) 14:10:16.87
>>255
全員がこのレベルってことはないから、心配する必要は無いと思うよ
もちろん対抗できるくらいのスキルがあれば就活で有利とは思うけど
257デフォルトの名無しさん:2013/11/23(土) 18:11:07.43
演出のセンスは優れているけど技術としては特に
PGならジョブズではなくゲイツを目指せ
258デフォルトの名無しさん:2013/11/23(土) 22:24:34.22
>>255
マジだよ、そいつ一人超絶飛び抜けてデキる奴
259デフォルトの名無しさん:2013/11/24(日) 20:32:46.63
地面との衝突判定は物理演算に丸投げするのが楽だよ
BulletPhysicsにあるキャラクターが動くサンプルを参考に
260デフォルトの名無しさん:2013/11/25(月) 05:27:28.11
適当に平面方程式に投げて高さで判定取るかな
地面の判定はそれしかやったこと無ェ
261デフォルトの名無しさん:2013/11/25(月) 08:01:42.15
>>260
まあ、デコボコさせたりしない限りそれが安全かもですね
262デフォルトの名無しさん:2013/11/25(月) 08:07:35.73
水面に石投げするときみたいに
一定の入射角以下なら飛び続けるとか
263デフォルトの名無しさん:2013/11/25(月) 08:34:01.43
やっぱゲームプログラマは頭良くないとできないな。
他のプログラマはアホでもできるけど
264デフォルトの名無しさん:2013/11/25(月) 08:45:07.42
ゲームの内容によりけり
265デフォルトの名無しさん:2013/11/25(月) 09:05:12.20
手の抜き方とか
計算量の減らし方は
工夫と地頭がいるね
266デフォルトの名無しさん:2013/11/25(月) 16:05:50.40
ゲームプログラマ最強。
そんなふうに考えていた時期が俺にもありました。

他のプログラムも別ベクトルで賢くないといけないのを知ったよ。
世界中の人を一斉に相手するシステムとか
267デフォルトの名無しさん:2013/11/26(火) 22:41:26.77
Direct3D10のCubeMapGSサンプルには
HLSLのセマンティクスに「RTARRAYINDEX」という値が
使われているが、この定義が書かれているマニュアルって
ありますか?

struct GS_INSTCUBEMAP_IN
{
float4 Pos : SV_POSITION; // Projection coord
float2 Tex : TEXCOORD0; // Texture coord
uint RTIndex : RTARRAYINDEX; // コレ
};
268デフォルトの名無しさん:2013/11/26(火) 22:44:41.74
ああ自己解決しますた
単なるサンプルの独自定義なのね
269デフォルトの名無しさん:2013/11/26(火) 23:36:09.94
まんまだろうが
馬鹿スw
270デフォルトの名無しさん:2013/11/27(水) 07:53:08.40
初心者にありがちな発言
これはOSのバグです
これはコンパイラのバグです
これはライブラリのバグです
271デフォルトの名無しさん:2013/11/27(水) 08:54:37.11
9.0cをインストールしたつもりが意味不なんだけど11があれば
9.0c入れても意味ない?
272デフォルトの名無しさん:2013/11/27(水) 13:47:21.65
>>270
その3つを使い分けられるなら初心者じゃないぞ
273デフォルトの名無しさん:2013/11/27(水) 14:11:34.82
使い分けてるとはどこにも書いてないが
掛かれてないものが見えるとは
おぬしも相当アスペやのう
274デフォルトの名無しさん:2013/11/27(水) 14:26:51.76
>>271
そもそもXP以降はOS標準+SPにDirectXが付属する形なので、
インストールも糞もない。
275デフォルトの名無しさん:2013/11/27(水) 19:41:27.89
書かれてないけどたぶんSDKのことだと思うぞ
276デフォルトの名無しさん:2013/11/27(水) 22:05:47.16
書かれていないも何もSDKに11なんてバージョンはない。
277デフォルトの名無しさん:2013/11/28(木) 00:26:02.52
9.0cとはっきり言ってるわけで。
278デフォルトの名無しさん:2013/11/28(木) 07:06:28.47
11があればともはっきり言っているぞ。
279デフォルトの名無しさん:2013/12/04(水) 06:15:15.82
3Dグラフを描く場合、9と11どっちがお勧め?
280デフォルトの名無しさん:2013/12/04(水) 07:09:36.09
>>279
3Dグラフごときに普通はDirect3Dは使わない。
GDIで描画する方が遥かに簡単。

どうしても使うなら9の方が簡単。
281デフォルトの名無しさん:2013/12/05(木) 00:51:06.92
いや9はやめたほうが・・
デバイスロスト対策の有無は大きいよ
11は何も考えなくていいから楽だ
282デフォルトの名無しさん:2013/12/05(木) 07:28:18.33
GPUリセットするとロストするよね(´・ω・`)
283デフォルトの名無しさん:2013/12/05(木) 15:49:11.81
11はデバイスロストは何も考えなくてもいいけど
作るまでの設定が大変。デフォルトとか無いから
描画もシェーダいるし

エクセルでやりなよ
284デフォルトの名無しさん:2013/12/05(木) 17:45:25.98
デバイスロストがない9exのことも忘れないであげてください。
285デフォルトの名無しさん:2013/12/05(木) 21:54:03.63
自分はどちらかというと11のほうがいいな。
9のデバロス対策はプログラム構造を一気に汚くする。
11は設定が多かったりシェーダ必須だったりするけど、
構造がシンプルだし、色々なことを試すときの自由度の高さがある。
凝ったことするほど有難味がある設計だね。

だから断然、11を推すよ。
286デフォルトの名無しさん:2013/12/06(金) 01:04:43.27
3Dグラフでデバイスロストは問題にならないでしょ。
マネージドリソースしか使わないだろうし。

Excelと同程度の3DグラフならDirect3Dを使って得をすることは
1つも無いので、GDIなりWPFで描く方が遥かに楽。
グラフにテクスチャを貼りたいとかならDirect3Dの使用も考えるが。
287デフォルトの名無しさん:2013/12/06(金) 01:07:19.90
>マネージドリソースしか使わないだろうし。
そうなの?
288デフォルトの名無しさん:2013/12/06(金) 02:59:35.86
3Dグラフをマウスでグリグリ視点を動かしたいです。
289デフォルトの名無しさん:2013/12/06(金) 08:36:11.88
ベタ塗り3D画像でグリグリ程度ならGDI+で充分って話だろ
問題はテクスチャだよテクスチャ
290デフォルトの名無しさん:2013/12/07(土) 21:45:54.50
291デフォルトの名無しさん:2013/12/08(日) 04:37:29.15
D3D11からエフェクトプールは撤廃されて
代わりにエフェクトグループを使えとヘルプに書いてるが
グループで複数のエフェクトオブジェクト間で変数共有出来るようには
見えないんだが、どー考えればいいの?
292片山博文MZコスモ ◆T6xkBnTXz7B0 :2013/12/10(火) 22:33:56.51
directmusicってもう使えないんですか?
293デフォルトの名無しさん:2013/12/10(火) 22:40:42.50
294片山博文MZコスモ ◆T6xkBnTXz7B0 :2013/12/10(火) 22:47:43.93
ありがと。XAudio2サポートに挑戦してみる
295デフォルトの名無しさん:2013/12/12(木) 11:21:44.59
D3DXComputeNormalsを真似て自作したいのですが、メッシュの頂点データとインデックスデータから
どの様に計算したらいいのですか?
296デフォルトの名無しさん:2013/12/12(木) 12:11:45.63
>>295
頂点データと同じサイズの法線の配列を用意して、零ベクトルで初期化しておく。
インデックスと頂点座標から面の法線を求めて、法線配列の
各インデックスの位置に足していく。
法線配列を全て正規化する。
頂点バッファを法線入りのフォーマットで作り直してコピーする。

D3DXは単純に法線を足して正規化しているだけだが、俺としては2辺のなす角で
重み付けしたい。
297295:2013/12/12(木) 17:39:12.27
>>296
ありがとうございます、その内容で試してみます。
298デフォルトの名無しさん:2013/12/12(木) 18:13:44.88
295じゃないけどやっと>>296の「2辺のなす角で重み付け」の意味がわかった。
ある頂点を取り囲む面の、1周(360度とは限らない)のうちの何度を占めているかで
重みづけすれば、たとえば立方体で三角ポリゴン化の分割に癖があってもうまくいくわけか。
299デフォルトの名無しさん:2013/12/12(木) 18:20:54.71
数学できないヤツばかりでワロタ
言ってる通りに実装すればいいだけやん
しかも動的に頂点変更しない限り、計算しておけば済む話だろ?

XNAで言うなら、パイプライン通すときにやっておけって話だ
300デフォルトの名無しさん:2013/12/12(木) 19:03:02.83
その横槍はなんかちがくね?
301298:2013/12/12(木) 19:20:29.74
わかってないのは>>299だけみたいなんで放っときますね
302デフォルトの名無しさん:2013/12/13(金) 00:04:23.32
文系でゲームプログラム初心者の俺には難しすぎる話題だな
正直、ここで質問するレベルにすら至ってないのだと確信したよ
303デフォルトの名無しさん:2013/12/14(土) 09:48:47.64
2Dゲームならある程度までなら算数程度でぜんぜん大丈夫
304デフォルトの名無しさん:2013/12/14(土) 12:33:57.57
質問です。
directx11のサンプル「DXUT Tutorial Win32 Sample」のTutorial10でメモリリークが
発生しているのですが、何が原因なのでしょうか?
メモリーリークを修正するためにはどこを修正すればいいのでしょうか?
305デフォルトの名無しさん:2013/12/14(土) 13:54:25.24
2010くらいのDirectX SDKじゃなくてブラウザやVSでダウンロードするタイプのサンプルだよね。
「DXUT+DirectXTK simple win32」サンプルでもメモリリーク発生するね。
俺もわからん。
ソースちゃんと読むか1個1個オブジェクト削っていって試せば特定できるのかな。
306デフォルトの名無しさん:2013/12/26(木) 02:34:25.60
Managed DirectSoundで質問です。
量子化ビット16、モノラル、適当なサンプリングレートで
音声をキャプチャをしようと思っています。
1秒のバッファを確保し、BufferPositionNotifyで
一定間隔でキャプチャをしています。

続く
307デフォルトの名無しさん:2013/12/26(木) 02:36:37.10
続き
ここからが質問です。

Int16[] data = (Int16[])captureBuffer.Read(rPos, typeof(Int16), LockFlag.None, size);
と書いた場合と、
byte[] data = (byte[])captureBuffer.Read(rPos, typeof(byte), LockFlag.None, size);
と書いた場合で、dataの配列長が同じになるんですが、なぜなんでしょう?
byteのほうがサイズが2倍になるなら納得なんですが、、、。

どっちのdataも、secondaryBuffer.Write(pos, data, LockFlag.None);
で正常に再生できるのですが、腑に落ちません。
308デフォルトの名無しさん:2013/12/26(木) 16:11:55.39
>>307
おまえの頭が残念なのはよくわかった
309デフォルトの名無しさん:2013/12/26(木) 17:57:06.97
確かに残念なんです。教えて頂ければ幸いです。
質問を言い換えると、

quickprogram.blogspot.jp/2008_07_01_archive.html?m=1

によると、shortで読むなら2で割れって書いてあるんですけど、
割らなくても特にエラーにならないし再生も正常な感じなのが疑問です。
310デフォルトの名無しさん:2013/12/27(金) 20:54:29.94
テスト
311デフォルトの名無しさん:2013/12/28(土) 12:47:03.20
Readメソッドの定義はどうなってるの?

俺んとこだとMicrosoft.DirectX.DirectSoudが参照の追加に
リストアップされなくて見えないんだよねー何でだろ?
312デフォルトの名無しさん:2013/12/30(月) 13:56:53.34
ID3DX11EffectPass::ComputeStateBlockMask()の使い方がわかんねー
ぐぐってもゼロHitだし
世の中で使ってる人間は俺ひとりか??
313デフォルトの名無しさん:2013/12/30(月) 14:14:34.62
聞いたこともねぇ関数だなw
314デフォルトの名無しさん:2013/12/30(月) 14:21:04.24
詳しく解説して教祖となるがよい
315デフォルトの名無しさん:2013/12/30(月) 15:43:15.31
もっと詳しく書くと
目的は、Effect11でComputeShaderを使うことなんだが、

@fxファイル内でStructuredBufferやRWStructuredBuffer変数を宣言しても
インスタンスは生成されないっぽい。自分でBuffer作ってView作ってアタッチしないとダメ。
こりゃこういうもの?

AID3DX11EffectPass::Apply()を実行すると、自動的に
StructuredBufferやRWStructuredBufferがセットされるが
Draw()やDispatch()後にリセットされる訳じゃないので
以降セットされっぱなしになる。
自前でNULLをセットするしかないの?
ComputeStateBlockMask()あたりが救済手段に見えるんだが・・
316デフォルトの名無しさん:2014/01/01(水) 11:28:43.83
とりあえずNVIDIA SDKとかでも検索してみるとかかな
317315:2014/01/02(木) 13:02:48.84
@に関してはテクスチャもそうで、元々そういうもののよう。
Aに関してはnVidiaやATiの資料を見てみる。
ありがとうございます。
318デフォルトの名無しさん:2014/01/02(木) 17:13:25.15
>Return Value
>If the function succeeds, the return value is DI_OK. If the function fails,
> the return value can be one of the following error values:
> DIERR_BETADIRECTINPUTVERSION, DIERR_INVALIDPARAM, DIERR_OLDDIRECTINPUTVERSION, DIERR_OUTOFMEMORY.

と書いてあるがどの値も返ってこないから詰んだ。

hr = DirectInput8Create( hInst , DIRECTINPUT_VERSION , IID_IDirectInput8 , (void**)test , NULL );
if ( FAILED( hr ) ){
  MessageBox( hWnd , "error in DirectInput8Create" , "error" , MB_OK );
  if ( hr == DIERR_BETADIRECTINPUTVERSION ) MessageBox( hWnd , "DIERR_BETADIRECTINPUTVERSION" , "error" , MB_OK );
  if ( hr == DIERR_INVALIDPARAM ) MessageBox( hWnd , "DIERR_INVALIDPARAM" , "error" , MB_OK );
  if ( hr == DIERR_OLDDIRECTINPUTVERSION ) MessageBox( hWnd , "DIERR_OLDDIRECTINPUTVERSION" , "error" , MB_OK );
  if ( hr == DIERR_OUTOFMEMORY ) MessageBox( hWnd , "DIERR_OUTOFMEMORY" , "error" , MB_OK );
  return -1;
}

ちなみに

DXGetErrorDescription( hr );
DXGetErrorString( hr );

は未解決と言われてコンパイルできないから他の方法があれば教えてくれ。

これが解決しないとまた今日も徹夜で残業だ。
土日返上で1週間ほどデスマやってるがこれだけは難易度が高すぎる。
319デフォルトの名無しさん:2014/01/02(木) 17:43:52.98
>>318
おまえが根本的に無能なのは分かった
外部参照が未解決で解決できないとか、マジでアホの子だな
320デフォルトの名無しさん:2014/01/02(木) 17:57:47.30
ちなみにDX11用のDXGetErrorDescriptionなら
↓のパッケージにソース付きで入ってる。

DXUT for Direct3D 11
https://dxut.codeplex.com/

>>319
相変わらずだな
321デフォルトの名無しさん:2014/01/04(土) 21:52:09.54
D3DXCreateTextureFromFileEx()
が返したテクスチャのサイズって必ず正方形?
正方形以外のテクスチャをサポートするデバイスではどうなるのさ
というかテクスチャサイズを動的に知る方法教えて下さいお願いします
322デフォルトの名無しさん:2014/01/04(土) 23:17:53.99
>>321
前世紀のVGAならともかく正方形限定ってことはないはずだが…
サイズ指定がD3DX_DEFAULTまかせだと二の乗数に丸められるからそれじゃねえの(ex. 500x260 -> 512x512)

基本はサイズを画像ファイルから取得して直接指定するか
テクスチャサイズは丸めにまかせてUV座標で描写時に調整する(必ずD3DX_FILTER_NONEを指定すること)

あと、テクスチャは動的にサイズの変更はされないからGetLevelDescで十分なはずだぞ?
画像ファイルの実際のサイズならD3DXGetImageInfoFromFile
実行されるシステムのサポートできるテクスチャサイズを知りたいならD3DXCheckTextureRequirementsが楽っちゃ楽
323デフォルトの名無しさん:2014/01/04(土) 23:26:46.16
>>322
GetLevelDesc()
これや!こんなんあったんか!見落としてた!
ありがとう!
いや、画像読み込んで開いてサイズ取得してまた開かせるのが気に入らなくてな
とにかく解決した!ありがとう!
324デフォルトの名無しさん:2014/01/06(月) 22:11:36.65
DirectX11で登場した構造化バッファの「構造化」ってどういう意味??
325デフォルトの名無しさん:2014/01/06(月) 22:23:02.77
StructuredBufferのことけ?
構造体みたいに使える書ける、ぐらいに受け取っていたけど
326デフォルトの名無しさん:2014/01/06(月) 22:27:40.73
即レスd。

自分も構造体のことかなぁ、と思ったんだけど、
RGBAデータもまぁ、構造体みたいなもんだしなぁ・・・。
まぁ、RGBAやXYZWに限らず、任意の構造体を扱えるようになった=より一般化した、
という意味でそう名付けたのなら分からなくもないんだけど。

何か他の意味があるなら知りたいなぁ。
327デフォルトの名無しさん:2014/01/07(火) 00:54:39.26
RGBAやXYZWはGPUにとっては組込型であり基本型なのよ
328デフォルトの名無しさん:2014/01/07(火) 07:08:24.81
メモリーインタリーブでしょ
329325:2014/01/07(火) 21:12:57.83
>>327
だとすると、やっぱり任意の構造体の意ということだね。

>>328
??
330デフォルトの名無しさん:2014/01/09(木) 01:47:02.85
構造体メンバのアライメントを発展させたようなもんか
331デフォルトの名無しさん:2014/01/16(木) 10:49:02.29
IDirect3DDevice9::SetTexture関数は重いので必要最低限だけ呼び出すべき と言うのをググっててよく見るのですが、
具体的に1フレームで呼び出しても影響のない回数はどのくらいでしょうか
目安でいいので教えてください
332デフォルトの名無しさん:2014/01/16(木) 12:49:04.78
>>331
http://msdn.microsoft.com/ja-jp/library/bb172234.aspx

他人に目安とか求めてもあまり意味の無い問題やな
自分自身のプログラムで許容される閾値を計測したまへ
333デフォルトの名無しさん:2014/01/16(木) 23:21:01.62
>>332
了解です
ありがとうございます
334デフォルトの名無しさん:2014/01/17(金) 23:50:26.72
DirextX11使ってるんだけどエンディアン問題ってどうなってるんだろ?

DirextX側が処理してくれてるのか、自分で処理しなければいけないのか
そもそもリトルエンディアンしか考慮してないのか
335デフォルトの名無しさん:2014/01/18(土) 07:41:46.84
どのリソースの話をしているんだ?
336デフォルトの名無しさん:2014/01/18(土) 16:33:41.40
そんなこと気にする場面なんて皆無・・・
337334:2014/01/18(土) 21:51:08.85
ID3D11DeviceContextのUnmapを使ってCPUメモリ上のデータをGPUメモリに送るときに
エンディアンって大丈夫なのかなって感じです

Mapで割り当てられたメモリに値をコピーするときに
自分でリトルエンディアンの配置にしないといけないのか、それとも気にせずmemcpyなどでコピーしてしまっていいのか
そんな感じのことで悩んでます
338デフォルトの名無しさん:2014/01/18(土) 22:10:36.27
>>337
馬鹿なんだな
自分が扱ってるデータについてよく考えろ
339デフォルトの名無しさん:2014/01/18(土) 22:24:21.46
逆ならまだしも、337の書き方から察するにGPU側はリトルエンディアンだと
思っているなら何を気にしているのだろう
エンディアン問題って言いたかっただけちゃうんかと…
340デフォルトの名無しさん:2014/01/19(日) 01:58:50.38
どんな状況を想定してるのかよくわからんな
そもそもWindows PhoneやWindows RTもCPU側はリトルエンディアンだし
Direct3Dを使う上では杞憂としか思えんが
341デフォルトの名無しさん:2014/01/19(日) 03:40:32.50
ビッグエンディアンのXBox360も9世代だしなー
342デフォルトの名無しさん:2014/01/19(日) 15:32:02.18
XBox360ってインテルじゃなかったのか 初めて知ったわ
XenonとXeon間違えてさらに混乱したわw
343デフォルトの名無しさん:2014/01/19(日) 15:44:05.40
ははw
たしかに名前は似てるなw
344デフォルトの名無しさん:2014/01/19(日) 17:47:43.20
しかしアプリを作るうえでエンディアンを意識するケースなんてあるんだろうか
まあデバッグではバイナリ列見たりあるんだろうけど。
345デフォルトの名無しさん:2014/01/19(日) 17:54:35.22
具体的に何のデータを扱っているときに何が心配なのかを明確にしないと全く意味が無い。
幽霊が出るかもしれない怖いっていわれたところで、だからどうしろと?

具体的な話にまとめられない時点で、はっきり言って適性が無いからプログラムなどやめた方がいい。
346デフォルトの名無しさん:2014/01/19(日) 19:07:46.05
Q.エンディアン気にする必要ありますか?

A.いいえありません

でいいだろ。初心者質問スレですよここは
人の進む道にまで口出すなよ。面倒くさい奴だな
347デフォルトの名無しさん:2014/01/19(日) 19:09:48.69
昔は3Dの色々な技術も含めて質問や議論が盛んだったけど、
最近はすっかり寂れちまったね・・・。
348デフォルトの名無しさん:2014/01/19(日) 20:49:19.72
>>344
あるに決まってるだろ
360のモデルデータをぶっこ抜いて表示するのに変換したわ
349デフォルトの名無しさん:2014/01/25(土) 11:41:47.71
DX11の質問おなしゃす
UpdateSubresource等でVRAMを書き換えを実行した直後に
その結果をMapで取得するのはどうしたらいいんでしょうか?

そのまま実行した時はGPUコマンドが実行されていないのか
古い値が取得されてしまいます
FlushやQUERY_EVENTを確認してみたものの即時値をとれないので困っています
350デフォルトの名無しさん:2014/01/25(土) 12:41:55.44
Flushでもダメなのか・・・。
もうDrawコールするしかないんじゃね?
351デフォルトの名無しさん:2014/01/25(土) 16:07:23.69
意図がわからんな・・・
UpdateSubresourceでデータを渡してるなら。その渡したデータこそが取得したいデータだろう
ちゃんと書き換えられているか知りたいとかなのか?
352349:2014/01/25(土) 17:52:02.45
>>350
Drawは表示する物がないので試してみてないですが
Dispatch、Presentも試してみても駄目で
sleepで一秒ぐらい待てば思った通りの挙動にるんですが、さすがに実用に問題があるので

>>351
目的はコンピュートシェーダの結果を取得したく
UpdateSubresource(バッファのリセット)

CSでバッファ書き換え

Map(バッファのメインメモリ上への取得)
この流れを作成したく、CSを実行しなくても正常な値が取れなかったので
質問からCSの処理を省きました
353デフォルトの名無しさん:2014/01/25(土) 18:10:46.33
まさかとは思うがUSAGE_DEFAULTで作ったリソースを読むなんて馬鹿なことはしていないよな?
聞くだけばかばかしいことだとは思うが。
354349:2014/01/25(土) 18:40:50.44
>>353
Default→Stagingに複製してからMapしてます
書き換えてから数フレーム待ったり、Map前にSleepして待った後
結果が取得出来るのは確認しています
即時に結果を取得が出来なくて困ってます

GPUとCPUの同期のズレが原因かと目星をつけて
同期するような処理を挟んでみても上手くいかずお手上げな感じです
355デフォルトの名無しさん:2014/01/25(土) 18:48:44.95
GetDataで出力が完了しているのかは確認した?
356デフォルトの名無しさん:2014/01/25(土) 19:31:31.62
そういや、コンピュートでうまく実行されなくて悩んだことあったな・・・俺も

Dispatchした後に以下のコードを追加して試してみたらどうだ?

ID3D11DeviceContext->CSSetUnorderedAccessViews( 0, 0, NULL, NULL );
ID3D11DeviceContext->CSSetShaderResources( 0, 0, NULL );
ID3D11DeviceContext->CSSetConstantBuffers( 0, 0, NULL );
ID3D11DeviceContext->CSSetShader( NULL, NULL, 0 );
357349:2014/01/25(土) 19:55:42.14
解決しました
Unmapしてなかったっていうアホな理由でした
そのせいで値がふわふわ変化して怪しい挙動していたみたいです
助力ありがとうございました

なぜかUnmapしなくていいっていう謎の思い込みがあったのが原因です
Dx9時代はちゃんとUnLockしてたのに、、
358デフォルトの名無しさん:2014/01/25(土) 20:01:50.18
・・・ねぇわ
359デフォルトの名無しさん:2014/01/25(土) 20:07:04.36
ちょwww

まぁ、よかったけどw
360デフォルトの名無しさん:2014/01/25(土) 23:37:39.21
まぁ、何事も経験ではあるが、ここで聞く前に解決できる間抜けな失敗だよな
阿保杉ワロタ
361デフォルトの名無しさん:2014/01/26(日) 08:55:34.88
つまりここに居るのは「ここで聞く前に解決できる間抜けな失敗」すら解決出来ない人達なのか悲しいな
まぁ、経験がなければ回答できないから仕方ない
むしろUnmapしなくてもそれっぽく動作しちゃうのが驚きだ
362デフォルトの名無しさん:2014/01/26(日) 10:11:12.97
http://game.watch.impress.co.jp/img/gmw/docs/586/729/gra_55.jpg
http://game.watch.impress.co.jp/img/gmw/docs/586/729/gra_56.jpg

こんなふうに、GPU処理の内訳を知りたいんですが、
どうすればイイですか?
VisualStudio2012、Direct3D11です。
363デフォルトの名無しさん:2014/01/26(日) 15:23:29.10
内訳とだけ言われてもな・・・
処理時間を測定したいならtimeGetTimeかQueryPerformanceCounteで自前で実装してリスト化すればいい
364362:2014/01/26(日) 15:50:58.28
>>363
あ、CPUの時間計測でできるんですか。
ありがとうございました。
365デフォルトの名無しさん:2014/01/27(月) 09:29:24.37
>>362
この画面ってNSightだと思う
おれはCudaでしか使ったことないけど
366デフォルトの名無しさん:2014/01/27(月) 10:21:37.59
http://graphics.stanford.edu/~mdfisher/GPUView.html

Windows SDK 7の頃ならGPUViewっての入ってたんだがなー
Visual Studio 2012以降だと既定じゃSDKの中に見当たらん
ぐぐってみたらスタンドアロン版Windows SDK 8の中にあるらしいが、めんどいので確認してない
367デフォルトの名無しさん:2014/01/27(月) 14:03:54.68
マップ間移動をしたときにマップの配列に移動先のマップ情報を読み込ませたいのですが、
本来なら控えるgoto文をつかって
int WINAPI WinMain(略){
   DxLib_Init(), SetDrawScreen( DX_SCREEN_BACK );

_FirstLoad :
      /*   初回に必要な読み込み   */
   goto _GAMELOOP;
_Load :
      /*   読み込み   */
      if(読み込みが完了したら){
         goto _GAMELOOP;
      }
      else{
       /* 読み込みが失敗したときの処理*/
      }
_GAMELOOP :
      while(条件(略)){
         if(プレイヤーが別のマップに移動したら){
            goto _Load;
         }
      }
      DxLib_End();
      return 0;
}  
などとしても、大丈夫でしょうか?
368デフォルトの名無しさん:2014/01/27(月) 14:07:54.00
馬鹿には無理
369デフォルトの名無しさん:2014/01/27(月) 14:10:01.32
>>368
一気にロードしても良いのですがメモリを食うので
随時配列にロードする形をとりたいのですが

具体的な回答を希望します
370デフォルトの名無しさん:2014/01/27(月) 14:18:57.33
当人がgoto文使わないと随時配列にロードできないって言うんならそれでいいんじゃね
371デフォルトの名無しさん:2014/01/27(月) 14:23:08.33
>>370
やはり、ループの中で処理を済ませてしまった方が良いでしょうか
372デフォルトの名無しさん:2014/01/27(月) 14:26:28.00
本来なら控えるgoto文を使ってまでやりたい理由があるんでしょ?
なら使えば良いしないならやめとけば
373デフォルトの名無しさん:2014/01/27(月) 14:30:34.89
>>372
ふと思いついたので...
不安要素の方が大きかったので質問させてもらいました

無理に使う事も無いので方針的にはやめとく方にしますが、参考意見が聞きたかったので
374デフォルトの名無しさん:2014/01/27(月) 14:31:30.87
別に絶対gotoを使うな!なんて話はないぞ
あれも一種の宗教だ
375デフォルトの名無しさん:2014/01/27(月) 14:38:12.38
>>374
まさに 毒にも薬にもなりますからね
上手に使えればいいのですが
376デフォルトの名無しさん:2014/01/27(月) 14:45:56.59
別のパソコンで実行しようとしたらD3DX9_42.DLLがないと言われた
このパソコンにインストールできる権限はない
コンパイルしたパソコンにわざわざ古いDirectXSDKを入れてコンパイルしなおすのもダルい
他に解決方法は?
377デフォルトの名無しさん:2014/01/27(月) 14:46:01.97
せめて前方移動と後方移動でキーワードが分かれていれば
ずっとマシな評価だったのではないか
378デフォルトの名無しさん:2014/01/27(月) 15:28:34.15
>>376
SDKのRedistフォルダにファイルあるから実行ファイルと同じパスに置けば動くよ
ただ、そのファイルは再配布用インストーラを通して入れないというルールがあるので(DirectSetupで調べて)
運用は自己責任でな
379デフォルトの名無しさん:2014/01/27(月) 18:36:36.90
そういや、PCを自己責任で使うのって、わりと当たり前じゃね?
380362:2014/01/27(月) 23:06:54.60
>>365
>>362の画像はPSVitaの開発関連のものなのですが、
NSightはNVidia以外でも使えたりするんでしょうか?
まぁ、使えなかったとしても、NSight的なものがあるんでしょうね。

>>366
ありがとうございます。
MicrosoftはVisualStudioにこの機能を統合してほしいですね。
381デフォルトの名無しさん:2014/02/11(火) 16:13:20.60
今MMDのPMXビューワを作っていて、頂点モーフィングを実装したいんだが、
どう作れば良いかアドバイス頂戴。
例えばPMXの亜北ネルは頂点数10399のモデルだが、
モデルに含まれている頂点モーフパッケージは、
どれも高々200頂点程度しか移動させない。

10399頂点のモデルの高々200頂点をモーフィングさせる為のシェーダは
どういう設計で組めば効率が良いだろうか?
382デフォルトの名無しさん:2014/02/11(火) 16:59:55.26
>>381
面積が10399以上のfloat4テクスチャ作ってそれに移動量をモーフ数だけ加算してVSで足すとか
383デフォルトの名無しさん:2014/02/11(火) 18:15:51.31
>>381
微妙にモーフを理解してないような気がするんだが、気のせいか?
384デフォルトの名無しさん:2014/02/11(火) 18:26:55.99
メモリの効率よくいくにはこいつを使うしかない

コンピュートシェーダ「・・・興味があるならやり方を教えてやる(´・ω・`)」
385デフォルトの名無しさん:2014/02/11(火) 19:20:47.81
>>382
そうするなら、単純に移動量だけ収めた頂点バッファを作って
バインドした方が自然かも。1モーフ166KBか、
まずこの形で実装してみるのはありか。

>>383
端的に言うと、モーフ適用前メッシュと適用後メッシュを用意して
アルファ値でブレンドするのを頂点モーフィングだと思ってる。

>>384
CS・・
386デフォルトの名無しさん:2014/02/11(火) 19:22:53.86
テッセレーション係数って最大64なんだな。
地形表現のために、もっと分割したかったのに・・・。
387デフォルトの名無しさん:2014/02/11(火) 23:20:02.31
>>383
Dx9でも行ける(VTF使うけど)
モーフターゲット頂点の移動をテクスチャに1ドットずつ加算で打っていって
VertexShaderでそのテクスチャを読みつつ元の頂点に足せばモーフる
オフセットを記述したテクスチャじゃなくて最初の頂点位置入れても別にいいけども

>>385
テクスチャだと全部GPU処理にできそうだっていう提案なんでそっちでやるほうが色々良さそう
ポイントリストは意外と重いんだっけか
388デフォルトの名無しさん:2014/02/13(木) 15:28:47.49
VS2012でシェーダーファイルHLSLコンパイルできるようになってたけど
main無いって怒られる
DirectX11だからテクニック使わないの
PSとVSあるので設定も複数いるような気がするし
よくわからないです

VS2012+DirectX11は、
定番はどうしたらいいの?
389デフォルトの名無しさん:2014/02/13(木) 15:38:56.11
シェーダーの種類ってのがあってピクセルシェーダーとか指定できた。
一つのファイルでps,vs両方コンパイルしたい場合はどうしたらいいですか?
390デフォルトの名無しさん:2014/02/13(木) 16:02:00.99
D3DCompileFromFile使ってプログラム内でコンパイルすればいい
391デフォルトの名無しさん:2014/02/13(木) 16:29:43.04
それはわかっております。せっかくある機能を使いたかったん…
VSとPSでファイル分けるしかないのかな
392デフォルトの名無しさん:2014/02/13(木) 23:44:56.35
>>388
プロパティのHLSLコンパイラ-エントリポイント名をmainから
正しい名前に変えたらどうか?

>>391
コンパイル毎にエントリポイント名を変えればファイルを分ける必要はないだろ。
コンパイルは関数の数分やる必要があるけど。

または
VertexShader g_VS_main = CompileShader(vs_5_0, VS_main());
GeometryShader g_GS_main = CompileShader(gs_5_0, GS_main());
PixelShader g_PS_main = CompileShader(ps_5_0, PS_main());
これを入れてエフェクトIFで取り出す。
393デフォルトの名無しさん:2014/02/14(金) 16:43:45.38
>>392
VS2012登録でやるとコンパイルは1ファイル1関数(エントリポイント名)だけなんよ

MSのサンプルでは
test.fx( VSやPS入ってる。これはビルド除外 )
test_PS.hlsl( #include "test.fx" のみ記載で エントリポイントPS )
test_VS.hlsl( #include "test.fx" のみ記載で エントリポイントVS )
ってなってた
394デフォルトの名無しさん:2014/02/14(金) 23:39:58.35
HLSLをプロジェクトの設定でコンパイルは、俺も折角だから使おうと色々頑張ってみたけど使い勝手悪くて、
結局バッチとかスクリプト書いてコンパイルに戻しちゃったな。
395デフォルトの名無しさん:2014/02/22(土) 16:51:31.04
初歩的すぎてこんなこと聞くのも恥ずかしい事かもしれんけど質問させてくれ
シェーダに行列渡すとき転置するじゃない?あれってレジスタに列優先でバインドされるから
って理由だったと思うんだけど、じゃあシェーダ側でmulするときにベクトルを右辺にしたらいいんじゃないのか
って思うんだけどそれじゃダメなの?PC壊れててテスト出来ないんだけど気になってしょうがない
ネットで探してもそういうもんだで完結してるとこ多すぎて悶々とする
仮にmulで右辺にベクトルでも問題ないなら何故転置が必要ってのが当たり前なのかも気になる
昔は左辺掛けしか出来なかったとかそういう制限あったんだろうか
396デフォルトの名無しさん:2014/02/22(土) 19:20:38.63
右にベクトルで転置しなくても問題ないできるよ
計算が列ベクトルの方が早いとかなんとかだったような気がするが、理由は答えれるやつは少ないと思う。
書き方を統一する意味もあるんじゃないの?
397デフォルトの名無しさん:2014/02/22(土) 21:01:37.63
>>395
GL
398デフォルトの名無しさん:2014/02/22(土) 21:16:55.28
>>396
やっぱりそうなんだ、ありがとう
詳しい説明ってほとんどないよね、確かに列の方が早いってのは聞いたことあるような気がする
列優先でバインドされるからデータ取得が行優先より早いんだろうねきっと、微々たる差だろうけど
しっかし本とかネットでは転置するものとしか書かれてないんだよなぁ、そういうもんと納得してね(キリッ)みたいな
399デフォルトの名無しさん:2014/02/22(土) 21:43:01.28
おお、あれってmulの左右入替えだけでできたのか。
変換が入るとややこしくなるから、行優先のデータ形式で十分っぽいな。
400デフォルトの名無しさん:2014/02/23(日) 12:00:47.34
テクスチャ用画像が半透明を含むかどうか(アルファが1.0以外あるか)
知りたい。
DirectXTexではScratchImage::IsAlphaAllOpaque()でわかるようだが、
DirectXTexではなくD3DX11を使用した場合、同等の機能はあるだろうか?
401デフォルトの名無しさん:2014/02/23(日) 16:12:11.77
一発でやってくれる関数っぽいのはなかった気がしたが
mapでテクスチャにアクセスして読み取れば簡単にわかるだろ
402デフォルトの名無しさん:2014/02/23(日) 17:16:45.34
>>398
アホな説明を鵜呑みにしないで、ちゃんと調べろ
http://msdn.microsoft.com/ja-jp/library/bb509634(VS.85).aspx
D3DXMATRIXはcolumn-major(行優先)な仕様だ
403デフォルトの名無しさん:2014/02/23(日) 17:52:08.52
行優先だからHLSLに送るとき列に転置させてるんだろ
何言っての???
404デフォルトの名無しさん:2014/02/23(日) 18:02:57.26
>>402
何いってるの?お前がまず先に文章ちゃんと読めよ
未だにD3DX 構造体使ってる時点で底が知れるけど
405デフォルトの名無しさん:2014/02/23(日) 19:33:51.71
&gt;&gt;396
ベクトルって4x1として扱われるんじゃないの? と思って調べたら

http://msdn.microsoft.com/ja-jp/library/ee418342(v=vs.85).aspx
&gt;{
&gt; float4 val;
&gt; return mul(val,val); // dot(val, val)と同じ
&gt;}
&gt;この乗算結果は、1x4 * 4x1 = 1x1 ベクトルです。

状況に応じて4x1と1x4で解釈変えてくれるってことなのかな
406405:2014/02/23(日) 19:35:54.52
なんじゃこりゃ

http://msdn.microsoft.com/ja-jp/library/ee418342(v=vs.85).aspx
>{
> float4 val;
> return mul(val,val); // dot(val, val)と同じ
>}
>この乗算結果は、1x4 * 4x1 = 1x1 ベクトルです。

と書きたかった
407デフォルトの名無しさん:2014/02/23(日) 23:29:21.78
column-majorとは列優先のこと。
昔のSSEは内積命令がなかった為
ベクトルと行列の乗算には
列優先の方が効率が良かった。
今はどっちでもいい。
408デフォルトの名無しさん:2014/02/24(月) 23:42:19.43
列優先はFORTRAN、C言語は行優先、それでDirectXも行優先にしたのでは?

ところでDirectX11も左手座標系を基準にしているの?
それと、DirectX9の行ベクトル*転置行列をやっぱり踏襲してるの?
409デフォルトの名無しさん:2014/02/25(火) 00:33:47.75
開発者が自分で決めることを、DirectX云々はとかいう意味が分からない。
410デフォルトの名無しさん:2014/02/25(火) 00:56:02.20
開発者って誰なんだよ。DirectX使ってソフト作っている奴かよ。

お前はDirectX云々も知らんで、サンプルプログラム動かして
なんとなく納得している阿呆かよ
411デフォルトの名無しさん:2014/02/25(火) 03:57:22.19
>>410
Direct3Dの座標系は開発者が決められる
そんなことも知らない馬鹿は氏んでろよ
412デフォルトの名無しさん:2014/02/25(火) 06:53:10.34
だからといってX座標の変数にyと定義しないし、Y座標にxと定義しない。
413デフォルトの名無しさん:2014/02/25(火) 07:05:46.11
XとYなんてビューの設定を開発者が変更した時点で、いかようにも変化する。
自分で決めることであって、あらかじめ定まっていることじゃない。
座標系も自分で決定することであって、DirectXに依存するようなことじゃない。
そんな簡単なことも分かっていない時点で勉強不足。
414デフォルトの名無しさん:2014/02/25(火) 10:10:28.99
>>413

突き詰めれば、左手系と右手系どっちなのかはプログラマの解釈の問題というのは
そうかもしれない。

しかし、数学では右手系が普通、DirectX9が左手系がデフォルトだったから、
正の回転方向が右手系と逆なのに初心者はとまどってしまう。

メッシュモデルの読み込み(メタセコイアでは左手系、右手系に切り替え
られるとお前は言うだろうが)やカーリングの問題もある。

それにD3DX9の算術関数は行ベクトル×転置行列になっている。数学では
行列×列ベクトルの演算が普通だから、この癖も知らないと初心者は混乱する。

だから、DirectX11はデフォルトで右手系になってるか、行列×列ベクトルに
なってるのかと聞いてるのに「そんなの自分で決められる」かよ。そして、
最後は「自分で調べろ」と言うんだろ?

お前みたいなのを融通のきかない、ピントはずれのボケナスと言うんだ。そして
職場で「テクハラ」をやって上司や同僚から嫌われてるだろ。

その程度のレスしかできないなら黙ってろ。おまえはどっかの掲示板の「あ」か?
415デフォルトの名無しさん:2014/02/25(火) 12:40:59.49
>>414
そもそも固定機能が無くなって頂点処理を自分で書かないといけないんだから
自分で書いたシェーダー次第。
416デフォルトの名無しさん:2014/02/25(火) 13:52:00.00
>>414
>しかし、数学では右手系が普通、DirectX9が左手系がデフォルトだったから、
いったい何を言っているんだ?
そもそもそんなデフォルトは存在しない。
お前は頭が悪すぎる上に、思い込みがひどすぎる。
417デフォルトの名無しさん:2014/02/25(火) 13:55:43.87
なんでDirectX9が左手なんて勝手に思い込んじゃったんだろう?
馬鹿の考えることは常人には理解できない。
418デフォルトの名無しさん:2014/02/25(火) 17:44:31.59
左手だから思い込みじゃなくて確信だろう。
419デフォルトの名無しさん:2014/02/25(火) 20:23:54.24
ん?でもHLSLの組み込み関数は左手なんだから、そちらに合わせたほうがシンプルで良くね?
crossとか使ったことない?
420デフォルトの名無しさん:2014/02/25(火) 20:57:32.67
そもそもDirect3DもOpenGLも、同じ行列をセットして、
同じ頂点座標を描画すれば、同じ出力結果になるんだよ。

RM時代のX-Fileが左手でデータを格納していたから、
左手でやっているサンプルが多いと言うだけの話。
D3DXにべったり頼っている人間が、
疑いもせずそういうものだと思い込んでいる。
421デフォルトの名無しさん:2014/02/25(火) 21:02:04.13
hlslとglslなら、APIが違うから呼び出すまでの手続きは違えど、計算部分は完全に同じ内容になる。
両対応のプログラムを実際に作っているが、座標系の変換なんて意味不明な作業はしていない。
422デフォルトの名無しさん:2014/02/25(火) 21:12:54.83
まあ全部ただの行列の計算結果だしねぇ、唯一決まってるのはスクリーンの座標くらいか
423デフォルトの名無しさん:2014/02/25(火) 21:44:17.82
>>419
入力されるプリミティブの頂点が逆順になるだけで
cross自体に右手左手なんてないでしょ?
424デフォルトの名無しさん:2014/02/25(火) 22:51:07.65
>>419
crossに座標系関係ないだろw
アホ晒しもたいがいにしろ
425デフォルトの名無しさん:2014/02/25(火) 22:53:21.39
アセンブリレベルで考えればどちらかが最適だったような気がするけど。
426デフォルトの名無しさん:2014/02/25(火) 23:15:08.76
自分では何も言えないくせに、弱い犬ほどキャンキャン吠えるわ


ぺぇっ! はずかしくないのかよ。糞どもw
427デフォルトの名無しさん:2014/02/25(火) 23:16:29.81
ほんと見栄っ張りのこいつら見てると吐き気がするわ。 馬鹿の癖に
428デフォルトの名無しさん:2014/02/26(水) 01:02:10.02
VertexBufferからUnorderedAccessView作れないもんかね
まあ試してみてダメだったんだが
429デフォルトの名無しさん:2014/02/26(水) 01:06:58.67
426=427が自分の馬鹿さ加減に気が付いたようです
430デフォルトの名無しさん:2014/02/26(水) 01:10:01.87
>>429
君は相変わらずだな
毎度毎度バカだのアホだの
もうちょっと成長したらどうなの?
431デフォルトの名無しさん:2014/02/26(水) 01:13:25.15
>>430
その無駄レスする電力を何かに活かせなかったのか

と無駄レス
432デフォルトの名無しさん:2014/02/26(水) 05:30:24.00
>>428
コンピュートシェーダで頂点バッファ使いたいってことか?
もしそうなら作ることは可能。
RWByteAddressBufferを使用する
433デフォルトの名無しさん:2014/02/26(水) 05:32:40.96
>>420
http://msdn.microsoft.com/ja-jp/library/bb204853(v=vs.85).aspx
>Direct3D は、左手座標系を使用します。

ほんとこいつ馬鹿だよな。少しは疑えって話だよなw
434デフォルトの名無しさん:2014/02/26(水) 05:41:01.82
あとサイズが不変で複数バッファ作ってもいいってんなら
頂点バッファと全く同じサイズのD3D11_BIND_VERTEX_BUFFERを外したバッファを作ればいい
そいつをUAVに使って、頂点バッファのデータをコピー。
そのあとコンピュートなりピクセルなりを実行した後、結果を頂点バッファの方にコピーする
435デフォルトの名無しさん:2014/02/26(水) 05:44:35.79
>>433
やっぱり左手座標じゃないか。
436デフォルトの名無しさん:2014/02/26(水) 08:33:34.78
>>433
そのドキュメントが間違っているんだが、それが分からない時点で勉強が足りていない。
そこの解説にあるようなD3DXの数学ライブラリをOpenGLやDirect3Dに使った場合、
LH系で生成した行列を使えば左手になるし、RH系を使えば右手になる。
座標系を制御するのは上位層の話で、OpenGLやDirect3D自体に存在する話では無い。
X-Fileは左手で格納されているが、完全にデータフォーマットの話だ。

OpenGLやDirect3Dに座標系が存在するという意味不明な状態になるのなら、
それぞれに出力するデータを変えなければいけないということになるが、
実際に同じ行列と同じ頂点で動くのに、
じゃあ具体的に何のデータを変えると言うんだ?
437デフォルトの名無しさん:2014/02/26(水) 08:50:20.64
Microsoftが右手標準の3D業界に、RMという高レベルライブラリで対抗しようとして左手を押していた名残。
438デフォルトの名無しさん:2014/02/26(水) 10:11:19.29
左手右手なんかZのスケール値の問題やろ
左手にZスケール-1で右手やん
439デフォルトの名無しさん:2014/02/26(水) 10:16:49.04
>>436
なに言ってるか分らないや。
440デフォルトの名無しさん:2014/02/26(水) 10:36:25.40
判り易く言うと右手座標とか左手座標の問題というより
右回りの円と左回りの円で表裏が違うんだけど
どっちを表裏にするかがDirectXとOpenGLでは逆ってこと
これが物体の前後関係や陰面処理を可笑しくする
441デフォルトの名無しさん:2014/02/26(水) 11:49:41.69
>>440
カリングは自分で設定するものであって、
Direct3DやOpenGLに依存するものではない。
442デフォルトの名無しさん:2014/02/26(水) 12:04:12.30
右左言っている奴は、
OpenGLとDirect3Dに設定する計算内容で、
いったい何を変えなければいけないのか具体的に言ってみろ。
443デフォルトの名無しさん:2014/02/26(水) 12:09:18.53
左・右座標系「「私をめぐって争わないで・・・っ!」」
444デフォルトの名無しさん:2014/02/26(水) 12:11:20.53
>>433を持ちだしてきて「DirectXは左手座標系!」とか言ってる人や>>439
わざわざ本当のこと説明してあげる必要ないのに。
いいじゃん彼らの中では左手座標系ってことにしとこうよ。
445デフォルトの名無しさん:2014/02/26(水) 12:22:51.62
そういうコメントをすると自作自演とか言われるからやめてくれ。
446デフォルトの名無しさん:2014/02/26(水) 17:08:19.91
DirectXを開発したMSが左手だと言ってるんだから左手。

>>420 はまわりが見えないアホ。
447デフォルトの名無しさん:2014/02/26(水) 17:45:38.00
ドキュメントが間違っていても、自分で検証しようともせず、
盲目に信じ込む人間は開発には向かない。

下位レイヤーに座標系に違いがないなんて、
今回のやり取りで十分に分かっただろう。

自分で演算部分を組んで両方のプログラムを作っている人間なら、
そもそもそんな勘違いはしないんだよ。
同じ組み方で動くんだから。

自分で考えもせずにサンプルをマネするだけで既存の演算ライブラリに頼るから、
間違った情報をそのまま信じ込んでしまうんだよ。
448デフォルトの名無しさん:2014/02/26(水) 18:35:07.34
DirectXはふつうに左手だが、この人、そもそも座標系の意味を勘違いしてるっぽい。

>そもそもDirect3DもOpenGLも、同じ行列をセットして、
>同じ頂点座標を描画すれば、同じ出力結果になるんだよ。
449デフォルトの名無しさん:2014/02/26(水) 18:42:47.56
ならぬことはならぬものです
450デフォルトの名無しさん:2014/02/26(水) 19:02:24.11
なんか間抜けが1匹まじってるような
・Direct3Dのデフォルト座標系は左手系
・ただし、右手系に設定可能

これだけの話しなんじゃないの?
451デフォルトの名無しさん:2014/02/26(水) 19:40:43.04
自分で設定しないと機能しない物に、
デフォルトなど存在しない。
452デフォルトの名無しさん:2014/02/26(水) 20:01:01.65
右だ左だデフォルト云々行っている奴は、具体的に何がデフォルトで、
Direct3DとOpenGLで何の計算に影響するか答えてみろ。
それだけで決着がつく話だろ。
453デフォルトの名無しさん:2014/02/26(水) 20:05:16.16
438が全てだろ、何ごちゃごちゃ言ってんの?結論出てるじゃん
454デフォルトの名無しさん:2014/02/26(水) 20:10:18.49
座標系は高レベルのレイヤの話。
だからたとえば左手が前提になっているX-Fileを使おうとした場合、
左手ならストレートに使えるが、右手でやるならデータの変換が必要になる。
しかしそれはデータ形式の問題であって、下位レイヤーの問題では無い。

今回の話をネットワークに例えると、
物理層でIPアドレスの話をしているような状態。
455デフォルトの名無しさん:2014/02/26(水) 20:11:14.04
突き詰めれば一応、クォータニオンにもかかわってくるけどな・・・
456デフォルトの名無しさん:2014/02/26(水) 20:27:46.08
>>455
それはクォータニオンと言いたかっただけだろ。
457デフォルトの名無しさん:2014/02/26(水) 20:30:21.50
ああ、なんか響きがかっこいいだろう(´・ω・`)
458デフォルトの名無しさん:2014/02/26(水) 20:35:17.37
クォータニオン星人とかアニメとかに出てきそうな感じの名前

それはともかく戦闘機の姿勢制御の為に編み出されたっていう出自がカッコイイ
459デフォルトの名無しさん:2014/02/26(水) 20:35:47.52
俺は四元数派
460デフォルトの名無しさん:2014/02/26(水) 20:52:32.22
球面調和関数とか名前カッコいいよな
461デフォルトの名無しさん:2014/02/26(水) 20:52:43.37
>>454
ネットワークで言ったら座標系はプレゼンテーション層かな。
462デフォルトの名無しさん:2014/02/26(水) 20:57:34.17
ああ、このスレがこんなに盛り上がるなんて・・・。
おじさん、うれしいよw
463デフォルトの名無しさん:2014/02/26(水) 21:05:03.91
DirectX関係無い、というか関係無いことを主張するって流れなのが悲しいところだけどな

直交化法グラム・シュミットォ!(技名)
464デフォルトの名無しさん:2014/02/26(水) 21:21:24.13
今DirectX使ってあれこれやってる人って少ないんかねぇ。
msdnのサンプルのダウンロード数見てもこのサンプルがこんだけ?ってなったりする。
あれにvisual studioからのダウンロード数が含まれてるかどうかは知らないけど。
465デフォルトの名無しさん:2014/02/26(水) 21:21:58.09
右手系左手系の話についてまとめると、、

1、Z軸の方向

 これはViewProj行列で使用者が制御するのでD3D11は関係なし

2、3角形の頂点の順番(時計回りか否か)

 D3D11ではD3D11_RASTERIZER_DESC::FrontCounterClockwiseで制御され
 デフォルト値は右回り(時計まわり)。
 時計回り=左手系であるから、D3D11は関係がありデフォルト左手系と言える。


元々の質問内容が>>414

>だから、DirectX11はデフォルトで右手系になってるか、行列×列ベクトルに
>なってるのかと聞いてるのに「そんなの自分で決められる」かよ。そして、

だから、その答えはDirect3D11はデフォルトで左手系です、になるんじゃないの?
反論があるならプリーズ
466デフォルトの名無しさん:2014/02/26(水) 21:29:40.12
>>465
反論じゃないけどわからんから質問
時計回り=左手系って決まりあるの?
467デフォルトの名無しさん:2014/02/26(水) 21:48:20.53
>>466
さあ?わからん

ただし、座標系と3角形頂点の順は関係無いだろうな
別にどっちがどうであれ、そもそも別の処理の話なんで。
ここでグダグダ続いている話のなんと中身のないことよ。
468デフォルトの名無しさん:2014/02/26(水) 22:01:51.24
じゃあ
>だから、その答えはDirect3D11はデフォルトで左手系です、になるんじゃないの?
にはならないじゃん。少なくともその論法では。
469デフォルトの名無しさん:2014/02/26(水) 22:04:31.49
DirectXってよりただのCG基礎知識になっちゃったな
470デフォルトの名無しさん:2014/02/26(水) 23:22:24.88
>>432
その方法でUAVを作ることが出来ました。
情報ありがとうございました。
471デフォルトの名無しさん:2014/02/27(木) 21:02:03.37
お、おう・・・。
472デフォルトの名無しさん:2014/02/28(金) 01:03:48.47
質問させてください。
DirectX9ExのSetMaximumFrameLatency(1)が使いたく、
DirectX9をDirectX9Exに書き換えたところ
D3DXLoadMeshFromXでエラーが発生するようになってしまいました。
どうすればよいのか検討がつかず困っております。
開発環境はWindows7HomePremium VisualStudio2008Pro、DirectX SDK (June 2010)です。
以下に、該当箇所のコードを書きますので、
よろしくお願いいたします。
473デフォルトの名無しさん:2014/02/28(金) 01:09:29.88
hr = Direct3DCreate9Ex( D3D_SDK_VERSION, &g_pD3DEx );

D3DPRESENT_PARAMETERS d3dpp = { 800, 600, D3DFMT_UNKNOWN, 0, D3DMULTISAMPLE_NONE, 0, D3DSWAPEFFECT_DISCARD, NULL, TRUE, TRUE, D3DFMT_D16, 0, D3DPRESENT_RATE_DEFAULT, D3DPRESENT_INTERVAL_ONE };
D3DDISPLAYMODEEX *pFullscreenDisplayMode = NULL;
hr = g_pD3DEx->CreateDeviceEx( D3DADAPTER_DEFAULT, D3DDEVTYPE_HAL, hWnd, D3DCREATE_SOFTWARE_VERTEXPROCESSING, &d3dpp, pFullscreenDisplayMode, &g_pD3DDevEx );
474デフォルトの名無しさん:2014/02/28(金) 01:11:33.82
hr = D3DXLoadMeshFromX(L"tiger.x", D3DXMESH_MANAGED, g_pD3DDevEx, &pAdjacency, &pMtrlBuf, &pEffectInstances, &numMaterials, &pMesh);
if(FAILED(hr)) {
MessageBox(hWnd, L"D3DXLoadMeshFromX NG", L"CreateD3D", MB_OK);
return FALSE;
}
MessageBox(hWnd, L"D3DXLoadMeshFromX OK", L"CreateD3D", MB_OK);

以上です。
475デフォルトの名無しさん:2014/02/28(金) 01:33:01.51
D3D9のランタイムをデバッグモードにしてVisualStudioの出力にエラーメッセージが記録されるか確認
またエラーの際のHRESULTの内容も
476デフォルトの名無しさん:2014/02/28(金) 01:43:12.34
D3D9ExはD3DPOOL_MANAGEDのリソース作れないので
D3DXMESH_MANAGEDを外してみたらどうかしら
477472:2014/02/28(金) 02:26:33.59
>>475
DirectXコントロールパネルから、Debugに設定したところ、
VisualStudioの出力に
D3DX: D3DPOOL_MANAGED is not supported on D3D9Ex devices
と表示されました。
HRESULTの値は E_INVALIDARG(無効なパラメータが関数に渡されました。) でした。
D3DXMESH_MANAGEDは使えなそうなので、
D3DXMESH_DYNAMICに変更したところ、うまくいきました。
素早いご助言で非常に助かりました。
ありがとうございます。大変感謝です。
478472:2014/02/28(金) 02:29:08.45
>>476
そういう事だったのですか。勉強になります。
テクスチャの読み込みでもエラーが発生したので、
D3DPOOL_MANAGED
から
D3DPOOL_DEFAULT
へ変更でOKでした。
ありがとうございました。
479デフォルトの名無しさん:2014/03/04(火) 02:32:45.95
質問させてください
DirectX11でピクセルシェーダへの入力は標準で補間されるんですよね
つまりスムーズシェーディングはフォンシェーディングならPSに入力される法線を使えば勝手にできると理解したのですが
どうしてもフラットシェーディングでしか表示できません
そもそも法線の補間が効いてないようなのですが何か設定が必要なのでしょうか

初めて間もないド素人なので見当違いの質問だったらすjみません
480デフォルトの名無しさん:2014/03/04(火) 05:15:31.42
全部の法線が同じ方向だったり
481デフォルトの名無しさん:2014/03/04(火) 05:46:56.27
>>480
どうやらそのようです
本を参考にGSで面の法線を計算させていたのですがそのまま頂点の法線にしても同じ方向ですよね
あまりに基本的なこと過ぎてお恥ずかしい限りです
ちょっとどつぼににはまっていたのですがあっさり解決しそうです
ありがとうございました
482デフォルトの名無しさん:2014/03/04(火) 21:12:26.88
DirectX11で背景に画像を表示しようと思ったらどうしたらいい?
483デフォルトの名無しさん:2014/03/04(火) 21:29:20.91
何が聞きたいのかさっぱり分からない。
484デフォルトの名無しさん:2014/03/04(火) 21:54:40.72
画面クリアをテクスチャでやりたいってことなんじゃないの
色々方法あると思うけど、まず自分でやってみてから質問しろよ
どうすればいい?ってんなら好きにすればいいとしか言えない
485デフォルトの名無しさん:2014/03/05(水) 03:21:50.13
とりあえずテクスチャ張った画面サイズの板ポリゴンを平行投影で描いてその後デプスバッファのクリアをしたらやりたいことはできた
レンダビューを単色クリアするみたいに直接画素値を書き込むとかはできないのかな
全然機能を把握できてないからなんて調べたら良いかも分からん
486デフォルトの名無しさん:2014/03/05(水) 03:35:58.81
おまえは基礎知識がなさすぎなんだよ
487デフォルトの名無しさん:2014/03/05(水) 04:27:38.32
基礎知識が無いから聞いてるんだけどな
まあいいやもっと独学積んでからくるわ
488デフォルトの名無しさん:2014/03/05(水) 04:30:03.83
正論
489デフォルトの名無しさん:2014/03/05(水) 06:32:32.66
Direct2D「・・・呼ばれた気がした」
490デフォルトの名無しさん:2014/03/05(水) 07:21:52.35
>>485
画像でクリアしたいなら、CopySubresourceRegionが多分使える。
単純コピーだからこっちのが早いだろうけど、基本的にリソースの初期化とか更新用なので、
フォーマット揃ってないとダメとか、矩形転送(回転は不可)だとか、はみ出してちゃダメとか、かなり厳しい制限が色々あるから、
背景を描画するのが目的ならシェーダ経由で描画するのが普通だと思う。
ホントに画像でクリアしたいんならこっちの方がいいだろうけど、
後で背景スクロールとかしたいなーとかなったら、結局シェーダー経由の実装に泣きながら書き換えるハメになるだろうし。
491デフォルトの名無しさん:2014/03/05(水) 07:33:43.59
CopySubresourceRegionは単純コピーじゃないぞ
毎フレームに使うのを躊躇するほど超絶重いから

軽いのはCopyResourceの方な
492デフォルトの名無しさん:2014/03/05(水) 13:42:48.14
>>485
そもそも描く時点でデプスバッファを更新しないようにする。
493デフォルトの名無しさん:2014/03/05(水) 15:39:37.66
>>489
ID2D1DeviceContext以降のお前なら歓迎するよ^^
494デフォルトの名無しさん:2014/03/05(水) 18:28:40.38
DirectShowについてってここでいいでしょうか?
動画ファイルに文字や絵を合成してまた動画ファイルにしたいのですが
こういうのは自分でフィルタを書かないと
ダメなものでしょうか?
495デフォルトの名無しさん:2014/03/05(水) 21:35:21.73
つ AviUtl
496デフォルトの名無しさん:2014/03/05(水) 22:55:23.00
DirectShowのストリームはアプリから触れないからねぇ。そういうぴったりのフィルタが
なければ自分でフィルタを書くしかない。
Windows7以降ならDirectShowじゃなくてMediaFoundation使えば?
497デフォルトの名無しさん:2014/03/05(水) 23:26:06.15
>>495
プログラムでいじってみたいです。

>>496
自分でフィルタを書くものなのですね。
そうとわかればチャレンジしてみます。
MediaFoundationはDirectShow以上に情報が見つからないみたいなので
普及したら勉強してみます。
498381:2014/03/06(木) 01:12:09.17
やっと頂点モーフィングを実装出来たぜ・・(結局CSで実装)
約1月、時間かけ過ぎたぜ
残るは剛体だけだぜ・・
499デフォルトの名無しさん:2014/03/06(木) 12:46:17.65
キタ━━━━(゚∀゚)━━━━!!
http://blogs.msdn.com/b/directx/p/directx12.aspx
500デフォルトの名無しさん:2014/03/06(木) 13:01:37.43
早速Mantle要らない子になるん?
501デフォルトの名無しさん:2014/03/06(木) 13:24:50.75
Mantleは既に使える技術
DirectX12は早くても来年
対応するハードウェアはいつになるか未定
502デフォルトの名無しさん:2014/03/06(木) 16:39:18.72
パートナーにQualcommがおる
503デフォルトの名無しさん:2014/03/06(木) 22:21:52.38
来年なのか、じゃ11使っとくしかないか…
504デフォルトの名無しさん:2014/03/06(木) 22:46:52.31
またOSに制約つけそう
もうDirectX自体がおわこん・・
505デフォルトの名無しさん:2014/03/06(木) 22:53:52.66
当然8以降じゃないの?
506デフォルトの名無しさん:2014/03/06(木) 23:53:51.93
どんなフィーチャーが付くのかなワクテカ
507デフォルトの名無しさん:2014/03/07(金) 00:21:27.14
ここの馬鹿どもはベクトルの回転行列と座標変換行列の区別も知らんだろ。
期待するだけ無駄だ。なにせ両者の要素は全く同じだし。
508デフォルトの名無しさん:2014/03/07(金) 01:57:02.17
おじいちゃんもう寝る時間よ
509デフォルトの名無しさん:2014/03/07(金) 02:38:30.35
よくわからん煽り入れる場所を間違ってるつーの
510デフォルトの名無しさん:2014/03/07(金) 05:35:40.75
次のDirectXは初期化が簡単になってると良いな。

逆にシェーダーがほとんどコンピュートシェーダ化して、
SMなんかのユニットを意識して書かなきゃならなくなるとか、そんなのになりそうだけど。
511デフォルトの名無しさん:2014/03/07(金) 19:16:01.59
またちゃぶ台返しするんだろうな
XNAMathは廃止しまーす、代わりに○○を使ってね
DirectXTexはサポートしませーん、変わりに○○使ってね
D3DXEffectは廃止しまーす、代わり?いや無いけど?
512デフォルトの名無しさん:2014/03/07(金) 19:50:53.57
また、ガラクタどもがしょうもないことをw
513デフォルトの名無しさん:2014/03/07(金) 19:54:29.68
とりあえず知ってる単語並べてディスってみました感
514デフォルトの名無しさん:2014/03/07(金) 20:16:31.56
DirectXの初期化で無事死亡した
515デフォルトの名無しさん:2014/03/07(金) 21:56:18.10
>>511
わざと言ってるのか?w
すごい外し方だな
516デフォルトの名無しさん:2014/03/08(土) 00:15:49.39
11でだいぶ良くなった。
もう一息ってとこだね。
517デフォルトの名無しさん:2014/03/08(土) 00:38:57.41
どっちかって言うと
10でかなりまともになったが
11でまたおかしくなってきた
518デフォルトの名無しさん:2014/03/08(土) 01:03:19.38
10のパワーアップ版が11なのにどこがおかしくなったんだよ
519デフォルトの名無しさん:2014/03/08(土) 01:28:23.30
おかしいのはお前らのドタマ
520デフォルトの名無しさん:2014/03/08(土) 02:15:31.53
使い物にならないテッセレーションの為に、節操なくシェーダステージを量産
ID3D11DeviceとID3D11DeviceContextの分離(性能の為に簡素さを犠牲)
CAPS的要素の復活(正しくは10.1からだが)
RWStructuredBufferやRWByteAddressBuffer、AppendStructuredBufferなど、非汎用的な拡張(例えばvector< struct >1本では無理だったのか)

全体的に10で洗練されてかなりシンプルなデザインになったのに
11でまた複雑化する方向に舵を取った印象
おかしくなってるとはそういうこと
521デフォルトの名無しさん:2014/03/08(土) 10:41:48.02
うーん、そう言われると、たしかにもっと洗練された構造にできなかったのかな、と思う。

C++AMPなんかは裏でDirectCompute使ってるけど、
あれはかなり洗練されてる印象がある。
522デフォルトの名無しさん:2014/03/08(土) 10:42:27.20
シェーダステージはハードのアーキテクチャに合わせてるだけだから別によくね?
無理矢理使わないとダメなものでもないし
複雑化はしてると思うけど、それだけ出来ることが増えてるとも言えるし
523デフォルトの名無しさん:2014/03/08(土) 17:25:21.54
11>10
これは間違いない
524デフォルトの名無しさん:2014/03/08(土) 18:25:59.28
ID3D11DeviceとID3D11DeviceContextの分離の部分は
個人的には便利だがな
525デフォルトの名無しさん:2014/03/08(土) 21:34:01.24
DeviceContextとの分離はマルチスレッドのための設計だからじゃないのかな
526デフォルトの名無しさん:2014/03/08(土) 21:39:47.34
ID3D11DeviceContextの分離は目的に対して素直な変更だし
Capsについても広いハードウェアをサポートしつつ先進的な機能をAPIに取り込むスタンスにおいて
最初っからただの幻想だと思ってたから、まあそうなるよねって感想しかないな

シェーダまわりがとっ散らかってるの完全に同意
527デフォルトの名無しさん:2014/03/08(土) 23:20:46.62
DifferedContextの利点がいまいち分からんw
528デフォルトの名無しさん:2014/03/11(火) 16:21:55.90
DirectX9の Presentには、 更新元、更新先矩形指定できたけど、
HRESULT Present( CONST RECT *pSourceRect,
CONST RECT *pDestRect,
HWND hDestWindowOverride,
CONST RGNDATA *pDirtyRegion
);

11のPresentには、矩形指定が無いのです。
別に指定方法ってありますか?
529デフォルトの名無しさん:2014/03/11(火) 16:52:24.69
>>528
ドキュメントを読まない馬鹿は救いようがないな
もう一度リファレンスをよく読め
530デフォルトの名無しさん:2014/03/11(火) 17:53:36.61
Present1
531デフォルトの名無しさん:2014/03/13(木) 16:51:05.51 ID:sXBITfll
DirectX 9.0 SDK Update - (October 2004)を
探しているのですが、microsoftのダウンロードセンターを
探しても見つからないです。どこかに置いてあるものなのでしょうか。

ちなみに、中に入っているdinput.libが欲しいのですが。
532デフォルトの名無しさん:2014/03/13(木) 17:41:01.98 ID:mfsOHz8n
>>531
探し方が悪いだけだろ
やり直し
533531:2014/03/13(木) 18:09:04.93 ID:sXBITfll
>>532
ありがとうございます。
結局、Microsoft内を探しても見つけられなかったので
仕方が無いので、怪しげなサイトに置いてある
dxsdk_oct2004.exeを見つけ、ダウンロードすることにしました。

SHA-1は8097bb69676a20e55a98a67d960a8b6edc89dff9のようなので
これが一致していれば大丈夫なはず、、、はず。。。
Microsoft内で簡単に見つかれば、こんな恐ろしい目に合わなくて済むのですが。。。
534デフォルトの名無しさん:2014/03/13(木) 18:19:53.43 ID:mfsOHz8n
>>533
「DirectX SDK October 2004」でググるという発想はないのか…
535デフォルトの名無しさん:2014/03/13(木) 18:24:08.44 ID:mfsOHz8n
>>534
自己レス
ごめん、ググって出てこない
というか、>>532のいうようにMSのDLセンターからSDKがほぼ消えてる
DXSDk October 2004
http://www.microsoft.com/downloads/details.aspx?FamilyId=B7BC31FA-2DF1-44FD-95A4-C2555446AED4%26displaylang=en
DLセンタートップにリダイレクトされる

一時的なものかDX12を前に一掃されたかわからん
確認せずにいい加減なレスしてすまんかった
536531:2014/03/13(木) 19:24:20.97 ID:sXBITfll
>>535
うちだけMicrosoftからブロックされたのかな?とか
訳のわからないことを考えてしまっていましたw

怪しい韓国サイトからDLしたものは、chromeさんに
「これ、危ないファイルだよ」と言われた上に、SHA-1も
異なっていたので、0と1に還元してあげました。

仕方がないのでしばらく様子見することにします。
ありがとうございました。
537デフォルトの名無しさん:2014/03/13(木) 20:04:37.05 ID:ehk1j1eU
純正品ならMSの署名ついてるだろ
538デフォルトの名無しさん:2014/03/13(木) 22:22:44.58 ID:tA2XNf3V
つかdinputって推奨されてないんじゃなかったっけ。
539デフォルトの名無しさん:2014/03/13(木) 23:07:57.86 ID:C3VukTft
540デフォルトの名無しさん:2014/03/13(木) 23:58:34.99 ID:0zqrsvP1
ttp://www.microsoft.com/en-us/search/DownloadResults.aspx?q=directx%20software%20development%20kit&sortby=availabledate
Oldest to Newestでソートしても、一番古いSDKはApril 2006になっちゃうみたいだね
541デフォルトの名無しさん:2014/03/14(金) 00:45:48.33 ID:eYqlzhTA
古いDirectX本のCDに付いてると思う。
正規に入手するならそれ位しかないんじゃない?
542デフォルトの名無しさん:2014/03/14(金) 01:09:44.21 ID:MXy7+zpF
543デフォルトの名無しさん:2014/03/14(金) 02:02:01.99 ID:FYfc+HAB
いちいち口の悪い奴だ。
544デフォルトの名無しさん:2014/03/15(土) 14:37:10.27 ID:ZPMHjx2K
DrawInstancedIndirect()などIndirect系の利点がいまいちわからん。
DrawInstanced()の引数「uint x 4」がシェーダリソースになってるってことだが
描画がGPUで勝手にやってくれる訳でもなく、
CPUからのDrawInstancedIndirect()コールは必要な訳で、
それじゃDrawInstanced()コールしてんのと殆ど違いが無いよね。
引数「uint x 4」の転送がそんなに重いの?
545デフォルトの名無しさん:2014/03/15(土) 15:47:48.76 ID:rqH/Y87T
コンピュートシェーダ「俺が並列計算してインスタンス数をはじき出す、待ってろ!」
DrawInstancedIndirect「さすが、コンピュート先輩!」
546デフォルトの名無しさん:2014/03/15(土) 19:18:06.97 ID:OVnyPj77
ワロタw
547デフォルトの名無しさん:2014/03/15(土) 21:31:42.56 ID:m+I3XmHi
>>544
CPUとGPUは非同期で動いてるから、普通のDrawInstanced()だとコンピュート先輩が結果出すまでCPUは待ちぼうけくらうっしょ?
でもコンピュート先輩がシェーダーリソースに結果を書き出して、後続のDrawCallがそこからパラメータを読み取って動作するって命令があればGPUの中で完結するからCPUを止めずに済む。
それがIndirect系の命令。
548デフォルトの名無しさん:2014/03/19(水) 15:16:43.92 ID:pQvJpOb/
d3dx9.h:No such file or directoryと出たのでヘッダーファイルズにd3dx9.hとd3dx9.hでインクルードされているヘッダーファイルを入れたのですが結果は変わりませんでした。

何が問題なのでしょうか?よろしくお願いします
549デフォルトの名無しさん:2014/03/19(水) 16:41:05.97 ID:GyaDX1Bo
>>548
おまえが環境構築の何たるかを理解してないのが問題なんだよ
550デフォルトの名無しさん:2014/03/19(水) 17:48:56.55 ID:mmxkXVjV
FAQだからエラーメッセージやらファイル名やらでぐぐれ
あと勝手にコピーしたファイルは必ず戻しておくこと
551デフォルトの名無しさん:2014/03/19(水) 23:07:44.60 ID:3ifCllKW
もうDirectXでもなんでもないやんけそれ
プログラミングの基礎から勉強し直せ
552デフォルトの名無しさん:2014/03/20(木) 01:03:46.28 ID:l7cmVyTY
今そういえばVS2013とかにd3dx9.hって入ってないのか
sdk探して下ろしたり知ってる人間でも割と面倒かもしれない

と思った
553デフォルトの名無しさん:2014/03/20(木) 02:04:41.49 ID:x0ohoy4J
で、入ってないからと古いSDK入れようとすると

KB紹介:DirectX SDK をインストールしようとするとエラーが発生する
http://blogs.msdn.com/b/windows_multimedia_jp/archive/2013/09/05/kb-directx-sdk.aspx

こういうエラーに遭遇したり。めんどくさい。
554デフォルトの名無しさん:2014/03/21(金) 01:56:22.38 ID:Uok2eO6l
もう最新のDirectX11でイイよ。
555デフォルトの名無しさん:2014/03/21(金) 02:38:22.37 ID:/a5JnjE5
NVIDIA will support DX12 on Fermi, Kepler, Maxwell and forward!
古いハードウェアでも行けるのか
556デフォルトの名無しさん:2014/03/21(金) 02:40:46.00 ID:/a5JnjE5
Developers already have DX12 drivers. The Forza demo was running on NVIDIA!!!

つまりデモの映像はPCで動いてたのかよw
557デフォルトの名無しさん:2014/03/21(金) 04:40:26.50 ID:XBQxLLJ5
>>552
今までVSにD3DXのヘッダなんて入ってたことあったか?
558デフォルトの名無しさん:2014/03/21(金) 05:12:13.43 ID:vYyAx4Xx
http://blogs.msdn.com/b/directx/archive/2014/03/20/directx-12.aspx

Windows7対応しなさそうな感じだな
559デフォルトの名無しさん:2014/03/22(土) 03:21:12.09 ID:e5G6ta4Q
560デフォルトの名無しさん:2014/03/23(日) 02:55:55.99 ID:Tm2ek9Zj
Directxに興味を持って2年くらい前から本を持っているのに
相変わらずサンプルのビルドすらできない
ライブラリとか指定済みのSampleBrowserのものすら動かないのは何が悪いのやら
561デフォルトの名無しさん:2014/03/23(日) 03:27:17.72 ID:tktLBKAf
>>560
おまえの頭
562デフォルトの名無しさん:2014/03/23(日) 03:59:50.76 ID:gvom7fcZ
Hello worldがコンパイル出来てるか心配になるレベル
563デフォルトの名無しさん:2014/03/23(日) 05:51:35.48 ID:YAORAhKQ
定数バッファを作ろうと思って

struct TEST
{
    float test;
};

というストラクチャを作り、

D3D11_BUFFER_DESC cb;
cb.ByteWidth = sizeof( TEST );
cb.Usage = D3D11_USAGE_DYNAMIC;
cb.BindFlags = D3D11_BIND_CONSTANT_BUFFER;
cb.CPUAccessFlags = D3D11_CPU_ACCESS_WRITE;
cb.MiscFlags = 0;
cb.StructureByteStride = 0;

ID3D11Buffer* ConstBuffer;
m_pD3DDevice->CreateBuffer(&cb, NULL, &ConstBuffer);

という風に書いたんですが、このCreateBuffer()で失敗します。
HLSLの方は

cbuffer cbBuffer0 : register(b0)
{
   float test;
};

何が問題なんでしょう?
564デフォルトの名無しさん:2014/03/23(日) 10:53:22.16 ID:mAtrOGhz
>>563
おいおい、買った本教えてみ。
非常に大事なお約束が抜けてるぞw
自分も最初に躓いたな、そこw
565デフォルトの名無しさん:2014/03/23(日) 11:33:44.93 ID:ZR9aiy74
>>563
D3D11が失敗するときは、エラーメッセージを吐くのでそれを参考に。
Bufferまわりはマニュアルにない制約が多いので注意。

D3D11 ERROR: ID3D11Device::CreateBuffer:
The Dimensions are invalid. For ConstantBuffers,
marked with the D3D11_BIND_CONSTANT_BUFFER BindFlag, the ByteWidth (value = 4) must be a multiple of 16.
ByteWidth must also be less than or equal to 65536 on the current driver.
[ STATE_CREATION ERROR #66: CREATEBUFFER_INVALIDDIMENSIONS]
566デフォルトの名無しさん:2014/03/23(日) 17:59:18.84 ID:qjHgMSQw
まあ、簡単に言うとだな・・・

struct TEST
{
float test;
float test2;
float test3;
float test4;
};

にしとけってことだ
567デフォルトの名無しさん:2014/03/23(日) 18:55:17.87 ID:FUgeXWae
>>560
持ってるだけじゃ意味ないですよw
568563:2014/03/23(日) 20:17:38.70 ID:YAORAhKQ
>>564-566
回答ありがとうございます。

sizeof(TEST) + ( 16 - (sizeof(TEST) % 16));

としたら通りました。
考えてみれば実用上はほとんどの場合、float4の型しか使いませんね。

>>564
今のところネット情報だけでやってます。良ければオススメの本教えてください。
569デフォルトの名無しさん:2014/03/23(日) 20:25:38.86 ID:mAtrOGhz
>>568
http://www.kohgakusha.co.jp/books/detail/978-4-7775-1537-0
定数バッファの制限とか基本的な事は抑えてる。
ただ、>>565も言ってるように、書かれてない制限もあるから注意。
570デフォルトの名無しさん:2014/03/23(日) 20:55:55.31 ID:qjHgMSQw
なんだ、二年前の本の人とは別人なのか
571デフォルトの名無しさん:2014/03/24(月) 23:47:47.10 ID:qqvrcyIg
DXVAで動画エンコしようと思っているんだけど、IDirect3DSurface9を使う場合って
やっぱりデバイスロスト対策は要るんだろうか?
もし要るとした場合、随時TestCooperativeLevel()でチェックすればいいのかな?
572デフォルトの名無しさん:2014/03/30(日) 23:47:50.94 ID:LHeEvqgF
>>560と同じ状況ですが
サンプルを動かすのに設定済み項目以外で変更すべき項目などありますか
573デフォルトの名無しさん:2014/03/31(月) 01:40:05.21 ID:VNf8PF+y
ビルドに失敗するならビルド時のエラーメッセージを無視せず必ず読め
そこに何が問題なのか8割方書いてある
574デフォルトの名無しさん:2014/03/31(月) 13:24:52.71 ID:E/15h4Ol
#includeは、おまじないじゃないんやで
575デフォルトの名無しさん:2014/03/31(月) 21:39:38.90 ID:OtQqQh/Y
せやな。
576デフォルトの名無しさん:2014/03/31(月) 21:41:40.85 ID:4R4NZLEn
プログラミングは宗教です
577デフォルトの名無しさん:2014/04/01(火) 00:47:46.28 ID:kcoRdAap
ならプログラマは神の奇跡を呼び起こす僧侶だな
578デフォルトの名無しさん:2014/04/01(火) 13:46:39.50 ID:SlVwWPQZ
アップルという名の宗教に入っています
579デフォルトの名無しさん:2014/04/03(木) 11:01:19.44 ID:tuuzFS5t
DX12はWindowsPhoneも対応だけど、.NETには対応しないの?
580デフォルトの名無しさん:2014/04/03(木) 11:49:04.76 ID:0Rw6D0p7
何を言ってるんだ君は
581デフォルトの名無しさん:2014/04/03(木) 11:54:53.35 ID:B4cDVk8c
SharpDXあたりが対応してくるんじゃね
582デフォルトの名無しさん:2014/04/03(木) 16:56:56.73 ID:1H4eKrwv
開発者さんやる気満々だったよ
583デフォルトの名無しさん:2014/04/04(金) 09:00:30.47 ID:GzdpzWxB
584デフォルトの名無しさん:2014/04/10(木) 10:43:43.20 ID:T9oa77ZA
ゲイツが抜けてから迷走してるなぁ。
マカーなんか採用するからこんなことになるんだよ。
585デフォルトの名無しさん:2014/04/10(木) 12:36:49.50 ID:Tdl4/NAC
ゲイツまだいるし
586デフォルトの名無しさん:2014/04/10(木) 14:19:55.93 ID:ro2/cQQ+
ビル&メリンダ・ゲイツ財団にいるんじゃね
587デフォルトの名無しさん:2014/04/12(土) 01:09:50.13 ID:22hvsUpn
C#とSlimDXの質問ってここで良いの?
588デフォルトの名無しさん:2014/04/12(土) 01:11:50.33 ID:M8tgAww2
内容によっては↓
C# C# C♯ でゲームを作ろう Part2
toro.2ch.net/test/read.cgi/gamedev/1290300779/
589デフォルトの名無しさん:2014/04/12(土) 01:13:05.66 ID:22hvsUpn
Direct2D&DirectWriteは文字の表示のみなんでしょうか?
入力が必要になった場合コントロールの貼り付けで対応するんでしょうか?
590デフォルトの名無しさん:2014/04/12(土) 01:18:26.13 ID:22hvsUpn
SlimDXのDirect2Dでオブジェクトをアフィン変換する時に回転して拡大縮小を同時にするには
変換行列を使うとどう行列を設定すればいいんでしょうか?
591デフォルトの名無しさん:2014/04/21(月) 20:12:56.30 ID:ZimkVXWA
VC++2010でDirectX系のlibファイルをデフォルトで追加されてるようにするには
どうすればいいでしょうか?
592デフォルトの名無しさん:2014/04/21(月) 20:33:41.43 ID:wKHG/yUs
>>591
ググれ
593デフォルトの名無しさん:2014/04/22(火) 20:11:25.32 ID:j0qIwEs0
2010でデフォルトで追加されるようにって意味がよくわからんぞ
2010とdirectxインストールしろとしか言えんわ

・・・2012じゃだめなん?こっちは最初からdirectxが入ってるぞ
594デフォルトの名無しさん:2014/04/22(火) 20:16:36.18 ID:xLscFuQY
新規プロジェクトを作成したときに
追加の依存ファイルとしてd3d10.libとかが既に設定されている状態にしたいってことかね
595デフォルトの名無しさん:2014/04/22(火) 22:24:54.83 ID:opoOWVn8
プロパティシートでも自前で書けば?
596デフォルトの名無しさん:2014/04/24(木) 01:36:45.53 ID:spet179P
DirectX11のブレンドステートって加算用とか乗算用に変更しようとして
毎回CreateBlendStateとOMSetBlendState呼ぶのは間違ってる?
597デフォルトの名無しさん:2014/04/24(木) 02:55:13.63 ID:U9MVIO0k
速度的に問題ないと思ったら毎回呼んでもいいんじゃない?
同じステートがすでに制作済みならそのポインタを返すらしいぞ、CreateBlendStateは

・・・俺は毎回CreateBlendStateは呼ばんけどな
598デフォルトの名無しさん:2014/04/24(木) 07:56:13.21 ID:lBIIK8rX
さすがにCreate系は立ち上げの際に1回呼び出すだけだな。
Set系は毎フレームコールしてるわ。
599デフォルトの名無しさん:2014/04/24(木) 11:29:16.45 ID:J1TSy0dP
>>597>>598
じゃあ初期化の段階で加算用、乗算用とかのブレンドステート作っておいて、
いざ使う時にどれかを選んでSetする感じか
サンクス
600デフォルトの名無しさん:2014/04/24(木) 17:28:22.52 ID:DnZ7CeuU
>>599
DirectXTKってのにシングルトンのステートオブジェクトを返す丁度良い実装があるよ
601デフォルトの名無しさん:2014/04/24(木) 21:40:34.28 ID:TplQLG64
DirectXTKは使わないし、それほど素晴らしいとは思えないけど、
参考にはなると思う
実用的なモノのソースがぜんぶ見られるんだから、見て損はないよね

それはどうでもイイけど、>>596それは無いと思う
Direct3Dに限った話じゃないけど、C/C++的に、とても忙しいときに
リソース確保とかない
602デフォルトの名無しさん:2014/04/26(土) 16:40:29.83 ID:jarD8S8q
DirectX+C++でプログラムを作りたいと思っています。
PS4でソフトを出す人が言っていたのですが、今でもDirectX9使ってて、11は触ったこともないよと言っていました。
(DirectX9のプログラムをPS4でリリースするそうです)
11は9にあった機能がガンガン削られたというのも気になってて、9から勉強すれば大丈夫でしょうか?
603デフォルトの名無しさん:2014/04/26(土) 16:56:18.01 ID:kNj7CoHP
今さら9はないかな
機能が削られたといってもよりハードウェアよりになってパフォーマンスを重視するようになったってだけだし
604デフォルトの名無しさん:2014/04/26(土) 17:11:51.16 ID:hnCObsbS
9は参考書籍に良書が多いから、9スタートでもいいとは思うけど、
やる気の持続する人はこの質問する前にすでに両方試してると思う。つまり才能がな(ry
605デフォルトの名無しさん:2014/04/26(土) 17:36:17.40 ID:KAgGu5U7
触ったことも無い人間が語る内容を信じる意味が分からない。
606デフォルトの名無しさん:2014/04/26(土) 17:53:02.69 ID:OHeunlyf
9をかんだ程度で11に行きたいならやめておいた方がいい。混乱するだけだ
9を極めて11に行こうってんなら、移行は簡単だろうが時間の無駄すぎるだけだ
607デフォルトの名無しさん:2014/04/27(日) 06:55:45.29 ID:ean7wWfJ
0から始めるのに今更9は流石に無意味
608デフォルトの名無しさん:2014/04/28(月) 17:57:24.54 ID:6pILsLXV
DX11ってOpenGLみたいに描画がプリミティブになったんだっけ?
609デフォルトの名無しさん:2014/04/29(火) 09:44:48.70 ID:JlO62gth
意味不明
610デフォルトの名無しさん:2014/04/29(火) 14:43:35.70 ID:SJ6dwBtg
俺、次のDX12に期待するわ
611デフォルトの名無しさん:2014/04/29(火) 16:22:27.29 ID:h5iJ3BEz
じゃあ僕はDirextX15ぐらいで。
612デフォルトの名無しさん:2014/04/29(火) 17:23:56.29 ID:yQJI8F/r
12はまた大幅な変更なのかな
613デフォルトの名無しさん:2014/04/30(水) 00:23:04.03 ID:F/SK7ZLB
情報量は9が多いし、参考にしたらいいと思うけど、
今からプログラミングするなら断然11をオススメする。
9までのAPI増改築による複雑さが整理されているし、色々なアルゴリズムを適用し易い柔軟性もある。
614デフォルトの名無しさん:2014/04/30(水) 21:04:02.99 ID:F/SK7ZLB
骨まで理解するPCアーキテクチャ(GPU編) 第4回
http://pc.watch.impress.co.jp/docs/column/1month-kouza/20140425_646073.html

>CPUはどちらにもアクセスできるが、GPUの方はI/O空間のみにしかアクセスできないという問題がある。
>「ではプロセスもI/O空間だけを使ってプログラムを走らせれば?」というのは無理な相談で、
>元々この領域はI/Oデバイスとの通信用に設けられた特殊な領域なので、
>プロセスからアクセスはできるといっても、本来のメモリ空間と同じように扱えるわけではない。
>よって、旧来の方式では、

>1.CPUが元データをメモリ空間からI/O空間にコピー
>2.I/O空間にGPUがアクセスして処理を行ない、I/O空間に結果を書き戻す
>3.CPUが結果をI/O空間からメモリ空間にコピー

>という面倒な手順になっていた。

DirectX11でステージングバッファっていうのを介してGPU転送してるみたいだけど、
あれって上記記事のI/O空間のメモリ領域のことなの?
615デフォルトの名無しさん:2014/05/01(木) 04:30:33.34 ID:eDhN40up
DirectX11でテクスチャの設定された面とされてない面があるオブジェクトを描画する時はシェーダを切り替えなくてはいけないんでしょうか
シェーダ側からテクスチャが設定されているか調べる方法があると良い気がするのですが
616デフォルトの名無しさん:2014/05/01(木) 07:02:34.05 ID:M4OGqH6+
頂点情報に埋め込んどけばいいだけの話
617デフォルトの名無しさん:2014/05/01(木) 07:07:10.65 ID:5zg6LXgK
シェーダ内でif分岐するよりはシェーダを切り替えたり、
テクスチャなしの場合は白のテクスチャを張る、
とかにしたほうがパフォーマンス的にいいと思う。
実際に測定してないけど
618デフォルトの名無しさん:2014/05/01(木) 17:16:33.93 ID:w63nobuX
DynamicShaderLinkageってのがあってだな・・・

まぁ白テクスチャの方がお手軽だけどな
619615:2014/05/01(木) 23:00:51.16 ID:eDhN40up
DynamicShaderLinkageを勉強しつつまずは白テクスチャの方法をとろうと思います
ご指導ありがとうございます
620615:2014/05/01(木) 23:43:52.59 ID:eDhN40up
と思ったのですがテクスチャのない面では頂点色を使いたいときは白テクスチャだと対応しづらい気もします
頂点情報に埋め込むかDynamicShaderLinkageを使った方が良い気がしてきました
何はともあれ実践不足なので色々試してみたいと思います
621デフォルトの名無しさん:2014/05/02(金) 01:31:10.50 ID:ahIZpWLt
なんで?
頂点色って基本乗算だろ。白テクスチャと乗算しても変化ねーよ
622615:2014/05/02(金) 02:05:57.87 ID:F8VRsAqW
最初は白テクスチャなら乗算しても同じだから大丈夫と思ったんですけど
そうなると普通のテクスチャでも頂点色との乗算を行うってことでそれって大丈夫かなと思った次第です
なんか思考が迷走してる気もするので変なこと言ってたらすみません
623デフォルトの名無しさん:2014/05/02(金) 02:11:02.38 ID:ahIZpWLt
頂点色ってのはそういうものだ。最終的にテクスチャと合成される
テクスチャが頂点色で変わるのがいやなら普通は頂点色も白にするもんだ
624615:2014/05/02(金) 02:15:36.51 ID:F8VRsAqW
なるほど勉強になりました
では白テクスチャの方針で進めていきたいと思います
ご助言ありがとうございます
625デフォルトの名無しさん:2014/05/02(金) 02:17:18.81 ID:ahIZpWLt
まさか、頂点色だけでオブジェクトの色を決定してるってわけじゃないんだろ?
場合によってはありかもしれんが・・・
626615:2014/05/02(金) 02:36:59.87 ID:F8VRsAqW
今まで頂点色を設定したobjファイルを元に色々シェーダで遊んでいたのを
テクスチャに対応させようと思って色々混乱してしまった感じです
627デフォルトの名無しさん:2014/05/02(金) 09:49:23.59 ID:Cd4tkU62
普通は頂点色じゃなくて材質の減衰色とか拡散色を1描画命令ごとに変更するんよ
628デフォルトの名無しさん:2014/05/17(土) 18:42:02.76 ID:8IJQqYsm
CとC++の入門書を終えた程度の貧乏学生です。

DirectX 7〜9の本を親戚から何冊か貰ってきたので、
これから勉強していくのですが、
現在のバージョンからすると古いと思います。
勉強する上で注意する点とかありますか?

コンパイラーも古くライセンス毎もらったVC++2005で、
OSはWindows Vista(ノート)か7(デスクトップ)です。
629デフォルトの名無しさん:2014/05/17(土) 18:49:58.52 ID:klXatZDI
>>628
こんなとこで聞くんじゃなくて、勉強の方法から学習しなおせ
ググればいくらでも情報は手に入る
630デフォルトの名無しさん:2014/05/17(土) 20:01:53.65 ID:7SSEWvta
注意する点ではないと思うが、7があるんだろ
directx11と2012を使おうとは思わんのか?
631デフォルトの名無しさん:2014/05/17(土) 20:15:11.81 ID:OQzb2Hc/
>>628
DirectX7〜9はもう古いからDirectX11を勧める。
本は『DirectX11 3Dプログラミング』がオススメ。
環境は学生ならDreamSparkの登録をしてVisualStudio2012もしくは2013のPro版を入手。
あと趣味でなく研究用途ならOpenGLも検討すべき
632デフォルトの名無しさん:2014/05/17(土) 22:18:59.77 ID:Tu7n2zq5
研究は何故OpenGL?
Windows以外の環境があるから?
633デフォルトの名無しさん:2014/05/17(土) 23:44:07.05 ID:jcSfCTxN
XPが消えた今DX9を今更勉強するのもアレだしね
モバイルもDX10〜11相当のGLES3.xに移行中だし
634デフォルトの名無しさん:2014/05/17(土) 23:52:42.56 ID:jcSfCTxN
635デフォルトの名無しさん:2014/05/17(土) 23:58:53.84 ID:OQzb2Hc/
>>632
そうです
636デフォルトの名無しさん:2014/05/18(日) 00:03:19.76 ID:7ynzBwDy
>>635
d。
637デフォルトの名無しさん:2014/05/18(日) 02:17:14.77 ID:UIXSU/XH
vc expressつかってると、デバッグができないので、pix復活希望なんだけど。
638デフォルトの名無しさん:2014/05/18(日) 02:30:36.62 ID:wwgrtV1p
ストア版の2013Expressではグラフィクス診断使えたり
D3D9ならDirectX SDKのPIXがまだ使えたりするんだけどねえ
639デフォルトの名無しさん:2014/05/18(日) 04:06:05.37 ID:LHYpYcUR
>>629
貴方のような意見を最近良く目にしますが、
学習するプロセスと調査するプロセスではメカニズムが相違します。
初めの学習においては、ネットで有益な情報を見極めるだけの知識が存在せず、
無知な状態でそれらを見極めようとする時間は無駄な時間と労力です。

>>628
とりあえずVistaや7にDirectX 9 SDKのインストールする方法はネットを参考にし、
DirectX 7の本はさて置き、
9の入門書を所持されているようであれば、そこから始め、
問題に陥った時に聞けば良いと思います。

ぼくはゲーム業界を退きましたが、ゲーム開発は楽しいので是非頑張ってください。
640デフォルトの名無しさん:2014/05/19(月) 20:47:49.43 ID:y8Ney476
DX9はそれまでのDXの集大成みたいなもんだから覚えておくべき。
DX10とかDX11はDX9に追加のAPIをつけたようなもんだから。
641デフォルトの名無しさん:2014/05/19(月) 20:55:18.17 ID:Ej7bmL02
>>640
それプラス、増改築で継ぎ接ぎだらけの状態をキレイに体系化して再構築した、だね。
DX11、初期化とか量がけっこうあったり、面倒に感じるところもあるかもしれないけど、
従来の複雑さ、ややこしさはだいぶマシになったし、色んなシェーディングを試しやすい柔軟性もある。
柔軟性については統合シェーダのおかげもあるけどね。

情報量はDX9。
実際のコーディングはDX11って感じかな。
642デフォルトの名無しさん:2014/05/20(火) 04:36:26.33 ID:f9YPeLav
柔軟すぎると初心者は手をつけれなくなるんだよね。
643デフォルトの名無しさん:2014/05/20(火) 13:02:53.77 ID:c/zSMJrz
javascriptのことですね
644デフォルトの名無しさん:2014/05/26(月) 21:00:59.60 ID:/c0SmoR4
スレが間違っていたら申し訳ありません。
質問なのですが、現在DirectXでpmdファイルを読み込むプログラムを作成しているのですが
サンプルプログラムで使用されていたpmdファイルを読み込むことには成功したのですが、
自分が使いたいLat式ミクを表示しようとするとフォルダの中に存在しているテクスチャが見つからないと
表示されアクセス違反が発生してしまいます。
なぜ指定されたデータは存在するのにプログラム側で指定されたファイルが見つかりません。
と表示されるのか原因がわからず困っております。
読み込みのプログラムはこちらのサイトのpmdモデルを表示を参考にしました。
http://www2.ocn.ne.jp/~mhage/PIC_Trap/
データはソースコードが置いてある場所にモデル用のフォルダを作成しその中にすべて
データを入れてあります。
パスの指定の方法は"フォルダ名/モデル名.pmd"で指定しております。
環境
Windows7
VisualStudio2008
DirectXSDK November2007を使用しております
645デフォルトの名無しさん:2014/05/26(月) 21:09:53.94 ID:/c0SmoR4
ちなみにフォルダ内のデータをすべてソースコードが置いてるフォルダ直下に移した場合は表示されております
646デフォルトの名無しさん:2014/05/26(月) 21:14:44.44 ID:PNgp/PCF
いきなりプログラミング始めると、パスの概念なかったりするのかね
単純に馬鹿なんじゃと言いたくなるが、最近の学習環境ってどうなんだろう
647デフォルトの名無しさん:2014/05/26(月) 23:28:36.37 ID:9uDw03cb
Direct2Dでテクスチャ描画するときに
特定の色だけ透過(色抜き)って出来ますか?
648デフォルトの名無しさん:2014/05/27(火) 18:30:57.13 ID:6Q8qjCFH
ああ、出来るよ
649デフォルトの名無しさん:2014/06/03(火) 22:13:03.43 ID:zF5jL880
2014-05-17 OpenGLでムカつくこと
ttp://cpplover.blogspot.jp/2014/05/opengl.html
2014-05-19 OpenGLドライバー品質の実情
ttp://cpplover.blogspot.jp/2014/05/opengl_19.html

OpenGLもいろいろ大変なんだね
650デフォルトの名無しさん:2014/06/03(火) 23:54:46.04 ID:i8lZwovg
なんだ、D3Dマンセー記事?
651デフォルトの名無しさん:2014/06/04(水) 00:31:20.30 ID:BscmL0e/
Valveの人の不満が書いてあるだけじゃね?
652デフォルトの名無しさん:2014/06/04(水) 00:34:06.51 ID:S+z4z//M
俺に使えないもの作るんじゃね
といってるように読めますが
653デフォルトの名無しさん:2014/06/04(水) 00:36:48.35 ID:BscmL0e/
思考停止してる人間はそう読めるのかもしれない
654デフォルトの名無しさん:2014/06/04(水) 17:41:25.61 ID:2ij5JthN
ハード屋はとりあえず自分の環境だけで動けばいいやってところが多い
655デフォルトの名無しさん:2014/06/08(日) 15:06:39.78 ID:DzOeG031
ゲームプログラミングのために勉強し始めたばかりなんですが例えば2Dなら2D、3Dなら3D、あるいはジャンル毎とかにDirectXの土台のコードの部分って似たり寄ったりになるものですか...?
656デフォルトの名無しさん:2014/06/08(日) 15:43:52.16 ID:2dlEo4xC
今の時代は2Dでも3DAPIをベースに作るほうが却って楽だよ。
657デフォルトの名無しさん:2014/06/08(日) 16:29:05.93 ID:WtdjODsB
2Dゲームしか作らないんですが9から11に移行する意味ありますか?
過去にDirectX9使って同人ゲームを2作作ったことがあるんですが
11ではSpriteとか2D関係の一部がなくなってると聞いているので代替えがあるんですよね?
658デフォルトの名無しさん:2014/06/08(日) 16:40:19.07 ID:2dlEo4xC
>>657
DirectX9でそこまで経験があるなら別にどちらでもかまわないと思うが、
高度なシェーダやGPUコンピューティングを行うなら11への移行を検討したほうがイイ。
いずれにせよほぼ作り直しになるようなら、継ぎ接ぎの多い9に対して
体系的に整理されている11のほうが美しいコードにできる。
個人的にはデバイスロストの面倒が緩和されただけでも11に移行する価値があると思う。
情報量的には9のほうが多いので、そのあたりを考慮しながら決定したらイイと思うよ。
659デフォルトの名無しさん:2014/06/08(日) 16:48:31.45 ID:14DSih8c
行列理解してれば3Dで2Dを表現するなんて楽勝なハズなんだけどな・・・
660658:2014/06/08(日) 16:48:41.24 ID:2dlEo4xC
>>657
ああ、あとSprite関係はD3DX11を使うなら同じようにできるが、MicrosoftはD3DX11の廃止を決定。
代わりにDirectXMathやDirectXTex、DirectXTKが作られた。
SpriteはDirectXTK。
乗算済みアルファフォーマットになっているなど多少注意は必要だけど、割と使い易かったよ。
661デフォルトの名無しさん:2014/06/08(日) 17:04:31.21 ID:3LWaPBPW
っつーか3Dなら行列、ってのも
行列が座標計算に便利だから使われてるだけであって
普通に手計算で拡縮・回転・移動させたって別に問題ない気がする
DirectX10以降でシェーダを自前で用意するようになった今では尚更
662デフォルトの名無しさん:2014/06/08(日) 17:23:18.64 ID:WtdjODsB
なるほど
代替えがあって使い辛くもないなら移行しても問題なさそうですね
とりあえず書籍やらサイトやらの情報漁って勉強してみようと思います
ありがとうございました
663デフォルトの名無しさん:2014/06/08(日) 18:29:19.13 ID:xd0WpNv5
>>659
シェーダを理解していれば2Dやるのに行列が必要なんて思わないんだけどね。
必要なパラメータを渡して頂点シェーダ側で計算すればいいだけなんだから。
2Dをやるのにいちいち行列なんて渡していたら、
不必要なデータが発生する上に柔軟性が失われるだけ。
664デフォルトの名無しさん:2014/06/08(日) 18:56:39.08 ID:JQupJLB1
>>663
おまえが真性の低脳なのはよくわかった
665デフォルトの名無しさん:2014/06/08(日) 19:13:47.24 ID:T2kLI3EL
DirectX12ではシェーダステージ全廃されて
パイプラインを自前で好きなように組めると風の噂で聞いたんですが本当ですか?
だとしたら凄くワクワクするんですが
666デフォルトの名無しさん:2014/06/08(日) 19:35:25.02 ID:Qkz9xepd
>>660
廃止されるのはD3DX(Direct3D 9)だろう?
667デフォルトの名無しさん:2014/06/08(日) 19:47:05.35 ID:Qkz9xepd
誤読した、すまん。
668デフォルトの名無しさん:2014/06/08(日) 19:48:49.86 ID:A9EXtXDT
これから2Dゲームを作ろうとしている者ですが、
APIを何にしようか悩んでいます。
>>660では、SpriteはDirectXTKとのことですが、
Direct2Dはどうなのでしょうか。
669デフォルトの名無しさん:2014/06/08(日) 21:08:40.14 ID:xd0WpNv5
>>664
テキスト通りの知識で3Dを学んで、それをそのまま何も考えずに2Dに適用しようとするから、行列って発想になるんだよ。
で、自分が無知なのに気がつかずに、初心者相手に「行列理解してれば」とか、
頭の悪い発言になっちゃんだよ。
行列を使うのが当たり前で、行列のせいで計算量が無駄に増えるだけなんて発想、全く持ってなかっただろう?
結局、中身の理解が出来ていないから、本当に必要なところに必要なものを持ってくることが出来ないんだよ。
670デフォルトの名無しさん:2014/06/08(日) 21:21:36.65 ID:xnXzh5OH
GPU側の計算量なんて無視できるが何か
671デフォルトの名無しさん:2014/06/08(日) 21:28:35.09 ID:9xUON02C
中身の理解ができていないから行列のせいで計算量が無駄に増えるだけって発想を持つのでは
672デフォルトの名無しさん:2014/06/08(日) 21:34:48.61 ID:W+1wAVIS
>>668
Direct2Dはゲームに使うようなもんじゃない
673デフォルトの名無しさん:2014/06/08(日) 22:29:47.53 ID:xd0WpNv5
>>671
3Dデバイスのせいで思考停止になっているようだけど、
例えばGPUは無関係に4頂点の回転をするとして、
いちいち回転行列を出してから計算するか考えてみるといい。
相当な馬鹿で無ければ、そんな無駄なことしないだろ。
674デフォルトの名無しさん:2014/06/08(日) 22:32:49.38 ID:14DSih8c
いやまぁ、なんだ。俺の書き方が癇に障ったんなら謝るよ
すまんな。別に馬鹿にしたわけじゃないんだ
ただ、どうやんの?って聞かれたら教えようと思っただけだ

あとGPUは行列とかの計算に特化してるからな
675デフォルトの名無しさん:2014/06/08(日) 22:48:36.52 ID:9xUON02C
なぜGPUを無視して考えようとするのかわからないんだが
3Dデバイスのせいで思考停止している相当な馬鹿でなければそんな無駄なことしないのでは
676デフォルトの名無しさん:2014/06/08(日) 22:49:22.86 ID:14DSih8c
>>673
ん、回転させるのに回転行列とかクォータニオン使わないなら、何で計算してるんだ?
サインコサイン使ってんの?
677デフォルトの名無しさん:2014/06/08(日) 22:58:54.94 ID:xd0WpNv5
>>676
三角関数は回転行列だろうがクオータニオンだろうが必要なんだけど、
いったい何を言っているんだ?

こういうレベルの人間が混じっているから、なんでもすぐ行列というのが不味いんだよ。
678デフォルトの名無しさん:2014/06/08(日) 23:09:07.92 ID:xd0WpNv5
行列をどうしても使いたいのならそれでもいいけど、
意味も分からず2Dの計算に無駄に4*4行列を渡しているコードとか、
少しは自分でおかしいかどうか判断しろと言いたい。
679デフォルトの名無しさん:2014/06/09(月) 03:07:46.82 ID:u4DxknMf
オレは行列を使わない方がありえんな
680デフォルトの名無しさん:2014/06/09(月) 04:23:39.59 ID:ZUk8BoLs
頂点データが極座標だとすればあるいは
681デフォルトの名無しさん:2014/06/09(月) 08:03:38.49 ID:oaydb6nj
>>676
>クォータニオン
いい教科書ないですか、ハミルトンの伝記もついているとうれしい
682デフォルトの名無しさん:2014/06/09(月) 09:24:32.06 ID:WQD38f8Z
俺頭悪いんでいきなりC++でDirectXとか無理なんだけど
そんなやつがDirectXなれるにはなにがいいかな
683デフォルトの名無しさん:2014/06/09(月) 10:54:58.69 ID:Bz4UVE6r
いきなりは高確率で挫折するからC をざっくり理解してからDXライブラリなりでゲームプログラミング自体に慣れた方がいい
684デフォルトの名無しさん:2014/06/09(月) 17:58:34.58 ID:zFo/cDF8
平行移動の行列と投影用の行列の計2個突っ込んで任せるのだと、気にするほど効率悪いか?
685デフォルトの名無しさん:2014/06/09(月) 18:17:03.66 ID:AvUMni/D
そうだね。2Dやるときに頂点シェーダが動く回数とピクセルシェーダのそれを考えると
行列を使うかどうかでパフォーマンスが大きく変わるケースは多くないと思う。ゼロとは言わんが。
686デフォルトの名無しさん:2014/06/09(月) 19:27:28.59 ID:q+E/nugM
計算が少々冗長でも問題ない。
ほとんどの場合、テクスチャなどのメモリアクセスで律速される。
ショボい内蔵GPUならなおさらだ。
ちゃんと計測した上でならいいが、そうでもないなら素直に行列使っとくほうがいい。
687デフォルトの名無しさん:2014/06/10(火) 01:36:55.38 ID:g5bh3hHp
最近本買って流し読みしてるけどちょっとさすがに難しすぎない?こんなのみんなどうやって習得したの...??
688デフォルトの名無しさん:2014/06/10(火) 01:41:11.60 ID:AlsGb3K8
パッと見てそう思ったなら浅はかすぎだろう
とにかく沢山コード書いて、ちょっとずつ覚えていくもんなんだよ
689デフォルトの名無しさん:2014/06/10(火) 05:12:19.45 ID:l3mk+UpB
決して難しいのではない
複雑なだけだ
690デフォルトの名無しさん:2014/06/10(火) 05:57:59.03 ID:LgC8TgHi
入門向けサイトもいっぱいあるからな
あの説明じゃわからなかったけどこの説明なら分かる!ってのもあるからとにかく数見るのも手
691デフォルトの名無しさん:2014/06/10(火) 09:51:05.05 ID:/BPYyfKW
本なら「15歳からはじめるDirectX 9 」でだいたいの事が分かった
692デフォルトの名無しさん:2014/06/10(火) 19:56:07.13 ID:Kjm/AmsM
>>687
たしかに何の予備知識もなく読めば面食らうだろう。
とにかく広範な知識が求められるので、手探りながらも一通りやって、
徐々に細部の理解を深めていくというスタンスでもよかろう。
693デフォルトの名無しさん:2014/06/10(火) 20:07:56.39 ID:61SU9kd8
覚えるのにも時間が必要だが、覚えた後もゲームを作るのは一朝一夕では出来ない
結局は長い目でやっていくしかないよ
いかにモチベーションを維持するかだから焦っても仕方ない
694デフォルトの名無しさん:2014/06/10(火) 22:19:45.97 ID:wZHt2a1z
dirextxをいじってみたくてVS2010express環境にDXSDK_Jun10を入れてみたのですが
directxのsamplesにあるプロジェクトを開こうとすると
「このバージョンのアプリケーションではサポートされないプロジェクトの種類(.vcxproj)です。」
となり開くことが出来ません
サンプルプロジェクトはVSの製品版じゃないと開けないのでしょうか?
695デフォルトの名無しさん:2014/06/10(火) 22:42:58.47 ID:n6nt8lTt
なぜ今更2010なのかは置いておくとして

2010のExpressは各言語ごとに別々になっている
インストールしたのがC++以外のものなのでは
696デフォルトの名無しさん:2014/06/19(木) 15:57:23.76 ID:MnDWZSiw
ストアアプリのDirectXってManagedなの?
697デフォルトの名無しさん:2014/06/19(木) 16:15:07.48 ID:4xoohYUJ
ネイティブ
C#等から使いたい場合SharpDX等を利用
698デフォルトの名無しさん:2014/06/19(木) 23:01:35.19 ID:DEKbTeq6
こんにちはー。DirectX初心者ですが、
まずサンプルコードが動かなくて困っています・・・。

/////////////////////////////以下環境///////////////////////////////

#include <WindowsXP>
#include <VC2008EE>
#include <DirectXSDKJune2008>

//コピペで使用したサンプルコード
http://k3tec.net/neko_wiki/index.php?DirectX%B9%D6%BA%C210%B2%F3
(
C系のインクルードディレクトリ Include指定済み,
リンカのライブラリディレクトリ x86指定済み,
画像ファイル ソリューションファイルと同じ場所にある
);

//グラボは普通に3Dゲーム等動く環境。

///////////////////////////////////////////////////////////////

以上の状態でデバッグ起動すると、ウィンドゥは正常に表示されますが
スプライトは出来ているがテクスチャが真っ白? 
のような状態になってしまいます。

このような結果の場合、どのような原因が考えられるでしょうか?
誰か助けてください・・・、丸一日死んだ・・・。
コードはサンプルコピペなので、環境の問題かと思うのですが・・・。
699デフォルトの名無しさん:2014/06/20(金) 00:52:44.95 ID:FvlWih/Q
>>698
サンプルは見てないが、画像ファイルへのパスが通ってないのでは?
カレントディレクトリが実行ファイルと同じと決めつけていないか?
700デフォルトの名無しさん:2014/06/20(金) 06:07:35.81 ID:GtLfnqy3
>スプライトは出来ているが
ってのがよくわからんけど
そこのzipそのまま解凍してビルドしたら普通に表示されてたぞ
701698:2014/06/20(金) 08:10:53.62 ID:Ma4Zhsm8
おおう、レスが来てる、ありがたやー。

>>698
「フルパスで指定してみる」
「いっそ実行ファイルから下のフォルダに全部つっこんでみる」
の二つを試みてみましたが、表示されず・・・。でもレスありがとう。

>>700
参考画像と同じ位置に白い四角は生成できてるので、
ポリゴン自体はできているのだと思うのです。
ただ、サンプルにある車の画像が表示されず、真っ白。

なので、「VCやらの環境でテクスチャが読み込めてない」か
「テクスチャは読み込めているがグラボやらの問題で表示が出来ない」
のどちらかだと思うのですが。

ビルドエラーは吐いてないので環境の問題なのでしょうか・・・?
ちなNVDIAでDirectXについてるテストツールでは3D表示正常。


ちょっとコード弄ってみたりしつつ、引き続きアドバイス待ちますー。
702デフォルトの名無しさん:2014/06/20(金) 08:17:29.25 ID:fPPfJ5gn
データが読めているかどうかなんて戻り値を確認すればいいだけだろう。
いったい何を言ってるんだ?
703698:2014/06/20(金) 08:37:44.58 ID:Ma4Zhsm8
うお、・・・誠に申し訳ない、フルパス入れ直したらいけました。
>>699さん正解です。>>700もありがとうー。

しかし下のフォルダ全部につっこんでるのに、
相対パスで表示されない意味はわからず。

まあ、もはやスレチなので色々試してみようと思います。
ありがとうございました! ・・・表示の環境依存じゃなくてよかった。
704698:2014/06/20(金) 09:03:13.23 ID:Ma4Zhsm8
>>702
うん、まあその、なんだ、正直アホなので、
どこをどう確認すればいいのかもわからなんだ。

このサンプルだとTextureのcartexにファイル名がはいるんだろうけど、
Textureって名前が汎用性高そうすぎて・・・。

まあ光明は見えてきたので、弄りながら覚えていってみるよ、ありがとうー。
705デフォルトの名無しさん:2014/06/20(金) 12:26:36.96 ID:jeg8+zum
デバッグ実行時のカレントディレクトリは
プロジェクトのプロパティで確認・設定できるぞ
706デフォルトの名無しさん:2014/06/20(金) 18:08:38.27 ID:wDTgOc3v
しかdxスレも伸びなくなってきたね
折れ5の出始めからだからもう15年近いよ
さすがに12を追う気にもならんし
dxはオワコンだな
707デフォルトの名無しさん:2014/06/20(金) 19:02:32.76 ID:pzjGDphu



d
708694:2014/06/20(金) 22:27:21.07 ID:4hFe3D1R
>>695
OSがXPなものでVS2010じゃないとインストールできなかったのです
ちなみにVC++2010 Expressが入ってます

色々やってみてダメだったので仕方なく過去のDirectX SDKを漁ってみました
2007novまで辿って試したところ2003の.vcprojであれば開けたので
それを読み込んでサンプルを色々参照してみることにしました
ちなみに2007novに入ってる2005.vcprojはやはり読み込み出来ませんでした

とりあえずサンプルを見たりいじれるようになったのでこれでやっていきます
お手数をおかけました、どうもありがとうございました
709デフォルトの名無しさん:2014/06/21(土) 10:05:51.14 ID:wX3ECV2n
directx11めんどくさすぎ
ポリゴン1つ出すまでに挫折しそうだわ
710デフォルトの名無しさん:2014/06/21(土) 10:42:50.65 ID:k3qwYJlT
まぁ、気持ちは分かる。
走り出すまでに数多の操作が必要な車みたいな問題。
でも、一度走り出したら速いし、小回りもよく効くから乗り越えるんだ。
711デフォルトの名無しさん:2014/06/21(土) 10:49:43.78 ID:2OQISpPs
かス

712デフォルトの名無しさん:2014/06/21(土) 19:28:50.94 ID:aUg341ff
これで面倒とか言ってたらプログラムの世界はつらいだけだ

Unityとか使ったほうがいい
713デフォルトの名無しさん:2014/06/21(土) 20:33:25.92 ID:F8oS7i3F
PictureBoxに描画するほうが楽だわ。
714デフォルトの名無しさん:2014/06/22(日) 06:25:00.16 ID:1JxOSEIV
今はUnityの資料多いし個人開発ならUnityが一番よさげ
Unityのみになっていくのはちょっとあれだけど
715デフォルトの名無しさん:2014/06/22(日) 13:24:53.59 ID:F4FTFoLl
うにてぃーなんぞ使わん
716デフォルトの名無しさん:2014/06/22(日) 13:57:18.30 ID:eAnL1X8F
ゲーム作るならある程度のめんどくささは受け入れなあかん
717デフォルトの名無しさん:2014/06/22(日) 14:07:35.33 ID:GwKr3Jwz
難しい方が俺すげー出来ていい
718デフォルトの名無しさん:2014/06/29(日) 05:37:18.18 ID:L6H8VOVh
DirectXMesh geometry processing library
https://directxmesh.codeplex.com/
719デフォルトの名無しさん:2014/06/29(日) 14:32:21.72 ID:0/sduyfP
>>718
おお遂にxファイルやsdkmesh以来のMS謹製形式きたか!?
と思ったけど中身ざっと見た感じファイル形式どうこうじゃなさそうだね。

法線計算したりmesh関係の演算をすっきりさせるライブラリかな?
ファイル形式は独自形式でいいけど。
720デフォルトの名無しさん:2014/06/29(日) 14:34:41.60 ID:0/sduyfP
今気づいたけどDirectXTKってVistaもsupportedだったんだ。
721デフォルトの名無しさん:2014/06/29(日) 17:28:09.52 ID:ingZVccy
FBXのコンバート対応してくれたらうれしいなー
722デフォルトの名無しさん:2014/06/29(日) 17:41:54.46 ID:0/sduyfP
そのへんは色々厄介だから自分でやってちょんまげって書いてあった
DOCUMANTATIONのところ
723デフォルトの名無しさん:2014/07/10(木) 00:19:47.02 ID:eR5zwrsu
DirectX11のすっごい初歩的な質問なんだけど、一つのメッシュを複数のエフェクトで描画するとしたら、
それぞれのエフェクトごとに入力レイアウトを用意しないとダメなのかな?
例えば10種類のメッシュをそれぞれ5つのエフェクトで描画するとしたら、50種類の入力レイアウト用意しないとダメ?
724デフォルトの名無しさん:2014/07/10(木) 01:50:51.39 ID:/5JAOD2j
メッシュごとでなくエフェクトごとに作るから5個で十分
さらに頂点構造体とセマンティクスが同じなら、同じ入力アセンブラを使いまわせる
725デフォルトの名無しさん:2014/07/10(木) 23:08:04.32 ID:wsiOyS9d
>>724
d
DirectXTKのModelクラスでModelMeshPartごとにInputLayout保持してるんで、大量に用意しないとダメなのかなーと。
726デフォルトの名無しさん:2014/07/15(火) 10:16:52.37 ID:4Hk/aMI9
DirectX9なんだけど、レンダーターゲットの大きさって制限あるの?マルチレンダーターゲットとかじゃなくて。
具体的には、
バックバッファに完全に収まるようなサイズのレンダーターゲットAと、収まらないサイズのレンダーターゲットBの2枚をつくる
Aにはちゃんと描画できて、テクスチャとして使って描画したときも問題ない。ところがBは作成時にも描画時にもなんのエラーも出さないにもかかわらず、レンダーターゲットには描画で傷、
テクスチャとして使って描画しても真っ黒なテクスチャが適用されてしまう
Device::Reset でバックバッファを大きめに再生成すると、AもBも正常病がされる。バックバッファを小さめにリサイズしてみると、AもBも描画されない。でも各種関数の戻り値は常にS_OK
この現象、いまのところ NVIDIAの4年ぐらい前のカードでだけ起こる現象なんだけど、心当たりある?
727デフォルトの名無しさん:2014/07/15(火) 14:56:47.49 ID:3oS5nfKd
バックバッファより大きいテクスチャが作れないという時代はあったけど
それは4年どころか15年くらい前だな。

大きすぎる問題じゃなくて、2の累乗のサイズじゃないとかじゃないの?
D3DPTEXTURECAPS_NONPOW2CONDITIONALの制限は4年くらい前なら
あったかもしれない。
728デフォルトの名無しさん:2014/07/15(火) 21:27:55.63 ID:4Hk/aMI9
ttp://www.kludx.com/capability.php?capability=147
テクスチャサイズの2^n縛りって、DirectX9あたりだと凄く多かったんだね。
729デフォルトの名無しさん:2014/07/15(火) 22:20:45.02 ID:opMmDOa9
モバイル系のGPUも今はまだ大体POT縛りあるな。
NONPOTサポートしててもパフォーマンス悪かったりするからまだ使わない方が無難。
730デフォルトの名無しさん:2014/07/15(火) 22:25:57.37 ID:4Hk/aMI9
というかよく考えたら、レンダーターゲットテクスチャにはn^2縛りなんてないよね?もともと。
731デフォルトの名無しさん:2014/07/15(火) 22:33:26.70 ID:opMmDOa9
>>730
スレチだけどOpenGLESではあるよ。
だから多分DirectXでもあると思う。ハードウェアの縛りだし。
732デフォルトの名無しさん:2014/07/15(火) 23:14:48.99 ID:4Hk/aMI9
マジか
普通のテクスチャは必ずn^2でつくるようにしてたからCapsはチェックしてなかったし、逆にレンダーターゲットテクスチャはサイズ気にしないでつくってたわ。
ひょっとしたらサイズ縛りがある状態で不正なサイズのレンダーターゲット作ろうとしても IDirect3DDevice9::CreateTexture は成功しちゃうもんなのかなあ。。。?
とりあえずD3DPTEXTURECAPS_POW2とD3DPTEXTURECAPS_NONPOW2CONDITIONALの値は調べてみることにする。
733デフォルトの名無しさん:2014/07/15(火) 23:53:03.50 ID:4Hk/aMI9
手元のWin8で試してみたら、バックバッファよりを超える大きさのレンダーターゲットは普通に作れて、別に真っ黒な描画になったりはしなかったものの、
バックバッファのサイズを超える部分には一切描画されていなかった。レンダーターゲットに描画する時に、バックバッファの大きさで自動的にクリッピングされている感じ。

ゆえに、利用する最大のレンダーターゲットのサイズか、ゲームで必要な解像度か、どちらか大きな方にあわせてバックバッファを作った方がよさそうだな。
ウィンドウに描画するときはバックバッファのうちウィンドウサイズに一致する部分だけ指定して転送すれば良いんだし。
…という結論に達した
734デフォルトの名無しさん:2014/07/16(水) 02:50:08.80 ID:Umzqi2oG
ビューポートがバックバッファのサイズのままとかいうオチじゃないだろかソレ
735デフォルトの名無しさん:2014/07/16(水) 02:50:28.29 ID:vjZ1YrOP
バックバッファサイズ以上のレンダーターゲットが機能しないとか初耳なんだけど
ビューポート設定の問題ではない?
そんなに古くないNVIDIAのカードで起こるなら対処したいのでどのカードか教えてくれるとありがたい
736デフォルトの名無しさん:2014/07/16(水) 03:29:21.20 ID:kLmjvMae
レンダーターゲットと デプスステンシルのサイズとかAAが違うと無視するドライバとかエラー起こすドライバとかわかれてたりする?
737デフォルトの名無しさん:2014/07/16(水) 07:59:59.54 ID:d5hW3x90
そういえば、バックバッファよりも大きなViewportを設定した状態で IDirect3DDevice9::SetRenderTarget すると、
レンダーターゲットの大きさに合わせてViewportが勝手に変化するって仕様があるよね。>>733で試した時に起こった現象はそれかも。すまん。
でも>>726での真っ黒になるとかって現象とは別の気がするんだよなあ。
ちなみに>>726の現象がおきたのは NVIDIA GeForce GTX 570 ね
738デフォルトの名無しさん:2014/07/16(水) 08:01:54.81 ID:d5hW3x90
訂正。「バックバッファよりも大きなViewportを設定した状態で IDirect3DDevice9::SetRenderTarget すると」ではなく、
「最初に設定していたViewport よりも小さなレンダーターゲットテクスチャを SetRenderTargetすると」ね
739デフォルトの名無しさん
これはXNAだけど、Direct3D と同じとみていいんじゃないかと思うけど
http://msdn.microsoft.com/ja-jp/library/ff604997(v=xnagamestudio.40).aspx


> レンダリング ターゲットを作成するときには、幅と高さの選択についても考慮します。
> たとえば、ゲーム ウィンドウのサイズに合わせてバック バッファーの幅と高さを選択する必要があります
> (ただし Windows Phone と Xbox360 では、最終的な結果はユーザーの画面に合わせてサイズが変更されます)。
> これにより、バック バッファーが画面にコピーされるときにサイズ変更が不要になっています。
> ただし、オフスクリーン レンダリング ターゲットは、バック バッファーと同じ幅と高さである必要はありません。

と明確に書いてあるな。