トップページgamedev
1001コメント341KB

Direct 3D

■ このスレッドは過去ログ倉庫に格納されています
0001.01/11/09 17:06ID:wrfy6OtC
Direct Xはあるみたいですが、こちらはD3D専門という事で。
とりあえずDX8以降は初期化が簡単になったり関数が変わったり
結構大幅に変わりましたがその辺も踏まえてお願いします。
0002201/11/09 17:07ID:???
2
0003名無しさん@お腹いっぱい。01/11/09 17:09ID:A73R4jTp
>お願いします。
何をすればよいんだ?
0004名無しさん@お腹いっぱい。01/11/09 17:26ID:???
>>3
オナニン。
0005名無しさん@お腹いっぱい。01/11/09 17:45ID:???


 その辺も踏まえてお願いします。

 
0006.01/11/09 17:55ID:???
あまり揚げ足を取らないでくんさい。
0007名無しさん@お腹いっぱい。01/11/09 18:40ID:???
オブジェクトデータに対し、
テクスチャを張るのと、
バーテックスペイントを施すのと
ポリゴン毎に色情報を変えるのとでは
プログラマー的にどっちの方がうれしいんですか?
0008101/11/09 18:55ID:wrfy6OtC
はじめっからテクスチャ貼ってあるXデータが一番楽です。
ポリゴン毎に色を毎回変えるのは面倒くさい。
0009名無しさん@お腹いっぱい。01/11/09 19:47ID:???
>>7
面倒くさいのはデータ作る人であって、
動作速度とか効率とか考えないなら、
プログラマ的には大差ないと思われ。
0010名無しさん@お腹いっぱい。01/11/09 20:10ID:???
まぁ、なるべくDrawPrimitiveUPは使うなと言うことで。(謎)

 その辺も踏まえてお願いします。
0011名無しさん@お腹いっぱい。01/11/09 20:50ID:???
>>7

テクスチャと頂点色は上手に併用すればイイ感じなので
その辺も踏まえてお願いします。角度とか。
0012名無しさん@お腹いっぱい。01/11/09 21:28ID:???
このスレは「その辺も踏まえてお願いするスレ」になりました。


  その辺も踏まえてお願いします。
0013名無しさん@お腹いっぱい。01/11/09 22:20ID:0BKdFNhv
質問
アルファブレンディングの加算合成で、透明度変更する方法ない?
光がフェードアウトする感じ表現したいんだけど。
0014sage01/11/09 22:33ID:FsaE9cbV
>>13
modulate使えばいいんちゃうん
0015名無しさん@お腹いっぱい。01/11/09 22:36ID:???
まちがった、ハズ
0016名無しさん@お腹いっぱい。01/11/09 22:41ID:IttZQbTd
ブレンドファクターのalpha
0017名無しさん@お腹いっぱい。01/11/09 22:48ID:???
も踏まえてお願いします。
0018101/11/09 23:09ID:wrfy6OtC
・・・そんな変な事いったかしら?
ちなみに自分は2DでもD3D使ってます。
Drawだと色が256以下じゃないとパレット変更できないのでDirect Drawは
もうさらばいですね。
0019名無しさん@お腹いっぱい。01/11/09 23:18ID:???
>>18
・・・Highcolor/TureColorにはパレット無いが。
もう少し他人に理解できるように書くことをきぼーん
0020名無しさん@お腹いっぱい。01/11/09 23:20ID:???
ていうか、みんななんで鬱だ氏のう DirectXスレ使わないのよ。
2Dと3Dが他のスレに取られたら骨抜きじゃん。ムキー
0021名無しさん@お腹いっぱい。01/11/09 23:42ID:IttZQbTd
>>20

重複ネタスレっちうことで、俺は冷やかし半分でココ見てるけどね。
ヤパーリ本命は鬱だ氏のうスレだ。

>>1

『ポリゴン毎に色を毎回変えるのは面倒くさい。』は悶絶したYO。
謎言神スレの予感がするので、その辺も踏まえてお願いします。
0022名無しさん@お腹いっぱい。01/11/09 23:46ID:???
>>21
>ヤパーリ本命は鬱だ氏のうスレだ。

それなら下げとけYO!
0023名無しさん@お腹いっぱい。01/11/09 23:50ID:???
ゴメンYO!
0024名無しさん@お腹いっぱい。01/11/10 00:04ID:???
>>13
D3Dって、GLみたく、textureのalphaとフラグメントのalphaの
乗算ってできないの?それで解決できるんちゃうん?
0025101/11/10 01:24ID:qy22xnnZ
>>19
TrueにはないけどHighにはパレットありますよ。確か。

>>20 >>21
Direct XといってもInputから何から範囲が広いので
分けた方がよくないかなと何となく思ったので。

>『ポリゴン毎に色を毎回変えるのは面倒くさい。』は悶絶したYO。
いやテクスチャ付きメッシュ読むからプログラム上からはあまり色は指定しないのです。
何か効果つける時とかはもちろん指定してますが。
0026名無しさん@お腹いっぱい。01/11/10 03:39ID:???
>>25
君、面白いね
0027101/11/10 04:10ID:???
いや、面白くないですよ、面白がられると迷惑です。
0028名無しさん@お腹いっぱい。01/11/10 10:55ID:???
ここは1を叩くスレか?
DirectXのような超簡易ライブラリレベルで
もめるなよ。みんな。楽しくやろうぜ。
0029名無しさん@お腹いっぱい。01/11/10 11:51ID:???
みんな叩いてるというより、光臨してくれるのを
面白がってるだけさ。1さんのさりげない天然ボケが魅力だ。

ま、ここはネタスレということでその辺も踏まえて(以下略)

>プログラム上からはあまり色は指定しない

7の「ポリゴン毎に色情報を変える」てのは時系列の話じゃないでしょ。
ポリゴン面毎に頂点色が別になって三角形strip化の邪魔になるけど
プログラマとしてはどうよ?って話。で、無難な答えは>>9
0030名無しさん@お腹いっぱい。01/11/10 14:17ID:CpeGeB26
>>24
できない。
0031名無しさん@お腹いっぱい。01/11/10 18:06ID:???
俺OGL移行します。D3Dってなんにもできませんね。
0032_01/11/10 18:59ID:lcUrEUKo
デバイスをHAL⇔REFした後、スキンメッシュをD3DXMeshのDrawSubsetで描画しようとすると
エラーになってしまう。
D3D8のバグかなあ。
0033名無しさん@お腹いっぱい。01/11/10 20:02ID:wXbui20C
>>30
こらこら。そのくらいできるって(w
0034名無しさん@お腹いっぱい。01/11/11 20:31ID:SNwGUBka
やべ、ここの1さんに惚れそうだ。
あまり叩くな、バカども、せっかくの大事な天然素材だぞ。

>>1
>何か効果付けるときとかはもちろん指定してますが。
具体的にどんなことしてるのですか?
頑張って下さい、期待しています。
0035101/11/11 21:20ID:Y789xs3a
残念ですがボクはそういうキャラクタではないので。

効果といっても大した事はしていません。
上にかいてあるようなアルファブレンディングで爆発の効果を表現したりしています。
あと最近頂点バッファの使い方を覚えました。
でも持っているハードが対応していないので効果はよく解りません。
0036名無しさん@お腹いっぱい。01/11/11 22:19ID:HopZamBA
>>33
できないってば。初心者からかうなYO!
0037名無しさん@お腹いっぱい。01/11/11 23:03ID:???
>>36
俺の知る限り、Dx8 から出来るようになったYO
0038名無しさん@お腹いっぱい。01/11/11 23:28ID:???
アホな漏れにもようやくこのスレの楽しみ方が分かってきました。
1さんの謎ビデオカードについてもっと知りたいYO・・・・(;; ´Д`)ハァハァ
00392401/11/11 23:39ID:???
ちょっと調べてみたんだけど

m_pd3dDevice->SetTextureStageState( 0, D3DTSS_COLORARG2, D3DTA_DIFFUSE );
m_pd3dDevice->SetTextureStageState( 0, D3DTSS_COLORARG1, D3DTA_TEXTURE );
m_pd3dDevice->SetTextureStageState( 0, D3DTSS_COLOROP, D3DTOP_MODULATE );

/**************************************************************************
            こっち?
m_pd3dDevice->SetTextureStageState( 0, D3DTSS_COLORARG1, D3DTA_TEXTURE );
m_pd3dDevice->SetTextureStageState( 0, D3DTSS_COLOROP, D3DTOP_DISABLE );
こっちでもOKか?
m_pd3dDevice->SetTextureStageState( 0, D3DTSS_COLORARG2, D3DTA_DIFFUSE );
m_pd3dDevice->SetTextureStageState( 0, D3DTSS_COLORARG1, D3DTA_TEXTURE );
m_pd3dDevice->SetTextureStageState( 0, D3DTSS_COLOROP, D3DTOP_ADD);
****************************************************************************/

m_pd3dDevice->SetTextureStageState( 0, D3DTSS_ALPHAARG2, D3DTA_DIFFUSE );
m_pd3dDevice->SetTextureStageState( 0, D3DTSS_ALPHAARG1, D3DTA_TEXTURE );
m_pd3dDevice->SetTextureStageState( 0, D3DTSS_ALPHAOP, D3DTOP_MODULATE );

m_pd3dDevice->SetRenderState( D3DRS_ALPHABLENDENABLE, TRUE );
m_pd3dDevice->SetRenderState( D3DRS_SRCBLEND, D3DBLEND_ONE );
m_pd3dDevice->SetRenderState( D3DRS_DESTBLEND, D3DBLEND_ONE );

/*************************************************************************
diffuseのalphaを小さくしながら(大きくしながら?)オブジェクト描画
**************************************************************************/

これできるんちゃうの? D3Dよく知らないからマニュアル
見て書いてみただけだけど
0040名無しさん@お腹いっぱい。01/11/11 23:40ID:???
>>1
頂点バッファ使えない?そんなもん捨てちまえ
DX8を踏まえてお願いしたいのなら頂点バッファ避けるわけにゃいかんでしょ
0041名無しさん@お腹いっぱい。01/11/11 23:47ID:20Q7MVna
DirectX8.aから7にバージョンダウンするには
どうすりゃいいっすか?
00422401/11/12 00:07ID:???
レンダーステート間違ってた、
m_pd3dDevice->SetRenderState( D3DRS_SRCBLEND, D3DBLEND_SRCALPHA );
m_pd3dDevice->SetRenderState( D3DRS_DESTBLEND, D3DBLEND_INVSRCALPHA );
こうだ、たぶん。
0043名無しサソ01/11/12 01:37ID:???
>42
 ?乗算だったら

m_pd3dDevice->SetRenderState( D3DRS_SRCBLEND, D3DBLEND_SRCALPHA );
m_pd3dDevice->SetRenderState( D3DRS_DESTBLEND, D3DBLEND_DESTALPHA );

ではないの?上だと混合合成にならない?
00442401/11/12 01:54ID:???
>>43
そのとうでした。

>>42
のやつだと、加算にならんね。
0045101/11/12 02:02ID:JGmI7m98
持っているビデオカードはVIPERなんとかです。
これは2万円以上したのでまだ買い換えたくないです。

所で上の最後の引数はD3DBLEND_BOTHSRCALPHAじゃないですか?
0046101/11/12 02:04ID:JGmI7m98
間違えました。(__)
上の最後の行は忘れてください
00472401/11/12 02:05ID:???
間違い
加算ー>乗算
0048名無しさん@お腹いっぱい。01/11/12 02:12ID:???
これって、DX8からできるようになったの?
前から出来るような雰囲気なんだけど、
0049名無しさん@お腹いっぱい。01/11/12 03:53ID:hzjMPIYH
>>13はソースのalpha値を少しづつ変化させたい、という話だと思う。
で、ソースのalpha値をチクチク書き換えるには幾つかの方法があるよね。

例えば、対象物の全頂点のdiffuse-alpha成分を頑張って書き換える方法。
当然ながらパフォーマンス悪し。低ポリゴンの物体なら何とかなるかも程度。

他にはt、>>16がさりげなく書いてるようにブレンドファクタのalpha値を書き換える方法。
テクスチャステージ1以降で
pd3dDevice->SetTextureStageState( n_stage, D3DTSS_COLORARG1, D3DTA_CURRENT );
pd3dDevice->SetTextureStageState( n_stage, D3DTSS_COLOROP, D3DTOP_BLENDFACTORALPHA );
pd3dDevice->SetTextureStageState( n_stage, D3DTSS_COLORARG2, D3DTA_TFACTOR );

みたいな感じで。
テクスチャステージが2つ以上あれば使える。パフォーマンス良し。
0050補足01/11/12 03:55ID:???
ソース ≒ ソース側 ≒ 転送元側
00513401/11/12 05:08ID:DmTmPUJO
>残念ですがボクはそういうキャラクタではないので。
自覚してるバカなんて、そうはいないものだぜ。

>あと最近頂点バッファの使い方を覚えました。
頂点バッファ使わないでどうやって組んでいるのでしょうか。
私の浅学ぶりに1さんに嫌われないかと心配です。

>>48
勿論できた。もっと余裕をもって楽しもうヨ。
■ このスレッドは過去ログ倉庫に格納されています