【C++】 DirectX初心者質問スレ Part17 【C】 at TECH
[2ch|▼Menu]
1:デフォルトの名無しさん
08/04/09 09:55:56
※回答する人も、質問する人も必ず読んでください

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

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

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

【C++】 DirectX初心者質問スレ Part16 【C】
スレリンク(tech板)

2:デフォルトの名無しさん
08/04/09 12:08:16
【関連サイト】

MSDN DirectX
URLリンク(www.microsoft.com)

DirectX Home Page
URLリンク(www.microsoft.com)

BBX (掲示板)
URLリンク(isweb8.infoseek.co.jp)

DXライブラリ置き場
URLリンク(homepage2.nifty.com)

Lamp:ゲーム開発とその学習をサポートするミドルウェア
URLリンク(lamp.sourceforge.jp)

TWINTAIL LOVERS.
URLリンク(www.twin-tail.jp)

[t-pot] PROGRAMMING
URLリンク(www.t-pot.com)

GamDevPukiWiki - DirectX総合スレ (過去ログ等)
URLリンク(gamdev.org)

GamDevPukiWiki - 3DCG製作ソフト (過去ログ等)
URLリンク(gamdev.org)

ゲームを作るための素材を集めよう まとめサイト
URLリンク(paw.my-sv.net)

3:デフォルトの名無しさん
08/04/09 13:29:51
>2
一番下のサイト消えてるみたい

4:デフォルトの名無しさん
08/04/09 15:18:25
マルペケつくろーどっとコム
URLリンク(marupeke296.com)

↑これも入れてもいいんじゃね?
てかここ読めば大抵わかるのと、超初心者ターゲットのしつこいくらいの説明がいい

5:デフォルトの名無しさん
08/04/09 15:32:13
>>2
スレ立てたのはいいが点プレ反の忘れてたぜ!

6:デフォルトの名無しさん
08/04/09 21:23:42
シェーダーファイル(テキスト形式)をコンパイル(バイナリ化)して
ロードする方法ってD3DX〜とかにありますか?

7:デフォルトの名無しさん
08/04/09 22:00:08
このスレの住人なら知っていますね、あの糞開発ツールのことを

・自分のプログラムのバグなのかコンパイラのバグなのかわからない
・他の仕事に応用できない糞開発ツールの独自世界を必死に学習している
・テキストエディタで書いたほうが効率的なのに糞UIツールを懸命に使っている
・糞開発ツールを批判すると「性格が悪いから糞ツールを批判するんだ」と言われる

糞だけど、政治的な理由で無理やり使わされているんですよね。
もう、あんな厨の作った糞ツールを我慢して使うのはやめましょう。

・糞開発ツールを部下に押し付ける上司の命令は無視しましょう。
 上司は糞開発ツールが使われる実績を作ることであの会社のごきげんをとっているのです。
・糞開発ツールを使わせる上司の下では働けません、と上司の上司に直訴しましょう。
・あの糞開発ツール提供会社には「おたくの糞開発ツールは話にならない」と突き放しましょう。
 バグレポートなどしてはいけません。改善要求などもってのほかです。
 あの会社はあなたたちのことをテスター/モルモットとしか思っていません。
・あの会議で「糞開発ツールを使ったら生産性がxx%アップしました」
 なんて話が出たら力強く机を叩き、会議室を出ましょう。
 あの人たちは糞開発ツールをマンセーすることで立場を確保しているのです。

糞な開発ツールを糞だと言える、そんな当たり前の環境をみんなの力で取り戻しましょう。

8:デフォルトの名無しさん
08/04/10 21:32:35
>>6
標準添付のfxc.exeとか?

9:デフォルトの名無しさん
08/04/10 23:30:40
LPD3DXFONTは描画が遅いから使うなと言われましたが
これより早い文字描画をする手段はあるのでしょうか?

10:デフォルトの名無しさん
08/04/10 23:33:21
>>9
必要な文字だけテクスチャとして用意して使う。
コンシューマ機では一般的な方法だけど、速度よりも使用料を削減するためにだったりもするけどね。


11:デフォルトの名無しさん
08/04/11 00:50:24
DrawIndexedPrimitiveUPで四角いテクスチャ3つ表示したいのですが、
何も表示できません。教えてください。
struct CUSTOMVERTEX{
float x,y,z; float rhw; DWORD c; float u,v;
};
IDirect3DIndexBuffer9* pIndex;
g_pD3DDev->CreateIndexBuffer(sizeof (USHORT) * 18,
 D3DUSAGE_WRITEONLY , D3DFMT_INDEX16 , D3DPOOL_MANAGED , &pIndex,NULL);
USHORT index[18] = {
 0,1,2,3,2,1,// 1枚目
 4,5,6,7,6,5,// 2枚目
 8,9,10,11,10,9// 3枚目
};
void *bBuf;
pIndex->Lock(0 , sizeof(USHORT)*12 , (void**)&bBuf , 0);
memcpy(bBuf , index , sizeof (USHORT) * 18);
pIndex->Unlock();
CUSTOMVERTEX v[12]=
{
 { x + width/2, y - height/2, 0.0f, 1.0f,0xffffffff, 1.0f, 0.0f},
 { x + width/2, y + height/2, 0.0f, 1.0f,0xffffffff, 1.0f, 1.0f},
 { x - width/2, y - height/2, 0.0f, 1.0f,0xffffffff, 0.0f, 0.0f},
 { x - width/2, y + height/2, 0.0f, 1.0f,0xffffffff, 0.0f, 1.0f},
 ...(あと8つほど略)
};

g_pD3DDev->SetTexture(0, pTexture);
g_pD3DDev->SetIndices(pIndex);
g_pD3DDev->SetFVF(D3DFVF_XYZRHW | D3DFVF_DIFFUSE | D3DFVF_TEX1);
g_pD3DDev->DrawIndexedPrimitiveUP(D3DPT_TRIANGLELIST ,0,
 12,6 , pIndex ,D3DFMT_INDEX16, v , sizeof(CUSTOMVERTEX));

12:デフォルトの名無しさん
08/04/11 01:07:07
>11
モニタの電源が入ってないんじゃねーの?

と俺のESPが発動したぜ

13:デフォルトの名無しさん
08/04/11 01:28:47
UPを使いたいのかバッファを使いたいのか、どっちかにしろ。危ないぞ

14:デフォルトの名無しさん
08/04/11 07:25:31
ライトの設定がONになってるとOFFで表示したいもんが表示されないとかなかったか?

15:デフォルトの名無しさん
08/04/11 07:55:53
3つで表示できないなら1つ表示の最小限のプログラムをテストすればいいよ。
問題点を絞っていかないといつまでも解決しない。

16:デフォルトの名無しさん
08/04/11 08:32:30
いつまでも目に頼ってるからそういうことになる

17:デフォルトの名無しさん
08/04/11 09:37:15
心眼か

18:デフォルトの名無しさん
08/04/11 18:33:59
WinXpのSp2についてくるDirectX(9.0c)があれば
ラインタイムのインストールとかしなくても動くEXEが作りたいんだが
SDKはどれを使えばいいですか?

19:11
08/04/11 18:35:21
どうも。DrawIndexedPrimitiveの方だと上手く動いたんですけどね。
UP系はいいサンプルが見つからなくてよく分からないです。

>>13
どういうことですか?
msdn見る限りUP系もバッファを使うようですが……。

20:デフォルトの名無しさん
08/04/11 18:52:24
>>19
DrawIndexedPrimitiveUPの第・・・いくつめだか引数に指定するのは、
インデックスバッファじゃなくてインデックスデータそのものだと思ふ
>>11でいうところのpIndexじゃなくてindex

21:11
08/04/11 19:06:18
>>20
本当だ。インデックスデータにしたら描画されました。
ありがとうございます。

一件落着!

22:デフォルトの名無しさん
08/04/11 20:25:40
>>18
October 2004

23:デフォルトの名無しさん
08/04/11 20:34:00
>>21
ろくに調べてないから頓珍漢なこと言ってるかも知れんが、それってIndexBuffer作る意味あんの?

24:デフォルトの名無しさん
08/04/11 20:50:02
>>22
トンクス

みんなSDKは最新の使ってるのかの〜?

25:デフォルトの名無しさん
08/04/11 20:56:23
>>24
使ってない。
・VS6.0を使ってるから
・DLL無いというエラーに素人がちゃんと対応できず、サポートがたるい
・古くても特に不便がない

26:デフォルトの名無しさん
08/04/11 23:09:11
DLL位動的に読み込めよ・・・

27:デフォルトの名無しさん
08/04/11 23:34:25
>>26
頼むから知ったかやめようよ、初心者質問スレでさ・・・

28:デフォルトの名無しさん
08/04/11 23:37:11
PC内に存在しないDLLをどう動的に読み込むんだろう

29:デフォルトの名無しさん
08/04/11 23:43:19
書き方が悪かったな
「DLLを動的に読み込もうとがんばって、読み込めない時は
ユーザに適切なDLLをインスコする様にメッセージを出すアプリの少ないことよ」
こうですか

30:デフォルトの名無しさん
08/04/11 23:46:19
えー?なにこれ、これなんかエラーでた
俺ちゃんとDirectX9.0cとかいうの入ってんぜ?
何この不良品なめてんの
サポートに文句つけてやる「なんか起動しないんすけど責任とれ金払ったんだぞこっちはボケ」

31:デフォルトの名無しさん
08/04/11 23:56:43
しかしd3dx9_xx.dll同梱して配布するとライセンス違反となる罠

32:デフォルトの名無しさん
08/04/12 00:19:32
だから古いSDK使うわけで

33:デフォルトの名無しさん
08/04/12 00:29:32
/*チラ裏
どうせ無償配布してんだから、つべこべ言わずに配布させろよ・・・*/

34:デフォルトの名無しさん
08/04/12 00:41:02
URLリンク(www.microsoft.com)
テキトーにリンク貼って逃げればいいんじゃね?

35:デフォルトの名無しさん
08/04/12 00:59:11
プログラマが「これくらいやってくれるだろ…JK…」と思うことは、大抵のライトユーザーにとって垣根が高い

36:デフォルトの名無しさん
08/04/12 01:02:51
同人ゲーなんかは無断で添付してるのも多いけどねぇ

>>34
インストーラのリンク張るくらいなら、最小構成のセットアップファイルをつけて
起動を促す方が良いと思う。
個人的統計によれば素人にゃこっちの方が行動を起こしてくれる傾向がある、気がする。

37:デフォルトの名無しさん
08/04/12 02:52:45

//素人もやる気ないし
//マイクロソフトもやる気ないし
//苦労するのはいつも作る側
//それでもC++で作るならまだいいほう
//XNAとかラインタイムを3も入れなきゃならない
//もうあほかと
//ランタイム地獄に愛想つかしてVC++勉強したが
//今となってはよかったと思う

38:デフォルトの名無しさん
08/04/12 11:08:43
>>36何それ?どうやんの

39:デフォルトの名無しさん
08/04/12 13:03:56
>>38
単純にdllをプライベート配置するのはライセンス違反だが、
アプリに添付するランタイム用インストーラの容量はある程度減らせるってだけの話。

URLリンク(msdn2.microsoft.com)

40:デフォルトの名無しさん
08/04/12 13:51:50
うわー、同人ゲームのくせにランタイムインストールとか何様だよ
めんどくせーなー
俺様のPCでもちゃんと動くようにするのがプログラマ奴隷の役目だろが
わざわざNYでDLしてやったってのに糞が

41:デフォルトの名無しさん
08/04/12 14:24:39
>>39
インストーラは配布していいのね。
>>40
これだからなかなか金は取れないんだよな・・・俺無責任だしw

42:デフォルトの名無しさん
08/04/12 17:04:26
よし、D3DX使うのやめよう!

43:デフォルトの名無しさん
08/04/12 19:51:21
HLSLでのキューブマップの扱いについて質問です、
URLリンク(tpot.jpn.ph)
ここにある内容をHLSLでやろうとしたのですが、
期待する値が取れてません。

解説と同じようにD3DXCreateCubeTextureでテクスチャを作って、
同じように中身を埋めました。
で、pEffect->SetTextureで渡してます。
HLSL側では、
textureCUBE CubemapNormal;
samplerCUBE CubemapSampler_forNormal = sampler_state {
texture = <CubemapNormal>;
MinFilter = LINEAR;
MagFilter = LINEAR;
MipFilter = NONE;
AddressU = Clamp;
AddressV = Clamp;
};
でピクセルシェーダの部分で
N = texCUBE(CubemapSampler_forNormal, In.N).xyz * 2.0f - float3(1.0f, 1.0f, 1.0f);
とやっています。
何かおかしい部分ありますでしょうか?

44:43
08/04/12 20:56:51
すみません、解決しました。
D3DPOOL_MANAGEDで作ったらダメなんですねorz
RENDERTARGETにしてるからMANAGEDだと失敗するのかな。

45:デフォルトの名無しさん
08/04/12 22:10:55
RENDERTARGETは、DEFAULTじゃないとダメだよ。

46:デフォルトの名無しさん
08/04/13 00:01:59
D3DXVec2Rotateってないですよね?
D3DXVec2Transformを使えばいいのですが、MATRIXを生成するのがバカらしい…

47:デフォルトの名無しさん
08/04/13 13:18:15
2Dの画像の描画をしたいんだけど、どうしたらいい?

48:デフォルトの名無しさん
08/04/13 13:22:00
>>47
つ MSDN
つ google

49:デフォルトの名無しさん
08/04/13 13:47:59
>>48
探すの面倒だから代わりに探してきてよ

50:デフォルトの名無しさん
08/04/13 14:47:21
>>49
お前、実際もの作るとかなったらそんな程度面倒がってたらなんも作れねーぞ
俺はDrawPrimitiveを薦めるけどね

51:デフォルトの名無しさん
08/04/13 16:05:07
>>50
やさしいね。大好きだよ。

52:デフォルトの名無しさん
08/04/13 20:00:01
HLSLのtex1Dってやつを使ってみようと思うのですが、
これはC++側では普通にCreateTextureでいいのでしょうか?
2次元のテクスチャでいいとすれば、どのように参照されるのかとか、
よろしければ教えてください。

53:デフォルトの名無しさん
08/04/13 20:23:08
>>46
自前でやればいいと思うけど。
XYの2次元ベクトルの回転なら(XcosΘ+YsinΘ, -XsinΘ+YcosΘ)

54:デフォルトの名無しさん
08/04/13 20:39:14
>>53
さすがに2次元ベクトルの回転は高校で習ったからわかりますが、お気遣いどうもw
いやー、ライブラリにあるなら独自作らないほうがいいと思ったもんで。ありがとう

55:デフォルトの名無しさん
08/04/13 20:46:27
>>54
荒らし?w
純粋にライブラリにあるかどうかが知りたかっただけなら
コンパイル通るか試すだけで済むだろ。Vec3Vec4の関数名は統一されてんだし。
それかヘッダ見るかすればいいのに。

56:デフォルトの名無しさん
08/04/13 22:14:54
Presentの引数を全てNULLにした際に描画される領域を取得することは出来ませんでしょうか。
DXが描画しているウィンドウ内に可動ツールバーがあり、
クライアント座標を取得する関数ではそのツールバーの領域も含めてしまうため求めたい値が取れません。
C++で取得できればこしたことは無いのですが、せめてDXで取得出来る形にさえなっていれば・・・

57:デフォルトの名無しさん
08/04/14 00:04:12
>>40
ネタのつもりでやってるんだろうが実際はこういう奴ばっかりなんだよ
で、ランタイム配布めんどくさいよねっていうと
そんなの気にならないくらい楽しいゲーム作ればいいとか
本題からズレたことを言っていい気になるやつが出てくる
DirectX8以前縛りで作るとそこら辺気にしなくてよくてラク

58:デフォルトの名無しさん
08/04/14 00:06:25
アホをイラつかせられるだけでも、DX9とかにする価値があるわけだ。

59:デフォルトの名無しさん
08/04/14 01:28:51
XNAなら

DirectX
.NETFW
XNAFW

の3つのラインタイムでイライラMAXだな

60:デフォルトの名無しさん
08/04/14 02:37:33
アレはユーザもイライラ
開発者もイライラ

61:デフォルトの名無しさん
08/04/14 13:33:16
>>55
あるものを発見するのは楽だが、無いものを無いと確信するのは難しい
また、ライブラリにあるものを自前で再実装するのは大抵の場合悪

62:デフォルトの名無しさん
08/04/14 14:19:04
そんなメタ正論持ち出さんでも
ドキュメントのD3DX項目眺めるだけじゃんこの場合・・・

63:デフォルトの名無しさん
08/04/14 14:47:03
46がどれくらい調べたのかはわからんが、言葉どおり
D3DXVec2Rotate
という関数があるのかを聞いたわけじゃないだろ?
D3DXVec2Rotate 相当の関数があるかってことだろうから、俺でも「多分無い」としか言えん
D3DXVec2Transformは知ってたわけだから、それなりにサイトを見たんじゃなかろうか。


…MSDNもVer古い関数載せてたりするからあんまり信用できないんだよなw
特にI3DXAnimationControllerあたり

64:デフォルトの名無しさん
08/04/14 14:51:55
ID3DXEffect で

シェーダー側の
float2 形式で渡したいんですけどできないんでしょうか?

ID3DXEffect::SetVectorは、D3DXVECTOR4 だし

65:デフォルトの名無しさん
08/04/14 14:55:39
SetFloatを2回やるのじゃダメなんか?

66:デフォルトの名無しさん
08/04/14 15:09:36
>>64
俺もそれ思ったけど多分GPUの仕組みからして
SetVector(float4)かSetFloatだけしか用意してないんだとオモタので気にしてない。
詳しくは知らないけど、GPUの定数レジスタって全部float4じゃなかったっけ?
(floatもあるのかもしれないけど。)
floatを2つにして渡すか、float4のうち2つを使うかは自分の設計や効率と相談ってことで。

67:デフォルトの名無しさん
08/04/14 20:16:48
IDirect3DDevice9::SetPixelShaderConstantFは
float4の配列を引数に受け取る訳で
こいつに合わせるのがベターだろう

68:デフォルトの名無しさん
08/04/15 11:31:58
ID3DXAnimationControllerで質問です。
現在アニメーショントラック合成をやっているのですが…

Aのとあるポーズ(とある時間で停止)から、Bの歩きアニメ(再生)へ、1秒かけて変移。
とやる場合、以下のようにやって実現しました。

・トラック0にAをセット
・しばらく後「歩くボタン」を押した
・トラック0のデータをトラック1に移行
・(DESCを初期化した上で)トラック0にBをセット
・トラック0の時間のみSetTrackAnimationTimeで進め、行列更新のためにAdvanceTime(0.0f,NULL);を呼び出す
・1秒かけてTrackWeightを変移させていく

ですが、AからBに変移している途中の状態から、Cアニメへ移行したい。という場合に困っています。
もちろんトラックをまた1つずつずらして、0:C 1:B 2:A にし、Weightをきちんとやれば実現は可能です。
ですがこの方法だと、さらに途中でDアニメ…Eアニメと(そんな多重になるようにすんなとは思いますが)移行させようとした場合、トラックがいくつあっても足りません。

「現在のポーズ」をアニメーションセットとして認識させる方法はないでしょうか?

69:デフォルトの名無しさん
08/04/15 18:57:19
MSが提供しているのは便利機能であってそれ以上を求めたいなら自前でやれと。


70:デフォルトの名無しさん
08/04/15 19:22:06
DX関数群は使用しないでください
頭が腐ります

71:デフォルトの名無しさん
08/04/15 20:19:51
D3DXのアニメーションコントローラとか使ってないからわからんけど
Weightをきちんと、って頂点に含まれるウエイト値をいじるってこと?
そんなことしたらデメリット多いし俺も自前でやった方がいいとオモ

72:デフォルトの名無しさん
08/04/15 20:35:21
アニメーションコントローラは、アニメAとアニメBに重みをつけられるんだよ
アニメAで設定されてるを8割採用し、アニメBで設定されてる角度を2割採用。みたいな感じ。
それをウエイトって言うのよ

73:71
08/04/15 20:47:50
なるほど、D3DXでもモーションブレンドとかできるのかぁ。
「現在のポーズ」の状態を擬似的に以降のフレームに入れて騙したりは出来ないのかな。
あるいはアニメーション時間を騙すとか。役に立てずスマンコ

74:デフォルトの名無しさん
08/04/15 20:51:25
70はネタだよね?
なかったら脂肪決定な漏れ

75:デフォルトの名無しさん
08/04/15 21:36:59
わかりにくかったらごめんなさい。

画面に四角形を描画した後、その四角形の一つの頂点の座標だけを動かして
四角形を歪んだような形にすることってできますか?

76:デフォルトの名無しさん
08/04/15 21:49:24
>>75
意味がわからんが、3Dでポリゴン描画のことを言っているならばできる
BitBltなどの2D描画のことをいっているならできない(自作すべし)

77:デフォルトの名無しさん
08/04/15 21:52:28
描画してからとなると描画したバッファ自体をテクスチャとして使用すれば変形も可能。
>>76
TL頂点でも出来る。

78:デフォルトの名無しさん
08/04/15 23:12:33
DirectInput8でジョイパットの状態を

pJoyDevice->GetDeviceState(sizeof(DIJOYSTATE2), &js);

で取得すると

js.lX と js.lY が十字キー押してないのに-1になるんだが
うちのジョイパットがおかしいんだろうか?
押してるときは 6とか-6とかになるのに
押してないときは 0でなく-1って一体

79:78
08/04/16 00:13:20
事故解決
無効ゾーンを設定して小さすぎる値を無視することでようやく解決

80:デフォルトの名無しさん
08/04/16 00:19:04
それ十字キーとはいってもアナログなんじゃない?
アナログだと、何も入力してないつもりでも大抵入ってる
だからその解決法が正しいね

81:デフォルトの名無しさん
08/04/16 00:28:56
>>80
サイバーガジェットのPSのコントローラーつなげられる
USB接続のジョイパット変換機なんだがアナコンのほうは認識しない古いやつ
で、十時キーがいつもマイナス方向に微妙に入ってるってことになってるみたい
アナログじゃないのにアナログ扱いされることもあるのね
勉強になりました


82:デフォルトの名無しさん
08/04/16 01:34:51
>>81
俺もDirectInputでは悩んだんだけど、アナログでなくとも
XYZの軸入力は指定した範囲で送られてくる(指定した最大値・最小値で)から
同じように扱うしかなかった。んで、-1000〜1000の範囲にして
-100〜100は無視するとかしたと思う。
友人のPS2コントローラの変換機もうまく動かないやつがあって、
ボタンの状態が、普段がONで押すとOFFになるんだったかなぁ。
コントローラの送ってくる情報は基本的に信頼しない方がいいかもしれない。
色んなメーカーが気軽に作ってるようだから。

83:デフォルトの名無しさん
08/04/16 06:37:08
>>76,77
ありがとうございます。
いろいろと試してみます。


84:デフォルトの名無しさん
08/04/16 15:00:51
背景を透明にすることってできますか?


85:デフォルトの名無しさん
08/04/16 15:12:11
何の背景よ?
ウィンドウを透過させてデスクトップの壁紙が見えるようにしたい?

86:デフォルトの名無しさん
08/04/16 15:15:41
>>85
説明不足ですいません。
そのとおりです。描画してあるものはそのままに
ウィンドウを透過させて壁紙が見えるようにしたいんです。


87:デフォルトの名無しさん
08/04/16 17:22:27
レイヤードウィンドウでぐぐるといい。DirectXとは無関係だよ。

88:デフォルトの名無しさん
08/04/16 17:31:04
デスクトップアクセサリーみたいなのだとリージョンとかもあり
ま、結局はDirectXと無関係

89:デフォルトの名無しさん
08/04/16 22:02:09
DrawTextメソッドのRectangleが値渡しなのでCalcRectが機能しません。

って英語でどう書くの?

90:デフォルトの名無しさん
08/04/16 22:10:59
Fuckin' DrawText Method Rectangle!!
Goddamn CalcRect Don't WORK!!
Sun of a bitch!!

91:デフォルトの名無しさん
08/04/16 22:16:32
>>89
DT_CALCRECT becomes Font.MeasureString in managed code.

92:デフォルトの名無しさん
08/04/16 23:58:30
解決しますた。

93:デフォルトの名無しさん
08/04/18 01:28:34
XAudio 2 にCPUのSSEサポートが必要ってどこかに書かれてますか?
URLリンク(www.microsoft.com)
にはないようなんですが、こんな書き込みを見ました
スレリンク(win板:981番)


94:デフォルトの名無しさん
08/04/18 02:03:03
URLリンク(msdn2.microsoft.com)(VS.85).aspx

ドキュメントには明記されてるね。

95:デフォルトの名無しさん
08/04/18 02:17:53
>>94
ありがとうございます、やはり必要なんですね

96:デフォルトの名無しさん
08/04/18 07:54:08
問題は見つかりませんでした。
DirectDraw テスト結果 : テストはすべて成功しました。
Direct3D 7 テスト結果 : エラー - ステップ 8 (3D デバイスを作成中): HRESULT = 0x80004005 (一般エラー)
Direct3D 8 テスト結果 : エラー - ステップ 8 (3D デバイスを作成中): HRESULT = 0x8876086c (エラー コード)
Direct3D 9 テスト結果 : エラー - ステップ 8 (3D デバイスを作成中): HRESULT = 0x8876086c (エラー コード)

すみませんこのエラーコードってなんですか?

97:デフォルトの名無しさん
08/04/18 11:43:37
なんのツール上で吐かれたエラーなのかすら説明なく?

98:デフォルトの名無しさん
08/04/18 11:44:46
ヘッダから漁ってみそ

99:デフォルトの名無しさん
08/04/18 16:14:21
なんか、シェーダー側のグローバル変数に
データが届きません><。

.cpp側
m_hMapWidth = m_pEffect->GetParameterByName( 0 , "MAP_WIDTH" );
m_hMapHeight= m_pEffect->GetParameterByName( 0 , "MAP_HEIGHT" );

hr = m_pEffect->SetFloat( m_hMapWidth , 490.0f );
hr = m_pEffect->SetFloat( m_hMapHeight, 472.0f );

.fx側
float MAP_WIDTH;
float MAP_HEIGHT;

と書いても、MAP_WIDTHには、数値が入ってないみたいです。
シェーダー側で、MAP_WIDTH=490.0fすれば、ちゃんと動きます。

SetFloatの前にやっている
SetFloatArrayは、ちゃんと数値届いてるのに><。

なんか、SetFloatの制限とかあるんですか?
ハンドル利用してないバージョンでも試しました。
やっぱだめです。



100:デフォルトの名無しさん
08/04/18 16:20:27
intに変えて、SetIntにしてみたらいけました。
Floatって400とか行くと駄目なん?

101:100
08/04/18 16:21:53
嘘です。やっぱいけてませんでした><。

102:デフォルトの名無しさん
08/04/18 21:02:51
400程度でケタ落ちとかは無いよ。
GetParameterByNameで得たハンドルがNULLでないか、
hrがE_FAILになってないか、そのへん見てみたら?
あとはエフェクト側の定数が多すぎて定数レジスタ食い尽くしてないか。
(頂点シェーダ3_xまでは定数レジスタはfloat4×256個しかない)

103:デフォルトの名無しさん
08/04/18 21:50:06
補足。浮動小数点値ってのは、
floatなら値を24bit、桁を8bitで保存してる(んだったと思うけど自信ない・・・w)。
だから10000000000000000.5とかの結果になった場合の0.5、あるいは
20.0000000000000000128とかの0..0000000000000000128の部分が消える。
だから値そのものの大小は関係ない。基本的に幅が足りないときに細かい部分が消えるだけ。
(桁が8bit?で足りないときも狂うけどね。)間違ってたら補足ヨロ。

104:デフォルトの名無しさん
08/04/18 22:13:08
値は23bitで指数が8bitで符号が1bit

105:デフォルトの名無しさん
08/04/18 23:02:04
Winsockが面倒だからDirectPlay使ってたのに、
今後は使わないでWinsock使ってくれってどういうことだ、クソックソッ

106:デフォルトの名無しさん
08/04/18 23:15:12
>>96
URLリンク(oshiete1.goo.ne.jp)
ちょうど同じ質問してる人がいたぜ
ようはグラボがウンコなんだ

107:デフォルトの名無しさん
08/04/19 00:20:22
>>105
いつの話だよ

108:デフォルトの名無しさん
08/04/19 01:21:49
>>104
暗黙の1ビットがあるから結局24-bitでいいんじゃね?

109:デフォルトの名無しさん
08/04/19 09:58:30
それくらいわかっとるわいw
このスレじゃ書いといた方がよかったか?

110:デフォルトの名無しさん
08/04/19 14:18:04
103です。いや補足してもらえて助かりましたw
しかし99は直ったんだろーか。

111:デフォルトの名無しさん
08/04/20 00:39:12
>>99はハンドルがNULLで取得出来ていないんだろ
よくある話だ

112:デフォルトの名無しさん
08/04/21 05:19:46
質問です。
ビルボードを使って描画しようとしているのですが、
テクスチャを指定するためにLockメソッドでロックし、
頂点座標を指定しようとしたところ、Lockメソッドの実行時に
「 0x00413a9d でハンドルされていない例外が発生しました :
 0xC0000005: 場所 0x00000000 を読み込み中にアクセス違反が発生しました。 。」
と表示されてしまいます。何が問題になっているのかさっぱり分からないのですが
分かる方はいらっしゃいますでしょうか。


113:デフォルトの名無しさん
08/04/21 05:20:10
書いてから日本語がおかしいことに気づきました・・・すみません。

114:デフォルトの名無しさん
08/04/21 05:23:29
”場所” 0x00000000を読み込み、っつーのは
NULL(0)になっているポインタからその指す内容を得ようとしたっつーことだ。
そのテクスチャのポインタか何かがNULLになってるんじゃね?


115:デフォルトの名無しさん
08/04/21 05:35:44
>>114
成る程ありがとうございます。
テクスチャの位置調整用の関数から、テクスチャ位置情報を受け取っているので、
恐らくその位置調整用関数が上手くいってないのだと思います。
こんな時間なので即レスが来るとは思いませんでした。
ありがとうございます。

116:デフォルトの名無しさん
08/04/21 06:57:37
質問したくせにレスが来るとは、だと?ふざけてんのかてめえ

117:デフォルトの名無しさん
08/04/21 07:25:10
>>49とか>>51とか>>54とか>>99よりはマシだよw
多分悪意は無いさ。

118:デフォルトの名無しさん
08/04/21 07:58:49
普通だろw
こんな時間にもかかわらず答えてくれた好意にとても感謝している、って意味にしかみえねーよw

119:デフォルトの名無しさん
08/04/21 15:37:14
>>116の人気に嫉妬(^Q^)

120:デフォルトの名無しさん
08/04/21 16:38:56
>>117
54は俺なんだが、そんなにひどいレスだったか54は…?
「D3DXVec2Rotateに相当するD3DXの関数はありますか?」って聞けば誤解なかったんだろうという反省はしてるけど

121:デフォルトの名無しさん
08/04/21 18:46:19
>>120
>お気遣いどうもw
「w」って笑顔じゃなくて笑い、2chでは嘲笑うという意味のほうが強いかな。
>>117-118が使い所として良い。
極度な訳だけど「お気遣いどうもw 」→「そんなの分かってるわボケwww心配しなくても思ってるほどバカじゃねぇよwwww」
答えてくれた人に対して何言ってるのとか思うけどね。
皆が使ってるから意味も知らずに使っている(悪気がない)ということより、意図的に使っているとしか考えられない。
あと文法的にもマナーの面からもお礼の言葉は最初に書くのが基本なので、印象が余計に悪く('A`)

でもマナーが成ってないのにルールは守り、ラフで使いやすいのが2chのいいところだよな。

122:デフォルトの名無しさん
08/04/21 20:59:47
wの意味なんてどっかで定義されたわけじゃないし、使う人見る人で違うだろww
俺には54はそこまで嘲笑には見えんぞ

123:デフォルトの名無しさん
08/04/21 21:22:53
「俺には」と言うのが不味いんだよな
携帯電話で使い始めたような若い人にとって何とも無いことでも
比較的年齢が高めなこの板ではあまりいい印象がない

少なくともこの板では嘲笑うレスに対して使われるのがほとんどで
質問者もそうだけど回答者も滅多に使わない
文章が乱暴だけど他の板に比べれば紳士的な感じかな

124:デフォルトの名無しさん
08/04/21 21:35:33
そうかすまん。板の空気を読もうという話ね


まぁ、俺の見る限りこの板には本当の紳士は1割にも満たないわけだが・・・

125:デフォルトの名無しさん
08/04/21 21:48:14
53=55=117です。
議論するつもりではなかったんだけど、自分的にはちょっと
カチンときたので例に挙げましたw(ちなみに99は解決したかどうか書いてくれなかったから。
後から、54も99も例に挙げたのはマズかったかなと思いましたが。)
相手の機嫌を一切損ねずに質問・回答するのは不可能に近いとは
自分も思うところだけど、
自分は2chに限らずとも、他人の親切に対して笑いながら「お気遣いどうもw」
みたいな反応が出来る人間はどうかと思うので。
(付け加えるなら、D3DXVec2Rotate()と同機能の関数があるかどうかを、
D3DXVec2Rotateという名前の関数が無いとわかっているのに
ここで訊こうとするのはレアケースどころかナンセンスだとすら思う。個人的には。
>まぁ、俺の見る限りこの板には本当の紳士は1割にも満たないわけだが・・・
別にあまり攻撃したくはないのだが、紳士にしか回答をもらいたくないのであれば
ここで訊くべきかどうかくらいの判断は自分で下すべきだ。

126:デフォルトの名無しさん
08/04/21 21:51:20
別に俺は紳士からじゃ無くてもオーケーよ〜
まぁ、どこにでもいろんな人がいるということだね。どっちの考え方もよく分かるよ
受け入れられるかどうかはその人しだいだけどな

127:125
08/04/21 21:58:16
自分自身、懐疑的に見すぎていたきらいがあるので悪かったなと思ってまつ。
お騒がせしました。

128:デフォルトの名無しさん
08/04/21 22:44:22
おまえらどんだけピュアなんだよ
2chじゃなくてちゃんとした所で聞いたほうがいいぞ

129:デフォルトの名無しさん
08/04/21 22:50:40
態度が悪ければ同等の態度で返されるってだけだろ?
自業自得

130:デフォルトの名無しさん
08/04/21 23:35:33
>>112
ちょっと周辺のコード晒してみぃ

っつかなんでこうやってできない奴に限って
動いてるソースのコピーからはじめないのか・・・

131:デフォルトの名無しさん
08/04/21 23:36:54
あ、更新忘れてたw
>>130は解決してたら無視してくれ

132:112
08/04/22 01:17:52
未だに悪戦苦闘中でしたので、コード晒してみます。

HRESULT SetFVFTexturePosition(
LPDIRECT3DVERTEXBUFFER9 aFVFBuffer , DWORD aType , DWORD aChar )
{

theCUSTOMVERTEX* tmpVertex; //頂点バッファをロック
theTexPositionRECT aTexRECT; //テクスチャの座標を受け取ります

SetCellTextureRECT(aChar , &aTexRECT);

//頂点バッファをロック
if(FAILED(aFVFBuffer->Lock( 0 , 0 , (void**)&tmpVertex , 0 ))){return(E_FAIL);}

//頂点は4つ、頂点座標、頂点職、テクスチャ座標を設定する
//D3DPT_TRIANGLESTRIPで描画するので頂点の番号と座標の対応に注意すること
tmpVertex[0].tu = aTexRECT.u0 ; tmpVertex[0].tv = aTexRECT.v0 ;
tmpVertex[1].tu = aTexRECT.u1 ; tmpVertex[0].tv = aTexRECT.v0 ;
tmpVertex[2].tu = aTexRECT.u0 ; tmpVertex[0].tv = aTexRECT.v1 ;
tmpVertex[3].tu = aTexRECT.u1 ; tmpVertex[0].tv = aTexRECT.v1 ;

//書き込みが完了。頂点バッファのロック解除
aFVFBuffer->Unlock();

return(S_OK);
}


133:デフォルトの名無しさん
08/04/22 01:18:48
//セル用のテクスチャー
VOID SetCellTextureRECT(DWORD aChar , theTexPositionRECT *aRECT ){

const float kCellSize = 1.0 / 8.0f ;

//0xffの場合はビルボード全体にテクスチャを描画
if(aChar == 0xff){aRECT->u0 = 0.0f; aRECT->u1 = 1.0f; aRECT->v0 = 0.0f; aRECT->v1 = 1.0;}
else{
//あふれを防止
aChar &= 0x07;

aRECT->u0 = 0.0f ; aRECT->u1 = 1.0f;
aRECT->v0 = kCellSize * aChar ;
aRECT->v1 = aRECT->v0 + kCellSize ;
if(aRECT->v1 > 1.0f){aRECT->v1 = 1.0f;}
}
}

134:デフォルトの名無しさん
08/04/22 05:52:48
ほんとにLockメソッドで落ちてるのか疑問だけど
とりあえずtmpVertex[0].tvが全部0指定してるのは直した?
(uは0〜3なのにvは0だけになってる

135:デフォルトの名無しさん
08/04/22 08:51:09
Lock()実行時に落ちてるならaFVFBufferがNULLであるとしか考えられないな

136:デフォルトの名無しさん
08/04/22 15:20:52
HLSLでのデバッグ環境ってありますか?

137:99
08/04/22 19:03:25
プロバ全体がアク禁くらって書き込めませんでした。

結局、パラメータが渡ってません。
複数シェーダを書いて、まとめて(20個ぐらい)ロードしているんですが
SetFloatArray使ってないシェーダは、
ちゃんと幅、高さが渡ってるのに
SetFloatArray使ってるのは失敗するです><

>>102
GetParameterByNameは、ちゃんと実態がいます。
ハンドルなしで、直接指定もやってみました。
hrも成功しているはず(S_OK比較しています)です。



138:99
08/04/22 21:19:38
シェーダー側に
if( param == 490 ){ // 渡した数値比較
///
}
と書いたら、///の部分がちゃんと動きました。
数値は、渡っているみたいです。
しかし、直にparam=490と書いた時と同じパラメータ渡した時との動きが違うのです。
そういうのって何かありますか?
もうわけわからんちん

139:デフォルトの名無しさん
08/04/22 21:20:46
定数の数はいくつある?
もしかするとそのWIDTHとHEIGHTをfloat4(のxとy)にしたら直るかも?

140:デフォルトの名無しさん
08/04/22 21:21:16
単純にシェーダの部分がバグってるんだろう
『たまたま』動いただけじゃね?

141:デフォルトの名無しさん
08/04/22 21:23:38
ん、渡せてないわけではないのか。
定数多すぎてどれか溢れてるくらいしか思いつかん

142:デフォルトの名無しさん
08/04/22 21:30:43
てか
GetParameterByNameはあくまで
シェーダーの定数レジスタから値をひろってくるだけだぞ?
グローバル変数に値をいれたいなら
hr = m_pEffect->SetFloat( "MAP_WIDTH", 490.0f );
hr = m_pEffect->SetFloat( "MAP_HEIGHT", 472.0f );
だろ


143:デフォルトの名無しさん
08/04/22 21:33:59
こんな質問で即レスしてくれたお。
このスレの人はいい人がおおいですね><。
ありがとうございます。

ピクセルシェーダーはこんなかんじです
// MAP_WIDTH = 490.0f;
// MAP_HEIGHT = 472.0f;

Color = ( tex2D( SrcSamp, In.Tex )
+ tex2D( SrcSamp, In.Tex + float2( -1.0f / MAP_WIDTH, 0 ) )
+ tex2D( SrcSamp, In.Tex + float2( +1.0f / MAP_WIDTH, 0 ) )
+ tex2D( SrcSamp, In.Tex + float2( -3.0f / MAP_WIDTH, 0 ) )
+ tex2D( SrcSamp, In.Tex + float2( +3.0f / MAP_WIDTH, 0 ) )
+ tex2D( SrcSamp, In.Tex + float2( -5.0f / MAP_WIDTH, 0 ) )
+ tex2D( SrcSamp, In.Tex + float2( +5.0f / MAP_WIDTH, 0 ) )
)/7.0f;
パラメータは、ちゃんと同じ値が渡ってるのに
・シェーダーに直書き(上のコメントを外す)
・プログラムからパラメータ渡し
とでぼかし具合が違うのです。
直書きすると定数として扱われてコンパイルするのかな?
書き方これでいいんでしょうか?

144:デフォルトの名無しさん
08/04/22 21:36:25
いや合ってるよ、GetParameterByNameが返すのは
値じゃなくてそのパラメータのハンドル。
もちろん、毎回GetParameterByNameしてハンドル取るくらいなら
直接名前で指定した方が簡単だろうけども。

145:デフォルトの名無しさん
08/04/22 21:42:08
シェーダーの計算に括弧入れたら、挙動が変わったお><。
こんな感じ
+ tex2D( SrcSamp, In.Tex + float2( -(1.0f / MAP_WIDTH), 0 ) )
+ tex2D( SrcSamp, In.Tex + float2( +(1.0f / MAP_WIDTH), 0 ) )
+ tex2D( SrcSamp, In.Tex + float2( -(3.0f / MAP_WIDTH), 0 ) )
+ tex2D( SrcSamp, In.Tex + float2( +(3.0f / MAP_WIDTH), 0 ) )
+ tex2D( SrcSamp, In.Tex + float2( -(5.0f / MAP_WIDTH), 0 ) )
+ tex2D( SrcSamp, In.Tex + float2( +(5.0f / MAP_WIDTH), 0 ) )
スレ汚し、ほんますんません。

146:デフォルトの名無しさん
08/04/23 01:04:40
D3DXDisassembleEffectで逆アセしてみれば?


147:デフォルトの名無しさん
08/04/23 15:10:05
アセンブラから逃げ出すためにHLSL使うことにしたのに
結局アセンブラやらないとだめなのか><。

148:99
08/04/23 15:38:59
逆アセしてみました。
かなり最適化して感動しました。
読んでなかったあとレジスタの仕組みとかもわかって逆アセしてよかったです。

でも、なんか怪しいので
D3DXCreateEffectで
D3DXSHADER_SKIPOPTIMIZATION //最適化しない
を渡してやってみたところ、うまく行きました><。

ああああああああああ


149:デフォルトの名無しさん
08/04/23 15:51:20
ちなみにSDKは、(April 2007)です

150:99
08/04/23 16:43:54
(March 2008)入れてみた
最適化しても、普通にうごいたお。

最新版、グローバル変数に数値入れられなくなってていい感じだお。

>>103,104,108,109,110,111,139,140,141,142,144,146
ありがとうございました

ぼくの7日間シェーダ戦争
〜完〜

151:デフォルトの名無しさん
08/04/23 21:53:31
おめ

152:デフォルトの名無しさん
08/04/23 22:42:19
FPSを計測してみたら、どんなにがんばっても
秒間60プレームしか描画できてないということがわかった
そんなにたくさんのモデルを描画してるわけじゃないのになと思いながら
モデルの描画量とか画面のサイズとかを減らしていったのに
それでも秒間65フレームくらいしかでない
いくらなんでもプリミティブ1つ描画するのに
秒間60回しか更新できないなんてありえないと思うんだが、
ひょっとしてDirectXってFPSを固定する機能があったりとか
それがデフォルトで有効になってるとかそういうことはありますか?

153:デフォルトの名無しさん
08/04/23 22:49:15
param.FullScreen_RefreshRateInHz = D3DPRESENT_RATE_DEFAULT;
param.PresentationInterval = D3DPRESENT_INTERVAL_IMMEDIATE;


154:デフォルトの名無しさん
08/04/23 23:13:37
>>153
ウインドウモードで作ってるので
下の行を追加するだけでOKですか?

凄まじい勢いで描画されるようになりました
ありがとうございました

155:デフォルトの名無しさん
08/04/24 00:13:24
DirectMusicがコンポーネントが削除されましたが、どれを変わりに使えばいいんですかね?



156:デフォルトの名無しさん
08/04/24 13:09:54
>>155さん
私の場合はDirectMusicをLIB化して使ってますね。
それに加えてwavやmidiやmp3の場合はMCIでも同じことはできます。

本当はMCIで読み込んでDirectSoundに渡すのがいいらしいのですが、
そっちは難しいぽかったのでDirectMusicを主に使っています。
例えば以下のプログラムの音楽再生はDirectX9の11月版で作っていますが
ですが音楽再生はDirectMusicを使っています。
URLリンク(gamdev.org)

LIB化の仕方についてはこのページがとても分かりやすかったのでどうぞ
(私もここのやり方でやってます
URLリンク(www.geocities.jp)

157:デフォルトの名無しさん
08/04/24 19:28:05
>>156
ご丁寧にありがとうございます!。
とりあえずそのサイトを見てみたいとおもいます。

158:デフォルトの名無しさん
08/04/24 20:19:21
ゲームでmp3を使う時って、何使って再生したほうがいいの?
ある程度売れたらパテントとかってあるんだよね?

159:155
08/04/24 20:58:12
>>156
関係ないですが、DXライブラリ3Dってここまでできるんですね。


160:デフォルトの名無しさん
08/04/24 21:01:59
プレイヤーが所有しているMP3を再生したいのであれば使用料を支払えばいい
BGMやSEとしてゲーム本体に組み込むのであればmp3なんか使わない

161:デフォルトの名無しさん
08/04/24 21:50:52
orbis(だっけ?)使うの?そのコードクレ

162:デフォルトの名無しさん
08/04/24 22:20:36
トランスフォーム済み頂点とDrawPrimitiveUPを使って計器を描画しています。
2枚以上の計器を重ね、テクスチャに抜き色を設定したりアルファ値を下げたりした状態にしてZ値や描画順を変えると
手前の計器の抜けている部分から奥の計器が見えるべきところが透明のままで背景が見えます。
描画するときはZ値を触らずに(全て固定値)、自分で描画順を変えないといけないのでしょうか。

163:デフォルトの名無しさん
08/04/24 22:34:24
directXってMP3再生できないの?

164:デフォルトの名無しさん
08/04/24 23:05:18
DirectShowを使えばできる
DirectSoundでやるなら、WAVEにデコードする必要がある

165:デフォルトの名無しさん
08/04/24 23:15:23
mciデコードが特許的にダメとか、DirectShowもグレーゾーンとか聞くけど
ここにいる人は何使ってるの?

166:デフォルトの名無しさん
08/04/24 23:29:04
oggでいいんじゃね?

167:デフォルトの名無しさん
08/04/24 23:30:07
DirectSound以外をつかわないとだめなのか〜
DirectAudioPlayってのなかったっけ?

168:デフォルトの名無しさん
08/04/25 00:00:18
DirectAudioの事?
DirectMusicとDirectSoundが統合された時の名称だけども・・・

169:デフォルトの名無しさん
08/04/25 00:33:07
日本ならogg
アメリカならwmaとかが主流なんじゃないかと

170:デフォルトの名無しさん
08/04/25 00:53:05
再生に必要な物ってDirectShowFilterとか言うやつ?
なんか調べんのめんどいな・・・そもそもどうやってoggファイルつくんだよ・・・

171:デフォルトの名無しさん
08/04/25 01:14:44
>>170
wavをoggに変換するソフトがどっかにあった希ガス
それかlibになかったっけ?

172:デフォルトの名無しさん
08/04/25 01:16:28
>>170
URLリンク(www.geocities.jp)

検索一発目でヒィーーーーーーーーーット!
お前、検索すらしないで書き込んだなw

173:デフォルトの名無しさん
08/04/25 01:16:52
URLリンク(www.vorbis.com)
URLリンク(www.xiph.org)
ほい、公式

174:デフォルトの名無しさん
08/04/25 01:16:54
3回目はチンコ落とされるぞ

175:デフォルトの名無しさん
08/04/25 01:18:05
>>173
脳みそで英→萌→和変換するのがストレス

176:デフォルトの名無しさん
08/04/25 01:18:22
俺OGGとFLACを常用してるけど、これらに対応してる
歩き男って無いんだよな。ややマイナーなのが難点だ。

177:112
08/04/25 03:34:31
先日はいろいろと誤解を招くような言い回しをしてしまったようで、
すみませんでした。
皆様のおかげでなんとか描画できるようになったのですが、
何故かテクスチャの色が表示されずに、真っ黒な像が描画されてしまいます。
問題はどこにあると思いますでしょうか・・・ご教授願います。
レンダリングステートは以下のようにしています。
theDevice->SetRenderState( D3DRS_ALPHABLENDENABLE, TRUE ); // αブレンディング有効
theDevice->SetRenderState( D3DRS_ALPHATESTENABLE, TRUE ); // αテストを有効に
theDevice->SetRenderState( D3DRS_ALPHAREF, 0x00 ); // αチャネルの値が0x00なら
theDevice->SetRenderState( D3DRS_ALPHAFUNC, D3DCMP_NOTEQUAL ); // 書き込みをしない
theDevice->SetRenderState( D3DRS_ZWRITEENABLE, FALSE );// Zバッファへの書き込み停止
theDevice->SetRenderState( D3DRS_AMBIENT, 0xFFFFFFFF );// 環境光
theDevice->SetRenderState( D3DRS_SRCBLEND,D3DBLEND_SRCALPHA ); // ソース側の色の比率
theDevice->SetRenderState( D3DRS_DESTBLEND,D3DBLEND_INVSRCALPHA ); // 書き込み側の色の比率
theDevice->LightEnable( 0, FALSE ); // ライトを無効に
theDevice->SetTextureStageState( 0 , D3DTSS_ALPHAARG1, D3DTA_TEXTURE ); // αチャネルの色を使用theDevice->SetTextureStageState( 0 , D3DTSS_ALPHAOP,D3DTOP_SELECTARG1 ); // テクスチャの色を使用


178:デフォルトの名無しさん
08/04/25 05:57:32
ご教授ではなくご教示だドアホ

179:デフォルトの名無しさん
08/04/25 07:51:31
>>177
D3DTSS_COLOROP, D3DTSS_COLORARG1 あたりの設定が
見当たらないね 設定しておいたほうがいいと思うんだけど

180:デフォルトの名無しさん
08/04/25 09:46:35
>>

181:デフォルトの名無しさん
08/04/25 09:52:20
早速の回答ありがとうございます。
D3DTSS_COLOROPは乗算
D3DTSS_COLORARG1はテクスチャ色使用にしてあります。

182:デフォルトの名無しさん
08/04/25 10:05:29
今のレスをかきおわってから、あれ?と思い
D3DTSS_COLOPOPの値をD3DTOP_SELECTARGに変更したら出来ました
自分でも変なミスをしたと思いました。
回答してくださった方には、お手数をおかけしてすみませんでした

183:デフォルトの名無しさん
08/04/25 14:00:30
>>172-173
dクス
今手元のwav変換して聞いてみたけどイイネ!
プログラム的にはダイレクトショウフィルター入れてればDirectShowで直接再生できるって感じ?
そうだとユーザーの手間が増えちゃうからやっぱりソース組み込むのかなぁ・・・

184:デフォルトの名無しさん
08/04/25 20:53:24
東方wavだしwavでいいじゃん

185:デフォルトの名無しさん
08/04/25 21:25:09
東方は尊敬するが基準にはできないな。


次ページ
最新レス表示
スレッドの検索
類似スレ一覧
話題のニュース
おまかせリスト
▼オプションを表示
暇つぶし2ch

4307日前に更新/247 KB
担当:undef