[表示 : 全て 最新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/

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にした時点でどこのキーとってるのか俺にはわからないけど
メインの処理のキー入力を勝手にとってくるもんなの?そーゆーのって?



102 名前:デフォルトの名無しさん mailto:sage [2009/06/30(火) 19:30:02 ]
法線とライトの内積を求めてその値で境界の範囲を決めるトゥーンシェードで
Sio29さんのCelsView見たく境界の色をあいまいにするのってどうやってやるんですか?


103 名前:デフォルトの名無しさん mailto:sage [2009/06/30(火) 19:34:53 ]
>>102
本人に聞いてこいよ

104 名前:デフォルトの名無しさん mailto:sage [2009/06/30(火) 19:38:42 ]
>>102
参照するトゥーンマップの段階の変わり目をグラデーションにするだけ

105 名前:デフォルトの名無しさん mailto:sage [2009/06/30(火) 19:41:18 ]
>>103
つっこみありがとう
Sio29さん独特の技術なら聞いてこようと思います

やりたい事がわかりやすいように例を挙げただけだったんですが

106 名前:デフォルトの名無しさん mailto:sage [2009/06/30(火) 19:43:30 ]
>>104
それじゃなんねーと思うぜ
法線は段階的に角度がついてるわけじゃねーし

107 名前:デフォルトの名無しさん mailto:sage [2009/06/30(火) 19:43:40 ]
>>104
ありがとうございます
色の決定にトゥーンマップを使用していないのでつまづいています


108 名前:デフォルトの名無しさん mailto:sage [2009/06/30(火) 19:53:43 ]
>>106
なんで?
頂点シェーダでマップの参照位置を計算してピクセルシェーダにわたして
実際の色参照をピクセルシェーダでやれば問題ないんだけど

109 名前:デフォルトの名無しさん mailto:sage [2009/06/30(火) 19:57:30 ]
>>107
トゥーンマップを使わないでどうやってるの?
いちいち内積の値でifで条件分けして陰つけてるの?

110 名前:デフォルトの名無しさん mailto:sage [2009/06/30(火) 20:02:58 ]
>>108
関係なくね?
例えば立方体の辺にグラデ入れたいとしてその方法で何かつくの?

111 名前:デフォルトの名無しさん mailto:sage [2009/06/30(火) 20:07:34 ]
VS上の法線などのベクトルは、
PSには線形補間されて渡される。



112 名前:デフォルトの名無しさん mailto:sage [2009/06/30(火) 20:12:47 ]
>>110はライティングの仕組みを全く理解してないと思われ
そんなこと言ったら普通のグローシェーディングもできないことになる

113 名前:デフォルトの名無しさん mailto:sage [2009/06/30(火) 20:12:51 ]
>>111
だから頭の中でそれでグラデがつくか考えてみろっての

114 名前:デフォルトの名無しさん mailto:sage [2009/06/30(火) 20:14:52 ]
>>112
だからその仕組みとこの仕組みがリンクしてねぇって俺は主張してるわけだよ

115 名前:102 mailto:sage [2009/06/30(火) 20:23:13 ]
>>109
そうです、ifで条件つけてやってます
マテリアルごとにトーンマップを用意するのが面倒なので

116 名前:デフォルトの名無しさん mailto:sage [2009/06/30(火) 20:30:46 ]
>>114
VSの計算結果で頂点Aが黒で頂点Bか白としましょう
PSで頂点AとBの中間地点のピクセルを描画するときは
線形補間された灰色という値が入ってきますよね?
だから通常のライティングが成立してるのはわかりますよね?

VSで頂点Aのマップの参照位置を(u,v)=(0,0)
Bの参照位置を(u,v)=(1,0)としましょう
PSでAとBのちょうどまんなかのピクセル描画時には
線形補完された(u,v)=(0.5,0)という値が入ってきます
この値をつかってマップの色をサンプリングすればOKなのですよ

117 名前:デフォルトの名無しさん mailto:sage [2009/06/30(火) 22:35:53 ]
>>116
そこまで来てねぇよw
法線の値でグラデかけたマップから値とりにいくところで
うまくいかねぇと思うぜ

118 名前:デフォルトの名無しさん mailto:sage [2009/06/30(火) 23:37:11 ]
customUI使うには何をincludeすればいいでしょうか。
ソース分割とかやったことなくてさっぱりわかりません。
bccDeveloper使ってやっています。

119 名前:デフォルトの名無しさん mailto:sage [2009/06/30(火) 23:52:15 ]
>>117
www.arakin.dyndns.org/glsl_cartoon.php
ここが比較的わかりやすいから、見てみれば。
そこのテクスチャの色は2色、輪郭を含めて3色だが、
その3色の境界にグラデをかければ、最終的な
出力画像にもグラデが掛かるだろ。

120 名前:デフォルトの名無しさん mailto:sage [2009/06/30(火) 23:55:02 ]
>>118
CustomUIの中のCoreとOptionalプロジェクトを
インポートして使う。
VCならそのままだが、bccDeveloperはシラね。

121 名前:デフォルトの名無しさん mailto:sage [2009/07/01(水) 00:00:58 ]
>>119
かかんねぇよ
よく考えろよ



122 名前:デフォルトの名無しさん mailto:sage [2009/07/01(水) 00:12:20 ]
げちょげちょすっげキタネェのができるぞ
トゥーンマップ(?)でうまくいくのって2〜3色ぐらいでグラデなしの
ときだけのような希ガス

綺麗にならないのはグラデがかかってほしいところでちょうど
法線(内積?)が段階的にかわってくれるとは限らないってところがポイントだと思う
つまり、内積→マップの値の変換でうまくいかない

123 名前:デフォルトの名無しさん mailto:sage [2009/07/01(水) 00:50:19 ]
境界って輪郭線じゃなくてシェーディングの部分でしょ?
だったら実際のところトーンマップの中間をグラデにしてるだけだと思うが>CelView
きたねぇところはきたねぇし


124 名前:デフォルトの名無しさん mailto:sage [2009/07/01(水) 01:54:32 ]
>>123
境界の認識はあってるよ
実はCelView見てないけど
だったら高解像度になるにつれ余計なことしないほうがいいな

ようはシェーディングの境界をぼかしたいわけじゃなくて
シェーディングの境界がジャギってんのが気に入らないんだろ?

125 名前:デフォルトの名無しさん mailto:sage [2009/07/01(水) 11:42:26 ]
プログラマブルシェーダについて質問です。
bool型定数を使った静的分岐をやろうとしました。
ttp://msdn.microsoft.com/ja-jp/library/bb944006(VS.85).aspx
>静的分岐では、ブール型のシェーダー定数に基づいてシェーダー コード ブロックのオン/オフを切り替えることができます。
>これは、現在レンダリングされているオブジェクトの種類に基づいて
>コード パスを有効または無効にできる便利な方法です。
>描画呼び出しの間では、どの機能を現在のシェーダーでサポートするかを決定し、
>その動作に必要なブール フラグを設定できます。
>ブール定数で無効にされたステートメントは、シェーダー実行中にスキップされます。

下記のようにやってみたのですが、
fcx.exeでコンパイルしたものを覗いたところ、cmp命令が使われてしまっていました。
それでは分岐による負荷がかかってしまいますよね。

分岐負荷がかからないコードブロック単位での静的分岐とは、どうやるのでしょうか?

bool UseTexture;

float4 PS(VS_OUTPUT In) : COLOR
{
if (UseTexture)
{
In.Color *= tex2D(DecaleSamp, In.TexDecale);
}
return In.Color;
}

126 名前:デフォルトの名無しさん mailto:sage [2009/07/01(水) 14:57:45 ]
#ifdef
#else
#endif

127 名前:デフォルトの名無しさん mailto:sage [2009/07/01(水) 18:58:43 ]
>>125
静的に決定させる為には、
静的に決定出来なきゃ駄目だよね。

>>125のコードだと、「bool UseTexture」は
いつ何時変わる可能性があるので、コンパイラは
決め撃ちすることは出来ない。

方法としては、>>126のプリプロセッサ以外に、

@「static const UseTexture = true;」にする。

Aシェーダの引数で受け取り、passで分岐する。

float4 PS(VS_OUTPUT In,
uniform bool UseTexture ) : COLOR
{
if (UseTexture)
{
In.Color *= tex2D(DecaleSamp, In.TexDecale);
}
return In.Color;
}

technique T
{
pass P0{ pixelShader = compile PIXELSHADER_TARGET PS( false );}
pass P1{ pixelShader = compile PIXELSHADER_TARGET PS( true );}
}

いづれも、最適化とプリシェーダはONにしておくこと。

128 名前:デフォルトの名無しさん mailto:sage [2009/07/01(水) 20:01:27 ]
>>126-127
アドバイスありがとうございます。
静的分岐とは言え、さすがにON/OFFのチェンジはしたいので
>>126や、>>127の@というわけにはいきません。

ひとまず、>>127のAではうまくいきました。

そこで再質問なのですが、グローバル定数は、uniformとして扱われるMSの説明に書いてある上、
1回の描画命令の間では不変ですよね?
グローバル定数ではダメなのでしょうか?(ダメだったから>>125はダメだったわけですが…)

正直引数のuniformでやる方法ですと、
pass P0{ pixelShader = compile PIXELSHADER_TARGET PS( false );}
pass P1{ pixelShader = compile PIXELSHADER_TARGET PS( true );}
このようにtrueの場合とfalseの場合をいちいち定義しなければならず、
組み合わせが多い場合(ライトON/OFF、影ON/OFFなどなど)に組み合わせ爆発が厄介そうです。

uniform int の場合はintの取りうる範囲が多すぎるため、
PS(0) PS(1) のように定義しなければならないのはわかるのですが、
MSの説明を見る限り「bool型のシェーダ定数は特別扱いだよ」みたいに読めるのですが、
bool型を使うことによる利点のようなものは何かないのでしょうか?
MSの説明を見て

129 名前:デフォルトの名無しさん mailto:sage [2009/07/01(水) 20:38:08 ]
>>128
>1回の描画命令の間では不変ですよね?
シェーダの生存期間は、コンパイルによって
exe(的なもの)として生成されてから、破棄されるまでの間です。
描画命令間ではありません。
定数が静的であるとは、生成から破棄の間静的であることです。
描画命令の間不変としたいなら、描画毎のコンパイルが必要。

>組み合わせが多い場合(ライトON/OFF、影ON/OFFなどなど)に組み合わせ爆発が厄介そうです。
そうです。これはD3D9世代の欠点でもあります。
これを補う為に、フラグメントシェーダやデファードレンダリングなどがあったりします。
DX11では動的リンクが加わるそうなんで、ちょっとはマシになるかも。

130 名前:デフォルトの名無しさん mailto:sage [2009/07/01(水) 22:30:38 ]
DX11でシェーダの連結ができるって大騒ぎしてるけどさ
なんかDX9のフラグメントリンカーの存在忘れたような大騒ぎがよな

無かったことにされてるのか??
情報もえらく少ないし。

131 名前:デフォルトの名無しさん mailto:sage [2009/07/01(水) 22:35:50 ]
シェーダ爆発なんて騒ぐのはキレイなエンジン作りたいやつだけで
普通は運用でどうにでもなるだろ。



132 名前:デフォルトの名無しさん mailto:sage [2009/07/01(水) 23:20:36 ]
>>130
wlog.flatlib.jp/item/1219
wlog.flatlib.jp/item/1230

このブログがわかりやすいが、DynamicShaderLinkageは
動的リンクというよりは、サブルーチンコールに近いものらしい。
イメージとしては、動的にShaderの部品を組み上げて
1つのShaderを作るのがフラグメントリンカならば、
とりあえず全てがつまったmain()プログラム的なShaderを1つ作って、
動的に個々の分岐を決定出来るのがDynamicShaderLinkageということになる。
これが良くなったかどうかわからんが、より普通になった感じだな。

133 名前:デフォルトの名無しさん mailto:sage [2009/07/01(水) 23:24:51 ]
>>130
フラグメントリンカを使ってる人は
今現在、世界で4人、
商用・非商用プログラムで使われてる例はゼロらしいよ。

134 名前:デフォルトの名無しさん mailto:sage [2009/07/02(木) 01:10:26 ]
現状のPC構成だと殆どのケースでネックになるのがCPUだから
GPUで多少分岐したところで全体の速度に大差はないからな。
多少のシェーダー負荷は承知の上でまとめちまうほうが管理が楽。

135 名前:デフォルトの名無しさん mailto:sage [2009/07/02(木) 01:39:03 ]
DirectSound で再生しながら、
横軸に周波数、縦軸に音量を表すようなグラフを
リアルタイムで描きたいです。
とりあえずWAVを再生するところはできてるんですけど、
そのようなグラフを描くにはどうすればいいですか?


136 名前:デフォルトの名無しさん mailto:sage [2009/07/02(木) 01:48:55 ]
すれ違いじゃねっかな。
再生できてるならそのデータをそのまま解析すればいい。
どういう風なデータ構造になってるか分からないって質問は論外。

137 名前:デフォルトの名無しさん mailto:sage [2009/07/02(木) 01:49:57 ]
spectrum analyzer source code
でググったら。



138 名前:デフォルトの名無しさん mailto:sage [2009/07/02(木) 14:05:54 ]
フルスクリーン描画をしているときに画面中にダイアログを表示するのってどうやるの?

フルスクリーン描画しているウィンドウがフォーカスを失うと
device->Present()が失敗してしまう問題と、

フルスクリーン描画をかけるとほかのウィンドウが表示されてても
描画内容が上書きされてしまう問題とがあるわけだけど。

139 名前:デフォルトの名無しさん mailto:sage [2009/07/02(木) 18:24:20 ]
深度バッファシャドウについて質問です。

完全な影になる部分は、RGBA(0.5f, 0.5f ,0.5f, 1.0f)であるとします。

普通の理屈通り使うと、ライトから見て裏面になる部分は、深度バッファシャドウ的に影であると判定されますよね。
でも、ライトから見て裏面になる部分は、すでに頂点シェーダ上でCOLOR0の値が半減しているはずです。

ピクセルシェーダでの判定にひっかかったからといって、さらに半減してしまうと、影が濃すぎることになりますよね。

これは、頂点シェーダでは影による表面色の補正をかけず「影の濃さ」を計算してピクセルシェーダに渡し、
深度バッファシャドウとライティングのシャドウを先に計算し、最後に表面色に反映。としなければならないのでしょうか?

140 名前:デフォルトの名無しさん mailto:sage [2009/07/02(木) 19:52:52 ]
影と陰ね
これは同じ物理現象だよね
たしか

141 名前:デフォルトの名無しさん mailto:sage [2009/07/02(木) 19:57:29 ]
シャドウマップのサンプルがあるんだからそれ見ればいいだろ
三項演算子使ってるから



142 名前:デフォルトの名無しさん mailto:sage [2009/07/02(木) 20:01:13 ]
Direct3Dの色ってどうして少数使うの?
遅いでしょ。

143 名前:デフォルトの名無しさん mailto:sage [2009/07/02(木) 20:06:18 ]
シャドウマップを影を追加する為のギミックとして
使うのではなく、
光が当たっているかどうかの判断に使うといい。

144 名前:デフォルトの名無しさん mailto:sage [2009/07/02(木) 20:08:04 ]
>>142
正規化してるだけ

145 名前:デフォルトの名無しさん mailto:sage [2009/07/02(木) 20:24:56 ]
>>143
あ、なるほど。
すんなり理解できました。わかりやすい教示ありがとうございます。

146 名前:デフォルトの名無しさん mailto:sage [2009/07/03(金) 08:54:10 ]
>>142
GPUでは小数のほうが早い

147 名前:デフォルトの名無しさん mailto:sage [2009/07/03(金) 15:42:01 ]
SAFE_RELEASEマクロの代わりに以下のようなインライン関数を書いたのですが、IUnknownのポインタがうまく変換されないのでコンパイルができません
inline void SafeRelease(IUnknown *& pUnk)
{
if (pUnk)
{
pUnk->Reelase();
pUnk = NULL;
}
}

以下ポインタの型変換をテストしてみたものですが、どうしてエラーになるコードが駄目なのかがわかりません
このように変換ができない理由を教えて下さい
IDirect3D9 * pD3D9 = Direct3DCreate9(D3D_SDK_VERSION);
//IUnknown *& rp = pD3D9; // エラー
//IUnknown *& rp = (IUnknown*)pD3D9; // キャストしてもエラー
IUnknown * p = pD3D9;
IUnknown *& rp = p; // 一時変数にコピーしてからだとOK

[ VC++2008 EE / DirectX SDK March 2009 ]

148 名前:デフォルトの名無しさん mailto:sage [2009/07/03(金) 16:08:38 ]
IUnknown *& rp = pD3D9; // エラー

149 名前:デフォルトの名無しさん mailto:sage [2009/07/03(金) 16:17:09 ]
関数のコンパイルが成功しない理由は148だと思うのですが、どうしてこの変換が認められないのか教えて下さい

150 名前:デフォルトの名無しさん mailto:sage [2009/07/03(金) 16:22:25 ]
ポインタは変換可能だが、参照は変換できないというだけ。

151 名前:デフォルトの名無しさん mailto:sage [2009/07/03(金) 16:27:14 ]
ありがとうございました。



152 名前:デフォルトの名無しさん mailto:sage [2009/07/03(金) 20:49:27 ]
あえて関数化する必要がないしなー

153 名前:デフォルトの名無しさん mailto:sage [2009/07/03(金) 22:56:19 ]
スマポ使えってこった






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

前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