鬱だ氏のう DirectX (Part 5)
■ このスレッドは過去ログ倉庫に格納されています
0001名前は開発中のものですた。
02/07/23 00:32ID:DsnWt/i.初心者用相談室では扱わないような少し高度な話題も受け持つ。
■旧スレ(プログラム板)
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)
コピペスマソ
0255名前は開発中のものです。
02/08/07 21:59ID:???LPD3DXMESH mesh=NULL;
D3DMATERIAL8 mat;を宣言
Init3D関数内で
mat.Diffuse.r = 1.0f; mat.Diffuse.g = 0.0f; mat.Diffuse.b = 0.0f;
mat.Ambient.r = 1.0f; mat.Ambient.g = 0.0f; mat.Ambient.b = 0.0f;
mat.Specular.r = 1.0f; mat.Specular.g = 0.0f; mat.Specular.b = 0.0f; mat.Emissive.r = 1.0f; mat.Emissive.g = 0.0f; mat.Emissive.b = 0.0f;
としてマテリアルを赤く設定したのち
D3DXCreateSphereで球体メッシュを生成。
Render関数内で
lpD3DDEV->SetMaterial(&mat);
mesh->DrawSubset(0);
とやったのですが、表示される球体は真っ白です。
なぜこうなってしまうのでしょうか?
0256名前は開発中のものです。
02/08/07 22:39ID:???難しく考えるとハマるという良い例になった
0257名前は開発中のものです。
02/08/07 22:57ID:???わからなけりゃフレームワークつかえ
0258名前は開発中のものです。
02/08/07 23:05ID:???IDirect3DDevice8::CreateAdditionalSwapChainの
オモロい使い方てありまへんか
0259名前は開発中のものです。
02/08/07 23:28ID:???ライトの設定がおかしいとそうなった気がする
0260名前は開発中のものです。
02/08/07 23:46ID:???テクスチャ貼り付けちゃえば赤くできるのですが、ちゃんとマテリアル使えるようになりたいと思いまして。
ライトはつかっておりませんが、
InitRender関数内で
lpD3DDEV->SetRenderState(D3DRS_LIGHTING, TRUE);
とすると、画面上のポリゴンが真っ赤になってしまうのです。
じゃあ、球体を描画する前にTRUEにして終わったらFALSEに
しようとおもったのですが、そうすると球体が見えなくなってしまいました。
どうやら、テクスチャを貼り付けたポリゴンのみに作用しているようなのです。
0261名前は開発中のものです。
02/08/07 23:52ID:???アルファブレンディングの設定をFALSEにした後に描画したら
赤く表示することができました。
0262名前は開発中のものです。
02/08/08 01:02ID:???まさかとは思うが、透明度を0にしてないだろうな?
どんな色をつけてライトを当てても透明度が0なら色はつかないぞ。
0263名前は開発中のものです。
02/08/08 02:41ID:???mat.Power=1.0fとやればいいってことですか?
0264名前は開発中のものです。
02/08/08 04:47ID:???あとこれはどうでもいいことだけど、matと略すと行列と間違えるから、
俺はmtrlを使っている。ま、こりゃどっちでもええことだけど。
0265名前は開発中のものです。
02/08/08 04:49ID:???俺はmateだけど(ダサッ
mtrlみたいな一文字飛ばし略語もなんかいやん
0266名前は開発中のものです。
02/08/08 05:03ID:???0267名前は開発中のものです。
02/08/08 05:09ID:???0268名前は開発中のものです。
02/08/08 06:05ID:???Σ( ゚Д゚) mjsk!!
0269名前は開発中のものです。
02/08/08 06:13ID:???マジッスカの略かぁ…。初めて知った
0270名前は開発中のものです。
02/08/08 12:05ID:/HiLzdeIどうすればいいんですか?
0271名前は開発中のものです。
02/08/08 13:15ID:???0272名前は開発中のものです。
02/08/08 13:53ID:???要点をバシッと決めてくれ。
0273名前は開発中のものです。
02/08/08 16:54ID:???0274名前は開発中のものです。
02/08/08 17:31ID:???打ち込むと出てくるうざいアレのこと?
0275名前は開発中のものです。
02/08/08 17:35ID:???ワークスペース - FileViewに、「DirectX」というフォルダを作る
DirectXのincludeファイルをプロジェクトに追加。
そこで追加したファイルは邪魔なので最初に作った「DirectX」フォルダに分けておく
とかすれば、入力支援機能でDirectXの構造体を使えたりも駿河
0276名前は開発中のものです。
02/08/08 20:47ID:???フォルダわけの意義がイマイチ謎
0277>>275
02/08/08 21:11ID:???0279名前は開発中のものです。
02/08/08 22:15ID:???もう十分詳しいと思うぞ。理解力が足りない
0280名前は開発中のものです。
02/08/08 22:36ID:???これ以上詳しくできないよ…
0281277=278
02/08/08 22:36ID:???0282名前は開発中のものです。
02/08/09 03:23ID:???スプライトを使うべきか使わないべきか。
0283名前は開発中のものです。
02/08/09 05:17ID:???いまどき横スク画面は壊滅的にダサくてダウンロードすらされない。
VB厨が垂れ流す駄ゲーと区別つかん。
0284名前は開発中のものです。
02/08/09 06:12ID:???0285名前は開発中のものです。
02/08/10 19:58ID:PD7Pi8C6少しの違いでもステートブロックを作ったら
ステートブロックの数が爆発しました。
ピクセル関連のステートだけですが、それでも64個。
もうひとつの選択肢として、レンダリングステートとテクスチャステージステートの
キャッシュつきラッパー関数を作るのもあります。
みなさんどうしてますか?
0286名前は開発中のものです。
02/08/10 20:39ID:???ステートブロック作っても切り替えを実行しちゃったら変更コストは
あんまり変わらんのでは?
ステートごとにグループ化する努力のほうが効きそうな気がする
0287名前は開発中のものです。
02/08/10 23:57ID:9NCQqQXkどうせDirectX内部のどっかにある変数を切り替えてるだけだろ?
実際のレンダリングやら衝突判定やらにかかる時間に比べたら微々たるものだと思う。
0288名前は開発中のものです。
02/08/11 00:18ID:???いけないからその分遅くなるよ。
CPUとGPUは非同期に並列に動いているから、単純に変数を書き換
える程度じゃ済まない。
0289名無しサソ
02/08/11 00:44ID:???のは、レンダーステートのGetが全て出来ない代わりに、GPUの高いパフォーマンス
を得られると言う認識でいいのかな?
プログラムを検証していて思うんだけど、SoftwareT&L環境下では当然
ながらパフォーマンスが頭打ち。上手く作ればもうちょっと速くはなるだろうけど、
HT&Lには到底及ばない。GeForce3世代になって、その差が目立ちはじめたけど、
皆さんはどの辺のパフォーマンスに主眼を置いてプログラムを作ってるのかな?
最近はHT&Lを前提にしたゲーム(Unrealエンジンとか)も増えているようだけど。
というか、この辺は新しくポリゴン数スレみたいなものを作ったほうが良いですか?
自分みたいなヘタレだと、最新のビデオカードのパワーは手に余る・・・。
0290名前は開発中のものです。
02/08/11 00:46ID:???差がありすぎて両立は無理
0291名前は開発中のものです。
02/08/11 01:14ID:???今年中だと、Soft頂点シェーダは微妙。
Doom3で底上げ期待。
0292名前は開発中のものです。
02/08/11 02:27ID:???CPUが速くなっているからそれで補うってのがメーカーの言い分だけど、
速いCPU使ってる奴がそういう安物ビデオカードを使うとは思えない。
結局、安物ビデオカードを買う奴はCPUも遅いんじゃないかな。
0293名前は開発中のものです。
02/08/11 02:58ID:???たとえば
ステートAに切り替え→描画1→ステートBに切り替え→描画2→ステートAに切り替え→描画3→
よりも、
ステートAに切り替え→描画1→描画3→→ステートBに切り替え→描画2→
のほうが高速だよ。
0294名前は開発中のものです。
02/08/11 05:14ID:???ステートAに切り替え→描画1→ステートBに切り替え→描画2→ステートAに切り替え→描画3→
はリア厨でもやらんだろ〜
確実に遅い例にはもってこいだがちょっとワラタよ
0295名前は開発中のものです。
02/08/11 05:21ID:???0296名前は開発中のものです。
02/08/11 05:21ID:???つか、時間かけてる間に性能が上がるので最適化いらん(泣
Xファイル使ってるような奴は皆そうでしょ。
細かいコントロール不能だし
そーでなくてもピーク性能ってよくわからんよね
測定方法もなんか難しいつーかコツがあるみたいだし…
0297名前は開発中のものです。
02/08/11 05:30ID:???半透明オブジェクトや、エフェクトで加算合成じゃないビルボード
のZソートで結構ある
0298名前は開発中のものです。
02/08/11 07:01ID:???俺のマシンは出来るだけ前から書くのが一番だ。
Xファイルの連打ってステート変更もしちゃうのか???
そら使いにくい罠
0299名前は開発中のものです。
02/08/11 07:31ID:q2d3/uDwXファイルのテンプレートにAnimationKeyというのがあって、
そのメンバにキーの種類を示すkeyTypeがあり、ヘルプを見るとこの値の意味するところは
0:回転、1:スケーリング、2:位置、3:行列キー
となっています。
ところが、とあるソフトでXファイルを吐き出すと、これが4というものが
出る場合があります。4は一体何を示しているのか、分かる人がいたら教えて下さい。
0300名前は開発中のものです。
02/08/11 07:42ID:???3は登場しない前提で対応するコードが書かれていてない
0301名前は開発中のものです。
02/08/11 07:44ID:???0302名前は開発中のものです。
02/08/11 07:58ID:???0303名前は開発中のものです。
02/08/11 10:10ID:???何気にヘルプを眺めているとD3DXVec3Transformを発見
Coordのほうには「・・・その結果を w=1 に射影する」と書かれているのですが
これは無駄に/wが計算されていたのでしょうか???(普通のトランスフォームだから常にw=1)
まさに鬱だ市悩
0304名前は開発中のものです。
02/08/11 10:35ID:???でも「・・・その結果を w=1 に射影する」が気になる
結局よく解らんので自前にしよう。そうしよう。
やっぱり鬱だ市悩
0305名前は開発中のものです。
02/08/11 13:09ID:aO/cH.IU頂点法線も頂点と同じように回転の重ね合わせで求めるのですかね.
n' = α0*n*R0 + (1-α1)*n*R1
毎フレーム毎ポリゴン外積,正規化していられませんよね
間接ごとに別れたモデルをワンスキンにしようと思ったのですが,LVERTEXにしたらせっかくのワンスキンが台無しかと思いまして.
skinnedmeshサンプルはちょっと読む気になれませんでした.お願いします.
0306305
02/08/11 13:28ID:???ブレンド無しのワンスキンモデルにしておくのが無難ですかね.
ローポリにする技術も無いですし.
0307名前は開発中のものです。
02/08/11 14:55ID:???光源を回転させて法線に掛ける。この方が早くてウマー
0308名前は開発中のものです。
02/08/11 15:25ID:???それと自分で頂点計算していて,バーッテクスシェーダーとかではないのですが...
0309名前は開発中のものです。
02/08/11 15:38ID:???わかってないと思われ
0310名前は開発中のものです。
02/08/11 16:44ID:???0311名前は開発中のものです。
02/08/11 17:43ID:???書籍には座標の合成の仕組みばかりで書いてないよねー
正直しなくても誤魔化せるような気もするんだけど
バンプマップの法線なんかどーすんだー
0312名前は開発中のものです。
02/08/11 21:20ID:???8.1のskinnedmeshのシェーダー見れば?
必要ならばやるべし。
nVidiaのサンプルだとDotProduct3バンプの
基底ベクトルの合成もやってる
0313名前は開発中のものです。
02/08/11 23:14ID:???感圧ボタンをDirectXでどうしても使いたい。
あれ使えれば、かなり幅が広がってくるのにね。
0314305
02/08/12 02:55ID:???わかってないんです...
>>310
頂点と同じように(移動はなしで)ということですね.
>>311
まだ実際にコード書いていないのでいろいろ試してみます.
計算が倍以上膨れ上がりますからね.
>>312
頑張って読んでみます...
0315305
02/08/12 09:01ID:???複数のボーンから影響を受ける頂点が数十個だったので法線計算してもぜんぜん重く無かったです.
0316名前は開発中のものです。
02/08/12 09:43ID:???SmartJoypad自体が対応してないと思われ
0317名前は開発中のものです。
02/08/12 09:52ID:???ローポリ過ぎない? ゲームによって違うだろうけど。
これから出るゲームなら、デザイナーがどれだけ頑張っても
「ショボイ」で片付けられちまって報われない。
0318305
02/08/12 10:21ID:???確かにショボイです.
デザイナ=プログラマ=私(素人)なので報われなくてもいいのです.
ある程度形になって,報われたくなったらモデルを外注したいですね.
0319名前は開発中のものです。
02/08/12 13:16ID:???失敗したらしく、アプリのアンインストール項目にすら
出ていなかったので、フォルダを削除しました。
以後インストール出来ず、OSの再インストールすら青い
画面で起動不能に・・・2日かけて再起動まで成功。
DirectXを再インストールするにはどうすれば良いの
でしょうか(;´Д⊂)
0320名前は開発中のものです。
02/08/12 13:31ID:???>画面で起動不能に・・・2日かけて再起動まで成功。
感想で悪いけど、OSをクリーンインストールしなおしたほうがよさげ…
0321名前は開発中のものです。
02/08/12 13:38ID:ui+7Gm17ブルースクリーン出るマシンがいかれてんじゃ?
だいたい、容量不足で失敗つーのも、珍しい。
最初にチェックあるのに(あてにならんが
0322319
02/08/12 17:48ID:???1628:Failed to complete installation.って
出てまうですよ(;´Д⊂)鬱だ氏のう・・
0323まあ
02/08/12 18:27ID:???クリンストールしちゃいましょう
0324名前は開発中のものです。
02/08/12 20:01ID:???オーバークロックとかしてないか?
そもそも、DirectXのSDK入れたぐらいで容量が足りなくなるぐらいHDDに
空きが無かったら、Windowsそのものがちゃんと動かない気がする。
0325319
02/08/12 22:50ID:???8.0aでも駄目だったらクリーンインストール汁(;´Дm)
0326名前は開発中のものです。
02/08/13 01:10ID:???安いんだからそのくらいケチるなyo
0327名前は開発中のものです。
02/08/13 01:22ID:???0328名前は開発中のものです。
02/08/13 01:50ID:???再インストールが億劫でウチも似たような感じだ。
開封してないドライブが山積みになってるほ。
0329名前は開発中のものです。
02/08/13 03:23ID:PImLDq+L画像がぼやけてしまいます、ぼやけないようにするには
どうしたらいいのでしょうか。
0330名前は開発中のものです。
02/08/13 03:35ID:???頭のボケは直らんがな
0331名前は開発中のものです。
02/08/13 04:04ID:???過去ログにズバリそのものがでてる。
0332329
02/08/13 07:29ID:mgK0hkIzテクスチャーの読み込み時に変なフィルターかけてました
0333319
02/08/13 08:43ID:???0334名前は開発中のものです。
02/08/13 18:46ID:sLcDe9s28.xは情報があまりないから7をダウソ中(鬱
0335名前は開発中のものです。
02/08/13 18:54ID:???ゲームの開発だったら画面に文字入れないと辛いだろうし、
当分の間は7がお手軽でお勧めだと思うよ…。
0336名前は開発中のものです。
02/08/13 18:58ID:???0337名前は開発中のものです。
02/08/13 18:59ID:???特に初期化が。
0338名前は開発中のものです。
02/08/13 19:22ID:???0339名前は開発中のものです。
02/08/13 19:43ID:???0340名前は開発中のものです。
02/08/13 22:46ID:???0341名前は開発中のものです。
02/08/13 23:28ID:???1) 好きな時に表示
2) 1回のBeginScene()〜EndScene()間で一括で表示
3) 2)を行った上さらにデバイスを極力いじらないようプリミティブをソートして一括で表示
最も簡単なのは1)なんですが、速度が気になります。
3)はテクスチャだのαブレンディングだのを考えるとあまり効果がなさそうです。
みなさんどうしてますか?
上記の方法以外の方法とかもあるんですか?
それとも「そんな大差ないよ」ですか?
お聞かせ願います。
0342名前は開発中のものです。
02/08/13 23:32ID:???バッファに溜め込むコマンドと
バッファ内を描画するコマンドと
バッファをソートするコマンド
を作る。後は好きにする
最後の処理にバッファ内に未描画のものが残ってたら、自動的に(ソートして)描画
0343名前は開発中のものです。
02/08/14 02:10ID:???Builderで付属のサンプルを動かすことに成功。
やっとヨチヨチできそうです。
ごめんね、庭球で。
0344名前は開発中のものです。
02/08/14 10:58ID:???0345名前は開発中のものです。
02/08/14 11:10ID:???0346名前は開発中のものです。
02/08/15 19:45ID:???あんま省力化には興味ないかな?
STRIPはNVidiaの奴がいいのかな
0347名前は開発中のものです。
02/08/16 16:03ID:cDFx8JRk0348名前は開発中のものです。
02/08/16 17:00ID:???0349名前は開発中のものです。
02/08/16 17:09ID:???0350名前は開発中のものです。
02/08/16 17:52ID:???0351374
02/08/16 17:59ID:???DirectX8のスプライトのことです。
0352名前は開発中のものです。
02/08/16 19:06ID:???フルスクリーンにすると他のウィンドウを操作することはできないんですか?
0353名前は開発中のものです。
02/08/16 19:08ID:???0354名前は開発中のものです。
02/08/16 19:41ID:???■ このスレッドは過去ログ倉庫に格納されています