[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 2chのread.cgiへ]
Update time : 08/06 20:32 / Filesize : 251 KB / Number-of Response : 956
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

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



1 名前:デフォルトの名無しさん mailto:sage [2009/06/22(月) 22:06:29 ]
※回答する人も、質問する人も必ず読んでください

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

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

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

【C++】 DirectX初心者質問スレ Part23 【C】
pc12.2ch.net/test/read.cgi/tech/1242977486/

2 名前:デフォルトの名無しさん mailto:sage [2009/06/22(月) 22:28:04 ]
四十年勤め上げた會社を退職し早二十年、何やら張り合いの無い日々を送る内、
大學生の孫に「退屈しのぎに遣って見たまへ」と勸められた弐チヤンネル。
當初は「こんな電腦?示板、何たる幼稚加減」と莫迦にしてゐたものの、
遣つて見ると存外に面白ひ。
華やかな色彩の髪と目を持つうら若き乙女に「ゆとり乙」と何度と無く罵られるにつけ、
食ふや食はずやで慌しく過ぎ去つた學生時代が自ずと思ひ返され、
「戰爭さえ無ければ、小生もこのやうな青春が送れたやも知れぬ」と獨りごちる事も屡々。
すつかり?となつた今では、孫の部屋から白銀色の電腦計算機をせしめては書齋に篭もり
存分に「祭り」を堪能する毎日を送つている。
「小四女兒遺棄事件」なるスレツドを拜讀した際には、その餘りに不憫な境遇と過酷な
運命に落?し、臺所で葱を刻む家内に「かような理不盡が許されて良いものか!」と
熱辯を振るって呆れられる始末。年甲斐も無い、とはこの事と後で赤面する事しきり。
下手の横好きとは云え「繼續は力なり」の言葉通り、最近ではブラクラの回避や
コピペの管理にも慣れ、「好きこそものの上手なれ」を座右の銘として弐ゲツトに勵んでいる。
同年代の友人達が癡呆や重い病に惱まされる中、老いて尚矍鑠としてオフ會に向かえるのも、
偏に弐チヤンネルの御蔭かと思えば、再三に渡る「半年ROMつてろ」の罵り文句も、
何やら「まだまだ死ぬには早いよ」と言われているやうで愉快極まれり。
一つ間違えれば自らが乗り込んでいた機體と同じ名前を持つコテハンに出會える日を
樂しみにしつつ、今日もデスプレヱに向かう。

それでは、弐ゲツト。

3 名前:デフォルトの名無しさん mailto:sage [2009/06/23(火) 11:51:53 ]


4 名前:デフォルトの名無しさん mailto:sage [2009/06/23(火) 21:08:35 ]
スキンメッシュのクラス化を試みているんだが、
メソッドとソフトウェアフラグだけはグローバルに置かないとエラー終了する
何故?
クラスのメンバに含めるのは無理?

5 名前:デフォルトの名無しさん mailto:sage [2009/06/23(火) 21:22:46 ]
それはスキンメッシュ関係なくC++が分かってない

6 名前:デフォルトの名無しさん mailto:sage [2009/06/24(水) 02:08:52 ]
staticで解決したお

7 名前:デフォルトの名無しさん mailto:sage [2009/06/24(水) 09:00:00 ]
staticはやめましょう

8 名前:デフォルトの名無しさん mailto:sage [2009/06/24(水) 09:12:22 ]
staticは別に悪くないだろ。
>>4のソースは悪いのは確定だが。

9 名前:デフォルトの名無しさん mailto:sage [2009/06/24(水) 10:03:48 ]
サンプルにあるDrawSubsetを使うmesh描画でモデルを描画してみたのですが糞重いです
同じPCで市販のゲームというか無料MMOなんかを見ると
どれもこれももっと大量のモデルを表示してるように見えるのですが
それでも十分な速度が出ています
これらはどうやってるのでしょうか?

モデルを細かく分割して、視野に入るものだけを描画とかはしています
何か根本的に別の描画方法だったりするのでしょうか?

10 名前:デフォルトの名無しさん mailto:sage [2009/06/24(水) 10:37:33 ]
それだけでは状況がよくわからん
どう重いのか、メッシュの数やポリゴン数、シェーダー使ってるかやFPSはどの程度なのかまで網羅されてないとな

結論から言うとDrawSubset以外の描画は無いけどな



11 名前:デフォルトの名無しさん mailto:sage [2009/06/24(水) 10:59:19 ]
PIX仕え

12 名前:デフォルトの名無しさん mailto:sage [2009/06/24(水) 11:13:22 ]
ID3DXFont::DrawTextA で日本語が文字化けするのはどんな理由が考えられますか?
渡している文字列 (char*) をデバッガで確認するとちゃんとなってます。
プロジェクトのプロパティで、「文字セット」は「設定なし」になっています。


13 名前:デフォルトの名無しさん mailto:sage [2009/06/24(水) 11:15:48 ]
ためしに MultiByteToWideChar で CP_THREAD_ACP で wchar_t* に変換したものを DrawTextW にわたしても、
やっぱり文字化けしているのです。DrawText にそのままわたしても、char* と wchar_t* どちらも文字化けします。


14 名前:デフォルトの名無しさん mailto:sage [2009/06/24(水) 11:16:18 ]
炎を表現するためにパーティクルを行っているのですが、質問です。

・1つの炎を表現するのに、DrawPrimitiveUPを1回使っています。10個程度の炎を画面に出しています。
・ポイントスプライトを使っています

これで、100個程度のポイントスプライト×10炎 を表示していうのですが、動作の重さで疑問点があるのです。
描画にかかる時間(DrawPrimitiveUPを呼び出す前から、Presentが終わるまでの時間)を測っていると

・画面に大きく映るように、カメラの視野角を変えた場合
・画面にすごく小さく映るように、カメラの視野角を変えた場合
で、後者のほうが遅いのです。

前者だと10ms、後者だと17msくらいになります。
比較する際、カメラの視野角以外は一切変えていません。

何かしら「ポリゴンは小さく表示しすぎると遅くなる」などの制限があるのでしょうか?

15 名前:デフォルトの名無しさん mailto:sage [2009/06/24(水) 11:31:36 ]
最近のSDKのサンプルを読んでいたら
s_hModD3D9 = LoadLibrary( L"d3d9.dll" );
のように、Direct3DのDLLなどを動的に読み込んでいました。

昔の本などによると、あまりよろしくない手法で、だからこそ
「対応したDirectXがインストールされていないマシンだと、DLL不足を指摘するダイアログがでて終了するので、ユーザーにわかりやすい警告ダイアログを出せない」
とかされていたような・・・

16 名前:デフォルトの名無しさん mailto:sage [2009/06/24(水) 11:54:00 ]
だからこそからの繋がりがよく分からん
自前の警告を出すためにプログラムからロードしろって事?

17 名前:デフォルトの名無しさん mailto:sage [2009/06/24(水) 11:56:00 ]
視野角狭くした状態でも全部の頂点・面が画面内に入ってんの?

18 名前:デフォルトの名無しさん mailto:sage [2009/06/24(水) 13:21:10 ]
>>17
はい、画面内に視野角が広くても、狭くても、全ておさまっています。
頂点シェーダの負荷は変わらないでしょうし、
ピクセルシェーダの呼び出し回数はむしろ大きく映っている方が多いはず・・・

と悩んでいるところです。

19 名前:デフォルトの名無しさん mailto:sage [2009/06/24(水) 13:24:56 ]
日経盛り返してきました、ありがとうございます
あと50円上がったら利食いしますのでそれまで上げてください

20 名前:デフォルトの名無しさん mailto:sage [2009/06/24(水) 20:04:50 ]
>>14
ポイントスプライトが大きいが為に
殆どのピクセルのZテストが通らなくなって
結果、更新されるピクセル数が少なくなってるとか。



21 名前:デフォルトの名無しさん mailto:sage [2009/06/24(水) 20:35:05 ]
DirectX9で2Dゲームを作ろうとしていまして、画像ファイルが独自フォーマットで
メモリ上に展開してそこからsurfaceに変換して、たくさんのアイテムやキャラクタが
存在するわけですけど、それらはまとめてバックバッファのsurfaceにupdateSurface()
を使って描画しようと企んでいるのですが、一つ問題がありまして
というのは、この様にsurfaceにばかりたよって描画してしまうと、アルファブレンディング
が出来ないということです
surfaceをアルファブレンディングしてバックバッファに書き込むということさえ出来たら
いいのですが、textureやらsprite辺りが全く理解できていないので分かりません
全部textureとして持ってspriteに描画すれば解決しそうだというのは分かるのですが、
surfaceとして持てるものをわざわざ全てtextureとして持つのは少し躊躇いがあります
何かいい方法はあるでしょうか

22 名前:デフォルトの名無しさん mailto:sage [2009/06/24(水) 20:38:38 ]
ポイントスプライトって回転ないから
小さく薄いパーティクルを無駄に数を出しがちじゃね?

炎・煙・水しぶきとか形のあるものはランダムに角度付けたいじゃん。


23 名前:デフォルトの名無しさん mailto:sage [2009/06/24(水) 20:40:41 ]
>>21
バックバッファ更新用の
キャラクタが描かれたサーフェイスは
どうやって作っている?
そこにキャラを描く際、アルファを
反映させればいいんじゃないの?

24 名前:デフォルトの名無しさん mailto:sage [2009/06/24(水) 20:43:41 ]
>21
画像データをサーフェイスに溜め込んで、描画はStreachRectやりきりたいということですね?
そんな手法でいろいろやろうとしてるのは世界であなただけです。だれもノウハウ持ってませんよ。


25 名前:デフォルトの名無しさん mailto:sage [2009/06/24(水) 20:49:09 ]
>>23
実はまだ作っていはいないんですが、色々と調べたところ
1. 空のsurfaceを作って、lockrectして色情報を書き込んでいく
2. D3DXLoadSurfaceFromMemoryを使う
この二つが候補に挙がっていまして、2.を使おうと思っています
MSDNを良く見ると、ここでアルファを設定できるみたいですね
これでUpdateSurfaceの時にうまく動くのですね?
今の段階では必要になるかは分からないですが、アルファ値が動的に変わるような
surfaceの場合、既にあるsurfaceのアルファ値を変えられるのか、それとも
また新たにsurfaceを作らないといけないのかどちらでしょう?

26 名前:デフォルトの名無しさん mailto:sage [2009/06/24(水) 20:52:06 ]
>>24
その通りです
普通はspriteにtextureを描くのでしょうけど、どうもそれらの正体がはっきりとしなくて使い渋っているのです
加えて、メモリにある色情報からtextureを作成する方法も分からなかったのも原因の一つです

27 名前:デフォルトの名無しさん mailto:sage [2009/06/24(水) 21:09:19 ]
>>メモリにある色情報からtextureを作成する方法も分からなかった

サイズ分のテクスチャを生成して
ロックして色情報を書き込むだけでいいだろ

28 名前:デフォルトの名無しさん mailto:sage [2009/06/24(水) 21:10:28 ]
SetStreamSourse
DrawPrimitive
をセットで何回も呼び出すよりも
CPUでそれを1つのトライアングルリストにまとめて
DrawPrimitiveUP一回で描画する方が速いのですが
これはストリームソースの使い方が間違ってるでしょうか?

29 名前:デフォルトの名無しさん mailto:sage [2009/06/24(水) 21:58:05 ]
>>28
DrawPrimitiveのオーバーヘッドの影響かな?
頂点数を相対的に増やしていけば、
その差は縮まるんじゃないかなぁ。

30 名前:デフォルトの名無しさん mailto:sage [2009/06/24(水) 21:58:51 ]
DrawPrimitiveの読み出しがそもそも遅い



31 名前:デフォルトの名無しさん mailto:sage [2009/06/24(水) 22:24:39 ]
HLSLでVSからPSにグローバル変数で値を持ち越す事って出来ないですよね?
なんか挙動を見る限り入ってなさそうで・・・

32 名前:デフォルトの名無しさん mailto:sage [2009/06/24(水) 22:56:41 ]
>>29-30
頂点数と転送回数のバランス次第ではありえるということですね
ありがとうございます


33 名前:デフォルトの名無しさん mailto:sage [2009/06/24(水) 23:07:15 ]
>>31
そもそもシェーダからグローバルメモリへの
書き込みは出来ません。(DX10はしらね)

34 名前:デフォルトの名無しさん mailto:sage [2009/06/24(水) 23:41:51 ]
>>33
varyingみたいに使えればなーと思ったんですが
やはりVSから構造体に詰めて渡すしかないんですね
ありがとうございます

35 名前:デフォルトの名無しさん mailto:sage [2009/06/24(水) 23:52:10 ]
>>34
そもそもそれぞれが並列処理で動いてるのにグローバル変数をどうやって管理するつもりだったんだ?
シェーダーは逐次処理でまわってるわけじゃないぞ。


36 名前:デフォルトの名無しさん mailto:sage [2009/06/25(木) 01:49:39 ]
シェーダーを延々と長々書き足していったら途中で動かなくなってしまい
どうやら一定量超えると動かないみたいなのですが、これは容量オーバーなのでしょうか?

37 名前:デフォルトの名無しさん mailto:sage [2009/06/25(木) 01:57:19 ]
シェーダープロファイルでインストラクション数に制限がある

38 名前:デフォルトの名無しさん mailto:sage [2009/06/25(木) 02:05:59 ]
ありがとうございます

39 名前:デフォルトの名無しさん mailto:sage [2009/06/25(木) 09:39:40 ]
>>20
情報不足で申し訳ない。
加算合成なので、Zテストはしていないんです。
ただ、どちらにしろそれが「小さい方が遅い」結果にはつながらない気がしますね。

>>22
むしろ角度をつけないのが良い。とか思っていましたが、そういうものでしょうか。
確かに飛び散る火の粉がいつも同じ形なのは問題かもしれませんね

40 名前:デフォルトの名無しさん mailto:sage [2009/06/25(木) 09:43:47 ]
後考えられるとすれば、縮小時は元の解像度より下がってフィルタがかかってる
拡大時は元の解像度より上がってフィルタがかかってない
そういうフィルタ設定でテクスチャを張ってる前提だけど。

テクスチャ外してみたらどうなるよ



41 名前:デフォルトの名無しさん [2009/06/25(木) 13:11:04 ]
ウィンドウを一色で塗りつぶすことって出来ますか?


42 名前:デフォルトの名無しさん mailto:sage [2009/06/25(木) 13:18:28 ]
>>40
ミップマップの生成はD3DX_DEFAULTで、拡大も縮小もLINARです。
テクスチャ外しても再現しました。


視野角ではなくカメラからの距離(遠くなり、小さく描画されている時の方が遅い)でも、再現しました。
それと、パーティクルの生成数を10倍にしたところ、「大きく映っているほうが遅い」という常識的な結果になりました。
つまりまとめますと
「描画量が少ないと、小さく映っているほうが遅い時がある」
って感じですね。

これだとロジックのどこかにバグがあるかと思われるかもしれませんが、本当にカメラ位置しか変えずにコンパイルしています。

描画量が少ないと。といっても、毎フレーム100個ほどのポイントスプライトを描画しているんですけどね。
500個にしたら逆転しました。(小さく映っているほうが速くなりました)

43 名前:デフォルトの名無しさん mailto:sage [2009/06/25(木) 14:35:03 ]
インスタンス処理について質問があります
サンプルのInstancingなのですが、技法3、定数のインスタンス化の処理はあまり意味ないように思えるのですが
これって効果あるのでしょうか?

for( int nRemainingBoxes = 0; nRemainingBoxes < g_NumBoxes; nRemainingBoxes++ )
{
// set the box Instancing array
V( g_pEffect->SetVector( g_HandleBoxInstance_Position, &g_vBoxInstance_Position[nRemainingBoxes] ) );
V( g_pEffect->SetVector( g_HandleBoxInstance_Color, (D3DXVECTOR4*)&g_vBoxInstance_Color[nRemainingBoxes] ) );

// The effect interface queues up the changes and performs them
// with the CommitChanges call. You do not need to call CommitChanges if
// you are not setting any parameters between the BeginPass and EndPass.
V( g_pEffect->CommitChanges() );

V( pd3dDevice->DrawIndexedPrimitive( D3DPT_TRIANGLELIST, 0, 0, 4 * 6, 0, 6 * 2 ) );
}

44 名前:デフォルトの名無しさん mailto:sage [2009/06/25(木) 15:19:18 ]
>>43
サンプルをみたが、1(HWInstancing)以外は
あまり意味はないな。
1の比較対象として、用意しているに過ぎない。
特に3は、普通に描画してるだけだな。


45 名前:デフォルトの名無しさん mailto:sage [2009/06/25(木) 15:39:45 ]
ありがとうございます。
2だとDrawPriitiveを減らせる効果はあるぐらいですかね

同じモデルを複数回描画するのを効率化したいのですが、
ハードウェアインスタンスを使えたら使う、使えなければ普通に描画するしかないということでしょうか?

46 名前:デフォルトの名無しさん mailto:sage [2009/06/25(木) 15:54:08 ]
2だか忘れたけど、同じモデルデータを大量に複製して
頂点にID持たせてつなげてビデオメモリに転送しとく奴だっけ?

板ポリゴン大量に扱いたいけどハードウェアインスタンス使えないって時に結構使えて気もするが

47 名前:デフォルトの名無しさん mailto:sage [2009/06/25(木) 16:01:07 ]
>>46
2はそうだね。
無駄重複が大量にあるのは、
キモイな。

1は、メッシュx1、DrawPrimitive x1
2は、メッシュxN、DrawPrimitive x1
3は、メッシュx1、DrawPrimitive xN
4は、メッシュx1、DrawPrimitive xN
かな。

48 名前:デフォルトの名無しさん mailto:sage [2009/06/25(木) 16:10:09 ]
>>45
そうだね。HWのそれ以外
DPを減らす方法は無いと思う。(D3D9)

ただ、サンプルの2はボックスの頂点データを
そのまま大量に複製しているように見えるが、
座標データを定数や頂点テクスチャに移せるなら、
頂点バッファは純粋にインデックスのみって構成も
可能だよね。
これがいけるんならサンプル2も、対象に入りそうだな。

49 名前:デフォルトの名無しさん [2009/06/25(木) 17:06:01 ]
初歩的な質問で申し訳ありません。
C言語が必要になり、根っからの文系人間が「Cの絵本」という本でもってプログラミングに挑戦しています。

if文のところで、

#include <stdio.h>

main()
{
int s = 65;

printf("あなたの点数は%d点です。\n", s);

if(s < 70)
{
printf("平均点まであと%d点。\n", 70-s);
printf("がんばりましょう!\n");
}
else
{
printf("よくできました!\n");
}
}


という文を作りました。
ここから月数に応じてコメントを表示するプログラム(1月ならばwinter、3月ならspringといった具合に)を作りたいのですが、どのように変化を加えればよいのでしょうか?
月は1月〜12月までなので、13月以上と1月未満の数値を打ち込んだ場合はerrorと表示させたいです。
よろしくお願いします。


50 名前:デフォルトの名無しさん mailto:sage [2009/06/25(木) 17:09:52 ]
凄くすれ違いです・・



51 名前:デフォルトの名無しさん mailto:sage [2009/06/25(木) 18:05:34 ]
SetRenderTargetで描くのと
UpdateSurfaceでコピーするのは
どっちが速いですか?

52 名前:デフォルトの名無しさん [2009/06/25(木) 19:11:09 ]
頂点バッファ作成で躓いてますorz

struct VERTEX
{
float x,y,z;
DWORD color;
enum{ FVF = D3DFVF_XYZ | D3DFVF_DIFFUSE };
};

IDirect3DVertexBuffer9* pvb = NULL;
Graphics->GetDevice()->CreateVertexBuffer( sizeof(VERTEX)*3, D3DUSAGE_DYNAMIC, VERTEX::FVF, D3DPOOL_MANAGED, &pvb, NULL );

ってやってるんですがCreateVertexBufferを呼んでもpvbがNULLのままで・・・

エラーではD3DERR_INVALIDCALLが返ってきてます.

MSDNみると

メソッドの呼び出しが無効である。
たとえば、メソッドのパラメータに無効な値が設定されている場合などである。

とあるのですがおかしいところも見当たらない気がします.

どこか他で不具合出てるのでしょうか・・・.

思い当たる節がないので困ってます

53 名前:デフォルトの名無しさん mailto:sage [2009/06/25(木) 19:21:20 ]
インデックスバッファや頂点バッファは
D3DPOOL_MANAGEDをD3DUSAGE_DYNAMICでは作れなったかったきが気がする
D3DPOOL_DEFAULTが推奨

54 名前:デフォルトの名無しさん mailto:sage [2009/06/25(木) 19:27:29 ]
動的なバッファにする必要がないなら
D3DPOOL_MANAGEDのままで使用方法に0を指定するのも有

55 名前:デフォルトの名無しさん mailto:sage [2009/06/25(木) 21:22:56 ]
髪の毛みたいなソフトボディ?のアニメーションもキーフレームアニメーションでできるのですか?

56 名前:デフォルトの名無しさん mailto:sage [2009/06/25(木) 21:52:41 ]
スキニングを探してるのか?

57 名前:52 mailto:sage [2009/06/25(木) 21:54:53 ]
ご協力ありがとうございました.
CreateVertexBuffer解決しました.
Usageを0にしたのと
D3DPRESENT_PARAMETERS構造体の
AutoDepthStencilFormatをD3DFMT_D24FS8にしていたのを
D3DFMT_D24S8に変更でいけました.





58 名前:デフォルトの名無しさん mailto:sage [2009/06/25(木) 22:29:41 ]
DirectInputについて質問です。
秒間60回入力を拾っても、描画の垂直同期待ちとかで
一瞬予定通りに拾えない時間帯があると思います。
(ペイントソフトを作ってマウスで線を描くと、線が切れる部分が出る)

自分はマルチスレッドで入力を回収し、バッファにためておくことで解決しようと
考案中なのですが、みなさんが他に良い方法を使用していたら、教えてください

59 名前:デフォルトの名無しさん mailto:sage [2009/06/25(木) 22:32:43 ]
DirectInputでマウスさんさとゃでめよん

60 名前:デフォルトの名無しさん mailto:sage [2009/06/26(金) 00:06:10 ]
>>58
変なことやらないほうがよくね?
仮に1フレームで押してる・押してないと2つの状態がとれたときにそれはどっちが優先なの?
たまに押した状態がくっついてるような変なアプリみるけど
それって小細工のたまものだと思うw



61 名前:デフォルトの名無しさん mailto:sage [2009/06/26(金) 00:11:20 ]
IDirectInputDevice8::GetDeviceDataで
入力履歴の配列が得られる。
これで何時押されて、何時離されたか
判断出来る。

62 名前:デフォルトの名無しさん mailto:sage [2009/06/26(金) 01:22:24 ]
それってパッドの入力履歴とれる?


63 名前:デフォルトの名無しさん mailto:sage [2009/06/26(金) 08:58:01 ]
>>58
入力はスレッドでやり、スレッド優先度を高くしておく。
ただしそのままだとそいつが処理を食ってしまうので、きちんとWaitEventやらで沈黙することが大事。

64 名前:デフォルトの名無しさん mailto:sage [2009/06/26(金) 19:04:47 ]
普通のメッシュファイルは表示できるんだけど、
テクスチャとかマテリアルでアルファ値が設定されていないものを
任意のアルファ値で半透明に表示する方法はないですか?

65 名前:デフォルトの名無しさん mailto:sage [2009/06/26(金) 19:07:38 ]
そういうシェーダを書く。
マジで。
固定シェーダ(笑)でもできるけど、面倒この上ないよ

66 名前:デフォルトの名無しさん mailto:sage [2009/06/26(金) 19:10:32 ]
なんか質問するごとにシェーダでやれと言われまくるんだよなー
そろそろ勉強したほうがいいのかな
どこから勉強すりゃいいのかよくわからんのだが

67 名前:デフォルトの名無しさん mailto:sage [2009/06/26(金) 19:10:40 ]
D3DTA_TFACTORを使えば簡単だけど
シェーダーでやった方がいいな

68 名前:デフォルトの名無しさん mailto:sage [2009/06/26(金) 19:12:48 ]
SetTextureStageState( D3DTSS_CONSTANT, 任意色 );
SetTextureStageState( D3DTSS_ALPHAOP, D3DTOP_SELECTARG1 );
SetTextureStageState( D3DTSS_ALPHAARG1, D3DTA_CONSTANT );

別に面倒ってほどでもないなあ

69 名前:デフォルトの名無しさん mailto:sage [2009/06/26(金) 19:14:39 ]
>>66
エフェクトからやれ。
エフェクトファイルは必須だから。

70 名前:デフォルトの名無しさん mailto:sage [2009/06/26(金) 19:19:25 ]
スプライトをSetRenderTargetの咲に描くにはどうしますか?



71 名前:デフォルトの名無しさん mailto:sage [2009/06/26(金) 20:24:01 ]
>>66
はぁ?
ていうか今日はじめて今日できる
ウンコする時間も考慮すると後3〜4時間?
余裕過ぎる

そんな程度

72 名前:デフォルトの名無しさん mailto:sage [2009/06/26(金) 21:27:55 ]
>>66
気持はわかるが、マジでシェーダオンリーにしたほうがいい。
本気で。
俺も固定シェーダにこだわってゲームつくってたけど、プログラマブルシェーダに移行したら天国だった。

73 名前:デフォルトの名無しさん mailto:sage [2009/06/26(金) 21:39:47 ]
HLSLがC言語だとすると、固定シェーダーは得体の知れないアセンブラ

74 名前:デフォルトの名無しさん mailto:sage [2009/06/26(金) 22:17:20 ]
シェーダーの勉強のとっかかりになるところでいいところない?
いきなり高度なことやってるページばかりしかなくてこまる

75 名前:デフォルトの名無しさん mailto:sage [2009/06/26(金) 22:19:11 ]
×固定シェーダ
○固定機能

間違った用語を平気で使い続ける馬鹿って何なの?

76 名前:デフォルトの名無しさん mailto:sage [2009/06/26(金) 23:03:47 ]
たぶん、プログラマブルなシェーダに対しての、プログラマブルじゃない固定という意図では?

77 名前:デフォルトの名無しさん mailto:sage [2009/06/26(金) 23:24:27 ]
まぁ将来シェーダーいじるようなゲームプログラマーになりたいとかじゃなけりゃ
好きなもんを好きなように使っておけとしか言えないが。

78 名前:デフォルトの名無しさん mailto:sage [2009/06/26(金) 23:31:04 ]
アホが68件程度しか発見できないのがせめてもの救い
www.google.co.jp/search?q=%22%8C%C5%92%E8%83V%83F%81[%83_%22

79 名前:デフォルトの名無しさん mailto:sage [2009/06/26(金) 23:36:47 ]
まあでも固定機能パイプラインを示す
適当な言葉がないのも事実。
固定シェーダでいいんじゃないの。

80 名前:デフォルトの名無しさん mailto:sage [2009/06/26(金) 23:39:21 ]
固定機能パイプラインで良いんじゃ



81 名前:デフォルトの名無しさん mailto:sage [2009/06/27(土) 00:39:43 ]
定食

82 名前:デフォルトの名無しさん mailto:sage [2009/06/27(土) 01:02:27 ]
内部を考えると固定のシェーダーとも言えなくもないがw

83 名前:デフォルトの名無しさん mailto:sage [2009/06/27(土) 02:46:10 ]
通じりゃいいだろ
こだわるところじゃない

84 名前:デフォルトの名無しさん mailto:sage [2009/06/27(土) 02:49:13 ]
DirectX11では
「演算シェーダ」「ハルシェーダ」「ドメインシェーダ」の
三つのプログラマブルシェーダと
テッセレーションを行うための「固定機能シェーダ」が新設されるそうな

もう紛らわしいから固定機能パイプラインは無かった子にして良いよ

85 名前:デフォルトの名無しさん mailto:sage [2009/06/27(土) 07:12:24 ]
もう固定機能パイプラインをちゃんと言うしかないな

86 名前:デフォルトの名無しさん mailto:sage [2009/06/27(土) 08:20:06 ]
固定機能パイプラインが無くなる事で
良書が増えるといいねぇ

87 名前:デフォルトの名無しさん mailto:sage [2009/06/27(土) 12:36:05 ]
directxライブラリと標準ライブラリを同時に使うことってできないんでしょうか?

88 名前:デフォルトの名無しさん mailto:sage [2009/06/27(土) 12:40:39 ]
勝手に使えよ。

89 名前:デフォルトの名無しさん mailto:sage [2009/06/27(土) 12:44:25 ]
多分同じ変数や関数が複数回使われてるみたいなエラー出たんだろ

90 名前:デフォルトの名無しさん mailto:sage [2009/06/27(土) 13:00:26 ]
DirectXつかっててそんなの出るか・・・?



91 名前:デフォルトの名無しさん mailto:sage [2009/06/27(土) 19:52:46 ]
maxとminがdefineされてるから、
std::maxとstd::minと衝突するってやつか?
NO_MINMAXでぐぐればいけた気がする。

92 名前:デフォルトの名無しさん mailto:sage [2009/06/28(日) 21:09:13 ]
同じMS製品でそんなの出るとか不良品じゃねーか

93 名前:デフォルトの名無しさん mailto:sage [2009/06/28(日) 22:03:18 ]
もともとmaxとかminとか定義してたライブラリありまくるぜ
vectorとか標準ライブラリ作った人なんでこんな名前にしたんだと思った
std::〜っていちいち書くぐらいしかないのかな?

94 名前:デフォルトの名無しさん mailto:sage [2009/06/28(日) 22:32:35 ]
いちいち書いたほうがいい
STLだけ差し替えたりするし。

95 名前:デフォルトの名無しさん mailto:sage [2009/06/28(日) 23:46:05 ]
SYSPROCはどこに書けばいいの?

96 名前:デフォルトの名無しさん mailto:sage [2009/06/29(月) 12:42:29 ]
>>93
DirectXのmin maxはマクロだから、std::つけてもエラーが出る。

97 名前:デフォルトの名無しさん mailto:sage [2009/06/29(月) 16:29:55 ]
rad0 が #define されてるのが地味にトラップ。

98 名前:デフォルトの名無しさん mailto:sage [2009/06/29(月) 23:07:23 ]
DirectInput8のGetDeviceStateメソッドでジョイパッドの入力を生で受け取り
コード側でそれを、否定・論理積を使ってトリガ情報に加工して使おうとしています。

当該処理はDLLに放り込みました。
それを、Win32コンソールアプリケーションをドライバにしてforループでガンガン回しながら
テスト実行してみたところ、ベタ入力もトリガ入力も正しく取れるのですが、
本番環境のWin32アプリケーションに組み込んでみたところ、
トリガ入力がベタ同然の振る舞いをするようになってしまいました。

理屈の上では、メインループでどれだけの時間がかかろうと、かかるまいと、
GetDeviceStateが押された瞬間にキーが押しっぱなしでさえあれば
トリガとしてのふるまいをしてくれるはず・・・と期待しているのですが、どうにもなりません。

これって、いわゆる「直接入力における取りこぼし」ってやつなんでしょうか・・・

99 名前:デフォルトの名無しさん mailto:sage [2009/06/30(火) 01:46:34 ]
外人「OH〜ユーアーサムラーイCOOL!」
農民「ノー…アイ アム ア ファーマー…」
外人「オウマイゴー アイムソーリー ユーアープアー」


100 名前:デフォルトの名無しさん mailto:sage [2009/06/30(火) 03:09:45 ]
>>98
実を言うとそこまで深く突っ込んで調べたことが無い。
そのテスト版のプログラムもし公開できるものなら見てみたいよ



101 名前:デフォルトの名無しさん mailto:sage [2009/06/30(火) 19:24:25 ]
DLLにした時点でどこのキーとってるのか俺にはわからないけど
メインの処理のキー入力を勝手にとってくるもんなの?そーゆーのって?






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<251KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef