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

鬱だ氏のう DirectX (Part 7)

■ このスレッドは過去ログ倉庫に格納されています
0001名前は開発中のものです。02/12/10 17:34ID:tkEwMMYm
DirectXについてマターリと技術情報交換&雑談するためのスレッド。
初心者用相談室では扱わないような少し高度な話題も受け持つ。

■ 過去スレ
Part 1 http://piza.2ch.net/tech/kako/966/966655286.html (プログラム板)
Part 2 http://pc3.2ch.net/test/read.cgi/tech/997101556/ (プログラム板)
Part 3 http://game.2ch.net/gamedev/kako/1005/10051/1005119775.html
Part 4 http://game.2ch.net/gamedev/kako/1016/10162/1016276254.html
Part 5 http://game.2ch.net/test/read.cgi/gamedev/1027351925/
Part 6 http://game.2ch.net/test/read.cgi/gamedev/1033920036/
027226803/01/03 20:44ID:av/haVG8
>>270
ありがとうございます!
0273名前は開発中のものです。03/01/03 22:34ID:6v3Nw3Kt
>>271
いや、キティになぞらえた壮大なネタの可能性もある。可能性だけど。
0274あぼーんNGNG
あぼーん
0275名前は開発中のものです。03/01/04 09:23ID:XosybrCW
スーパーキティって聞いてなんて失礼なやつだ、と思ったら本当にそう書いてあるのね。

超キチガイage
0276名前は開発中のものです。03/01/07 01:17ID:0XEP6pRY
DirectX8で質問です。
フレームバッファをテクスチャとして再利用したいのですが可能でしょうか?
0277名前は開発中のものです。03/01/07 01:18ID:wrCCKt/y
SetRenderTarget
0278あぼーんNGNG
あぼーん
027927603/01/07 01:53ID:0XEP6pRY
>>277
すみません。もう少し分かりやすく教えてください。
SetRenderTargetで新しいカラーバッファを設定しそのカラーバッファに
フレームバッファをテクスチャとして書き込み、SetRenderTargetで
フレームバッファを元に戻すということでしょうか?
テクスチャとして使うにはIDIRECT3DTEXTURE8形式になっていないといけない
思うのですが、IDirect3DSurface8形式であるフレームバッファをテクスチャとして
使う方法がわかりません。

拙い文章ですみません。よろしくお願いします。
0280名前は開発中のものです。03/01/07 01:55ID:wrCCKt/y
SetRenderTargetを使ったサンプルを一つでも探してみたか?

と以前も書いた覚えがあるよ・・・
0281名前は開発中のものです。03/01/07 01:59ID:w7CAyjD0
>>276
発想を逆にシロ。フレームバッファをテクスチャにするのではなくて
テクスチャをフレームバッファにする。
0282あぼーんNGNG
あぼーん
028327603/01/07 03:52ID:0XEP6pRY
出来ました。ご助言ありがとうございました。
0284あぼーんNGNG
あぼーん
0285名前は開発中のものです。03/01/07 07:23ID:zXdjSHC1
ワンスキンモデルで複数のアニメーションが重なるときってどうすればいいですか?
0286名前は開発中のものです。03/01/07 08:19ID:AgpCrBmV
>>285
1.ある時点の位置・回転・スケールと、新しい位置・回転・スケールの間で補完
2.tweening
3.併用
0287名前は開発中のものです。03/01/07 08:24ID:1zV9RidK
レスありがとうございます。
補完はわかるけど、tweeningはわからないので調べてみます。
0288あぼーんNGNG
あぼーん
0289名前は開発中のものです。03/01/07 12:16ID:ayoee00I
DirectX9からソフトウェア シェーダっていう機能があるんですが、
これはリファレンスラスタライザのためにあるわけじゃなくて、
例えばGeForceTi4600でPixel Shader 3.0を使ったソフトを
作りたいときにPixel Shaderの部分だけをソフトウェア処理
してくれる機能なんでしょうか?

普通にPixel Shader 3.0のコードを書いてps_3_swとしても
使えなかったのですが・・・
0290名前は開発中のものです。03/01/07 12:27ID:ETzkKDk4
>>288
テトラ版も作ってくれ
0291あぼーんNGNG
あぼーん
0292名前は開発中のものです。03/01/07 13:54ID:btJsLK01
>>289
Pixel Shaderのソフトウェア処理は非対応では?
0293名前は開発中のものです。03/01/07 23:48ID:Qcb79TRA
スキンメッシュのサンプルのメニューにあるnonIndexってなんですか?
0294あぼーんNGNG
あぼーん
0295だんき03/01/08 06:43ID:bHt0t039
自称3D野郎の清水が、ドワンゴアメリカをクビになり帰国したらしいぞ。
あの本はそんなに通用しないことが分かったね。
結婚はちゃっかりしたらしい。
駄目な奴は、何をやってもだめ。
0296あぼーんNGNG
あぼーん
0297名前は開発中のものです。03/01/08 13:09ID:5NXIpoTt
>>295 スレ違い。
そんなに彼のことが気になりますか?w
029828903/01/08 13:54ID:9gTimowN
>>292
> Pixel Shaderのソフトウェア処理は非対応では?
そうなんですか?
ヘルプには思いっきり実装されましたって書いてあるんですが・・・
0299あぼーんNGNG
あぼーん
0300名前は開発中のものです。03/01/08 17:48ID:VgT7D31p
>>295
> 結婚はちゃっかりしたらしい。

これだけで勝ち組∧||∧

さて、18日のCマガは買う価値ありますかね…
0301名前は開発中のものです。03/01/08 19:50ID:Sj92UHg5
なんで?
0302あぼーんNGNG
あぼーん
0303名前は開発中のものです。03/01/08 23:42ID:VgT7D31p
>>301
いや、単に特集があるみたいなんで
ttp://www.cmagazine.jp/contents/next.html
0304名前は開発中のものです。03/01/08 23:52ID:Gb/PwN8T
>>298
>ヘルプには思いっきり実装されましたって書いてあるんですが・・・
ヘルプのどこらへん?
>>295
どうでもいい個人ネタは専用スレでもたててやってくれ
0305名前は開発中のものです。03/01/09 00:58ID:10ew1uj2
298じゃないけど
DirectX Graphics > Reference > Shader Reference > Software Shaders
0306あぼーんNGNG
あぼーん
0307名前は開発中のものです。03/01/09 09:10ID:hbEz0lun
Cマガの特集なんて中途半端なのじゃなくてC#+DX9の
単行本キボンヌ。

おっさんが対象のストーカーは別のスレじゃなくて別の板でやってくれ。
0308あぼーんNGNG
あぼーん
0309あぼーんNGNG
あぼーん
0310名前は開発中のものです。03/01/10 03:50ID:Waa3Hv3p
DirectPlay8


IDirectPlay8Server
IDirectPlay8Client
IDirectPlay8Peer
が、ありますが、

サーバ、クライアントクラスを自分で作る時
IDirectPlay8Serverオブジェクトと
IDirectPlay8Clientオブジェクトを使うのではなく、
IDirectPlay8Peerオブジェクトのクラスを、
サーバクラスとクライアントクラス(クラスのインターフェースで制限をつける)
に分けて継承させたほうが、
IDirectPlay8Peerオブジェクトを利用するだけなので
いいような気がしますが、

IDirectPlay8Server
IDirectPlay8Client
を使う理由ってありますか?
0311あぼーんNGNG
あぼーん
0312名前は開発中のものです。03/01/12 00:36ID:SrSwcqA8
>>310
PeerToPeerではディアブロはできないわけだ。わかるか?
0313名前は開発中のものです。03/01/12 00:39ID:ZbUoW9PK
>>312
分かるわけが無い
問題なく作れる
0314名前は開発中のものです。03/01/12 00:54ID:rXT4D81h
ディアブロはp2pじゃなかったか?あれ?
0315名前は開発中のものです。03/01/12 01:03ID:1QEnlWyb
p2pだろ、ディアブ炉は
0316あぼーんNGNG
あぼーん
0317名前は開発中のものです。03/01/13 18:10ID:GYvkLB/v
ん。battle netはサーバーじゃないの?
0318名前は開発中のものです。03/01/13 19:13ID:xmG0Tw+y
>>317 マッチングサービスって何なのか調べてきなさい
031931003/01/13 22:03ID:G2t52B6D
めんどかったけど、
IDirectPlay8Server
IDirectPlay8Client
をラップしてやることにしました。
分けてるには何か意味(処理速度的なものも)があるのだろうし
DirectPlay8初心者な俺には、
これがわかりやすくていいです。
>>312
俺が言いたいのは、サーバーはPeerを全員分、
クライアントの方は、サーバーだけのPeerを持つ
と言うことだ。
これをやると、IDirect8Peerをラップして派生するだけでいいから
Initialize等を2個分やらなくてすむからいいということだ。
Peer使ってるからって全員分ピアツーピアやるわけじゃないの。
わかるか?
>>313
禿同
>>314、315
ブロディアやったことないから知らん。

0320あぼーんNGNG
あぼーん
0321名前は開発中のものです。03/01/13 23:25ID:HWAeFM2s
ファンタシスターオンラインもp2pじゃないとか言い出しそうだな
0322名前は開発中のものです。03/01/14 00:43ID:Be8ifeKj
ファンタシスターオンラインはチト特殊じゃなかったかなあ。
誰かプロトコル解析したひといる?
0323名前は開発中のものです。03/01/14 01:07ID:wLGvPY11
まず、ロビーサーバーにつないで接続者を決め、
接続者1台のマシンをサーバーにしてそこに他の接続者がクライアントとして繋ぐ方式だったかな。

前といってることが違うな、俺、。
0324名前は開発中のものです。03/01/14 14:41ID:urxEulpJ
>>323
クライアントはほかのクライアントのIPを知ることは無いってこと?
0325名前は開発中のものです。03/01/14 14:42ID:urxEulpJ
「IP」 -> 「IPアドレス」に訂正。
0326名前は開発中のものです。03/01/14 18:09ID:FTi46TJF
PSOはどっかのスレに開発者がいろいろ喋ってる記事へのリンクがあった。
0327名前は開発中のものです。03/01/14 19:32ID:XJLigTq4
これか?
http://akiba.ascii24.com/akiba/game/interview/2002/02/24/633792-000.html
0328名前は開発中のものです。03/01/15 17:21ID:+cfL67Sa
DirectX8とDirectShowの組み合わせを初めて使っています
MPEG1の動画をウインドウ全体に表示しようとしたのですが
IVideoWindowに任せるとフルスクリーン化しているときに動画が全く表示されません
ウインドウモードで表示しているときも毎フレームウインドウをInvalidateRect()
してやらないとうまく表示されないようです
仕方なく今はIVideoWindowを使わずにSampleGrabberを使って1フレームごとに
テクスチャに転送して表示しているのですがこれだと無駄が多くて重いので
何かもう少しマシな方法は無いでしょうか?
ビデオカードはGeForce2 MXです
動画の表示時にはDirectX8側の描画は行わないようにしています
0329名前は開発中のものです。03/01/17 09:55ID:HWbMWlC6

         / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
  ∧w∧  <  オワリじゃ
__( ゚π ゚ )__  \________
\ y/ //
〈っ ==_cノ
(_†________)

0330名前は開発中のものです。03/01/17 21:09ID:KDoilLF9
AppWizardで吐くソース(D3DApp.cpp等)をベースにやってる人と、
自作クラスでやってる人と、
どっちが多いんですかね?
一応参考までに。
0331名前は開発中のものです。03/01/17 22:03ID:5rx/7XHp
DirectX8.0〜8.1bのDirect3Dって、カラーキー指定できんの?
0332名前は開発中のものです。03/01/17 22:46ID:vcTFaW94
>>331
D3Dにカラーキーはない。でもアルファ値で透過率を変えられるんでそれ使ってやってみ。
一応カラーキー指定っぽい事をする関数もあったはず。
0333あぼーんNGNG
あぼーん
0334名前は開発中のものです。03/01/18 11:15ID:fwQsozHF
DirectXAudioで、外部音源を利用して音を出すプログラムを書きたいのですが、
ヘルプを見てもさっぱりわかりません。
サンプルプログラムを探してみたのですが、以前までのDirectMusicを使うやつなら
あったのですが、DirectXAudioのやつではありませんでした。
誰か方法を教えてもらえませんか?
0335名前は開発中のものです。03/01/18 11:18ID:fwQsozHF
>>331
テクスチャをファイルから読み込むときに(CreateTextureFromFileだっけ?)
透過させたい色を指定することができますが、うちの環境では
透過させた部分と透過させない部分の境界が思いっきりボケたのでお勧めできません。
DDS形式でファイルを作ることが推奨されてるみたい。
0336名前は開発中のものです。03/01/18 11:59ID:GvS2mo5W
さて、今日発売のCマガは買う価値あるのかな…
0337名前は開発中のものです。03/01/18 12:46ID:uXLeECQM
もう18日か
年をとるごとに時間の流れが早くなるな
このままジジイ一直線か
0338名前は開発中のものです。03/01/18 15:51ID:WObDYnlg
MS曰く、カラーキーよりはαを使うようにとのことでしたよ>>331
0339名前は開発中のものです。03/01/18 16:52ID:uXLeECQM
Cマガ立ち読みしてきたけどDirectX9の解説は大したことが書かれていない
SDKが欲しいナローバンド利用者の専門誌
0340あぼーんNGNG
あぼーん
034133603/01/19 01:04ID:AthUUo2G
>>339
あ、本当ですか〜。当方ちょっと入手が面倒な身なのですが、
それじゃ無理して買うことないかな。
0342名前は開発中のものです。03/01/19 06:01ID:YHR0PqzQ
地平線ってどうしてますか?
自分の場合、まず最初に空の一枚絵をカメラ座標と注目点の差のベクトルを
テクスチャ座標数値に加工することで空が回ったりさせてます。
その後Zバッファをクリアしてその他オブジェクトを描画という感じです。
しかし、地平線がうまくいきません。タイルを並べるようにすると角度によって
尖ってるところとか、平坦な地平線になってしまったり。
多めに地面を書いておいて遠方のZ座標で切れるようにするのが
ベストなのでしょうか?
0343名前は開発中のものです。03/01/19 08:36ID:9y/R38Jt
>342
>尖ってるところとか、平坦な地平線になってしまったり。
 地平線を部分的に尖らせたいの?ちょっとやりたいことが分かり
にくいんで、もう少し具体的に説明してくれた方がアドバイス
しやすいかも。
 カメラの位置がどういう範囲を動くのか(地上だけなのか、それとも
フライトものみたいなのかとか)によってもやり方(誤魔化し方でもいい)
かわるだろうし。
0344金正男 Ver200303/01/20 12:39ID:FVr6U2ea
(*´Д`*)ハァハァ
0345あぼーんNGNG
あぼーん
0346名前は開発中のものです。03/01/22 19:32ID:7dFMnuhZ
>>342
マップチップみたいにしてるのかな?
□□□□□□□□
□□□□□□□□
□□□□□□□□  Aの位置からOを見た場合は平らだけど、
□□□O □□□□  Bの位置からOを見るとぎざぎざになってしまうとか……
□□□□□□□□
□□□□□□□□  こういう場合なら俺は適当にfogかけてごまかすようにしてる。
□□□□□□□□
□□□A □□□B
0347あぼーんNGNG
あぼーん
0348名前は開発中のものです。03/01/24 00:09ID:4XYPiP4d
Zバッファーを使ってポリゴンを描画する時に、z値に関係なく
常に指定したポリゴンを手前に描画させる機能がD3Dにありますか?
034934803/01/24 00:14ID:4XYPiP4d
あ、書き忘れたけど、コード上でも先に記述していようが いまいが
常に手前という事も含みます。
0350名前は開発中のものです。03/01/24 01:03ID:cORtJ2Ik
Z値を一番手前にしときゃいいじゃん。
rhwさえ正常ならZ値をいじっても見た目は変わらんよ。
035134803/01/24 05:04ID:gG+pDg+X
>>350
D3DLVERTEXには rhwが無いんですが・・
この場合はどうするんですか?
0352名前は開発中のものです。03/01/24 07:56ID:XXQKdACr
>>348
Zバッファをいったん無効にすればよろし
0353名前は開発中のものです。03/01/24 13:50ID:AyqJgxUO
>>348

Zバッファを無効にするか、VIEWPORTのZ幅を0.0f〜0.0fにする。

あるいは、Zバッファをクリアする。

普通はこのどっちかだろう。
0354名前は開発中のものです。03/01/24 18:07ID:YMrIBv76
>>352, 353
ふむふむ、良く分かりました。
サンキュウです!
035534803/01/24 18:13ID:YMrIBv76
ちなみに自分は、まだDirectX7.0a使ってます。
ラッパークラスを前に作ってたので またver9で書き直すのが面倒なのです。
まあ、本格的に3Dゲーム作るときは、最新バージョン使いますが・・
他にも古いバージョン使ってる人 居ますか?
0356名前は開発中のものです。03/01/24 18:43ID:1iodH+1D
これから2D作るんで、7使いますよ。
Direct3Dで2Dポリゴンだと、いろいろ面倒だし。
035734803/01/24 18:55ID:/3DHAAC+
>>356
ほほー 使ってますか。
やはりアルファとか、回転は 自分で計算しますか?
2Dでチクチクいじるのも楽しそうですね。
ちなみに自分は、D3Dで2Dポリゴンです。
0358名前は開発中のものです。03/01/24 20:30ID:vNDJ6RIT
>>356
9になってからはサーフェイス間のコピーが容易になったので
ポリゴン経由しなくても2D描けるようになってるけどそれでも駄目なの?
035935603/01/24 20:57ID:3Ir1Qlvw
>>357
アルファや回転だけ2Dポリゴンにしようかとも考えてます。
アクションなので速度を重視したい。でも、これやると2Dなのに3Dカード必須になるけど。
>>358
9の2D機能についてwebでちょっと調べたけど、単純な矩形転送しか無さそうだから
やめてました。2Dどうなんですか?カラーキーで色抜いたり。(今更)パレットも使いたい。
036034803/01/24 22:15ID:7fK0WY2B
>>359
自分も最初、2Dのみで行くつもりでしたけど、
ちょっと凝った事をしようとすると、めんどいんでポリゴン使ってます。
まぁ、その分なんでも出来るポリゴンスプライトが出来ましたが。

DX9は、たしかカラーキーよりα値を使う事になっていたような気がしますが・・
036135603/01/24 22:56ID:Q2rmQbLw
そういえば、7時代に3D+2Dポリゴンでシューティングをちょっと作った時に
α値のためにDDSファイル使ってました。256x256とかで・・・
確か、D3DとDDを混ぜると遅くなる、てことで2Dもポリゴンにしたような気がします。
まぁgeforceとかなら、気にすることもないかな。
今回は2Dだし、遅いマシンでも遊べるように、やっぱり7にしようと思います。
0362名前は開発中のものです。03/01/24 23:14ID:/cSarTnB
>>358
9は一般に普及してるの?
せいぜい8だと思ってたんだけど。
0363名前は開発中のものです。03/01/25 00:34ID:pc7S7sw4
>>362
一般には9は普及してない
メーカー品のパソコンなんかはオンボードだから普及してるといえるのは7まで
本当に誰でもプレイできるゲーム作るなら3Dはまだしんどい
とはいえ研究、勉強なら最新のものに触れておいて損は無い
あと、ひっそりと公開してるのを探してくる連中はたいてい3Dボードは比較的新しいのつけてるから問題ないと思う
そういう場合、個人的には最低動作環境はGF2MXだとおもってる
0364名前は開発中のものです。03/01/25 01:42ID:QkkrKYgM
GF2MXか。
こいつもドライバを更新してくれないと微妙な奴だったはず。
一応ポリゴン表示ができてアルファが使えます。以上。
みたいな。笑
0365名前は開発中のものです。03/01/25 01:45ID:XoQ+trsO
αカラーテクスチャポリならTNT2で充分
0366名前は開発中のものです。03/01/25 02:23ID:k9WFGzeD
TNT2もいいね。
OSはいくつまでサポートしてる?
そろそろ98系捨てようかと思ってるんだけど。
0367名前は開発中のものです。03/01/25 02:29ID:GicUwGaa
半年後にリリースする予定なら、9が妥当。
すぐリリースするなら7or8が妥当。

ってとこかな。
9がWindows Update に出るのってやっぱ春だよな・・。
0368名前は開発中のものです。03/01/25 04:58ID:wVD7bSgp
GF2MXか。

……俺のマシンだヽ(`Д´)ノウワアァァァァン
0369名前は開発中のものです。03/01/25 06:23ID:BJIRtyJ9
GF2MXでDX9を使っていて、エラーで落ちた。
すると、「エラーをMSへ送信しますか?」というダイアログが出たので、
試しにYESを選んでみた。どうせ実験マシンで個人データも入ってないので。
すると、「ドライバを更新したらこのエラーは解消します」というメッセージと、
ドライバのダウンロードページへのリンクが表示された。
そのとおりに実行すると、エラーが消えた。

ちょっとMSを見直したよ。
0370名前は開発中のものです。03/01/25 06:23ID:R7wixdCt
>>368
ィ`

既存の機能しか使わないなら、やっぱり9にするメリットはないのかな…。
それでもDXライブラリとか、やっぱりこなれてきてるのかなぁ…。
0371名前は開発中のものです。03/01/25 10:24ID:DmUZxhDu
DX9はまだ要らないと思うよ。
俺自身は来年の夏までいらないと思う。
なんだかんだ言って欲しい機能はレイディオンでもエミュレートだし。
9世代が一般化するなんて今年中には無理だろう。

追加機能も便利といえば便利だけど、DX9で追加された機能がないと作れないなんて言う奴は初めから辞めちまえ。
あんなもん今ごろ追加したんか、って内容だよ。
っていうか8と手続きが変わっただけみたいなもんじゃねぇか。

DD使わないなら8でいいし、D3D使わないなら7で全然いいと思うぞ。

>>363 研究、勉強なら最新のものに触れておいて損は無い

結局、今研究してみたところで使う頃にはさらに新しいのが出ている罠
同人開発者さん? 達はこういう技術に惑わされないでおもろいゲーム作ってくだされ。
■ このスレッドは過去ログ倉庫に格納されています