トップページ⇒tech
981コメント306KB

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

レス数が950を超えています。1000を超えると書き込みができなくなります。
0001デフォルトの名無しさん2013/06/01(土) 00:56:31.97
回答する人も、質問する人も必ず読んでください

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

の FVF ( の隙間を消すとエラーになるんだけどなんで?
0050デフォルトの名無しさん2013/06/13(木) 21:12:22.02
マクロだから
0051デフォルトの名無しさん2013/06/13(木) 21:23:26.96
>>49
DirectXに関係ない文法の話を書くなクズ
0052デフォルトの名無しさん2013/06/13(木) 23:08:55.73
>>49
初心者とかそういうのをぬきにして向いてないというほかない
0053 忍法帖【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で対応するのだろうか。
0054デフォルトの名無しさん2013/07/13(土) NY:AN:NY.AN
Haswellって一応仕様は11.1になってるんだな
持ってないから実際には調べられないけど
0055デフォルトの名無しさん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関連を追加してのかな
0056デフォルトの名無しさん2013/07/16(火) NY:AN:NY.AN
どうもそうっぽいね。
0057デフォルトの名無しさん2013/07/19(金) NY:AN:NY.AN
SDKのサンプルしか実行出来ないのだが…何故?
0058デフォルトの名無しさん2013/07/20(土) NY:AN:NY.AN
なんの話だよ
0059デフォルトの名無しさん2013/08/17(土) NY:AN:NY.AN
ネタがないな
directxtoolkitのreadme翻訳してくれてる人がいた

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

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

初心者の私に知恵を授けて頂けないでしょうか?
0061デフォルトの名無しさん2013/08/20(火) NY:AN:NY.AN
>>60
動的頂点更新だね。
Lock、Unlockで検索してみて。
0062デフォルトの名無しさん2013/08/20(火) NY:AN:NY.AN
>>61
早速調べてみます
ありがとうございます
0063デフォルトの名無しさん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
0064デフォルトの名無しさん2013/08/21(水) NY:AN:NY.AN
ありがてぇ!
0065デフォルトの名無しさん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);
0066デフォルトの名無しさん2013/08/24(土) NY:AN:NY.AN
パラメータで引き延ばすように自分で設定しているからだ。
アホか。
0067デフォルトの名無しさん2013/08/24(土) NY:AN:NY.AN
>>66
すみません、具体的にはどういう設定なんでしょうか?
0068デフォルトの名無しさん2013/08/24(土) NY:AN:NY.AN
使っている関数のヘルプぐらい読めよ。
0069デフォルトの名無しさん2013/09/03(火) 16:42:12.36
DirectX11でのシェーダの質問です
単色ポリゴンとスプライト(ポリゴン+テクスチャ)を描画するためのシェーダは切り替えずに描画できますか?
0070デフォルトの名無しさん2013/09/03(火) 21:41:12.22
Direct3D11(SM5.0)なのですが
ポストプロセスをしたいので、ピクセルシェーダからUAVに出力して、
何らかの処理をしてから、それをスワップチェーン内のバックバッハに描画したいのですが、
最後にバックバッハに描画する時、やっぱりRTVの使えるピクセルシェーダを通す必要があるのですか?
それだと、バックバッハ全体を占めるクアッドを用意する必要がありませんか?
0071デフォルトの名無しさん2013/09/03(火) 21:45:39.95
>>70
まずは日本語を勉強しろ
0072デフォルトの名無しさん2013/09/03(火) 21:59:00.95
>>71
どこに問題がありますか?

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

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

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

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

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

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

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

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

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

マップを回転する時はマップ全体を回転するのが一般的なんでしょうか?
0101デフォルトの名無しさん2013/09/18(水) 01:17:34.56
>>98
d3dx9math.h
0102デフォルトの名無しさん2013/09/18(水) 07:17:06.34
そりゃまぁ、z軸に回して単純に移動行列にをかければな・・・
0103デフォルトの名無しさん2013/09/18(水) 07:20:48.62
>>100
左右移動のベクトルに回転をかけておけばいいだけの話
0104デフォルトの名無しさん2013/09/19(木) 10:26:53.60
>>103
>>102
なるほど!!勉強になります
ありがとうございました
0105デフォルトの名無しさん2013/09/19(木) 16:00:51.59
Windows8.1で新設されるDirectX11.2ってDX11までの機能しか使わなければ
DX11のVistaやDX11.1一部対応のWin7でも動くと考えて良いのですかね?
流石に古いOS全滅だとシャレにならないので…
(DX9cとかだとSDKの更新とかでDX9cを使ってても
Win2kやWin9xでは動かないプログラムになったりしたはずだけど…)
0106デフォルトの名無しさん2013/09/19(木) 16:16:35.62
uni糞code
0107デフォルトの名無しさん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なんて以前あったっけ?
0108デフォルトの名無しさん2013/09/27(金) 09:19:13.10
Windows SDK for Windows 8 を
スタンドアロンマシンにインストールする方法はありますか?
0109デフォルトの名無しさん2013/09/28(土) 10:41:02.42
VisualStudioをメディアに焼いてインストールするってのは駄目なの?
0110デフォルトの名無しさん2013/09/30(月) 13:45:54.86
イメージのダウンロードが見つからんな 探し方が悪いんだろうけど
0111デフォルトの名無しさん2013/09/30(月) 13:53:50.79
>>110
探し方が悪いんじゃない
頭が悪いんだ
0112デフォルトの名無しさん2013/09/30(月) 15:23:52.64
質問です。
D3D11のD3D11_PRIMITIVE_TOPOLOGY_POINTLISTで描かれる頂点の大きさを変更するにはどうしたら良いですか?
ググってみても全然引っかかりません。
ジオメトリシェーダでなければ出来ないとかありますか?
0113デフォルトの名無しさん2013/09/30(月) 15:25:30.07
>>112
探し方が悪いんじゃない
頭が悪いんだ
0114デフォルトの名無しさん2013/10/01(火) 13:50:03.21
まあ、pointは大きさ変えられんしな
01151122013/10/01(火) 15:05:01.86
>>114
まじすかorz
でもそれが分かっただけでも大収穫です!!
常に1pxでマルチサンプルを有効にするとちかちかする。これが仕様なんですね。
ジオメトリシェーダに頂点渡して四角ポリゴンを返すようにします。
さんくす!!
0116デフォルトの名無しさん2013/10/02(水) 08:31:09.39
ちなみにLineの太さも変えられないからな
0117デフォルトの名無しさん2013/10/02(水) 09:11:12.81
思いっきりLineとwidthでググってましたw
ポリゴンとLineを同時に表示すると前後関係が曖昧になってLineが欠けたりするんですよね。
シェーダで何とかしてみます。
0118デフォルトの名無しさん2013/10/23(水) 20:50:59.02
今から勉強するとしたらDirectX9.0がいいの?それともやっぱりDirectX11.0を勉強したほうがいいの?
0119デフォルトの名無しさん2013/10/23(水) 20:53:34.37
>>118
それを自分で判断できるように頭を鍛えろ
0120デフォルトの名無しさん2013/10/23(水) 20:56:34.00
>>119
個人的にDirectX9.0のが無難かなとは思って売るんだけど、来年XPのサービスきれたら9.0は居場所なくなるんじゃないかとおもって迷ってた
0121デフォルトの名無しさん2013/10/23(水) 21:16:39.85
D3DXと決別するのなら、シェーダコンパイラがOS側に実装されている、
Direct3D11を使うのをおすすめする。
0122デフォルトの名無しさん2013/10/23(水) 21:51:24.76
自分も11をオススメする。
0123デフォルトの名無しさん2013/10/24(木) 01:37:16.19
11で9のハードウェアをターゲットに出来るって最近しった
0124デフォルトの名無しさん2013/10/24(木) 01:46:26.29
>>123
まじかよ俺のXP搭載化石PCちゃんまだしばらく息できる?
0125デフォルトの名無しさん2013/10/24(木) 01:53:25.74
DirectX11のエンドユーザーランタイムはもちろん必要
つまりOSはVista以降
0126デフォルトの名無しさん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用)の方にしか入ってないらしい
0127デフォルトの名無しさん2013/10/24(木) 09:48:43.54
D3D10以降のモデルデータ読み込みってどのようにしていますか?
D3DXLoadMeshFromXと同等のものを作りたいです。
0128デフォルトの名無しさん2013/10/24(木) 13:09:18.54
>>127
作ればいいだろ
OpenGLと共通のフォーマット決めて、ライブラリ化して使ってる
iOS、Androidでも使うからな

最初はFBXでも使っとけ
0129デフォルトの名無しさん2013/10/24(木) 22:43:27.50
流石にxファイルはコンバートしちゃった方がいいような気がする
0130デフォルトの名無しさん2013/10/24(木) 23:05:29.44
極論すれば、保存用のデータフォーマットなんてどうでもいいんだよ
メモリ上で保持するフォーマットをしっかり決めて、そのデータを操作する処理をライブラリ化する
コンバートなんていくらでもできるだろ?
D3DXはUserDataを処理できて便利だったけど、D3DXが廃止なので現状は自作が妥当
0131デフォルトの名無しさん2013/10/25(金) 00:08:17.14
自分が使っているモデリングソフトのプラグインを作って、
好きな形式で吐き出せばいいだけの話。
0132デフォルトの名無しさん2013/10/25(金) 15:26:27.41
TiledResources怖い
即ブルースクリーン
0133デフォルトの名無しさん2013/10/25(金) 15:36:52.45
そうなの?w
0134デフォルトの名無しさん2013/10/26(土) 04:01:24.61
DirectX11を使用していて、あるシーンのデプスマップ(Z値を画像化したもの)を出力したいのですが
深度ステンシルテクスチャをD3DX11SaveTextureToFileを利用して出力しようとしたところ、上手くいきませんでした(画像が生成されない)
どのような方針でプログラミングを行えば、デプスマップを画像として出力できるのか、ご教授お願いします
0135デフォルトの名無しさん2013/10/26(土) 04:26:02.87
色じゃなくてZ値書き込むシェーダでも書けばいいんでないかい?
0136デフォルトの名無しさん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を使うらしい。
これ知らなかったなぁ。
0137デフォルトの名無しさん2013/10/26(土) 10:14:31.31
DirectXMath.hのXMMATRIXをd3dx9のLPD3DXEFFECTのSetMatrix関数で使う方法と
DirectXMathとd3dx9mathを物理演算の為に倍精度で使用する方法があれば教えてください。
0138デフォルトの名無しさん2013/10/26(土) 10:36:28.62
>DirectXMath.hのXMMATRIXをd3dx9のLPD3DXEFFECTのSetMatrix関数で使う方法
XMMATRIXのメンバをD3DXMATRIXにコピーするしかないんでねーの?

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

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

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

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

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

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

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

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

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

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

もう少し、自分で模索してみます。
01981902013/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のバージョンが違うってどういうこと?
という疑問はあるのですが、とりあえず動作するようになったのでよしとします。

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

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

で、>>146の原因は?

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

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

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

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

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

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

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

でも同人でもここまで出来る、っていう希望にはなるよ
0243デフォルトの名無しさん2013/11/21(木) 21:44:59.99
>>226
クオリティ高ぇw
0244デフォルトの名無しさん2013/11/21(木) 21:49:24.40
>>226
1:35くらいのっところの音楽の曲名ってなんだっけ
0245デフォルトの名無しさん2013/11/22(金) 16:58:04.75
>>226 みたいなゲームを作るのに必要な知識ってどんなのがある?
三角比とベクトルくらいは分かるんだけど、ホーミング系ってどう実装してるんかな
0246デフォルトの名無しさん2013/11/22(金) 17:38:20.37
ttp://www5.big.or.jp/~high/VENIO/dwn/dwn_src.htm#are
0247デフォルトの名無しさん2013/11/22(金) 17:40:23.58
貼ると消されるURLが混ざってたみたい()
ttp://www5.big.or.jp/~high/VENIO/kuz/kuz_are_10.htm
ttp://www5.big.or.jp/~high/VENIO/dwn/dwn_src.htm#are
0248デフォルトの名無しさん2013/11/22(金) 17:43:28.95
ttp://www.c3.club.kyutech.ac.jp/gamewiki/index.php?%C3%C6%A4%F2%A4%C0%A4%B9
ttp://ameblo.jp/amayumi/entry-10011981073.html
ttp://per illasoft.blo g75.f c2.com/bl og-entry-1.html
02492452013/11/22(金) 18:36:44.75
参考になりそうなリンクありがとう
0250デフォルトの名無しさん2013/11/22(金) 23:13:04.97
動画みたいなの作れたら楽しそうだな(´・ω・`)
0251デフォルトの名無しさん2013/11/23(土) 02:53:28.29
>>226
一から作るとしたら、一ヶ月で作れって言われても(素材が揃ってても) 出来そうにないな
0252デフォルトの名無しさん2013/11/23(土) 03:49:30.33
地面との衝突判定って、地形データから高さデータ作って、それと比べてるの?
それとも地形と直に判定してるの?
0253デフォルトの名無しさん2013/11/23(土) 06:03:42.09
物理演算があるなら空間分割して直じゃない?
0254デフォルトの名無しさん2013/11/23(土) 12:47:56.24
横からの質問ですけど

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

他のプログラムも別ベクトルで賢くないといけないのを知ったよ。
世界中の人を一斉に相手するシステムとか
0267デフォルトの名無しさん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; // コレ
};
0268デフォルトの名無しさん2013/11/26(火) 22:44:41.74
ああ自己解決しますた
単なるサンプルの独自定義なのね
0269デフォルトの名無しさん2013/11/26(火) 23:36:09.94
まんまだろうが
馬鹿スw
0270デフォルトの名無しさん2013/11/27(水) 07:53:08.40
初心者にありがちな発言
これはOSのバグです
これはコンパイラのバグです
これはライブラリのバグです
0271デフォルトの名無しさん2013/11/27(水) 08:54:37.11
9.0cをインストールしたつもりが意味不なんだけど11があれば
9.0c入れても意味ない?
0272デフォルトの名無しさん2013/11/27(水) 13:47:21.65
>>270
その3つを使い分けられるなら初心者じゃないぞ
0273デフォルトの名無しさん2013/11/27(水) 14:11:34.82
使い分けてるとはどこにも書いてないが
掛かれてないものが見えるとは
おぬしも相当アスペやのう
0274デフォルトの名無しさん2013/11/27(水) 14:26:51.76
>>271
そもそもXP以降はOS標準+SPにDirectXが付属する形なので、
インストールも糞もない。
0275デフォルトの名無しさん2013/11/27(水) 19:41:27.89
書かれてないけどたぶんSDKのことだと思うぞ
0276デフォルトの名無しさん2013/11/27(水) 22:05:47.16
書かれていないも何もSDKに11なんてバージョンはない。
0277デフォルトの名無しさん2013/11/28(木) 00:26:02.52
9.0cとはっきり言ってるわけで。
0278デフォルトの名無しさん2013/11/28(木) 07:06:28.47
11があればともはっきり言っているぞ。
0279デフォルトの名無しさん2013/12/04(水) 06:15:15.82
3Dグラフを描く場合、9と11どっちがお勧め?
0280デフォルトの名無しさん2013/12/04(水) 07:09:36.09
>>279
3Dグラフごときに普通はDirect3Dは使わない。
GDIで描画する方が遥かに簡単。

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

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

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

Excelと同程度の3DグラフならDirect3Dを使って得をすることは
1つも無いので、GDIなりWPFで描く方が遥かに楽。
グラフにテクスチャを貼りたいとかならDirect3Dの使用も考えるが。
0287デフォルトの名無しさん2013/12/06(金) 01:07:19.90
>マネージドリソースしか使わないだろうし。
そうなの?
0288デフォルトの名無しさん2013/12/06(金) 02:59:35.86
3Dグラフをマウスでグリグリ視点を動かしたいです。
0289デフォルトの名無しさん2013/12/06(金) 08:36:11.88
ベタ塗り3D画像でグリグリ程度ならGDI+で充分って話だろ
問題はテクスチャだよテクスチャ
0290デフォルトの名無しさん2013/12/07(土) 21:45:54.50
https://directxtk.codeplex.com/SourceControl/changeset/32500

SDK本体は配布するのかな?
0291デフォルトの名無しさん2013/12/08(日) 04:37:29.15
D3D11からエフェクトプールは撤廃されて
代わりにエフェクトグループを使えとヘルプに書いてるが
グループで複数のエフェクトオブジェクト間で変数共有出来るようには
見えないんだが、どー考えればいいの?
0292片山博文MZコスモ ◆T6xkBnTXz7B0 2013/12/10(火) 22:33:56.51
directmusicってもう使えないんですか?
0293デフォルトの名無しさん2013/12/10(火) 22:40:42.50
>>292
http://blogs.msdn.com/b/chuckw/archive/2012/08/22/directx-sdk-s-of-a-certain-age.aspx
0294片山博文MZコスモ ◆T6xkBnTXz7B0 2013/12/10(火) 22:47:43.93
ありがと。XAudio2サポートに挑戦してみる
0295デフォルトの名無しさん2013/12/12(木) 11:21:44.59
D3DXComputeNormalsを真似て自作したいのですが、メッシュの頂点データとインデックスデータから
どの様に計算したらいいのですか?
0296デフォルトの名無しさん2013/12/12(木) 12:11:45.63
>>295
頂点データと同じサイズの法線の配列を用意して、零ベクトルで初期化しておく。
インデックスと頂点座標から面の法線を求めて、法線配列の
各インデックスの位置に足していく。
法線配列を全て正規化する。
頂点バッファを法線入りのフォーマットで作り直してコピーする。

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

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

続く
0307デフォルトの名無しさん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);
で正常に再生できるのですが、腑に落ちません。
0308デフォルトの名無しさん2013/12/26(木) 16:11:55.39
>>307
おまえの頭が残念なのはよくわかった
0309デフォルトの名無しさん2013/12/26(木) 17:57:06.97
確かに残念なんです。教えて頂ければ幸いです。
質問を言い換えると、

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

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

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

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

�AID3DX11EffectPass::Apply()を実行すると、自動的に
StructuredBufferやRWStructuredBufferがセットされるが
Draw()やDispatch()後にリセットされる訳じゃないので
以降セットされっぱなしになる。
自前でNULLをセットするしかないの?
ComputeStateBlockMask()あたりが救済手段に見えるんだが・・
0316デフォルトの名無しさん2014/01/01(水) 11:28:43.83
とりあえずNVIDIA SDKとかでも検索してみるとかかな
03173152014/01/02(木) 13:02:48.84
�@に関してはテクスチャもそうで、元々そういうもののよう。
�Aに関してはnVidiaやATiの資料を見てみる。
ありがとうございます。
0318デフォルトの名無しさん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週間ほどデスマやってるがこれだけは難易度が高すぎる。
0319デフォルトの名無しさん2014/01/02(木) 17:43:52.98
>>318
おまえが根本的に無能なのは分かった
外部参照が未解決で解決できないとか、マジでアホの子だな
0320デフォルトの名無しさん2014/01/02(木) 17:57:47.30
ちなみにDX11用のDXGetErrorDescriptionなら
↓のパッケージにソース付きで入ってる。

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

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

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

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

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

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

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

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

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

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

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

A.いいえありません

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

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

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

GPUとCPUの同期のズレが原因かと目星をつけて
同期するような処理を挟んでみても上手くいかずお手上げな感じです
0355デフォルトの名無しさん2014/01/25(土) 18:48:44.95
GetDataで出力が完了しているのかは確認した?
0356デフォルトの名無しさん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 );
03573492014/01/25(土) 19:55:42.14
解決しました
Unmapしてなかったっていうアホな理由でした
そのせいで値がふわふわ変化して怪しい挙動していたみたいです
助力ありがとうございました

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

まぁ、よかったけどw
0360デフォルトの名無しさん2014/01/25(土) 23:37:39.21
まぁ、何事も経験ではあるが、ここで聞く前に解決できる間抜けな失敗だよな
阿保杉ワロタ
0361デフォルトの名無しさん2014/01/26(日) 08:55:34.88
つまりここに居るのは「ここで聞く前に解決できる間抜けな失敗」すら解決出来ない人達なのか悲しいな
まぁ、経験がなければ回答できないから仕方ない
むしろUnmapしなくてもそれっぽく動作しちゃうのが驚きだ
0362デフォルトの名無しさん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です。
0363デフォルトの名無しさん2014/01/26(日) 15:23:29.10
内訳とだけ言われてもな・・・
処理時間を測定したいならtimeGetTimeかQueryPerformanceCounteで自前で実装してリスト化すればいい
03643622014/01/26(日) 15:50:58.28
>>363
あ、CPUの時間計測でできるんですか。
ありがとうございました。
0365デフォルトの名無しさん2014/01/27(月) 09:29:24.37
>>362
この画面ってNSightだと思う
おれはCudaでしか使ったことないけど
0366デフォルトの名無しさん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の中にあるらしいが、めんどいので確認してない
0367デフォルトの名無しさん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;
}  
などとしても、大丈夫でしょうか?
0368デフォルトの名無しさん2014/01/27(月) 14:07:54.00
馬鹿には無理
0369デフォルトの名無しさん2014/01/27(月) 14:10:01.32
>>368
一気にロードしても良いのですがメモリを食うので
随時配列にロードする形をとりたいのですが

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

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

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

10399頂点のモデルの高々200頂点をモーフィングさせる為のシェーダは
どういう設計で組めば効率が良いだろうか?
0382デフォルトの名無しさん2014/02/11(火) 16:59:55.26
>>381
面積が10399以上のfloat4テクスチャ作ってそれに移動量をモーフ数だけ加算してVSで足すとか
0383デフォルトの名無しさん2014/02/11(火) 18:15:51.31
>>381
微妙にモーフを理解してないような気がするんだが、気のせいか?
0384デフォルトの名無しさん2014/02/11(火) 18:26:55.99
メモリの効率よくいくにはこいつを使うしかない
↓
コンピュートシェーダ「・・・興味があるならやり方を教えてやる(´・ω・`)」
0385デフォルトの名無しさん2014/02/11(火) 19:20:47.81
>>382
そうするなら、単純に移動量だけ収めた頂点バッファを作って
バインドした方が自然かも。1モーフ166KBか、
まずこの形で実装してみるのはありか。

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

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

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

VS2012+DirectX11は、
定番はどうしたらいいの?
0389デフォルトの名無しさん2014/02/13(木) 15:38:56.11
シェーダーの種類ってのがあってピクセルシェーダーとか指定できた。
一つのファイルでps,vs両方コンパイルしたい場合はどうしたらいいですか?
0390デフォルトの名無しさん2014/02/13(木) 16:02:00.99
D3DCompileFromFile使ってプログラム内でコンパイルすればいい
0391デフォルトの名無しさん2014/02/13(木) 16:29:43.04
それはわかっております。せっかくある機能を使いたかったん…
VSとPSでファイル分けるしかないのかな
0392デフォルトの名無しさん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で取り出す。
0393デフォルトの名無しさん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 )
ってなってた
0394デフォルトの名無しさん2014/02/14(金) 23:39:58.35
HLSLをプロジェクトの設定でコンパイルは、俺も折角だから使おうと色々頑張ってみたけど使い勝手悪くて、
結局バッチとかスクリプト書いてコンパイルに戻しちゃったな。
0395デフォルトの名無しさん2014/02/22(土) 16:51:31.04
初歩的すぎてこんなこと聞くのも恥ずかしい事かもしれんけど質問させてくれ
シェーダに行列渡すとき転置するじゃない?あれってレジスタに列優先でバインドされるから
って理由だったと思うんだけど、じゃあシェーダ側でmulするときにベクトルを右辺にしたらいいんじゃないのか
って思うんだけどそれじゃダメなの?PC壊れててテスト出来ないんだけど気になってしょうがない
ネットで探してもそういうもんだで完結してるとこ多すぎて悶々とする
仮にmulで右辺にベクトルでも問題ないなら何故転置が必要ってのが当たり前なのかも気になる
昔は左辺掛けしか出来なかったとかそういう制限あったんだろうか
0396デフォルトの名無しさん2014/02/22(土) 19:20:38.63
右にベクトルで転置しなくても問題ないできるよ
計算が列ベクトルの方が早いとかなんとかだったような気がするが、理由は答えれるやつは少ないと思う。
書き方を統一する意味もあるんじゃないの?
0397デフォルトの名無しさん2014/02/22(土) 21:01:37.63
>>395
GL
0398デフォルトの名無しさん2014/02/22(土) 21:16:55.28
>>396
やっぱりそうなんだ、ありがとう
詳しい説明ってほとんどないよね、確かに列の方が早いってのは聞いたことあるような気がする
列優先でバインドされるからデータ取得が行優先より早いんだろうねきっと、微々たる差だろうけど
しっかし本とかネットでは転置するものとしか書かれてないんだよなぁ、そういうもんと納得してね(キリッ)みたいな
0399デフォルトの名無しさん2014/02/22(土) 21:43:01.28
おお、あれってmulの左右入替えだけでできたのか。
変換が入るとややこしくなるから、行優先のデータ形式で十分っぽいな。
0400デフォルトの名無しさん2014/02/23(日) 12:00:47.34
テクスチャ用画像が半透明を含むかどうか(アルファが1.0以外あるか)
知りたい。
DirectXTexではScratchImage::IsAlphaAllOpaque()でわかるようだが、
DirectXTexではなくD3DX11を使用した場合、同等の機能はあるだろうか?
0401デフォルトの名無しさん2014/02/23(日) 16:12:11.77
一発でやってくれる関数っぽいのはなかった気がしたが
mapでテクスチャにアクセスして読み取れば簡単にわかるだろ
0402デフォルトの名無しさん2014/02/23(日) 17:16:45.34
>>398
アホな説明を鵜呑みにしないで、ちゃんと調べろ
http://msdn.microsoft.com/ja-jp/library/bb509634(VS.85).aspx
D3DXMATRIXはcolumn-major(行優先)な仕様だ
0403デフォルトの名無しさん2014/02/23(日) 17:52:08.52
行優先だからHLSLに送るとき列に転置させてるんだろ
何言っての???
0404デフォルトの名無しさん2014/02/23(日) 18:02:57.26
>>402
何いってるの?お前がまず先に文章ちゃんと読めよ
未だにD3DX 構造体使ってる時点で底が知れるけど
0405デフォルトの名無しさん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で解釈変えてくれるってことなのかな
04064052014/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 ベクトルです。

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

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

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

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

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

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

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

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

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

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

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


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

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

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

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

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

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

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

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

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

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

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

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

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

1、Z軸の方向

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

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

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


元々の質問内容が>>414の

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

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

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

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

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

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

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

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

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

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

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

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

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

SHA-1は8097bb69676a20e55a98a67d960a8b6edc89dff9のようなので
これが一致していれば大丈夫なはず、、、はず。。。
Microsoft内で簡単に見つかれば、こんな恐ろしい目に合わなくて済むのですが。。。
0534デフォルトの名無しさん2014/03/13(木) 18:19:53.43ID:mfsOHz8n
>>533
「DirectX SDK October 2004」でググるという発想はないのか…
0535デフォルトの名無しさん2014/03/13(木) 18:24:08.44ID: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を前に一掃されたかわからん
確認せずにいい加減なレスしてすまんかった
05365312014/03/13(木) 19:24:20.97ID:sXBITfll
>>535
うちだけMicrosoftからブロックされたのかな?とか
訳のわからないことを考えてしまっていましたw

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

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

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

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

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

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

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

Windows7対応しなさそうな感じだな
0559デフォルトの名無しさん2014/03/22(土) 03:21:12.09ID:e5G6ta4Q
>>558
7対応するって
http://www.4gamer.net/games/033/G003329/20140321013/
0560デフォルトの名無しさん2014/03/23(日) 02:55:55.99ID:Tm2ek9Zj
Directxに興味を持って2年くらい前から本を持っているのに
相変わらずサンプルのビルドすらできない
ライブラリとか指定済みのSampleBrowserのものすら動かないのは何が悪いのやら
0561デフォルトの名無しさん2014/03/23(日) 03:27:17.72ID:tktLBKAf
>>560
おまえの頭
0562デフォルトの名無しさん2014/03/23(日) 03:59:50.76ID:gvom7fcZ
Hello worldがコンパイル出来てるか心配になるレベル
0563デフォルトの名無しさん2014/03/23(日) 05:51:35.48ID: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;
};

何が問題なんでしょう?
0564デフォルトの名無しさん2014/03/23(日) 10:53:22.16ID:mAtrOGhz
>>563
おいおい、買った本教えてみ。
非常に大事なお約束が抜けてるぞw
自分も最初に躓いたな、そこw
0565デフォルトの名無しさん2014/03/23(日) 11:33:44.93ID: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]
0566デフォルトの名無しさん2014/03/23(日) 17:59:18.84ID:qjHgMSQw
まあ、簡単に言うとだな・・・

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

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

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

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

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

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

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

それはどうでもイイけど、>>596それは無いと思う
Direct3Dに限った話じゃないけど、C/C++的に、とても忙しいときに
リソース確保とかない
0602デフォルトの名無しさん2014/04/26(土) 16:40:29.83ID:jarD8S8q
DirectX+C++でプログラムを作りたいと思っています。
PS4でソフトを出す人が言っていたのですが、今でもDirectX9使ってて、11は触ったこともないよと言っていました。
(DirectX9のプログラムをPS4でリリースするそうです)
11は9にあった機能がガンガン削られたというのも気になってて、9から勉強すれば大丈夫でしょうか?
0603デフォルトの名無しさん2014/04/26(土) 16:56:18.01ID:kNj7CoHP
今さら9はないかな
機能が削られたといってもよりハードウェアよりになってパフォーマンスを重視するようになったってだけだし
0604デフォルトの名無しさん2014/04/26(土) 17:11:51.16ID:hnCObsbS
9は参考書籍に良書が多いから、9スタートでもいいとは思うけど、
やる気の持続する人はこの質問する前にすでに両方試してると思う。つまり才能がな(ry
0605デフォルトの名無しさん2014/04/26(土) 17:36:17.40ID:KAgGu5U7
触ったことも無い人間が語る内容を信じる意味が分からない。
0606デフォルトの名無しさん2014/04/26(土) 17:53:02.69ID:OHeunlyf
9をかんだ程度で11に行きたいならやめておいた方がいい。混乱するだけだ
9を極めて11に行こうってんなら、移行は簡単だろうが時間の無駄すぎるだけだ
0607デフォルトの名無しさん2014/04/27(日) 06:55:45.29ID:ean7wWfJ
0から始めるのに今更9は流石に無意味
0608デフォルトの名無しさん2014/04/28(月) 17:57:24.54ID:6pILsLXV
DX11ってOpenGLみたいに描画がプリミティブになったんだっけ?
0609デフォルトの名無しさん2014/04/29(火) 09:44:48.70ID:JlO62gth
意味不明
0610デフォルトの名無しさん2014/04/29(火) 14:43:35.70ID:SJ6dwBtg
俺、次のDX12に期待するわ
0611デフォルトの名無しさん2014/04/29(火) 16:22:27.29ID:h5iJ3BEz
じゃあ僕はDirextX15ぐらいで。
0612デフォルトの名無しさん2014/04/29(火) 17:23:56.29ID:yQJI8F/r
12はまた大幅な変更なのかな
0613デフォルトの名無しさん2014/04/30(水) 00:23:04.03ID:F/SK7ZLB
情報量は9が多いし、参考にしたらいいと思うけど、
今からプログラミングするなら断然11をオススメする。
9までのAPI増改築による複雑さが整理されているし、色々なアルゴリズムを適用し易い柔軟性もある。
0614デフォルトの名無しさん2014/04/30(水) 21:04:02.99ID: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空間のメモリ領域のことなの?
0615デフォルトの名無しさん2014/05/01(木) 04:30:33.34ID:eDhN40up
DirectX11でテクスチャの設定された面とされてない面があるオブジェクトを描画する時はシェーダを切り替えなくてはいけないんでしょうか
シェーダ側からテクスチャが設定されているか調べる方法があると良い気がするのですが
0616デフォルトの名無しさん2014/05/01(木) 07:02:34.05ID:M4OGqH6+
頂点情報に埋め込んどけばいいだけの話
0617デフォルトの名無しさん2014/05/01(木) 07:07:10.65ID:5zg6LXgK
シェーダ内でif分岐するよりはシェーダを切り替えたり、
テクスチャなしの場合は白のテクスチャを張る、
とかにしたほうがパフォーマンス的にいいと思う。
実際に測定してないけど
0618デフォルトの名無しさん2014/05/01(木) 17:16:33.93ID:w63nobuX
DynamicShaderLinkageってのがあってだな・・・

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

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

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

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

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

情報量はDX9。
実際のコーディングはDX11って感じかな。
0642デフォルトの名無しさん2014/05/20(火) 04:36:26.33ID:f9YPeLav
柔軟すぎると初心者は手をつけれなくなるんだよね。
0643デフォルトの名無しさん2014/05/20(火) 13:02:53.77ID:c/zSMJrz
javascriptのことですね
0644デフォルトの名無しさん2014/05/26(月) 21:00:59.60ID:/c0SmoR4
スレが間違っていたら申し訳ありません。
質問なのですが、現在DirectXでpmdファイルを読み込むプログラムを作成しているのですが
サンプルプログラムで使用されていたpmdファイルを読み込むことには成功したのですが、
自分が使いたいLat式ミクを表示しようとするとフォルダの中に存在しているテクスチャが見つからないと
表示されアクセス違反が発生してしまいます。
なぜ指定されたデータは存在するのにプログラム側で指定されたファイルが見つかりません。
と表示されるのか原因がわからず困っております。
読み込みのプログラムはこちらのサイトのpmdモデルを表示を参考にしました。
http://www2.ocn.ne.jp/~mhage/PIC_Trap/
データはソースコードが置いてある場所にモデル用のフォルダを作成しその中にすべて
データを入れてあります。
パスの指定の方法は"フォルダ名/モデル名.pmd"で指定しております。
環境
Windows7
VisualStudio2008
DirectXSDK November2007を使用しております
0645デフォルトの名無しさん2014/05/26(月) 21:09:53.94ID:/c0SmoR4
ちなみにフォルダ内のデータをすべてソースコードが置いてるフォルダ直下に移した場合は表示されております
0646デフォルトの名無しさん2014/05/26(月) 21:14:44.44ID:PNgp/PCF
いきなりプログラミング始めると、パスの概念なかったりするのかね
単純に馬鹿なんじゃと言いたくなるが、最近の学習環境ってどうなんだろう
0647デフォルトの名無しさん2014/05/26(月) 23:28:36.37ID:9uDw03cb
Direct2Dでテクスチャ描画するときに
特定の色だけ透過(色抜き)って出来ますか?
0648デフォルトの名無しさん2014/05/27(火) 18:30:57.13ID:6Q8qjCFH
ああ、出来るよ
0649デフォルトの名無しさん2014/06/03(火) 22:13:03.43ID: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もいろいろ大変なんだね
0650デフォルトの名無しさん2014/06/03(火) 23:54:46.04ID:i8lZwovg
なんだ、D3Dマンセー記事?
0651デフォルトの名無しさん2014/06/04(水) 00:31:20.30ID:BscmL0e/
Valveの人の不満が書いてあるだけじゃね?
0652デフォルトの名無しさん2014/06/04(水) 00:34:06.51ID:S+z4z//M
俺に使えないもの作るんじゃね
といってるように読めますが
0653デフォルトの名無しさん2014/06/04(水) 00:36:48.35ID:BscmL0e/
思考停止してる人間はそう読めるのかもしれない
0654デフォルトの名無しさん2014/06/04(水) 17:41:25.61ID:2ij5JthN
ハード屋はとりあえず自分の環境だけで動けばいいやってところが多い
0655デフォルトの名無しさん2014/06/08(日) 15:06:39.78ID:DzOeG031
ゲームプログラミングのために勉強し始めたばかりなんですが例えば2Dなら2D、3Dなら3D、あるいはジャンル毎とかにDirectXの土台のコードの部分って似たり寄ったりになるものですか...?
0656デフォルトの名無しさん2014/06/08(日) 15:43:52.16ID:2dlEo4xC
今の時代は2Dでも3DAPIをベースに作るほうが却って楽だよ。
0657デフォルトの名無しさん2014/06/08(日) 16:29:05.93ID:WtdjODsB
2Dゲームしか作らないんですが9から11に移行する意味ありますか?
過去にDirectX9使って同人ゲームを2作作ったことがあるんですが
11ではSpriteとか2D関係の一部がなくなってると聞いているので代替えがあるんですよね?
0658デフォルトの名無しさん2014/06/08(日) 16:40:19.07ID:2dlEo4xC
>>657
DirectX9でそこまで経験があるなら別にどちらでもかまわないと思うが、
高度なシェーダやGPUコンピューティングを行うなら11への移行を検討したほうがイイ。
いずれにせよほぼ作り直しになるようなら、継ぎ接ぎの多い9に対して
体系的に整理されている11のほうが美しいコードにできる。
個人的にはデバイスロストの面倒が緩和されただけでも11に移行する価値があると思う。
情報量的には9のほうが多いので、そのあたりを考慮しながら決定したらイイと思うよ。
0659デフォルトの名無しさん2014/06/08(日) 16:48:31.45ID:14DSih8c
行列理解してれば3Dで2Dを表現するなんて楽勝なハズなんだけどな・・・
06606582014/06/08(日) 16:48:41.24ID:2dlEo4xC
>>657
ああ、あとSprite関係はD3DX11を使うなら同じようにできるが、MicrosoftはD3DX11の廃止を決定。
代わりにDirectXMathやDirectXTex、DirectXTKが作られた。
SpriteはDirectXTK。
乗算済みアルファフォーマットになっているなど多少注意は必要だけど、割と使い易かったよ。
0661デフォルトの名無しさん2014/06/08(日) 17:04:31.21ID:3LWaPBPW
っつーか3Dなら行列、ってのも
行列が座標計算に便利だから使われてるだけであって
普通に手計算で拡縮・回転・移動させたって別に問題ない気がする
DirectX10以降でシェーダを自前で用意するようになった今では尚更
0662デフォルトの名無しさん2014/06/08(日) 17:23:18.64ID:WtdjODsB
なるほど
代替えがあって使い辛くもないなら移行しても問題なさそうですね
とりあえず書籍やらサイトやらの情報漁って勉強してみようと思います
ありがとうございました
0663デフォルトの名無しさん2014/06/08(日) 18:29:19.13ID:xd0WpNv5
>>659
シェーダを理解していれば2Dやるのに行列が必要なんて思わないんだけどね。
必要なパラメータを渡して頂点シェーダ側で計算すればいいだけなんだから。
2Dをやるのにいちいち行列なんて渡していたら、
不必要なデータが発生する上に柔軟性が失われるだけ。
0664デフォルトの名無しさん2014/06/08(日) 18:56:39.08ID:JQupJLB1
>>663
おまえが真性の低脳なのはよくわかった
0665デフォルトの名無しさん2014/06/08(日) 19:13:47.24ID:T2kLI3EL
DirectX12ではシェーダステージ全廃されて
パイプラインを自前で好きなように組めると風の噂で聞いたんですが本当ですか?
だとしたら凄くワクワクするんですが
0666デフォルトの名無しさん2014/06/08(日) 19:35:25.02ID:Qkz9xepd
>>660
廃止されるのはD3DX(Direct3D 9)だろう?
0667デフォルトの名無しさん2014/06/08(日) 19:47:05.35ID:Qkz9xepd
誤読した、すまん。
0668デフォルトの名無しさん2014/06/08(日) 19:48:49.86ID:A9EXtXDT
これから2Dゲームを作ろうとしている者ですが、
APIを何にしようか悩んでいます。
>>660では、SpriteはDirectXTKとのことですが、
Direct2Dはどうなのでしょうか。
0669デフォルトの名無しさん2014/06/08(日) 21:08:40.14ID:xd0WpNv5
>>664
テキスト通りの知識で3Dを学んで、それをそのまま何も考えずに2Dに適用しようとするから、行列って発想になるんだよ。
で、自分が無知なのに気がつかずに、初心者相手に「行列理解してれば」とか、
頭の悪い発言になっちゃんだよ。
行列を使うのが当たり前で、行列のせいで計算量が無駄に増えるだけなんて発想、全く持ってなかっただろう?
結局、中身の理解が出来ていないから、本当に必要なところに必要なものを持ってくることが出来ないんだよ。
0670デフォルトの名無しさん2014/06/08(日) 21:21:36.65ID:xnXzh5OH
GPU側の計算量なんて無視できるが何か
0671デフォルトの名無しさん2014/06/08(日) 21:28:35.09ID:9xUON02C
中身の理解ができていないから行列のせいで計算量が無駄に増えるだけって発想を持つのでは
0672デフォルトの名無しさん2014/06/08(日) 21:34:48.61ID:W+1wAVIS
>>668
Direct2Dはゲームに使うようなもんじゃない
0673デフォルトの名無しさん2014/06/08(日) 22:29:47.53ID:xd0WpNv5
>>671
3Dデバイスのせいで思考停止になっているようだけど、
例えばGPUは無関係に4頂点の回転をするとして、
いちいち回転行列を出してから計算するか考えてみるといい。
相当な馬鹿で無ければ、そんな無駄なことしないだろ。
0674デフォルトの名無しさん2014/06/08(日) 22:32:49.38ID:14DSih8c
いやまぁ、なんだ。俺の書き方が癇に障ったんなら謝るよ
すまんな。別に馬鹿にしたわけじゃないんだ
ただ、どうやんの?って聞かれたら教えようと思っただけだ

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

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

2010のExpressは各言語ごとに別々になっている
インストールしたのがC++以外のものなのでは
0696デフォルトの名無しさん2014/06/19(木) 15:57:23.76ID:MnDWZSiw
ストアアプリのDirectXってManagedなの?
0697デフォルトの名無しさん2014/06/19(木) 16:15:07.48ID:4xoohYUJ
ネイティブ
C#等から使いたい場合SharpDX等を利用
0698デフォルトの名無しさん2014/06/19(木) 23:01:35.19ID: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ゲーム等動く環境。

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

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

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

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

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

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

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


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

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

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

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

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

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

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

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

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

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

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


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

と明確に書いてあるな。
0740デフォルトの名無しさん2014/07/23(水) 22:59:59.04ID:cx7MeMim
DxLibでいくつか2Dゲームを作ってきたんだが、そろそろ卒業してDirectXを始めようと思ってる
とりあえず2Dだけ扱えてDxLib同等のことができることが目標なんだが、
このスレ的にお勧めの参考書はどれだろうか。
あと、今は生でDirectX触るんじゃなく、何かしらのラッパーライブラリを使うのが普通なんだろうか?
0741デフォルトの名無しさん2014/07/23(水) 23:51:57.90ID:l6A0aEh1
>>740
2Dなら乗り換えるメリットは少ないよ
ライブラリはCodePlexで提供されているDXUTかDirectXTKでいいと思うけど
0742デフォルトの名無しさん2014/07/24(木) 00:04:36.89ID:SzCSi9rr
>>740
最近はUnityとかゲームエンジン使うのが流行りだけど、
ゲームだと生で使ってる方がまだ多いんじゃないかなぁ
0743デフォルトの名無しさん2014/07/24(木) 00:36:43.79ID:N6ucGWbz
DXUTとかDirectXTKはもうサポート打ち切られて過去のものになったんじゃなかったっけ
0744デフォルトの名無しさん2014/07/24(木) 00:56:56.67ID:BKPzqxWN
同人でやってるんだが、ある程度実績が出てきたので、
まずはただの2Dエロゲでいいから、いずれ商業でやりたいよな という話が出てきてな…
実際にやるかどうかは別として、仮に商業作品を作るならDxLibはダメだろう、という判断です
>>741 >>742
DirectXでは、今のところ特に主流になっているライブラリは無いので
まずは基本的なテキストから読み始めれば良い、ということですね
>>743
と思ったら、まずはライブラリを調べたほうが良さそうか

DirectXの入門サイトをさくっと見てみましたが、基本的なところはDxLibからやる方法と
だいたい同じだな、という印象でした
とはいえ実際にDirectXで何かを作るとなると、結果的にDxLibもどきのような
オレオレライブラリを作ることになるのでしょうか?
ゲーム作成のためのフレームワーク部分から作るとなると、ゲーム本体よりもよっぽど作成に時間がかかりそうですが、
2Dで済むようなゲームであれば、そこまでやらないものなのでしょうか?
0745デフォルトの名無しさん2014/07/24(木) 01:14:15.74ID:YQItqAuA
現在C++/CLI上でDirectX11のプログラムを書いているのですが
XMMatrixTransposeの呼び出しでSystem.AccessViolationExceptionが発生してしまいます
それも必ず発生するのではなく実行する毎に発生したりしなかったりします
何かご助言を頂けないでしょうか
0746デフォルトの名無しさん2014/07/24(木) 01:26:10.83ID:9PG9PKAB
>>743
CodePlexではDXUT11としてまだ開発続いてるけど?
https://dxut.codeplex.com
0747デフォルトの名無しさん2014/07/24(木) 03:33:13.15ID:BB24B0yC
>>745
ぐぐったところ16byteアラインされて無い為だってさ
C#で作れば起きなくなるんじゃねえの?
C++でこれに真面目に対応するとクソみてえな
実装にする羽目になるよ
0748デフォルトの名無しさん2014/07/24(木) 03:43:25.24ID:k8+CgiX6
__declspec(align(16)) XMMATRIX M;
0749デフォルトの名無しさん2014/07/24(木) 04:47:16.21ID:YQItqAuA
>>748を記述するだけでは解決しませんでした
>>747を見て同様にググってヒットした海外フォーラムによるとSSE2とやらが問題あるように読めたので
/arch:AVXをセットしたところ何回か試した限りでは例外が発生しなくなりました

拡張命令がどういうものなのかも分からず問題もまた再発しそうな気もしますがとりあえず解決しました
ご意見ありがとうございました
07507442014/07/24(木) 09:12:20.26ID:I06JluIA
とりあえずDirectXは未経験だが2Dゲームが作れる程度にはなりたい、ということでテキストを探してるんだが
入門ゲームプログラミング (Professional Game Developerシリーズ)←テキストとして、これが良さそうかと思ったけどスレ的にはどうだろう?
DirectX11のものでないから、止めたほうがいいだろうか?
あと、上で挙げられてるDXUTやDirectXTKを使うテキストは無いのだろうか?
(やるなら開発が続いているDXUT?)
0751デフォルトの名無しさん2014/07/24(木) 09:36:22.82ID:SzCSi9rr
>>750
長く続けるならどうせ後で作り直すことになるんだから、
将来性とかガン無視で選んでいいと思うよ
0752デフォルトの名無しさん2014/07/24(木) 11:25:33.05ID:EOUySC/b
DirectXTKってもうサポート打ち切られてるの!?
0753デフォルトの名無しさん2014/07/24(木) 15:12:01.57ID:UHRmHuoj
>>752
馬鹿は氏ねよ
0754デフォルトの名無しさん2014/07/24(木) 16:32:24.60ID:QpOp4BZU
>>752
文脈から考えりゃD3DXと勘違いしてるだけでしょ
今でもwalbournさんが地道に更新し続けてるよ…

ちゅーかそもそもDirectXTKのサポート切れってなんだ
0755デフォルトの名無しさん2014/07/24(木) 16:42:03.48ID:1LDDLF7N
C#でDirectXしたい!
0756デフォルトの名無しさん2014/07/24(木) 17:33:02.27ID:33UO2C0U
>>755
SharpDXなりSlimDXなり自分でラッパーライブラリ作るなりどうぞ
0757デフォルトの名無しさん2014/07/24(木) 19:47:05.69ID:R11duizh
>>754
何だD3DXのことか。びっくりした。
また「DirectXTKはもう更新しないから次のライブラリをお楽しみに!」みたいな状態になったのかと焦った。
0758デフォルトの名無しさん2014/07/24(木) 22:02:27.69ID:1YpBpC/9
DirectXに全く触れたことがないが、DirectXTKなんかは
作成をどこまで手伝ってくれるものなんだろうか?
例えばDxLibならDirectXの知識が全くなくても物が作れるが、
DirectXTKの場合はDirectXの基礎的な知識があることが前提なんだろうか?
0759デフォルトの名無しさん2014/07/24(木) 22:58:35.14ID:Fts4tkhb
もちろんDirectXの知識は必須
知識なしに手軽に的なものを期待するのならDxLibや
C++から外れるけどUnityとかの方がいい
0760デフォルトの名無しさん2014/07/24(木) 23:15:26.29ID:9PG9PKAB
DirectXTKはXNAを意識して作ってあるっぽい?
0761デフォルトの名無しさん2014/07/25(金) 00:37:49.67ID:jmbBFkgn
XNAっぽい事をC++で、ってコンセプトじゃなかったかな…
自分はテクスチャの読み込みのやつしか使ってないけど。
0762デフォルトの名無しさん2014/07/25(金) 01:09:14.68ID:mIbzJgIi
WICTextureloaderは俺も使ってる。
DDSのほうも素材が用意できたらむしろこっちを使いたいんだけど。
あと使うのはSpriteBatch。
0763デフォルトの名無しさん2014/07/26(土) 11:27:04.14ID:M7+I22qZ
DirectXTKのdds読み込み関数、古いバージョンのddsファイルで時々読めない事なかったっけ?
0764デフォルトの名無しさん2014/08/10(日) 12:44:14.56ID:9tyyzNL4
XファイルのスキンメッシュでMeshの分割ってどういう基準でされてるの?
3Dモデルのパーツ単位とは違うと思うけど。
0765デフォルトの名無しさん2014/08/10(日) 15:25:10.82ID:uO2H9CKP
>>764
スキンメッシュを理解してないのがもろ分かりだぞ
馬鹿はググるなりして勉強してから出直して…くるな
0766デフォルトの名無しさん2014/08/10(日) 17:25:32.68ID:EuaRisUO
家でDirectXの参考書を読むより、
本屋で立ち読みする方が頭に入るんだけどなんでだろ・・・
0767デフォルトの名無しさん2014/08/11(月) 01:32:07.54ID:Dc6DfrDR
今はDirectXTKとかいうので作るのが普通なの?
DirectXのSDKを直接たたいて作ったりはしないもんなの?
0768デフォルトの名無しさん2014/08/11(月) 03:35:20.14ID:rvV7HXPE
>>766
あるある
0769デフォルトの名無しさん2014/08/11(月) 06:03:44.44ID:zPWqpXYM
俺はC++でDirectX11を直接叩いてる
他の人間がどうしてるかは知らないし気にしたこともない
0770デフォルトの名無しさん2014/08/13(水) 19:16:34.30ID:O6FDpoLd
あの、あまりにも初歩的過ぎて聞くのも気がひけるんだけどさ、何時間か調べてもさっぱり解決しないんだ。

DirectX9を触ってるんだけど、ビュー変換行列をD3DXMatrixLookAtLH関数で取得してる。
この第二引数(カメラ位置を指定してるやつ)に&D3DXVECTOR3(0, 10, -25)ってすると、原点に底面を接するように置いてある円柱オブジェクトの底面が見える。
&D3DXVECTOR3(0, -10, -25)にすると上面が見える。
DirectXは上がY軸のプラス方向のはずだから、前者はカメラを上に移動させ、後者はカメラを下に移動させるはずだよね?
なのに、なんで逆に動いたような挙動をするんだろうか。
この関数の第四引数(上方向を定義してるやつ)には&D3DXVECTOR3(0, 1, 0)を指定してる。
円柱はBlenderで作成し、左手系座標・上方向をYに指定してエキスポートしてる。
私が何を勘違いしてるのか教えてほしい。
0771デフォルトの名無しさん2014/08/14(木) 00:05:46.23ID:lWeaChAv
シェーダと行(列)優先が合ってないとかかな?
0772デフォルトの名無しさん2014/08/14(木) 00:23:14.56ID:a5s57Q02
射影行列が上下逆になってるとか?
07737702014/08/14(木) 12:29:57.72ID:xwoxC0+I
>>771-772

シェーダがなんなのかよく分かってないのと射影行列の上下というのも分からなかったので、地道に実験を続けてみた。

おかしいなーと思う部分は他にもいろいろあったものの、結局のところ
Blenderでエキスポートする際に、上方向にY軸を指定し、右手系座標を指定したところ、いくつかまとめて解決してくれた。
もしかしたらと思ったのは、Blender上でViewを回転させてY軸を上、X軸を右にあわせると、Z軸が手前になる。
「上方向をY軸にする」設定って、こういう形にしてくれるっていうことなのかなとおもった。
このままだとDirectXとはZ軸の向きが逆だから、右手系座標を指定するとZ軸の向きを反転させてくれるとか。
BlenderはY軸が奥向きだけど、右手系座標のZ軸は手前向きだし。
とはいえ、こんな不思議な仕組みなら、誰かが気になって調べた記事が検索に引っかかりそうなものだし・・・。全然見当違いな気もする。

とりあえず疲れたので、もうちょっとましな原因が分かったらまた報告します。
0774デフォルトの名無しさん2014/08/19(火) 06:03:27.00ID:HnpRfGjq
もう少し詳細が欲しい

http://blogs.msdn.com/b/directx/archive/2014/08/13/directx-12-high-performance-and-high-power-savings.aspx
0775デフォルトの名無しさん2014/08/19(火) 19:08:32.34ID:WM857LTb
DirectX12のパフォーマンス向上に関する記事とかはちょくちょく見るんだけど
APIというかプログラミングモデルというか、そういうのに言及されてる記事って無いですか?
シェーダの区分が無くなって、よりGPU寄りの低レベル操作ができるようになる、ってぐらいしか分かってないので
もうちょっと知っておきたいなと思って・・・
0776デフォルトの名無しさん2014/08/19(火) 19:36:39.09ID:kG/pPDDM
まだ焦る段階じゃない

・・・って言ってみたかったんだ!
0777デフォルトの名無しさん2014/08/29(金) 02:22:44.67ID:5b1Q5/CH
http://www.shader.jp/?p=1312
キター

シェーダの区分が無くなると言うよりは、全体が一つのステートの単位になるっぽい
一部分だけの変更にはClassLinkage(だっけ?)で対応してくれってことかな
0778デフォルトの名無しさん2014/08/29(金) 23:43:19.55ID:e7IhPR5N
ドライバーなど再インストールしても
グラボのDirextDrawアクセラレータ、Direct3Dアクセラレータ、AGPテクスチャアクセラレータが「利用できません」ってなってる
オンボードは使用可能になってるのに
0779デフォルトの名無しさん2014/09/06(土) 12:09:35.98ID:20e2eB+A
初心者丸出しでお恥ずかしいのですが、質問を。

MatrixのLookAtLHで、カメラの位置・カメラの見るポイント・カメラの上がどっち向いてるか、
の3点を与えるというところです。
カメラの上、というのが大抵のサイトなどでは(0,1,0)を入れておけばいいよ、で終わっています。
でも、実際に(0,1,0)にしておくと、上から見下ろす場合などで描画できませんし、
傾けた状態で見下ろすと期待と異なる結果になってしまいます。

このカメラの上ってヤツを算出するのに参考になる書籍・サイト等はありませんか?
0780デフォルトの名無しさん2014/09/06(土) 13:50:20.95ID:UaIF+z7q
>>779
数学の勉強しろ
0781デフォルトの名無しさん2014/09/06(土) 15:00:34.60ID:4S46Uu0i
http://marupeke296.com/DXG_No56_CameraBaseTrans.html
こことか参考になるかな

傾けた状態で見下ろす、ってのは、首をひねるみたいにカメラを横に傾けるイメージ?
だとしたら、上方向ベクトルを視線ベクトルを軸にして回転させる必要がある
MatrixRotationAxisとかその辺を使ってカメラを回せると思う
0782デフォルトの名無しさん2014/09/06(土) 23:07:58.77ID:NyDeAvl5
これで十分だろう。

// cvector3_t camera_to_target; // 視線(正規化済)
cvector3_t up;
cvector3_t v = abs(camera_to_target);
float_t m = max(v);
if( m == v.x )
{
if( camera_to_target.x >= 0){ up = 視線が+x時の上ベクトル; }
else{ up = 視線が-x時の上ベクトル; }
}
else if( m == v.y )
{
if( camera_to_target.y >= 0){ up = 視線が+y時の上ベクトル; }
else{ up = 視線が-y時の上ベクトル; }
}
else
{
if( camera_to_target.z >= 0){ up = 視線が+z時の上ベクトル; }
else{ up = 視線が-z時の上ベクトル; }
}
up = cross(camera_to_target,cross(up,camera_to_target));
0783デフォルトの名無しさん2014/09/07(日) 00:21:31.52ID:vXM6o9cR
>>782
内容は正しいが、コードがイマイチ
60点
0784デフォルトの名無しさん2014/09/07(日) 00:34:59.07ID:eq6Jizsh
>>780も>>783も
もう少し情報量の多い書き込みをしてくれ
07857792014/09/07(日) 03:41:21.39ID:OJ0NVSOq
御礼が遅くなりました。

>>781
そこも見てはいたのですが、上向きベクトルを加工していないコードばかりで、
参考からは除外していました。

>>782
コードまでありがとうございます。
数学の勉強も含めて参考にしてみます。

重ね重ね、ありがとうございました。
0786デフォルトの名無しさん2014/09/07(日) 22:41:19.39ID:+85s1gqZ
https://directxtk.codeplex.com/wikipage?title=GamePad

こんなの追加されてたのか
0787デフォルトの名無しさん2014/09/12(金) 15:44:43.53ID:s+QUZ/hb
>>726で、バックバッファ以上の大きさのレンダーターゲットが機能しない問題にあっていたものです。
原因がわかりました。
D3DPRESENT_PARAMETERS の EnableAutoDepthStencil に TRUE を指定してデバイスを作成し、
SetRenderState(D3DRS_ZENABLE, D3DZB_FALSE); で深度バッファを使わない設定にしてから、
バックバッファよりも大きなレンダーターゲットを作成し、
それを SetRenderTarget で設定していたのですが、その時に深度バッファを設定していませんでした。

そもそもZバッファは全く使っていなかったので、EnableAutoDepthStencil = FALSE でデバイスを作成したら問題が解決しました。

D3DRS_ZENABLE を FALSE にしてあったので深度バッファはあってもなくても無関係だと思い込んでいました。
たとえ使わない設定にしてあってもレンダーターゲットのサイズに合わせた深度バッファを設定しないといけないようですね。

※この現象は GeForce 7600GS で発生しました。


動作検証用に使ったコードを載せておきます
http://codepad.org/stFEdHmS
07887872014/09/12(金) 15:46:51.17ID:s+QUZ/hb
なので >>736 の考えが正しかったということですね。ありがとうございました
0789デフォルトの名無しさん2014/09/16(火) 15:59:22.42ID:J/7ZfBpm
教えていただきたいです。
windows7でガンダムオンラインをやろうと思いDirectX 9.0をインストールしているのですが、
同じエラーが出ていつも停止してしまいます。
エラーの内容は、

Error creating prosess
<C:\Users\1\AppData\Local\Temp\IXP001.TMP|dxwsetup.exe>
Reason:指定されたファイルが見つかりません。

という表示が出てきます。
Windowsのアップデートは今朝やったので、最新のものだと思います。
どなたかわかる方いらっしゃいませんか?
0790デフォルトの名無しさん2014/09/16(火) 16:36:09.97ID:3j+nE/Ry
糞ゲーなんてやめて君もDirectxいじろうぜ
0791デフォルトの名無しさん2014/09/16(火) 16:53:51.82ID:OLoiq/Xq
>>789
そういうのはサポートに聞け
馬鹿が
0792デフォルトの名無しさん2014/09/16(火) 17:12:17.97ID:CN8cyWpt
DirectXで使える、モデル描画ライブラリって今は何がいいんだろう。
スキンメッシュがまだサポートされてないみたいだけど、DirectXTKのModelクラス?
0793デフォルトの名無しさん2014/09/16(火) 18:12:29.91ID:q/MSigzs
自分で組んだいいと思うがな
そんな労力がないってんならUnity使えって
0794デフォルトの名無しさん2014/09/16(火) 18:13:01.75ID:q/MSigzs
組んだ方が・・・
0795デフォルトの名無しさん2014/09/16(火) 22:05:24.80ID:tRECZzPW
自前の方がいいって事は、「とりあえずこれ使っておけ」みたいな決定版が無いって事なのかな…
一応自前のはあるけど、アニメーションができないんだよね…
アニメさせないのならDirectXTKのModelでも全然問題なさそうなんだけど。
0796デフォルトの名無しさん2014/09/16(火) 22:25:54.89ID:GYasISlT
単純な線形補間のアニメーション付きスキンメッシュなんて、ほんの数行の頂点シェーダー書くだけなのよ
質問の答えになってないけど

しかし右も左もUnityだな・・・ちょっと興味出てきちまったい
DirectX12早く来てくれー
0797デフォルトの名無しさん2014/09/16(火) 23:26:36.33ID:tRECZzPW
>>796
簡単なモデルをプログラムで用意してスキンアニメさせるのは以前にやったけど、
モデリングツールから出したデータから抜き出してやるのがあまり上手くできないんだ。
Assimpで形状は取り出せたけど、アニメは何か上手く行かない。
0798デフォルトの名無しさん2014/09/17(水) 10:51:00.82ID:k7ATJ22m
>>793
労組
0799デフォルトの名無しさん2014/09/19(金) 21:28:28.65ID:nfkFgcL0
DirectX11.3と12等など

http://www.anandtech.com/show/8544/microsoft-details-direct3d-113-12-new-features
0800デフォルトの名無しさん2014/09/19(金) 21:29:23.34ID:nfkFgcL0
ついでに

http://blogs.msdn.com/b/directx/archive/2014/09/18/directx-12-lights-up-nvidia-s-maxwell-editor-s-day.aspx
0801デフォルトの名無しさん2014/09/24(水) 23:50:56.64ID:MElg8okB
3Dオブジェクトに、そのオブジェクトのワイヤーフレーム線を重ねて描画するのってどうすればいいの?
ただ重ねるだけじゃなくて、ワイヤーフレーム線に対してもZバッファや陰線処理を適用させたいんです。
普通のポリゴン全部描画→zバッファクリアしないでそのままワイヤーフレームの線を描画
だと、Zテストの結果が不安定になっちゃうし。
0802デフォルトの名無しさん2014/09/25(木) 00:19:13.70ID:GdO5e9qh
ほんの少し大きい3Dオブジェクトのワイヤーフレームを重ねて描画する。
0803デフォルトの名無しさん2014/09/25(木) 02:29:38.02ID:Ni7KtgAG
難しく考えなければいい
>>802のやり方をするならばジオメトリシェーダで頂点位置を法線方向にちょっと移動させるだけだ
0804デフォルトの名無しさん2014/09/25(木) 21:27:09.98ID:3qfAPaZp
Model needs support for skinned animations
https://directxtk.codeplex.com/workitem/858

ここ見ると、どうやらスキンアニメーションはCMOでサポートされていて、
DirectXTKのSkinnedEffectというのを使ってできるみたいだね。
たしかにDirectXTKのフォルダにソースがあるわ。

これでXファイルの代替には十分になったのかな。
0805デフォルトの名無しさん2014/09/25(木) 23:21:28.28ID:9htpaG4b
>>802-803
よくわからんなあ
普通は射影空間でZ軸方向にオフセットかますんじゃないの?
D3D11ならD3D11_RASTERIZER_DESC::DepthBiasに
適当な値(Zバッファの2^bit深度の逆数とか)を入れるだけで
良さそうな気がするが。(試してはいない)
0806デフォルトの名無しさん2014/09/25(木) 23:25:18.74ID:9htpaG4b
つーかDX12はまだなの?
もう9月終わるけど
0807デフォルトの名無しさん2014/09/25(木) 23:35:32.18ID:RsWozeYW
>>806
馬鹿は氏んでろ
0808デフォルトの名無しさん2014/09/27(土) 11:57:35.82ID:0TauZUvj
だれかジオメトリシェーダー部分を書いて下さい
http://monobook.org/wiki/SL_Sharp
0809デフォルトの名無しさん2014/09/27(土) 11:59:35.78ID:Tol0KhbM
まるち
http://peace.2ch.net/test/read.cgi/tech/1348409867/
0810デフォルトの名無しさん2014/09/27(土) 15:39:05.92ID:TgC+Xkg5
パフォーマンスを稼ぐためにはDrawコールを減らすってのが鉄則みたいだけど、
その理由って、

Drawコールにより、前回のDrawコールから今回のDrawコールまでのコマンド
(デバイスコンテキストの各種Setメソッド)がGPUに転送(コマンドバッファのフラッシュ)
 ↓
その際に、ドライバプログラムを実行するために、OSがユーザーモードからカーネルモードになり、
そのオーバーヘッドがかなりのサイクルかかる。
 ↓
このオーバーヘッドがDrawコールの回数分効いてくる

でOK?
0811デフォルトの名無しさん2014/09/27(土) 17:17:42.74ID:mzR2PUBj
CPU⇔GPUのやりとりは時間がかかります
で、おk。
理由なんてそれでいい、俺らがどうこう出来る問題じゃない・・・
08128102014/09/27(土) 17:43:29.66ID:TgC+Xkg5
>>811
おk把握
0813デフォルトの名無しさん2014/09/27(土) 17:56:44.90ID:mzR2PUBj
わかってるかもしれんが
Drawを減らしたい場合は、例えば1000個のオブジェクトを描画したいなら1000回描画しろと一回の命令出せばいいんだ
0814デフォルトの名無しさん2014/09/27(土) 18:31:36.89ID:TgC+Xkg5
ジオメトリインスタンシングのことかな?
あれならGPUさんへは一回コマンド送るだけで済むよね。
0815デフォルトの名無しさん2014/09/27(土) 19:00:24.39ID:iZfhy6ID
完全に同一のオブジェクトならな
0816デフォルトの名無しさん2014/09/27(土) 19:32:17.71ID:P/mAEKki
頂点フォーマットの違うdrawも一挙に発行できないのかな?
あと、VertexBufferに違うフォーマットの頂点入れる時も、オフセット開けたり面倒なんだけど。
0817デフォルトの名無しさん2014/09/27(土) 20:20:14.25ID:mzR2PUBj
完全同一しか出来ないよ。パーティクル系とかに使えるってだけ

同一オブジェクトを構造化バッファーとテクスチャと変異マップを駆使して別物に仕上げる方法も一応あるよ
0818デフォルトの名無しさん2014/09/28(日) 19:11:49.32ID:uBJ5g3Hm
映画とかアニメの演出で、カメラの画角を広げつつ拡大していくことで、撮影対象である人物の
画面に対する大きさを買えずに遠近感だけ変化させるやつがありますよね?
あれをゲーム画面で実現したいんですが、画角の変化の割合に対して、
拡大率をどのくらいに設定すれば良いのか、計算式はどうなるんでしょうか?
0819デフォルトの名無しさん2014/09/28(日) 19:23:42.26ID:7DmkIXSs
>>818
自分で立ててみた式を披露してみよう
0820デフォルトの名無しさん2014/09/28(日) 20:22:52.58ID:uBJ5g3Hm
考えてみました。
被写体が画面にちょうどぴったり収まるサイズだったとして、
被写体Zにおける画面幅に対応するワールド長さが、θ(Y方向の画角)変更前(θa)とθ変更後(θb)で同じになればいいわけですよね。
カメラ自身は移動しないので、被写体Zの値は定数になるから、
Scale = 画角θaでの近クリップ面の高さ / 画角θbでの近クリップ面の高さ でスケーリングすれば良い事になります。
Fov方式だと近クリップ面の高さは znear * tanθ で表せるので、
Scale = (znear * tan(θa)) / (znear * tan(θb))
となって、
Sclae = tan(θa) / tan(θb)
ですかね?
0821デフォルトの名無しさん2014/09/28(日) 20:29:02.69ID:uBJ5g3Hm
ちょっと整理してみました。
被写体Zでの、画面高さに対応するワールド長さを H としたとき、
画角θ距離Zの場合 H = Z * tanθ ですから、
画角θa距離Zなら Ha = Z * tan(θa)
画角θb距離Zなら Hb = Z * tan(θb)
このとき、Ha = Hb * scale となるように scale を決定したいから
scale = Ha / Hb = tan(θa) / tan(θb)
0822デフォルトの名無しさん2014/09/28(日) 20:38:34.98ID:uBJ5g3Hm
間違えました。tan(θ/2) で計算しないとダメですね。
0823デフォルトの名無しさん2014/09/28(日) 20:53:19.63ID:7DmkIXSs
820で気になったので1点確認しておこう。
カメラと被写体(人物)の間の距離は変化させる・させないどっち?
0824デフォルトの名無しさん2014/09/28(日) 21:06:25.71ID:gt/d/abt
よく分からんけどドリーインってやつ?
それならカメラを動かしつつ画角を変化させるんじゃないの?
0825デフォルトの名無しさん2014/09/28(日) 21:19:21.54ID:uBJ5g3Hm
カメラも被写体も固定で、画角とスケーリング調整だけで表現するつもりです。
カメラの位置と動きが予め決まっているような場面では、
効果の掛け方によってカメラ座標が影響を受けない方がいいかな、と思ったので。
0826デフォルトの名無しさん2014/09/28(日) 21:27:35.09ID:gt/d/abt
スケーリング調整って何に対してするの?
0827デフォルトの名無しさん2014/09/28(日) 21:30:41.39ID:yB4VOdfw
背景だけ拡大したら似たような効果になるが、その場合は画角変える必要ないな。
0828デフォルトの名無しさん2014/09/28(日) 21:33:06.40ID:7DmkIXSs
うむ、そこが問題なんですな。
824さんも言ってるけどカメラの位置を変えないと無理だよ。
3DCGでフツーにやる分には画角の変更とスケーリング(+トリミング)は同じことなので。
(実際のレンズだと魚眼効果みたいなやつで同等にはならないけど、>>818の演出はそれ抜きで可能)
0829デフォルトの名無しさん2014/09/28(日) 21:33:39.34ID:uBJ5g3Hm
単純に ProjectionMatrix に対してスケーリング行列をかけていたのですが、実際にやってみた所、
画角変更前と変更後で得られる画像が全く同じになりました。
画角変更による画面変化が、スケーリングによって相殺された感じです。
ようやくわかりました。ドリーインていうのは必ずカメラ自体を動かす必要があったんですね。
0830デフォルトの名無しさん2014/09/28(日) 21:47:58.54ID:uBJ5g3Hm
となると問題はカメラを元位置からどれだけ動かす?って事なんですが、画面にぴったり収まるように写っている長方形(サイズW,H)がカメラからの距離 z にあったとして、画角θを変化させたときに、この長方形の(見かけの)大きさが変わらないようにZを調整してみます。
画角θ距離Zの場合 H = Z * tanθ ですから、
画角θa距離Zaなら Ha = Za * tan(θa)
画角θb距離Zbなら Hb = Zb * tan(θb)
このとき Ha = Hb にしたいわけですから Za * tan(θa) = Zb * tan(θb) の関係を保つように変化させればよいことになりますね
カメラを移動させて Z を変更したなら、移動後の画角は tan(θb) = tan(θa) * Za/Zb ただし tanθ = H/Z なので
tan(θb) = (Ha/Za) * Za/Zb = Ha/Zb すなわち
θb = atan2(Ha, Zb) ですね!
0831デフォルトの名無しさん2014/09/28(日) 22:04:49.89ID:7DmkIXSs
書き込み時間的に828前に自分で答え(>>829)を出したみたいで何よりですな。
830の式でいいと思うよ。θかθ/2かは些細な問題というか俺も覚えてない。
0832デフォルトの名無しさん2014/09/28(日) 22:34:55.37ID:uBJ5g3Hm
ありがとうございます。この計算式で試してみます
0833デフォルトの名無しさん2014/09/28(日) 23:27:28.27ID:hNgg5JkE
演出に関わるところは面白いね。
がんばれよ!
0834デフォルトの名無しさん2014/09/30(火) 15:26:17.45ID:P/lAZU9v
D3D9+HLSLでぼかしエフェクトをかけようと思い以下のHLSLを書いたのですが、
http://codepad.org/j3Ma2y0E

D3DXCreateEffect で以下のエラーが出ます
(50): error X5200: (First source param) Invalid register number: 32. Max allowed for this type is 31.
(39): error X5200: (First source param) Invalid register number: 32. Max allowed for this type is 31.

これってどういう意味なんでしょうか??
0835デフォルトの名無しさん2014/09/30(火) 17:03:18.67ID:FT3pFW2R
>>834
馬鹿としか言いようがない
0836デフォルトの名無しさん2014/09/30(火) 17:27:06.57ID:JjKI4EMd
レジスターの番号が大きくて受け付けませんよ、って言ってる
0837デフォルトの名無しさん2014/09/30(火) 17:39:54.81ID:P/lAZU9v
ひょっとして入力に配列 uniform float uBlurWeights[12] を使うとレジスターを消費するってことですか?
0838デフォルトの名無しさん2014/09/30(火) 17:49:58.13ID:JjKI4EMd
50行目と39行目を参照
0839デフォルトの名無しさん2014/09/30(火) 17:55:15.37ID:P/lAZU9v
color += uBlurWeights[i] * (a + b);
これってそんなに複雑な式には見えないんですけど、分解せよってことですかね
float x = uBlurWeights[i];
float y = a + b;
color += x * y;
こんなふうに。
0840デフォルトの名無しさん2014/09/30(火) 18:28:27.79ID:CAppLoDM
単純なぼかしなら
縮小サイズで描画して元のサイズで表示させればいいねん
0841デフォルトの名無しさん2014/09/30(火) 18:44:23.38ID:P/lAZU9v
それだと広範囲のぼかしを賭けたときにきれいにならないんで、縮小して、高品質のぼかしをかけて、元のサイズに戻してます。
0842デフォルトの名無しさん2014/10/01(水) 01:11:35.09ID:SUPv33eR
川瀬式マルチガウシアンフィルタか。
0843デフォルトの名無しさん2014/10/01(水) 03:06:28.20ID:auoNc3+l
どうやら配列サイズ12って時点でアウトみたいですね。
一度に半径12のぼかしをかけるのではなく、半径6でぼかして、得られた画像を再び半径6でぼかせばいいってことですかね。
0844デフォルトの名無しさん2014/10/01(水) 21:05:13.15ID:SUPv33eR
>>843
ちなみにガウスブラーの係数は対称形だから、片側の配列だけ持ってれば済むけど、それは考慮してる?
もし直径12のことなら、係数は片側6個でイイよ。
0845デフォルトの名無しさん2014/10/01(水) 23:41:51.85ID:auoNc3+l
>>844
そうです。12個の配列は片側12ピクセル分、直径24ピクセルのぼかしに使っています。
ここを参考にしやたつです。

t-pot: ガウスフィルタ
http://t-pot.com/program/79_Gauss/index.html
08468442014/10/02(木) 00:48:28.31ID:/QoLru9+
>>845
OK、今給黎さんのサイト見てるなら大丈夫だ。
>>834のエラー見ると、配列12要素が引っかかってるというか、レジスタスロットがfloat(4Byte)だと合計32個までってことで、
その配列12個と他のレジスタ(変換行列とか)の合計で引っかかったんだろう。
もし、World、View、Projection変換行列をバラでセットしてるようなら、それらを事前に掛け合わせておいて
WVP行列にしておくとかで圧縮できそうだけど、そんな余裕はないか。

それがダメなら、>>843の複数回に分けてブラーをかけるピンポンブラーで対応だね。
ひょっとすると一度にかけるよりもパフォーマンス的においしい・・・なんてことはないかな?w
0847デフォルトの名無しさん2014/10/02(木) 01:29:37.09ID:xXSqVv1/
DirectX and Windows 10
ttp://blogs.msdn.com/b/directx/archive/2014/10/01/directx-12-and-windows-10.aspx
0848デフォルトの名無しさん2014/10/03(金) 00:47:01.91ID:cbqlKRjv
>>846
PS2.0の定数レジスタ数はfloat4x32で、
プログラムに対し十分に大きい為、これが引っかかっている訳ではないと思う。
(また、変換行列の類はVSの引数なのでこれも関係なし)
恐らくHLSLコンパイラがコンパイル時にforループをアンロールしており
テンポラリレジスタを無駄に消費しているのでは。
08498442014/10/03(金) 06:04:23.83ID:2KZF4LLc
>>848
なるほど。
Direct3D11では、ガウスフィルタ(バイラテラルフィルタだけど)は[unroll]を指定しないとループで実行されたけど、
9は自動でアンロールするってことかな?
しかし、自動っていうんならレジスタ足りないようならループほどかないようにするとかも対応すべきだと思うけどw
ただ、一時レジスタが32ってのは、それこそ少なくない?
その数字だと、やはりfloatの定数レジスタ上限のことを指してたりしないかな?

>>834
PS2.0でコンパイルしてるけど、3.0にして解消したりしない?
0850デフォルトの名無しさん2014/10/03(金) 09:38:55.72ID:cbqlKRjv
>>849
PS2.0の命令にフローコントロールは無い。
よってforは基本的に展開される。
フローコントロールが入ったのはPS2.xから。
またPS2.0のテンポラリレジスタの数は12〜32で
GPUにより変わる。
ちなみにこんな古い情報、今更知る価値は無い。

コンパイラがバカ過ぎる気がするが、
DX9はこんなもんだったっけ・・
08518342014/10/03(金) 12:38:01.66ID:Ccsqgbyx
いろいろアドバイスありがとうございます。
単純に配列サイズを 6 にしただけでも、思ったよりきれいにぼけたので、これでいこうと思います

ちなみに配列サイズ 12 のままでも PS 3.0 にしたら普通に動きました。
もしくは、現在 SDKには DirextX 2004 OCT を使っているのですが、これを JUNE 2010 にするだけでも動きました。
なぜわざわざ2004OCTを使っているかというと、それが D3D9_##.DLL を要求しない最後のバージョンだからです(これは発注元からの要求)
0852デフォルトの名無しさん2014/10/03(金) 23:07:17.72ID:2KZF4LLc
お仕事か。
そんな古いSDKを要求してくる案件があるんだね・・・。
0853デフォルトの名無しさん2014/10/03(金) 23:29:55.66ID:Bn8I2xCF
(発注元は客ではなく自分の上司なんですが、曰く、ゲームをインストールしようとした時に「D3D9_24.DLLがありません」みたいな
エラーが出るのが嫌だから、とにかく依存するDLLを最小にしろ、との事です。すごく面倒です。いまだにXPでの動作も保証しなくてはなりませんし。
そんなの、最新のDirextXをインストールしろ の一言で終わりだと思うんですけどね。以上チラ裏でした)
0854デフォルトの名無しさん2014/10/04(土) 00:12:04.81ID:xg2A2cfA
入力値1〜入力値2(例、50〜69の20個)の、入力値1(例だと50)までの約数でないものを
小さい順に重複しないよう表示するプログラムを作りたいのですが
★の行で==とすると約数であるものが表示されるのに
!=とすると約数でないものが表示されません、どうすればいいでしょうか

#include <stdio.h>

int main(void)
{
int i, m, n,l;

scanf("%d %d", &m, &n);
for(i = 1; i <= n; ++ i){
int j;

for(j = m; j < n; ++ j){
if(j % i != 0){  ……★
if(10<i){
if(i<m){
printf("%d ", i);
break;
}
}
}
}

}
putchar('\n');

return 0;
}
0855デフォルトの名無しさん2014/10/04(土) 00:14:13.92ID:mXWC5Nh/
>>854
もっと勉強しろ、低脳
0856デフォルトの名無しさん2014/10/04(土) 00:21:16.22ID:mawtIk+E
>>854
まずは、それをDirectX使うように書き換えてからこのスレに来てくれ。
0857デフォルトの名無しさん2014/10/04(土) 00:21:19.86ID:xg2A2cfA
すみませんでした
0858デフォルトの名無しさん2014/10/04(土) 02:38:17.40ID:EbNp08vT
互いに透過しあう2つ以上のモデルを描画するにはどうしたらよいのでしょうか
BlendStateを色々いじってもダメでした、理解が足りないだけかも知れませんが
デプスバッファを切ればできるという記述があったので試すと互いに透過はしますが当然表示がおかしくなってしまいます
ご教授いただければ幸いです
0859デフォルトの名無しさん2014/10/04(土) 11:25:50.04ID:D42fUjq8
そういう場合、普通はZソートにする。
2つのモデルのポリゴン片を整列し
遠い順から合成で描画する。
ポリゴン1枚とポリゴン1枚の交差が対応出来ないが
ポリゴンを分割するなどして。
0860デフォルトの名無しさん2014/10/04(土) 12:51:07.58ID:Bbz92gUm
directx11ならOITを調べればいい。dirextx11のサンプルにもあるが、あれは遅すぎる。
検索すれば早いタイプの実装方法もある

ttps://sites.google.com/site/monshonosuana/directxno-hanashi-1/directx-110
0861デフォルトの名無しさん2014/10/04(土) 13:29:07.27ID:YkAVz7zY
そのOITはゲームで実用にならなさそう
最近出たD3D9でも出来てそれなりの速さと品質を備えたOITがあるが
拘らないならメッシュ単位でZソートしとけばいいと思う
0862デフォルトの名無しさん2014/10/04(土) 13:55:17.88ID:uBn60DPp
>>860
そのサイトのはAMDが発案した高速なアルゴリズムだよね。
その後も改良が進められたみたいだけど、DirectX12でサポートされるOIT(ROV)はAMDの改良実装を参考にするのかな?
0863デフォルトの名無しさん2014/10/04(土) 16:05:24.72ID:D42fUjq8
矛盾が出ない半透明描画の方法考えたんだけど意見ちょーだい。

1、普通に不透明や半透明のメッシュを描画する。
-> カラーバッファとZバッファが出来る。

2、以下のピクセルシェーダプログラムを実行
 ・1で使ったメッシュを同じように描画。
 ・1で作ったカラーバッファとZバッファを引数にとる。
 ・Z値が「1で作ったZバッファ」の値以下ならclip()でピクセル描画を破棄。
 ・「1で作ったカラーバッファ」を材料に新しい半透明情報を加味しピクセルを出力。
-> カラーバッファとZバッファが出来る。

3、2で作ったカラーバッファとZバッファ引数に2を繰り返す。
  ピクセルが1つも描画されなくなったら終了。
0864デフォルトの名無しさん2014/10/04(土) 16:09:29.73ID:lwfJG00e
なんで繰り返すの?
時間かかりすぎない?
そもそも終わらなくない?
0865デフォルトの名無しさん2014/10/04(土) 16:20:15.43ID:D42fUjq8
>>864
>なんで繰り返すの?
半透明ポリゴンが4枚重なってたら、4回描画しないと終わらないじゃん。

>時間かかりすぎない?
上で出ている無理やりリンクリスト作る方法より早いと思う。
つーか全然軽いよ多分。

>そもそも終わらなくない?
そこはDirectXに何かあるんじゃないの(適当)

あと、>>863はカラーバッファの取り扱いに誤りがあるな。
1枚を繰り返し使うか、マージしないとダメだな。
08668582014/10/04(土) 22:31:56.87ID:EbNp08vT
ご助言ありがとうございます
Zソートを念頭にOITについても調べて見たいと思います
0867デフォルトの名無しさん2014/10/05(日) 15:04:17.39ID:/qGZq4eV
http://msdn.microsoft.com/en-us/library/windows/desktop/bb509581(v=vs.85).aspx
ここにはcbufferの名前は省略可能と書いてあると思うんですが、本当に省略可能ですか
名前を省略するとコンパイルできないのですが…
基本的にcbufferの名前って必要ないですよね
0868デフォルトの名無しさん2014/10/05(日) 23:40:02.22ID:ViF7ZlxB
>>867
とりあえずコードぷりーず
0869デフォルトの名無しさん2014/10/06(月) 11:30:40.68ID:LgM+lc14
Visual Studio Express 2013を使ってビルドしていて、
HLSLファイルのプロパティから、HLSLコンパイラ設定の「頂点シェーダー(/vs)」「Shader Model 4 (/4_0)」を選択しています

エラーメッセージは
1>xxxxxxxxxxxxxxxxxxxxx.hlsl(1,9): error X3000: syntax error: unexpected token '{'

HLSLファイルはこの通りです
cbuffer {
float4x4 gTransform;
};

void main(inout float4 position : SV_Position)
{
position = mul(position, gTransform);
}

コードを要求されるあたり、書きようによっては省略可能という見込みがあるということなんでしょうか
0870デフォルトの名無しさん2014/10/06(月) 15:07:24.14ID:Fe1jjbTf
俺も過去に省略しようとして怒られたから仕方なくなんかの名前を付けているよ
エフェクトでもない限り名前は触らないし、cbufferが一つだけとかだったら
省略できるなら省略してしまいたいんだけどねぇ・・・
0871デフォルトの名無しさん2014/10/08(水) 23:56:17.80ID:U1AYKhGY
>コードを要求されるあたり、書きようによっては省略可能という見込みがあるということなんでしょうか
別に>>868がのーたりんなだけ
0872デフォルトの名無しさん2014/10/27(月) 15:12:29.17ID:5Myx0Rhu
XInputのコンフィグ用に使うボタンの画像とかってMicrosoftが標準で配布してたりする?
0873デフォルトの名無しさん2014/10/30(木) 23:54:51.23ID:P+CVnAvq
意匠権があるわけでなし、写真撮ってトレースすりゃよし
0874デフォルトの名無しさん2014/10/31(金) 15:35:21.81ID:EAM6VZl0
西川善司の3DGE:新しく来るDirectXは「12」だけじゃない。突如浮上の「DirectX 11.3」とは何か? - 4Gamer.net
http://www.4gamer.net/games/033/G003329/20141020017/
0875デフォルトの名無しさん2014/11/03(月) 03:38:34.29ID:N6prQvSh
ウィンドウモードのゲームを前提とします
よくコンフィグ画面からウィンドウサイズを指定して変更するようなものはよく見かけます
例えばデフォルト「650x480」から「800x450」を選択してウィンドウサイズを変更する

では、ウィンドウサイズは「650x480」のままで
ウィンドウのマウスドラッグ操作でウィンドウサイズを変更できるようにし
そのマウス操作に合わせてウィンドウ内の描画状態を拡大縮小するには
どのような技術を用いれば可能でしょうか
0876デフォルトの名無しさん2014/11/03(月) 05:28:31.15ID:VWaLlR99
ダブルバッファリン
0877デフォルトの名無しさん2014/11/03(月) 06:40:23.54ID:N6prQvSh
>>876
ありがとうございます
調べてみます
0878デフォルトの名無しさん2014/11/03(月) 11:18:57.96ID:3K1WoPdJ
>>875
http://www.kohgakusha.co.jp/books/detail/978-4-7775-1537-0
この本にやり方載ってるよ。
ウィンドウサイズ変更に連動してレンダリング解像度を変更する。
0879デフォルトの名無しさん2014/11/07(金) 22:09:45.22ID:NeVCnlku
Skinning10 サンプル
http://msdn.microsoft.com/ja-jp/library/ee416429(v=vs.85).aspx

だいぶ前の記事だけど、
Direct3D11&最近のGPUだったら、スキニング行列の配列はどのように持つのが妥当かな?
個人的には、パフォーマンスさえ問題なければ定数バッファに置くのが一番単純でイイように思う。
0880デフォルトの名無しさん2014/11/09(日) 00:07:00.83ID:mRPDV88W
今DirectXってどの辺で使われてるの? Windowsの…PCゲーム?
0881デフォルトの名無しさん2014/11/09(日) 02:58:43.69ID:Ncgt9DFn
Windowsのソフト全部で使われてるよ
0882デフォルトの名無しさん2014/11/09(日) 10:25:54.77ID:XEYnbiYX
意識してDirectX APIを使用していなくても、Windows自身がデスクトップなどの画面描画をするのに内部的にDirectXの機能を使用してる。
GPUが機能をサポートしていなければCPUエミュレーションになるが。
0883デフォルトの名無しさん2014/11/09(日) 10:55:27.94ID:QwjRsquy
DirectX以外のグラフィックスAPI(GDI/GDI+/OpenGL)は既にみんなレガシー扱いだしな。
0884デフォルトの名無しさん2014/11/09(日) 16:11:33.63ID:kYz72p+3
DX11のシェーダを使うに当たっての質問なんだけど、
複数の異なるプリミティブに対して同様のシェーダを取り扱う場合って、
プリミティブ毎に入力レイアウト、定数バッファ、頂点バッファやインデックスバッファを作成する必要ってあったりするもんですかね?
エロい人教えてください…
0885デフォルトの名無しさん2014/11/09(日) 16:24:42.75ID:IawmsfhJ
>>884
おまえ、実は何もわかってないだろ?
頂点バッファやら作らんで、なにを描画する気だよw
0886デフォルトの名無しさん2014/11/09(日) 16:34:06.04ID:Ncgt9DFn
各ステージの入力と出力の整合性が取れていればレンダリングは問題なくできる

「異なるプリミティブ」ってのが、何が異なるものを指しているのかを
明確にした方が、いい回答がもらえると思う
頂点バッファのインスタンスが複数あって、ってことなのか
同じものを複数個描画したい、ってことなのか
0887デフォルトの名無しさん2014/11/09(日) 16:39:36.74ID:kYz72p+3
>>885
あんま良く分かってないんですよ…
頂点バッファはそもそも頂点座標がわからないと
描画しようがないだろうから持っておく必要があると思うんだけど、
定数バッファってシェーダコードを流すために一時的に必要、
って認識なんで1つ作れば使いまわしできるんじゃないのかなーとか。

その認識がそもそも間違いだったりする?
0888デフォルトの名無しさん2014/11/09(日) 16:42:44.43ID:kYz72p+3
>>886
あー、ごめんなさい…
「異なるプリミティブ」というか、異なるモデルという方がいいんですかね。
モデルが異なるので頂点バッファのインスタンスも複数存在する、ということで。
0889デフォルトの名無しさん2014/11/09(日) 16:47:23.12ID:IawmsfhJ
>>888
インスタンスの意味も理解してないな
0890デフォルトの名無しさん2014/11/09(日) 16:54:39.90ID:kYz72p+3
>>888
如何せん、まだ間もないもんでね…
どういう意味かも含めてご教授頂けると。
0891デフォルトの名無しさん2014/11/09(日) 16:55:15.98ID:kYz72p+3
>>889
安価ミスったです…
0892デフォルトの名無しさん2014/11/09(日) 17:01:27.69ID:Ncgt9DFn
同じ方式でレンダリングするのなら使いまわせる
入力サイドの情報(頂点バッファと、必要ならインデックスバッファ)を入れ替えればいいだけ

>>889
>>888で言ってる「頂点バッファのインスタンス」の意味は別に間違ってないと思うんだけど…
0893デフォルトの名無しさん2014/11/09(日) 17:11:18.90ID:kYz72p+3
>>892
「同じ方式」っていうのは「入力レイアウトが同一であれば」ってことで合ってますかね…?
0894デフォルトの名無しさん2014/11/09(日) 17:25:31.37ID:Ncgt9DFn
>>893
変換行列やマテリアルの設定とかまでまったく一緒で良いのなら完全に全部使いまわせる
って意味で「同じ方式」と書いたんだけど、野暮だった。紛らわしくてすまぬ。

ある複数の頂点バッファについて、各バッファの頂点フォーマットが同一であれば
そのフォーマットに対応した入力レイアウトは一つだけ用意すればいい
っていえばいいのかな・・・?
0895デフォルトの名無しさん2014/11/09(日) 20:14:57.59ID:kYz72p+3
>>894
こちらこそ浅い知識で申し訳ないです…

バッファの取り扱いについては把握しました!
懇切丁寧にレス頂きましてありがとうございます!
0896デフォルトの名無しさん2014/11/13(木) 06:05:06.56ID:KEpk3Boc
[速報]マイクロソフト、フル機能の無料版「Visual Studio Communiti 2013」公開 − Publickey
http://www.publickey1.jp/blog/14/visual_studio_communiti_2013.html
0897デフォルトの名無しさん2014/11/13(木) 08:31:33.45ID:psnXtxWS
.NET Frameworkのオープンソース化も触れられてるけどUnityの開発とかで使われていたMonoとか.NET互換環境はどうなるんだろうか
0898デフォルトの名無しさん2014/11/13(木) 10:10:13.30ID:EXd84l9k
>開発者5名以下の中小企業
え?
0899デフォルトの名無しさん2014/11/13(木) 10:42:47.83ID:psnXtxWS
逆に言えば企業形態じゃなければ何人でもOKなのか
0900デフォルトの名無しさん2014/11/14(金) 23:45:36.54ID:60Eu/NuW
ドロップダウンリストを作成したいのですが、検索しても全く見当違いの検索結果しかでないので
どなたか作成方法を教えていただけませんか?
0901デフォルトの名無しさん2014/11/15(土) 00:15:59.63ID:hIWmb4Rf
DXUTのGUI実装部分が参考になるかも
ボタンとかチェックボックスとか一通りのUIはあるっぽい
0902デフォルトの名無しさん2014/11/15(土) 00:22:05.04ID:mYSPecLt
各種GUIコンポーネント、DirectXTKに採用してほしいよね
0903デフォルトの名無しさん2014/11/15(土) 10:25:57.12ID:wqk8JEIV
Direct2DってC言語での動作は保証とかされてない感じですか
C言語マクロのID2D1Bitmap_GetSize(hoge)を使ったりlpVtblからのGetSize呼び出しでも
ランライムチェックでESPレジスタの値がおかしいとかメッセージが出て止まります

ID2D1Bitmapだと他にGetPixelSize()もGetPixelFormat()もアウトなんで
たぶん戻り値が構造体になっている関数がアウトなんだと思うんですが、賢い回避策とかありますかね
0904デフォルトの名無しさん2014/11/15(土) 13:49:40.41ID:8kaNLlbY
>>903
馬鹿は使うな
0905デフォルトの名無しさん2014/11/15(土) 17:48:45.38ID:vYFtI7/G
32/64を間違ってるとエスパー
0906デフォルトの名無しさん2014/11/15(土) 20:35:48.31ID:wqk8JEIV
32/64を間違ってるとはどういうことですか
プロジェクトプロパティのライブラリディレクトリは↓になっていて
ソース中に#pragma comment(lib, "d2d1.lib")と書いてリンクしてます
Win32時 $(VC_LibraryPath_x86);$(WindowsSDK_LibraryPath_x86);
x64時  $(VC_LibraryPath_x64);$(WindowsSDK_LibraryPath_x64);

↓のD2D1_Initという関数の90行目以下が問題の部分
http://codepad.org/GDr40N4L
0907デフォルトの名無しさん2014/11/16(日) 03:10:36.47ID:sPDu10Ez
C++で呼び出してる時はGetSizeの第二引数に返値の構造体のアドレスをpushして
返値はeaxにそのアドレスがセットされる前提のコードが生成されてるけど
Cで呼び出すと第一引数のID2D1Bitmapのインスタンスだけpushして
返値はedx:eaxに返値の構造体の中身が入ってるコードになってる

両方callee側でスタックを戻す前提になってるから__stdcallで宣言されてるはずだが
0908デフォルトの名無しさん2014/11/16(日) 03:28:10.88ID:SFYBi1Uv
>>906
アホす
0909デフォルトの名無しさん2014/11/16(日) 07:45:35.02ID:sPDu10Ez
>>903
呼び出し規約の設計ミス or コンパイラのバグっぽい
グローバルの__stdcall関数とクラスメンバの__stdcall関数で構造体の返し方が違う
後者で実装されているID2D1Bitmap::GetSize()を前者の方法で呼び出してるので
スタックが不整合を起こす
Cで後者の呼び出し規約を使う手段はないだろうからお手上げ

バイナリ互換が失われるからコンパイラのバグだったとしても
修正されることもないだろうしなー
0910デフォルトの名無しさん2014/11/16(日) 10:08:53.22ID:3ZHzhtpk
どうもお手数をおかけしました
簡単な手がなさそうなのでサイズはビットマップと抱き合わせで持っておくことにします
ありがとうございました
0911デフォルトの名無しさん2014/11/20(木) 22:32:26.02ID:sPmtTKlZ
シェーダにhlslを流し込む前なのですが、初めてなので勇気が欲しいです。
何か良い祈り文句、呪文があれば、教えてください。
0912デフォルトの名無しさん2014/11/21(金) 00:35:03.14ID:lPEX2OSX
般若心経
0913デフォルトの名無しさん2014/11/21(金) 00:44:17.73ID:eKmyEZjy
般若parameter
0914デフォルトの名無しさん2014/11/21(金) 02:32:17.98ID:8J5EpVQc
ハンニャハラミ!

チャイニーズオデッセイではハンニャハラミ言いまくってたけど
チャウシンチーの今度の西遊記映画でも言ってるか気になる。

昔の香港映画では、万能の呪文だったよね。
懐かしくなったので、ちょっとチャイニーズゴーストストーリー見てくる。
0915デフォルトの名無しさん2014/11/21(金) 03:11:02.83ID:VCvFQ+4P
>>911
ワロタw
気持ち分かるわw
0916デフォルトの名無しさん2014/11/21(金) 08:44:25.30ID:D59S7iCq
ダイレクトXでなく、普通のGDIでプリンターへの描画処理を書いて実行したら画面が暗転して、メーカーのロゴとBIOS画面が出てきたことがあったな
DIBとDDBを指し間違えたんだけど
0917デフォルトの名無しさん2014/11/21(金) 09:10:57.76ID:R5E6cwET
般若波羅蜜多の波羅蜜多と
parameterは語源が同じらしい
0918デフォルトの名無しさん2014/11/21(金) 13:25:33.07ID:qvHLjp++
>>911
「総員、心臓を捧げよ!」
0919デフォルトの名無しさん2014/11/21(金) 13:32:36.87ID:y13pb5bU
光あれ
0920デフォルトの名無しさん2014/11/21(金) 14:45:22.73ID:yHVAdYrq
バルス
0921デフォルトの名無しさん2014/11/21(金) 14:51:56.28ID:RZqyoU6a
suka
pontan
0922デフォルトの名無しさん2014/11/21(金) 16:43:23.45ID:UIxCyJbt
ささやき - いのり - えいしょう - ねんじろ!
0923デフォルトの名無しさん2014/11/21(金) 17:47:06.41ID:XUGDnOSQ
ASHED
0924デフォルトの名無しさん2014/11/21(金) 18:31:09.76ID:ava0sfSg
「シェーダにhlslを流し込む」がよくわからないから
流れに入れない・・・
0925デフォルトの名無しさん2014/11/21(金) 20:13:25.53ID:VCvFQ+4P
考えるんじゃない、感じるんだ
0926デフォルトの名無しさん2014/11/21(金) 21:25:48.45ID:fjtEyKUY
.cを.objに流し込むと同義
0927デフォルトの名無しさん2014/11/22(土) 12:07:58.42ID:rrzuQBQt
シェーダに流し込むのは hlslをfxcでコンパイルしたコードだけど、感覚的にはそういうものかと
0928デフォルトの名無しさん2014/11/22(土) 12:21:07.69ID:rrzuQBQt
スレ違いかもだけど、Direct2Dだけでピクセルシェーダは使える?
エフェクトインターフェースが無いっぽいからDXGI経由でテクスチャを持ち込まないとダメっぽい感触があるんだけど、
これだと2D使わない方がマシになる
0929デフォルトの名無しさん2014/11/22(土) 14:26:28.88ID:Fg4QwLMY
使えると言っても良さそうっぽい
0930デフォルトの名無しさん2014/11/22(土) 22:11:29.41ID:MacSfCt4
一応シェーダ突っ込めるようなカスタムエフェクトの仕組みはあるっちゃあるで

http://msdn.microsoft.com/en-us/library/windows/desktop/jj710194.aspx

動作要件はWin7 Platform Update以上になるからそこは注意だが
0931デフォルトの名無しさん2014/11/23(日) 00:02:24.09ID:lS9ATFcQ
マルチプロセスでテクスチャとかサーフェスを共有する方法ってありますか?
DXGI_USAGE_SHARED
とか、
D3D11_RESOURCE_MISC_SHARED
って、複数のd3dデバイス間で共有できるみたいだけど、
マルチプロセスまで言及されてなくて、実際はどうなんだろうかと。
別なプロセスで描画させたのを、もう一つのプロセスから読み込みたいのだけど。
0932デフォルトの名無しさん2014/11/23(日) 05:32:07.56ID:KGe40IZ5
http://msdn.microsoft.com/en-us/library/windows/desktop/ee913554.aspx

このへん見てると出来るっぽいね
0933デフォルトの名無しさん2014/11/23(日) 10:53:40.94ID:6+l31Can
>>929
>>930
ありがとうございます。 確かに使えますね。 調査不足でした。
カスタムエフェクトは、インターフェースを派生させて独自に実装する方式、
予めビルドインも各種あるんですね。 検索サーバの誘導に釣られて日本語サイトに飛ばされたのが運の尽きでした。。orz
ありがとうございました。
0934デフォルトの名無しさん2014/11/28(金) 11:27:55.53ID:N1ewiBns
directshowを用いてライブストリーミングでの動画再生ソフトを作ろうとしています。
http://www.geekpage.jp/programming/directshow/renderfile.php
を参考にしています。
そこでpMediaControl->RenderFile(FILENAME)でファイル名指定しています。
映像データの送受信などは自分で実装しているので、データを受け取ってバッファから読み込むといった方法はできないのしょうか?
ファイル指定ではなく、受け取ったパケットから再生しようと考えています。
0935デフォルトの名無しさん2014/11/28(金) 15:46:42.92ID:/Irva71z
>>934
あなたの読んでいるページの下の方を読み進んでください

キーワードは以下のものです
・ビデオ入力デバイス
・サンプルグラバ
・キャプチャデバイス

あなたのコードがどのようなものか分からないので、これ以上は何とも言えませんが
ソースフィルターを作る必要があるかも知れません
0936デフォルトの名無しさん2014/11/28(金) 19:31:59.18ID:KPnWE6eQ
エスパーレスで恐縮ですが、
youtubeDLを使えば解決
作る必要がなくなるでしょう
0937デフォルトの名無しさん2014/11/28(金) 22:44:33.75ID:2YOxD1S1
ペカレコだけでflv見れなかった?
0938デフォルトの名無しさん2014/11/29(土) 08:43:35.22ID:i2K4iPXr
一言でいえばグラフエディットで繋ぐできることのできる出力ピンを持つフィルター作ればおk
0939デフォルトの名無しさん2014/11/29(土) 09:24:59.34ID:loHFubTg
COMプログラミングの地獄を思い出した・・・
0940デフォルトの名無しさん2014/11/29(土) 11:07:01.68ID:v9PxAgfu
3D9から10.1への移行が済んだのだけど、工作意欲が無くなった
F-22を飛ばしてみたいがモデルデータがない
どっかにないかな()ちら
0941デフォルトの名無しさん2014/11/29(土) 12:40:31.93ID:QAtRDfCw
なぜ11に移行しなかったし
0942デフォルトの名無しさん2014/11/30(日) 00:31:34.13ID:WrqmjZVD
フライトシムで使う飛行機って、だいたい何ポリゴンくらいなんでしょうね?
まあ近年は戦闘機もののシムはあんまりないですけどね。
0943デフォルトの名無しさん2014/11/30(日) 04:54:10.24ID:utV0mJ4H
>>942
お前が馬鹿なのはよくわかった
0944デフォルトの名無しさん2014/12/01(月) 00:51:36.70ID:eipsUJ+7
>>943 どうも。

似たようなタイミングで似たようなことしてる人がいたんだな、と思ってね。
プログラミングも暇つぶし、モデリングも暇つぶしのレベルですわ。
形にもできないDirectXで暇つぶしている段階で、何言われても反論できないよ。

http://iup.2ch-library.com/i/i1334727-1417362414.jpg
0945デフォルトの名無しさん2014/12/01(月) 00:57:49.35ID:Ux7ViK+b
>>944
うお、かっけーじゃん!
少ないポリで特徴を捉えれるのはセンスのある証拠だ。
0946デフォルトの名無しさん2014/12/01(月) 21:42:56.87ID:hot7RSA9
>>935
メモリ上から再生しようとしています。
さらに調べた結果、ファイルソースフィルタを自作しないといけないようでした。
0947デフォルトの名無しさん2014/12/03(水) 10:50:54.27ID:T2mQVCqa
directX9のプログラミング勉強がしたいのですが、今入ってるdirectX11をアンインストールしないと
X9のプログラムは組めないでしょうか?
0948デフォルトの名無しさん2014/12/03(水) 11:14:52.68ID:+PNtgzjY
>>947
最近のDirectX SDKって9 〜 11までを包含してないっけ?
ランタイムじゃなくてSDKをインストール済みなら普通に行けると思うが。

てか
INCLUDE_PATH=$(DXSDK_DIR)\include;
の設定後に
#include <d3d9.h>
くらい試してみようぜ
0949デフォルトの名無しさん2014/12/03(水) 11:57:36.85ID:8NdJaZh/
D3DXを使うのでなければ、SDKを入れなくても、
そもそもVSに最初っから入っている。
0950デフォルトの名無しさん2014/12/03(水) 19:49:20.53ID:U2wzi8cW
>>947
X9は入門としてなめる程度にして、早めに10や11に進むのをお勧め
X9のレンダリングステート回りは、単なる制御フラグの塊だから、そんな事ができるんだな程度で充分。10から固定機能パイプラインが全部無くなる代わりに、HLSLで必要なベクトル計算だけ行うことができる
シェーダプログラムは、単に固定機能パイプラインをぶつ切りにしているだけで難しくない。
そっちのがベクトル計算の知識を要求される

X9の固定機能は本質がつかみにくいし、使いづらいよ。
教材には向かない
0951デフォルトの名無しさん2014/12/03(水) 21:42:15.87ID:Bs6t2Qim
D3D9でマルチレンダーターゲット扱える位になったら11やればいい
固定機能関係は無視で。
9で書かれたソースがたくさん転がってるからスラスラ読めるようにしておくのは悪くない
0952デフォルトの名無しさん2014/12/03(水) 23:36:16.40ID:9W/A025a
代表的な例だと、
よくD3D9でカメラ視線に対して垂直(いわゆるHUD表示)にテクスチャを貼る場合、
9だと現状のビュー、射影、ワールド行列の逆行列を固定機能へ与えて演算させる必要があるけど、
10以降の固定機能なしだと、単純にピクセルシェーダで行列計算をさせない(単純な頂点コピー)シェーダを選択するだけで実現できるしね。
0953デフォルトの名無しさん2014/12/03(水) 23:37:45.93ID:9W/A025a
すまん。 ピクセルじゃない。 バーテックスシェーダだ。
0954デフォルトの名無しさん2014/12/04(木) 00:23:32.84ID:s80bqfC+
>>952
いや、9でもそんなことする必要ないしw
どうしてそんな勘違いしたまま止まっているんだ。
0955デフォルトの名無しさん2014/12/04(木) 00:46:08.86ID:Xqz0EfiZ
どうでもいい突っ込みは要らない。
建設的な反論を述べろ
0956デフォルトの名無しさん2014/12/04(木) 01:39:46.95ID:7ZROUC2J
聞いてもいねえことをダラダラ並べたててる時点で建設的じゃないのでムリっすねえ
0957デフォルトの名無しさん2014/12/04(木) 01:43:41.76ID:nBf56PgK
>行列計算をさせない(単純な頂点コピー)シェーダを選択するだけで実現できるしね。
行列計算するかどうかは好みに応じて
0958デフォルトの名無しさん2014/12/06(土) 23:21:38.55ID:R6Q6bO5x
明らかな超絶初心者に言ったって分かることじゃないだろw
947は間違いなくまだC++の基本すらロクにわかってないはず

ちなみに9でプログラミングしたいなら9のSDKダウンロードしないとムリポ。10以降のプログラミングは11でいけるけど。
VS2013で試してみたけどDxErr.libにリンクさせてるのにdxerr9.lib読んでるとかいうエラーの原因わからなくて
腹立って投げちゃったw
まあポリシーなきゃ11から始めるのが無難
0959デフォルトの名無しさん2014/12/07(日) 05:07:03.12ID:oatkVn1y
>>958
バカすぎワロタ
0960デフォルトの名無しさん2014/12/07(日) 05:38:49.01ID:+OJhSYXf
自分も頭が悪いので他人の頭の悪さは痛いほどよくわかります
0961デフォルトの名無しさん2014/12/08(月) 13:40:44.15ID:qdtwuYGK
11ってダイレクトライトとサーフェイスを共有できるようになったの?
3Dのみなら11も悪くないけど、10.1の方が利便性が高いような
0962デフォルトの名無しさん2014/12/08(月) 19:41:13.16ID:eP/ewSt9
そう思うなら、そうなんだろうな・・・
0963デフォルトの名無しさん2014/12/08(月) 19:42:21.45ID:US88gYi8
なった。Vistaは知らんが7と8ではできる。
0964デフォルトの名無しさん2014/12/09(火) 20:35:11.12ID:HtJVPg8q
DirectXでエディットボックスみたいたことやりたいんだけど、参考になるサイトとかあったら教えてほしい
知りたいのは主にキャレットの表示周り
サンプルのCustomUIは今見てるところなのでそれ以外で
0965デフォルトの名無しさん2014/12/09(火) 21:28:59.72ID:d3z79ecB
DirectXTKでGUIパーツも提供してほしいな。
09669612014/12/09(火) 22:40:19.60ID:1v5rgyWL
>>963
遅レスで申し訳ありません。 サンクスです。
取り敢えず、10.1でテクスチャと頂点、シェーダと定数バッファ、マトリクス、ジオメトリ(フォントフェイス)が扱えるようになったし、年末年始の休み頃に11に移行すると思う。
0967デフォルトの名無しさん2014/12/09(火) 23:34:03.84ID:3Aq4S10c
>>964
具体的に期待する答えを書いた方がレスを貰いやすいと思う
取り敢えずテキストVRAMをエミュレーションするサンプルソースは見たことがない
0968デフォルトの名無しさん2014/12/09(火) 23:43:12.51ID:b3bKIrm+
DXUTでいいじゃん
0969デフォルトの名無しさん2014/12/10(水) 00:30:36.92ID:If47AJ4g
>>964
Ogreでの定番CEGUIでもDirectXを使ったレンダリングに対応してた気がする。
0970デフォルトの名無しさん2014/12/10(水) 02:06:31.07ID:S95nuWVL
DirectXでテキストを扱うときは、文字幅や文字列幅の取得がわからんで困る
ググってもデバイスコンテキスト使って取得する方法ばっかだし
0971デフォルトの名無しさん2014/12/10(水) 02:24:39.76ID:xebn7APd
>>970
DirectXTKのSpriteFontでサイズ取得できて便利よ。
0972デフォルトの名無しさん2014/12/10(水) 02:29:35.90ID:+2mBOcWQ
>>970
FreeTypeでテクスチャ作れ。
動的につくってもいいし予め作ってテクスチャ内の座標とサイズ併せて持ったデータとして置いとくのでもいい
0973デフォルトの名無しさん2014/12/10(水) 07:28:36.31ID:Ii7h0n5Y
フォントってかOutline扱うライブラリってDirectXだとみんなそれぞれ作ってるんだろうけど
公開されてる奴はないんだね

GDIとかGDI+の奴ならいくつかあるんだけど
0974デフォルトの名無しさん2014/12/10(水) 10:20:39.37ID:c+p3R8TX
GDIで生成したイメージをテクスチャに流せばいいだけなんだから、
独自で作る必要性がない。
0975デフォルトの名無しさん2014/12/10(水) 13:50:13.31ID:9n4pVCzB
ノベルじゃないならフォント使わずに画像として予め作っておけばいい
欧米圏なら文字数少ないし
0976デフォルトの名無しさん2014/12/10(水) 14:35:33.30ID:888KcvnA
BMFontってツールでフォントテクスチャ作ったら、文字の幅や高さ、次の文字までのドット数などの情報が入ったXMLファイルも一緒に出力してくれるよ。
0977デフォルトの名無しさん2014/12/11(木) 08:10:09.27ID:g7NuR/qo
日本語入力対応と文字のデコレーションで詰むんじゃないか?
0978デフォルトの名無しさん2014/12/12(金) 00:28:15.29ID:cPBKTkBG
directwrite使えばいいねん
0979デフォルトの名無しさん2014/12/12(金) 06:44:54.99ID:0qgG78th
http://blogs.msdn.com/b/chuckw/
のブログ更新されてないと思ってたんだけどfeedでエラーが出てて
今までリーダーに更新が表示されてなかった
0980デフォルトの名無しさん2014/12/12(金) 07:18:14.32ID:kPyyfOyu
文字幅取得だけならHFONT取得して出力するわけじゃないからCreateCompatibleDCで作ったまんま1x1のHDCにGetTextExtendEx使えばいいやん
0981デフォルトの名無しさん2014/12/12(金) 10:50:51.23ID:7CN2W1ZV
>>979
ありゃ?
PIX for WindowsってVS 2013 Expressで使えるようになってたんか。
まぁ、今はCommunityがあるんで、有難味は減ったが。
レス数が950を超えています。1000を超えると書き込みができなくなります。