トップページ⇒tech
1001コメント284KB

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

■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん2010/09/30(木) 21:45:21
※回答する人も、質問する人も必ず読んでください

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

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

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

前スレ
【C++】 DirectX初心者質問スレ Part30 【C】
http://hibari.2ch.net/test/read.cgi/tech/1278214135/
0065デフォルトの名無しさん2010/10/01(金) 13:06:38
2chで聞くだけ無駄
0066542010/10/01(金) 13:09:06
>>59
DirectShowを使えば可能なんですね。まったく知りませんでした。
私の知識不足です。

>>60
なるほど。参考になります。ありがとうございます。

>>63
ありがとうございます。
シェーダーもそこそこ扱えるので、
本の名前思い出したら、また書き込んでいただけると助かります。
0067デフォルトの名無しさん2010/10/01(金) 13:09:18
こんなにも大団円なのになんでそんなレスが
0068デフォルトの名無しさん2010/10/01(金) 13:10:42
http://www.autodesk.co.jp/adsk/servlet/pc/item?siteID=1169823&id=15138561
で体験版を落として30日使い込んで、必要最低限の知識を学べ。
いきなり0からやろうとするから、右も左も分からないんだよ。
0069デフォルトの名無しさん2010/10/01(金) 13:16:26
「本当に切ったような光」に誰か突っ込もうぜ。
台所で料理してるオカンの手元が光りまくってるのを想像してしまった。

っていうか、質問するほどのネタでもないような。
放射状に筋を描いて、ポストエフェクトでライトブルームを加えてるだけじゃない?
中心部分には円形の光を加えていそうだが。
0070542010/10/01(金) 13:19:58
>>63
ありがとうございます。ダウンロードしてやってみます。

>>69
言い方おかしかったですねw。すみません。
なるほど。ありがとうございます。
0071デフォルトの名無しさん2010/10/01(金) 13:21:50
そういう「閃き」や「連想」のスキルがゼロの人間も世の中には少なくないんだよ
0072デフォルトの名無しさん2010/10/01(金) 13:48:02
くそっ
どうやったらDirectXマスターできるんだよ
0073デフォルトの名無しさん2010/10/01(金) 14:17:50
DirectXなんてマスターしてどうしようっていうんだ
仮になるにしてもとりあえずサンプル全部作れるようになってからそんなこと言ってるのか?
0074デフォルトの名無しさん2010/10/01(金) 14:18:32
まずはマスターの定義を明確にしろ。
0075デフォルトの名無しさん2010/10/01(金) 14:28:38
人型のモデルが動かせるようになったらマスターしたといっても
いいと思う。
0076デフォルトの名無しさん2010/10/01(金) 14:33:42
ずいぶん簡単なんだな。
0077デフォルトの名無しさん2010/10/01(金) 14:35:59
>>72
先にOpenGLでもやれ
0078デフォルトの名無しさん2010/10/01(金) 14:38:49
それよりもオススメ書籍とかないの?
0079デフォルトの名無しさん2010/10/01(金) 14:39:36
とりあえずDXライブラリ始めた
0080デフォルトの名無しさん2010/10/01(金) 15:17:04
それでもいいけど
DirectXのチュートリアルからはじめたらどうか?
虎表示するのあったじゃん
あれやるとモデルの表示がわかるからその後

固定モデル→アニメーションモデル→スキンメッシュモデル→各種シェーダ

って自分ライブラリ作っていったほうがランクアップしやすいぞ
DXライブラリの中身とかなにやってるのか読まなきゃいけないとか結構きついんじゃね?
(いや、ソースついてるのかどうかから俺は詳細知らないんだが・・・)
他の人の作ったもんだし
0081デフォルトの名無しさん2010/10/01(金) 20:24:59
なんでこんなバカばっかなの?
0082デフォルトの名無しさん2010/10/01(金) 20:53:33
じゃあ、バカじゃない意見を頼む
0083デフォルトの名無しさん2010/10/01(金) 20:56:19
ごめん質問者たちのこと(´・ω・`)
0084デフォルトの名無しさん2010/10/01(金) 20:59:00
それはこのスレが初心者用だからさ
気に入らないなら「DirectX上級者質問スレ」でも作りたまへ
0085デフォルトの名無しさん2010/10/01(金) 21:01:02
質問に答えないで茶々をいれるのは辞めて欲しい
0086デフォルトの名無しさん2010/10/01(金) 21:14:33
わざわざ小学校に来て、馬鹿にしたり説教したりしているようなもんだからな
0087デフォルトの名無しさん2010/10/01(金) 22:09:52
DirectX初心者の定義って、せいぜいDirectXのプログラミングを始めてから3ヶ月がいいところだろ。
0088デフォルトの名無しさん2010/10/01(金) 22:25:56
3ヶ月だったらアニメーションとシェーダ終わったぐらいだな
調度このスレに来てる層だろ
0089デフォルトの名無しさん2010/10/01(金) 22:34:38
え、俺は理解するのに5年ぐらいかかった
0090デフォルトの名無しさん2010/10/02(土) 00:21:36
dxdiagを見るとDirectX version 11と書いてあるのですが
グラボはオンボで、グラボのサイトを見てるとDirectX10.1対応(キッ
とか書いてあるのですがこれはどういうことなのでしょうか?
0091デフォルトの名無しさん2010/10/02(土) 00:23:14
win7だとソフトウェアエミュレーションできるんじゃなかったか
0092デフォルトの名無しさん2010/10/02(土) 00:25:06
プログラム板にもネ実補正みたいなのがあるんだな
当然か
0093デフォルトの名無しさん2010/10/02(土) 00:28:03
vistaです
0094デフォルトの名無しさん2010/10/02(土) 00:37:01
>>90
知らんがな
dxdiagじゃなくてSDKインストールフォルダの\Utilities\binフォルダにあるDXCapsViewer.exeを実行して
メニューからprint whole tree to fileを選ぶ
exeと同じフォルダにdxview.logというファイルができるのでそれを晒したら話が早いと思うよ
0095デフォルトの名無しさん2010/10/02(土) 00:46:46
デバイスの謳い文句とOSにインストールされてるDirectXのバージョンは関連ほとんどないだろ
0096デフォルトの名無しさん2010/10/02(土) 01:42:15
>>94
はやくねー
0097デフォルトの名無しさん2010/10/02(土) 07:07:35
D3DCOLOR_ARGBで(128,255,255,255)は多少薄くなるんですけど、(64,255,255,255)は完全に描写されない
なにかいかんのかね
0098デフォルトの名無しさん2010/10/02(土) 07:10:58
それだとコードを書いた人間が馬鹿だからとしか言いようがない。
0099デフォルトの名無しさん2010/10/02(土) 07:33:09
少し調べれば分かることなのに、
WARPが分かっていなくてソフトウェアエミュレーションとぼかして言ったり、
Direct3D11エミュレーション機能が無いことが分かっていなかったりで、
あるようなニュアンスで答えるような>>91って何なの?

ちなみにWARPはVistaでも使えるし、機能レベルはDirect3D10まで。
0100デフォルトの名無しさん2010/10/02(土) 08:30:02
>>97
シェーダーがおかしいとか
αテストの閾値が64以上になってるととか
0101デフォルトの名無しさん2010/10/02(土) 08:40:35
>>98
煽るだけの馬鹿はいい加減消えてください
0102デフォルトの名無しさん2010/10/02(土) 09:20:55
程度が低いよね
よくそんな姿勢で技術者やってられるなと思う
すぐに仕事なくなっちゃうし
職場でも浮いちゃうと辞めるしかなくなっちゃうぞと思う
0103デフォルトの名無しさん2010/10/02(土) 09:23:22
>>54とか前スレにも何回かでてたけど
エフェクトを難しく考えすぎなんじゃないか?

一見して派手に見えるエフェクトはもうほとんど絵の問題でプログラムどうこうってのは少ない
エフェクト専門にやってるデザイナさんにツールみせてもらったけどあれは素人がなんとかできるもんじゃない
基本上がってきたエフェクトアニメーションを再生してるだけってのが実態だと思うぞ


あえて、アニメーション無しの
透明度変化、回転のみでやってみたけど
いかんせん絵の専門家じゃないのでしょぼさが隠しきれない
これも絵次第でなんとかなるんじゃないかなぁと思うんだが…

http://www5b.biglobe.ne.jp/~mya_a/dx/effect.html
0104デフォルトの名無しさん2010/10/02(土) 09:24:18
>>103
天使ちゃんマジ天使
0105デフォルトの名無しさん2010/10/02(土) 10:21:59
この程度のだったらアニメーション付きのモデルファイルを再生して終りだね
0106デフォルトの名無しさん2010/10/02(土) 10:40:24
まぁ、それ以前に初心者だと光っぽいグラフィックが描けないんだけどな
0107デフォルトの名無しさん2010/10/02(土) 10:44:12
>>105
モデルにする意味がわからない
0108デフォルトの名無しさん2010/10/02(土) 10:50:11
>>107
単純に職場のデザイナさんがアニメーション形式で作ってきてくれるってだけ
俺は画面に出すだけw
0109デフォルトの名無しさん2010/10/02(土) 11:06:04
>>103
十分よくできてると思うよ。
筋の方のテクスチャの半透明の部分をもっと増やして太くすると
ライトブルームっぽくなるかも。
0110デフォルトの名無しさん2010/10/02(土) 11:11:23
>>106
本屋に雷や炎、水しぶき、雲、煙、岩のテクスチャの描き方的な本ってあるんだぜ
俺がもってる本(photoshop デザインコレクション)が絶版状態だから似たような本を探してくればいいんじゃね?
デザイナさんもそーゆーの見て描いてたしw
0111デフォルトの名無しさん2010/10/02(土) 13:15:48
グラボ付けたらトゥーンシェーダーできたwwwwwwwwwwwwwww
これで俺も3Dゲームプログラマーの仲間入りだおwwwwwwwwwwwwwww
0112デフォルトの名無しさん2010/10/02(土) 13:31:22
>>111
スキニングできましたか?
スキニングできましたか?
0113デフォルトの名無しさん2010/10/02(土) 13:40:10
>>112
なんで2回言うんですか…
0114デフォルトの名無しさん2010/10/02(土) 13:42:05
>>113
大事なことなので2回言いました
0115デフォルトの名無しさん2010/10/02(土) 15:22:52
画像を表示させるのにZ座標を持たせる方法ってあります?
いまやってる方法だとどうも描写順に表示してしまってるようで不便でして
01161152010/10/02(土) 15:33:57
自己解決した
0117デフォルトの名無しさん2010/10/02(土) 17:28:09
COMオブジェクトはboost::shared_ptrで管理してデストラクタでreleaseすれば問題ないですよね?
0118デフォルトの名無しさん2010/10/02(土) 19:16:34
boostならintrusive_ptrを使うといい
0119デフォルトの名無しさん2010/10/02(土) 19:33:25
ATL使えるならCComPtr使え
0120デフォルトの名無しさん2010/10/02(土) 19:38:05
ありがとうございます
効率の面でintrusive_ptr、CComPtrをつかえってことですよね?
0121デフォルトの名無しさん2010/10/02(土) 19:40:24
効率面で言えば使う必要はない
0122デフォルトの名無しさん2010/10/02(土) 22:11:09
shared_ptrとの比較の話じゃ?
余計な処理のないCComPtr一択っしょ
0123デフォルトの名無しさん2010/10/02(土) 22:24:37
ATLの要らない_com_ptr_tの事も思い出してあげてください
0124デフォルトの名無しさん2010/10/03(日) 02:44:11
>>103みたいなエフェクトテクスチャは何で描くの?フォトショ?
0125デフォルトの名無しさん2010/10/03(日) 03:34:03
gimp
0126デフォルトの名無しさん2010/10/03(日) 03:45:03
本とか読まなくても
そういうのを描く用のブラシとテクニックがあってだな
0127デフォルトの名無しさん2010/10/03(日) 03:47:02
kwsk
0128デフォルトの名無しさん2010/10/03(日) 05:42:54
テクスチャを設定する時に
Device->SetTexture(ステージの番号,ポインタ)
とする時のステージを指定するのって
Effect->SetTexture("識別子",ポインタ)でする時はどうすれば良いのでしょうか?
0129デフォルトの名無しさん2010/10/03(日) 06:03:56
>>128
pEffect->SetTexture("シェーダーのテクスチャ変数orセマンティクス", テクスチャオブジェクトへのポインタ);
0130デフォルトの名無しさん2010/10/03(日) 06:04:18
>>128
シェーダー側のテクスチャ変数を増やせば良いだけじゃ
0131デフォルトの名無しさん2010/10/03(日) 06:06:46
>>124
フォトショ
http://macototo.cool.ne.jp/junics/book.html
0132デフォルトの名無しさん2010/10/03(日) 06:11:45
>>129
>>130
ありがとうございます
ずっとググってるのですが全然理解できません
ステージの番号iはfxファイルの中のTexiと繋がっているのでしょうか?
0133デフォルトの名無しさん2010/10/03(日) 06:26:15
>>132
指定するのはステージ番号じゃないよ。リファレンスにはステージ番号なんて書いてないだろ。

SetTexture(D3DXHANDLE hParameter, LPDIRECT3DBASETEXTURE9 pTexture);

IDirect3DDeviceのSetTextureとID3DXEffectのSetTextureは違うモノだ。
0134デフォルトの名無しさん2010/10/03(日) 06:34:10
>>132
http://bbx.hp.infoseek.co.jp/cgi-bin/bbx.cgi?log=33&vew=408
0135デフォルトの名無しさん2010/10/03(日) 06:37:20
//テクスチャの設定
char number[] = {"01234567"};
for(int i=0;i<8;i++){
//テクスチャの取得
LPDIRECT3DBASETEXTURE9 temp_tex = NULL;
aDevice->GetTexture(i,&temp_tex);

//テクスチャがなければ終わる
if(!temp_tex)break;

//テクスチャの設定
string out = "texture";
out.push_back(number[i]);
effect->SetTexture(out.c_str(),temp_tex);

temp_tex->Release();
}
0136デフォルトの名無しさん2010/10/03(日) 06:49:24
ありがとうございます。
>>133
だろ。に笑ってしまったのですがw
>>134
>>135
よくわかりません…具体的にはマルチレンダリングターゲットをしてて0と1とあるのですが
サンプルだとdevice->SetTexture(1or0,ptex)で指定してるのでわかりやすいのですが
>>135だと全くeffect->を使ってないのですが自分は殆どeffect->SetTexture("g_texture",ptex)を使ってるのでどうすれば良いのかわからないのです
effectでやりたいのですがこういう時どうすれば良いのでしょうか?
0137デフォルトの名無しさん2010/10/03(日) 06:51:08
すいません
目が腐ってました
0138デフォルトの名無しさん2010/10/03(日) 06:54:55
目より頭が腐ってると思うよ
0139デフォルトの名無しさん2010/10/03(日) 06:55:30
>>138
黙れよカス
0140デフォルトの名無しさん2010/10/03(日) 06:56:09
まさか
SetTexturetとSetRenderTargetを勘違いしてたってオチ?
0141デフォルトの名無しさん2010/10/03(日) 07:00:19
えっ
SetTexturetとSetRenderTargetの第一引数って関係無いんですか?
0142デフォルトの名無しさん2010/10/03(日) 07:01:48
なんで質問するやつはすぐカスだの何だの言い出すの?
0143デフォルトの名無しさん2010/10/03(日) 07:02:10
どうりでググってもでてこないわけだな
0144デフォルトの名無しさん2010/10/03(日) 07:04:17
>>141
まったく関係ないっすなぁ
0145デフォルトの名無しさん2010/10/03(日) 07:06:22
やべええガチで頭腐ってた
0146デフォルトの名無しさん2010/10/03(日) 10:04:44
というかこれは教える方が悪いんでは
>>135もなんかずれてるし
エフェクトファイル側を出さないで何を伝えるつもりなの?
0147デフォルトの名無しさん2010/10/03(日) 10:32:43
シェーダデバッガーってダウンロードできますか?
ユーティリティーにPIXは入ってたのですがシェーダデバッガーらしきものは入ってませんでした
MSDNにもここからダウンロード的な誘導も付いてませんし、VisualStudio.Netが必要だというページもあるのですが自分はExpressEditionです
どうすれば入手できますか?
0148デフォルトの名無しさん2010/10/03(日) 11:52:26
わけがわからん
もうシェーダ無理マジで
なんでエフェクトファイルだけCと違うんだよ
既存の↓に適当に入れただけでエラーってどういうこと?
struct VS_OUTPUT
{
float4 Pos : POSITION;
float4 Diffuse : COLOR0;
  float4 Diffuse : COLOR1;←加えた
float2 Tex0 : TEXCOORD0;
};
typedef struct VS_OUTPUT{も無理だし
0149デフォルトの名無しさん2010/10/03(日) 12:02:49
>>148
変数名が同じだからでは?
fxcでコンパイルしてエラーメッセージをチェックするといいかも。
0150デフォルトの名無しさん2010/10/03(日) 12:09:10
>>149
サンクス
普通にVS_OUTPUTの前にsとかつけたら通った
なんでこんな簡単なことが気付かなかったんだろうか
2ちゃんに文句書き込んだ瞬間解決するんだよないつも
0151デフォルトの名無しさん2010/10/03(日) 12:11:03
fxcとかいうソフト、つけた瞬間一瞬だけひらいて閉じるんだけどなんだこれ?
0152デフォルトの名無しさん2010/10/03(日) 12:27:23
http://msdn.microsoft.com/ja-jp/library/bb172768(VS.85).aspx

コンパイルエラーを表示できるようにしといたほうがいいよ
OutputDebugStringAを使えばデバッグウィンドウからエラー箇所まで飛べる

hoge.fx(38,9): error X3003: redefinition of 'VS_OUTPUT::Diffuse'
0153デフォルトの名無しさん2010/10/03(日) 12:45:52
サンクス
出力のところ見たら普通に載ってたな
特殊形式っぽいしツール無いと無理だと思って探しまくってるうちに洗脳されてた
0154デフォルトの名無しさん2010/10/03(日) 13:12:37
シェーダわかった。完璧だわ
一気にトトリっぽくなったしもうあとリソース作るだけだわ
ktkr
0155デフォルトの名無しさん2010/10/03(日) 13:27:43
>>146
>>134のリンク先でその仕組みが分かって
SetTextureで設定しておいたものをシェーダ用として使うコードが>>135のつもりで貼った

まあ、でもよく考えるとすでに動くHLSLのサンプルがSDKのサンプルにあるのに
こんなことで迷ってるなんて相手にしないほうがいい人だったねw
0156デフォルトの名無しさん2010/10/03(日) 13:33:56
自分が迷ってる部分が単発でサンプルにあるなんてわからないだろw
0157デフォルトの名無しさん2010/10/03(日) 13:35:58
>>156
今回に関して言えばテクスチャが貼られてるサンプルならなんでもよかったよね?
0158デフォルトの名無しさん2010/10/03(日) 13:44:32
>>157
            __、
     ,r´⌒ヽ,⌒ヽ,ヽ
   (⌒)、   .人  λ\、 ._____
    \. \    、 ヽ./ ー  ー\
     |\ \    ヽ./ ( ●) ( ●)
     |  \  \ /     (__人__) \  はいはい、どーもすみませんでした
     |.   \   |       ` ⌒´   |
  .   |.   |.\_ノ\            /
  .   |.   |   |   \______/
  .   |   )  .|     . . ̄ ̄
  .   |   |  .|
     |   |.|  .|
  .   |  | .| .|
     /  / / ヽ,
    (__ノ  ヽ、__つ
0159デフォルトの名無しさん2010/10/03(日) 13:45:56
>>158
すっごい馬鹿だったよねw
見てて惨めなくらい間抜けだよね?
SDKに載ってることを馬鹿みたいにわかんないわかんないってw
PG向いてないんと違う?大丈夫?
0160デフォルトの名無しさん2010/10/03(日) 13:48:47
>>159
だまれ死ね
0161デフォルトの名無しさん2010/10/03(日) 13:50:52
>>160
            __、
     ,r´⌒ヽ,⌒ヽ,ヽ
   (⌒)、   .人  λ\、 ._____
    \. \    、 ヽ./ ー  ー\
     |\ \    ヽ./ ( ●) ( ●)
     |  \  \ /     (__人__) \  はいはい、どーもすみませんでした
     |.   \   |       ` ⌒´   |
0162デフォルトの名無しさん2010/10/03(日) 14:00:52
とりあえず件のトゥーン君は
質問するとき判別できるようにコテハン付けてくれ
そして質問に関係すること以外はチラシの裏にでも書いといてくれ
0163デフォルトの名無しさん2010/10/03(日) 15:00:17
しかし、DX9って息長げーな
もう8年になるかというのに、いまだ手を出す奴が絶えないもんな
といいつつ俺も9で完全に止まってる化石だが
0164デフォルトの名無しさん2010/10/03(日) 15:08:37
DX10がVistaと共に沈没してしまったからな
DX10.1もNVIDIAがついてこずこれも黒歴史化
Win7とDX11が普及しきる迄はまだまだDX9の天下
■ このスレッドは過去ログ倉庫に格納されています