トップページgamedev
987コメント315KB

鬱だ氏のう DirectX (Part 5)

レス数が950を超えています。1000を超えると書き込みができなくなります。
0001名前は開発中のものですた。02/07/23 00:32ID:DsnWt/i.
DirectXについてマターリと技術情報交換&雑談するためのスレッド。
初心者用相談室では扱わないような少し高度な話題も受け持つ。

■旧スレ(プログラム板)
http://piza.2ch.net/tech/kako/966/966655286.html  (Part 1)
http://pc.2ch.net/test/read.cgi/tech/997101556/   (Part 2)
http://game.2ch.net/test/read.cgi/gamedev/1005119775/ (Part 3)
http://game.2ch.net/test/read.cgi/gamedev/1016276254/ (Part 4)

コピペスマソ
0937名前は開発中のものです。03/06/19 08:35ID:WowxRFTC
濡れにはチンプンカンプンだ。
がんばってくだせぇ。
0938名前は開発中のものです。03/06/19 13:39ID:huxG79qD
Direct3Dを使って円を描画したいんですけど
普通の円、塗りつぶした円とかなんですが・・
やりかたがよく分かりません 教えて頂けないでしょうか?
DrawPrimitiveとかを使って描けますか?
0939ちよ03/06/19 15:18ID:J/0rHTBe
みてね、無修正だよ〜♪
http://www1.free-city.net/home/kotarou/page002.html
0940名前は開発中のものです。03/06/19 22:28ID:aTxWa52z
>>938
DrawPrimitiveを使用しても きれいな円を描くには、
ポリゴン数がかなり必要。
円のテクスチャーを用意するのが簡単で良いんじゃない?
グレースケールで作っておいて色を変更したいときには
頂点カラーを設定するのがよさそう。
スクリーンバッファをロックしてピクセル単位で塗りつぶす方法もあるが、
遅くて使いものにならないとおもう。


 
0941名前は開発中のものです。03/06/20 00:25ID:sCADFXcn
ピクセルシェーダが使えそうな気がした。いや、知らんけど。
0942名前は開発中のものです。03/06/20 00:28ID:PhCMIKkN

見てちょ♪

http://endou.kir.jp/betu/linkvp/linkvp.html

http://www2.free-city.net/home/angelers/index.html
0943デフォルトの名無しさん03/06/20 01:26ID:poG4M/Am
>>942
やだよ♪
0944名前は開発中のものです。03/06/20 01:27ID:Fdc0IliV
確かに単純な円ならピクセルシェーダでも描けるな。
ただ精度がちょっと心配かも。
PS2.0なら問題ないんだけどさ。
0945あぼーん03/06/20 02:00ID:QGuS5T92
http://homepage.mac.com/hiroyuki44/
094693803/06/20 22:19ID:z58H3NHE
>>940
レスどうも。
実用速度を考えた場合は、やはり円のテクスチャーを用意するのがよさげですね。
時と場合によって、バッファのDCにAPI使う方法と
テクスチャーで使い分けする事にします。
0947名前は開発中のものです。03/06/21 00:16ID:akryBTEt
俺はテクスチャよりポリゴンの方がいいと思うがな。
どうせファン1つで済むから1ポリゴン≒1頂点だし。
0948名前は開発中のものです。03/06/23 23:50ID:io/lQ1Wu
ttp://movies.ogrish.com/chechclear.asf
ttp://www.agony.ukgo.com/tqf7/clips/9193uohv/cap017a.mpg
ttp://movies.ogrish.com/ofex.asf
ttp://members.lycos.co.uk/islamonrise/chechenya/chechenya1.html
ttp://www.trebus.fsnet.co.uk/vir2/world/che-19aj/uiho.htm
ttp://www.cotw.jena.co.uk/cotw/080-8g6e/i1-rj87.htm
ttp://rotten.s16.xrea.com/
0949名前は開発中のものです。03/06/24 13:33ID:KCeWITLJ
DX9のテクスチャからサーフェスを取得して、GetDC()でHDCを取得したんだけど
これってデバイスコンテキスト用API(?)のSetPixel()とかBitBlt()とかは
全部つかえるもんなの?

GetDC()には成功したんだけど、なにやっても真っ黒なんだよねー(泣)
0950名前は開発中のものです。03/06/24 19:25ID:z5LcKhj8
使えるよ。
っていうか、本当にGetDCは成功してるのか?
095194903/06/25 13:10ID:t/sv5vGp
黒くなったのは、GetDC()したからではなく、
テクスチャ作成時のフォーマットをD3DFMT_X8R8G8B8に
したのが原因だったようです。
でもなんで黒くなるのか分かりません。

昨日は頭が回ってない状態で質問してしまったです。
正確には、画面上の任意座標に絵を2Dで表示させる為に
テクスチャを用意して、それをスプライトを用いて
Draw()するようなことをやっていました。
上記フォーマットで作成した場合、指定した位置に
真っ黒で表示され、GetDC()で書き込んだ内容が
ウインドウの左上位置(0,0)に表示されてしまいました。
うーん、自分、テクスチャとサーフェスをよく
理解していないのかもしれません。

GetDC()はちゃんと成功しています。
0952名前は開発中のものです。03/06/26 09:19ID:Zh6HDqeK
>>951
結論から言うとGETDCで得たDCに直接書き込んでも実用品になりません。
ちらつくだけです。
コンパチブルDCをつくりDIBを作成
テクスチャも作成してそこから転送 このときテクスチャはARGBのデーターです。
そのテクスチャをポリゴンに貼り付け


真っ黒なのはアルファデーターを考えてないからかもしれないからかな?
アルファデーターはどこでどうされてるのでしょうか?


0953名前は開発中のものです。03/06/26 18:57ID:QAcTNiCc
なんでテクスチャにGetDCしてちらつくんだ?
そんな話は初めて聞いたけど?
0954名前は開発中のものです。03/06/26 19:31ID:5GfwaFR5
つーかみなさま
ID3DXEfectPoolって使えてます?
インスタンス化したインターフェイスを
D3DXCreateEffectに渡すとエラーになるんですよね。
渡すだけなんで何かミスしてるとは思えないし。
DX9aSDKじゃないんでそれが原因ですかね?
0955名前は開発中のものです。03/06/26 19:40ID:5GfwaFR5
GetDCはフォント関係とダイアログ表示だけにするべきだと思うな。
それ以外のことはD3DXでより簡単にいけるでしょ。
0956名前は開発中のものです。03/06/26 19:53ID:5GfwaFR5
あともう1つ質問。
環境マップを使ったエフェクトで最終的な色出力式ってどうすりゃいいのかな?
デカールテクスチャ色xデフューズ色+スペキュラ色+環境マップテクスチャ色+アンビエント色
でいいの?
デフューズ、スペキュラと環境マップをどう絡ませるべきなのかわからんす。
0957名前は開発中のものです。03/06/26 22:00ID:0Q91txoo
>>953
テクスチャを経由する場合は透明部分がいるからアルファ付きにする必要があるが
そうするとGetDCが出来なくなる
0958名前は開発中のものです。03/06/26 23:05ID:UzXWyRBe
グラフィックメモリの消費量(or残量)を調べる方法ってあるのかな?
自前のプログラムが、どれくらいメモリを消費するか調べたいんだけど。

これはDirectXのAPIじゃなくてWindowsのAPIとして用意されてるのかな?
0959_03/06/26 23:11ID:j8CcaA+E
http://homepage.mac.com/hiroyuki44/
0960名前は開発中のものです。03/06/27 00:15ID:udyawxA0
>>958
i810みたいなのがあるから、簡単にはわからないみたいよ。
一度チャレンジしたことがあるんだけど、正確な数値は得られなかった。
0961名前は開発中のものです。03/06/27 02:49ID:GqSqsGV9
>>957
フォント程度ならアルファが無くても平気だょ?
0962名前は開発中のものです。03/06/27 07:28ID:P6GJfOKp
そしてフォント以外の部分も塗りつぶされる
0963名前は開発中のものです。03/06/27 21:33ID:3azb0OQf
フォントは意外と強敵だよ。
綺麗に出そうとするとこれがまた難解でな。
0964名前は開発中のものです。03/06/28 23:10ID:zP3PIxvZ
なんか透過処理するにはαが絶対必要だと思い込んでる奴多いな。
0965名前は開発中のものです。03/06/28 23:27ID:F+GT1gCc
フォントのアンチエイリアス処理は特許になってなかったっけ
0966名前は開発中のものです。03/07/01 00:26ID:hWPJGdTO
>>965
ナイショで使うのでソースきぼん
0967名前は開発中のものです。03/07/01 08:46ID:24TFmhfP
>>966
勘違いかもしれん。MSがtruetypeのレンダリング処理のどこかに
特許を持ってるか何かで、XFree86関連のtruetype対応が一部止まって
るとかいう話を聞いた
0968名前は開発中のものです。03/07/01 20:40ID:gT/+PI8h
Appleの特許じゃない?
Apple、TrueType、特許で検索すると記事が見つかる
結局どうなったのか知んないけど
0969名前は開発中のものです。03/07/04 22:02ID:Mh/sei2x
DirectX8で平行投影をするにはどうすればいいのですか?
0970_03/07/04 22:12ID:B5C7015r
http://homepage.mac.com/hiroyuki44/jaz08.html
0971名前は開発中のものです。03/07/05 11:15ID:/i88leYb
>>969
1. マルチポストかおめー
2. ヘルプちゃんと読め
0972名前は開発中のものです。03/07/05 11:52ID:97/cMruB
視点移動の質問です

D3DXMATRIX m_matView;//以前のビュー行列
D3DXMATRIX m_matCLocal;//カメラローカル行列
D3DXMATRIX matR;
D3DXQUATERNION q;
D3DXVECTOR3 m_vYPR;

D3DXMatrixIdentity(&m_matCLocal);
D3DXQuaternionRotationYawPitchRoll(&q,m_vMovYPR.x,m_vMovYPR.y,m_vMovYPR.z);
matR=m_matView;
matR.m[3][0]=matR.m[3][1]=matR.m[3][2]=0.f;
D3DXMatrixRotationQuaternion(&matR,&q);
m_matCLocal=m_matCLocal*matR;

これだとy軸眺めたときにヨーがロールになってしまうんですが
なんか間違ってますか?
クォータニオンってジンバルロック無いと思ってたのに・・・
ご教示お願いします
0973名前は開発中のものです。03/07/05 11:59ID:bplnAZ13
これってYPRに相当するQuaternionを作ってるんだよねえ・・・
YPRで管理すること自体がジンバルロックの原因だということを理解していない?
0974無料動画直リン03/07/05 12:12ID:F0qUjL+p
http://homepage.mac.com/miku24/
097597203/07/05 12:22ID:XM0AoxQ8
>973
オイラー角管理になってしまうからですか
クォータニオンのみで管理するんですか・・・分かり難いなぁ
他の方法を考えて見ます巣
0976名前は開発中のものです。03/07/05 16:38ID:7s13lWZW
★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★
ネットで稼ぐならこれ。完全無料!!
リンクスタッフになれば小遣い稼ぎができます!!(右上に登録画面があります)
[報酬について]
クリック報酬・・・1クリックされる度に10円の報酬
バナー紹介料・・・リンクスタッフ登録の度に1000円の報酬
キャンペーン・・・今なら登録するだけで1000円プレゼント
間接報酬・・・紹介者が得た報酬を何割か加算いたします
ボーナス・・・優秀サイトには、報酬に応じてボーナス有り

単純に考えて1日100人クリックしたとすると、100人×10円×30日=30000円(一ヶ月)
そこらへんの掲示板に貼り付けていけば100クリックなんてスグです。
その他、自分の貼り付けた広告から誰かがスタッフになると1000円もらえるので
1日5人スタッフを紹介できたとして1000×5×30=150000円
30000+15000=180000!!間接報酬などもありますので一ヶ月に10万円以上は稼げます!!
http://www12.ocn.ne.jp/~sihori/com.html        
★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★
0977名前は開発中のものです。03/07/05 21:03ID:DVozr+6k
行列関数について 初歩的な質問です。

D3DXMATRIXpt;
D3DXMatrixIdentity(&pt);
pt._41=0;
pt._42=0;
pt._43=-1;
D3DXMatrixRotationX( &pt, D3DXToRadian(90) );

カメラ位置はz-4 方向は000とします

手前の点を X軸に沿って上向きに90度回転
ptの値の変化は_41=0 _42=1 _43=0 というのを期待したのですが、(x0 y1 z0)
実際は別のフィールドに値が書き込まれ_41 _42 _43には0が書き込まれます。

回転後の座標を得る為にはこの結果を、さらに何かの関数を通さないといけないのでしょうか?
それとも根本的に間違っているのでしょうか?

初歩的な質問ですみませんが教えてください。
0978直リン03/07/05 21:12ID:F0qUjL+p
http://homepage.mac.com/maki170001/
0979名前は開発中のものです。03/07/05 21:29ID:bNP8Vlf3
>>977
なんで回転行列を作成する関数で計算結果が出るんだ?
ついでになんで回転させると座標が変わるんだ?
お前の地球儀は回転させるとどこかに吹っ飛んでいくのか?
0980名前は開発中のものです。03/07/05 21:39ID:yFTHtwmT
>>977
関数の使い方を間違っている。
0981無料動画直リン03/07/05 23:12ID:F0qUjL+p
http://homepage.mac.com/miku24/
0982名前は開発中のものです。03/07/05 23:44ID:DVozr+6k
>>979 980
D3DXMATRIX pt,pt2,pt3 ;
D3DXMatrixIdentity(&pt);D3DXMatrixIdentity(&pt2);
pt._41=0; pt._42=0; pt._43=-1; //惑星座標
D3DXMatrixRotationX( &pt2, D3DXToRadian(90) );//原点で回転
D3DXMatrixMultiply(&pt3,&pt2,&pt);

となると、まず原点(公転)で回転してそれを惑星と乗算すると良いのですか?
これでも0、1、0にはならないのです。

何故なのでしょうか? あほな私に教えてください。
0983名前は開発中のものです。03/07/05 23:57ID:bi3MZju7
☆無修正☆
http://endou.kir.jp/moro/linkv.html
0984名前は開発中のものです。03/07/06 02:52ID:uoqfGpA6
>>982
行列の平行移動成分と、ベクトルの座標を混同してるんじゃねーの。
0985名前は開発中のものです。03/07/06 08:07ID:8FFv83mZ
>971
聞くのは一時の恥
聞かぬは一生の恥
0986名前は開発中のものです。03/07/06 10:46ID:KCoIIvyF
>>985
わからんやっちゃな。マルチポストはまた別の恥だ。
つーか、もう別の場所で答えもらってるんだから大人しくしとけ。
0987名前は開発中のものです。03/07/06 10:50ID:hbsipMCK
>>982
どうしても0,1,0が欲しいのなら
D3DXMatrixMultiply(&pt3,&pt,&pt2);
レス数が950を超えています。1000を超えると書き込みができなくなります。