鬱だ氏のう DirectX (Part 16)
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
2005/11/26(土) 21:10:02技術情報交換&雑談するためのスレッド。
初心者用相談室では扱わないような少し高度な話題も受け持つ。
■過去スレ
DirectX総合スレ
http://pc5.2ch.net/test/read.cgi/gamedev/1083728025/
DirectX総合スレ (Part2)
http://pc5.2ch.net/test/read.cgi/gamedev/1095863432/
DirectX総合スレ (Part3)
http://pc5.2ch.net/test/read.cgi/gamedev/1105333209/
■関連スレ
【C++】 DirectX初心者質問スレ Part7 【C++】
http://pc8.2ch.net/test/read.cgi/tech/1132216611/
■関連サイト
- MSDN > DirectX
http://www.microsoft.com/japan/msdn/directx/default.asp
- DirectX Home Page
http://www.microsoft.com/japan/windows/directx/default.mspx
- DirectX Info Lib (デバイス情報のデータベース。すばらしい!)
ttp://www.netsphere.jp/dxinfo/
- BBX(掲示板)
ttp://isweb8.infoseek.co.jp/computer/bbx/
0153デフォルトの名無しさん
2006/03/21(火) 21:17:10いい世の中になったものだな。
0154デフォルトの名無しさん
2006/03/21(火) 23:49:59規模によると思うんだが、、、
嗚呼、、、叩かれそうな悪寒
0155デフォルトの名無しさん
2006/03/21(火) 23:54:37ん?規模によらないでしょ?
そもそも物理メモリってのはすでに俺等には触れない領域でな(以下略
0156154
2006/03/22(水) 01:04:28長時間安定動作を求められるものでも、
コンパクションをOSに任せっきりなのかなぁ。。。なんて。
0157デフォルトの名無しさん
2006/03/22(水) 03:26:140158デフォルトの名無しさん
2006/03/22(水) 04:54:41各都道府県に1人くらいはいるかもしれない。
0159デフォルトの名無しさん
2006/03/22(水) 09:19:100160デフォルトの名無しさん
2006/03/22(水) 10:14:24千葉県は俺だ。
固定小数点用のクラステンプレート作ったから
16.16 / 24.8 等もサクっと計算できるし、
キャスト用関数も用意したから、浮動小数点型へも簡単に変換可能だ。
まぁなんだ。
すまん。
0161デフォルトの名無しさん
2006/03/22(水) 10:37:28最近まったく使ってないことに気づいた。
携帯Javaも浮動小数サポートしたしな。
0162デフォルトの名無しさん
2006/03/22(水) 10:51:232D物しかやってなかったんでそれで十分だったのもある
D3Dに移行し時、3Dではそういう最適化は無意味だと気付いた
0163デフォルトの名無しさん
2006/03/22(水) 10:56:33結構当たってるんではないかと…
DirectXの実装自体が「ソフト屋の考え方」が根底にあるよな。
0164デフォルトの名無しさん
2006/03/22(水) 12:01:580165デフォルトの名無しさん
2006/03/22(水) 12:29:43MMXαブレンディングしたことあるが、
その時すでにDirectX7が登場してたからただの徒労だった
0166デフォルトの名無しさん
2006/03/22(水) 12:37:440167デフォルトの名無しさん
2006/03/22(水) 12:59:55でも今のボトルネックはメモリの帯域だしな。
0168154
2006/03/22(水) 13:57:33なんか自分自身、良く理解できてない気がする。。。
OSがコンパクションやるはずもなく。
言いたかったのはフラグメント対策です。
長時間安定動作を求められるものでも、
フラグメント対策をOSに任せっきりなのかなぁ。。。なんて。
なんか勘違い入ってる?俺。
0169デフォルトの名無しさん
2006/03/22(水) 14:59:170170154
2006/03/22(水) 15:05:370171デフォルトの名無しさん
2006/03/22(水) 17:14:07…というか、スレ違いの話題だと思うんだな。
0172デフォルトの名無しさん
2006/03/22(水) 17:31:40パフォーマンス上の不利もありません。本当に気にしなきゃいけないのは日本全国で5人くらいじゃね?
他はみんな自己満足野郎(言ってやった言ってやった
・ゲーム機のやや狭いメモリだと、PCよりも断片化による問題が起こりやすくなりますが、
大抵は、一部の大きなリソースだけを固定したり、シーンごとにすべて強制解放してやれば解決します。
・それよりも、みみっちく手動でメモリ管理することによる開発効率の低下のほうが問題です。
C++のメリットの大半を捨てることになるし、ライブラリも大部分が使えなくなるはずだけど、いいの?
・面倒なメモリ管理なぞランタイムやVMに委ねてしまって、何かあったらそのときに対処。
実際にはまず問題など起こりません。この大雑把さが今流。富豪的プログラミング。
・どう見てもスレ違いです。本当にありがとうございました。
0173154
2006/03/22(水) 17:38:08「毎フレームガベコレした方が良いのか!?」
って書いてあって驚いたw
0174154
2006/03/22(水) 17:42:28本当にありがとうございました。
0175デフォルトの名無しさん
2006/03/22(水) 18:43:560176デフォルトの名無しさん
2006/03/22(水) 19:09:120177デフォルトの名無しさん
2006/03/22(水) 19:14:21>・今のPCでは、断片化など気にせずガンガンnew/deleteしても24時間365日動きますし、
昔と違って単にメモリ搭載量が増えたから問題が露見しにくくなっただけ
自力で再配置する必要は無いが、取得・開放の順ぐらいは気にしとけ
0178デフォルトの名無しさん
2006/03/22(水) 20:55:00パーティクルの粒一つ一つをnew/deleteした俺に謝れ
0179デフォルトの名無しさん
2006/03/22(水) 21:33:14原理的に無くせるんじゃなかったっけ
0180デフォルトの名無しさん
2006/03/22(水) 21:58:30っていうかさ、OSがどうやってメモリを管理しているのか知らずに
必死で物理メモリいじってる気になってて馬鹿みたい。
あんた管理できないでしょ?
OS通すしかないのわからないの?
OSがどうやってメモリ管理してるか知らないで馬鹿みたいなことしないでくれない。
0181154
2006/03/22(水) 22:09:400182デフォルトの名無しさん
2006/03/22(水) 22:25:23つ メモリプール
0183デフォルトの名無しさん
2006/03/22(水) 23:13:45> 昔と違って単にメモリ搭載量が増えたから問題が露見しにくくなっただけ
メモリ容量が増えて十分に露見しなくなったら、問題は解決していると思うのだが。
ひとつのアプリを動かしつづけている限りは、ある程度断片化は起こしても
メモリ消費はそれなりのところで収束しないか?
てか、実際、問題が起こったことないしな。
よく考えてみれば俺Windowsのmallocの実装知らねーや。気にしたことないから。
68/98時代は自前のヒープ管理コード書いてたのだが、すっかりぬるぽか。
0184デフォルトの名無しさん
2006/03/23(木) 06:49:150185デフォルトの名無しさん
2006/03/23(木) 12:48:380186デフォルトの名無しさん
2006/03/23(木) 13:41:360187デフォルトの名無しさん
2006/03/23(木) 13:56:05Windows の malloc とか Linux の malloc とかいうのは無いよ。
bcc の malloc とか vc の malloc とか glib の malloc とかがあるだけ。
0188デフォルトの名無しさん
2006/03/23(木) 17:34:51俺はMZ-80Bだったんだけど、80Bと2000って何が違うんだっけ?
0189デフォルトの名無しさん
2006/03/23(木) 20:29:17リンクしています...
d3dx9.lib(d3dx9dbg.obj) : error LNK2019: 未解決の外部シンボル __imp__RegCloseKey@4 が関数 "int __stdcall GetD3DRegValue(unsigned long,char *,void *,unsigned long)" (?GetD3DRegValue@@YGHKPADPAXK@Z) で参照されました。
d3dx9.lib(cpudetect.obj) : error LNK2001: 外部シンボル "__imp__RegCloseKey@4" は未解決です。
d3dx9.lib(d3dx9dbg.obj) : error LNK2019: 未解決の外部シンボル __imp__RegQueryValueExA@24 が関数 "int __stdcall GetD3DRegValue(unsigned long,char *,void *,unsigned long)" (?GetD3DRegValue@@YGHKPADPAXK@Z) で参照されました。
d3dx9.lib(cpudetect.obj) : error LNK2001: 外部シンボル "__imp__RegQueryValueExA@24" は未解決です。
d3dx9.lib(d3dx9dbg.obj) : error LNK2019: 未解決の外部シンボル __imp__RegOpenKeyA@12 が関数 "int __stdcall GetD3DRegValue(unsigned long,char *,void *,unsigned long)" (?GetD3DRegValue@@YGHKPADPAXK@Z) で参照されました。
d3dx9.lib(cpudetect.obj) : error LNK2001: 外部シンボル "__imp__RegOpenKeyA@12" は未解決です。
D:\c\vc2005\dx0\Debug\dx0.exe : fatal error LNK1120: 外部参照 3 が未解決です。
ビルドログは "file://d:\c\vc2005\dx0\dx0\Debug\BuildLog.htm" に保存されました。
dx0 - エラー 7、警告 0
========== ビルド: 0 正常終了、1 失敗、0 更新、0 スキップ ==========
0190デフォルトの名無しさん
2006/03/23(木) 20:34:350191デフォルトの名無しさん
2006/03/23(木) 21:34:51{
float x,y,z,w;
float tu,tv;
// 頂点FVF
enum { FVF = D3DFVF_TEX1|D3DFVF_XYZRHW};
};
入れる順番変えたら動かない
順番は 座標、UVって決まってるの?
0192デフォルトの名無しさん
2006/03/23(木) 21:36:40ただFVFに対しての頂点データの順番は固定。
無論シェーダーで処理する場合は全て自分で定義できるので自由。
つまりドキュメントくらい見ろってこった。
0193デフォルトの名無しさん
2006/03/23(木) 22:20:47いや何でもない
0194デフォルトの名無しさん
2006/03/23(木) 23:37:47俺の為に時よ止まれ!
>>145
ソースいただけないでしょうか?
0195デフォルトの名無しさん
2006/03/24(金) 02:16:490196デフォルトの名無しさん
2006/03/24(金) 12:14:240197デフォルトの名無しさん
2006/03/24(金) 12:49:59FPS作成可能な日本のライブラリって見かけないけどやっぱり国柄の問題?
0198デフォルトの名無しさん
2006/03/24(金) 14:16:412Dの基本がシューティングゲームなら3Dとネットワークの基本はFPS
それすっ飛ばしてMMORPGばかり作るから技術が伸びない
0199デフォルトの名無しさん
2006/03/24(金) 14:42:540200デフォルトの名無しさん
2006/03/24(金) 15:50:13フリーや同人あたりで出回ってきたりするのかもしれないね。
どっちも一人で作ってるみたいだから望み薄かもしれないけど。
0201デフォルトの名無しさん
2006/03/24(金) 17:13:34DirectXスレだからVCに決まってるじゃないか。
0202デフォルトの名無しさん
2006/03/24(金) 17:21:510203デフォルトの名無しさん
2006/03/24(金) 19:23:58敷居が下がっても増えるのは(ry
0204デフォルトの名無しさん
2006/03/24(金) 19:35:090205デフォルトの名無しさん
2006/03/24(金) 19:51:240206デフォルトの名無しさん
2006/03/24(金) 20:15:33日本ではFPSは人気ないし、あまり需要がないだろう。
BSPやPVSは屋内のようにマップの大半が不可視の場合に
効率的だが、三人称視点はそういう地形に向いてない。
もっとも、一番のネックはプログラミング技術的なことよりも
レベルエディットだと思うけどね。
0207デフォルトの名無しさん
2006/03/24(金) 23:02:28漏れのPCで3Dmark05のデモを動かすと、D3DERR_DEVICELOST って言われて
しまうのですよ。
それでその言葉ググったらここのスレのpart8ってのが出てきて、分からないなりにザット
読んでみたのですが・・・
要するに、これ言われちゃう時はデバイスリセットするようにコード書かなきゃだめってことで、
バグって言っちゃっていいってことなのかしら?
漏れのハードがしょばいからって訳じゃなくて
0208デフォルトの名無しさん
2006/03/24(金) 23:10:38そのしょっぱいハードウエア構成を当てろという挑戦状だな。
0209デフォルトの名無しさん
2006/03/25(土) 00:32:37それしか作られないから、3Dもネットも、ありとあらゆる方面で技術が伸びない
0210デフォルトの名無しさん
2006/03/25(土) 01:25:05すげー作りたいんだけどデータの用意がしんどいんだよね。
今参加させてもらってる同人サークルでは進言して
3Dでって話を進めてるけどモデルデータに関しては
四苦八苦してる感じ。
DirectX用の最適なモデル作成ってのもまた面倒だしね。
ネットワークは必要とあれば対応ってそんな難しい気がしないけど。
サーバークライアント型しか作ったことないからP2Pだとまた難しいのかもしれないな。
0211デフォルトの名無しさん
2006/03/25(土) 06:14:19日本でモデラーといえばメッシュ作成までで、動きをつけられないのが当たり前
0212デフォルトの名無しさん
2006/03/25(土) 06:31:36そもそもキャラクターの動きそのものをどうやってつけるか?
って部分がテンプレ化してないから、よしんば、アニメーション+スキニング(スキミングではないw)ができたとしても
ぶつ切りアニメができるだけだしねぇ。
モーションA
モーションB
まではできるだろうよ。
でも、それにともなって必要になる
アクションA
アクションB
アクションA->B
までをやるのは至難の技だろうな。
それと最近の六角大王を使えばとりあえずアニメーション+スキニングまではつくぞ。
旧タイプのファイルで吐き出して、どっかのサイトに落ちてるフリーの変換ソフトでスキニングのXファイルが作れるんだ。
知らなかっただろ?
とりあえずできる環境はある。
でも、3Dゲーム作るならそんなところには拘らないで、とりあえずアニメーション無しの物体でも出して
3Dゲーム作ってみればいいとおもうんだけどなぁ・・・
0213デフォルトの名無しさん
2006/03/25(土) 09:23:21レイストームみたいなSTGとかですら作る人が滅多にいないのが現状・・・ってとこだね。
エロゲーの極限まで低スペックまで動作サポートは当たり前みたいな
風潮も足をひっぱってるのかもしれないね。
PS2からの移植(3Dあり)のサンプル作成時に
上司からMatrixG400&DirectX5&Pen2の200くらいで動くようにしろ
って言われたときは撃ち殺そうかと思った・・・。
0214デフォルトの名無しさん
2006/03/25(土) 09:25:42別に至難の業でも何でもないが。
不自然に繋がるなら基本姿勢を用意すればいいだけだし。
0215デフォルトの名無しさん
2006/03/25(土) 09:37:22全キーフレーム分のデータをマトリックスで持ってる形式のやつ。
計算を早くするための導入されたんだろうけど、
計算後のマトリックスしかないとブレンドは至難の技じゃない?
0216デフォルトの名無しさん
2006/03/25(土) 09:45:23別にゲーム作るのにXファイル完全対応する必要はないので、
自分のゲームでマトリクスキーは使わなければいいだけ
0217デフォルトの名無しさん
2006/03/25(土) 12:44:410218デフォルトの名無しさん
2006/03/25(土) 16:29:40回転とかで半回転とか1回転とかさせるデータを作らないで30度ぐらいで刻んでキーを打つようにしていけば
特に問題なく動くんじゃない?
って別に使わなきゃいけないって決まりも無いけどw
まあ、それでも動かすことはできるということで。
0219デフォルトの名無しさん
2006/03/25(土) 21:53:160220デフォルトの名無しさん
2006/03/25(土) 22:17:49マトリックスの各要素をそのまま補間するだけでそれっぽくなると思うけど?
0221デフォルトの名無しさん
2006/03/25(土) 22:52:40それをxの割合で、そのまま補完する方法を教えてください
0222デフォルトの名無しさん
2006/03/25(土) 23:58:150223デフォルトの名無しさん
2006/03/26(日) 00:13:060224デフォルトの名無しさん
2006/03/26(日) 00:30:150225デフォルトの名無しさん
2006/03/26(日) 00:34:41回転の順番が固定されていなくて、さらにスケールまではいってるものを
分解なんてどう考えても無理な希ガス。
0226デフォルトの名無しさん
2006/03/26(日) 03:54:11普通にそれぞれの値を線形補間するしかないんじゃね?
分解はもう不可能だし。
それは回転や平行移動に関しても似たようなもんじゃね?
例えば、1回転な。もうこんなの確かにマトリクスじゃ無理っしょ。
だけど、あってるあってないはともかくとして状態Aのマトリクスと
状態Bのマトリクスを線形補間するんだから、あくまで「近似」だったらできると思わない?
それで十分な値の作り方もあるっしょ?
0227デフォルトの名無しさん
2006/03/26(日) 09:06:141つの回転行列と1つの拡大行列なら分解できる
0228デフォルトの名無しさん
2006/03/26(日) 10:52:050229デフォルトの名無しさん
2006/03/26(日) 10:56:58面倒なことにSDK付属のプラグインで3DSMaxで出力したXファイルは
マトリックスキーしか吐き出さない。
0230デフォルトの名無しさん
2006/03/26(日) 11:48:140231デフォルトの名無しさん
2006/03/26(日) 18:21:37だから、要は使いようだって、キーを小刻みに打てば一応使えるでしょ。
0232デフォルトの名無しさん
2006/03/26(日) 18:30:34って話さねぇ
0233デフォルトの名無しさん
2006/03/26(日) 18:38:06ブレンド相手のモーションとのスケールや角度の差が大きければ、
ねじ曲がったり潰れたりする。
中間姿勢まで大量に作るつもりなのか?
そんな無駄な苦労をするくらいなら、最初から行列で吐かなければいいだけ。
何故固執するのか分からん。
0234デフォルトの名無しさん
2006/03/26(日) 19:20:390235デフォルトの名無しさん
2006/03/26(日) 20:01:51COLLADAとかどうなるんだろ
0236デフォルトの名無しさん
2006/03/27(月) 01:45:24>何故固執するのか分からん
そういう方法があってもいいじゃん。
気に入らないならサポートしなければいいだけで。
ルーチン自体は至って単純だし、Tinyのサンプルもサンプルとして十分な動きで動いてるじゃん。
良い悪いは別として「使える」ってところは大きいと思うけどね。
この方法の方が都合いいことってのもなんかあるかもしれないわけだし。
DirectXの開発者がヘルプを変更してまで追加してみたフォーマットなんだからなんかいいことあんじゃないの?
俺がいいたいのは「あってもいいでしょ?」ってこと。
0237デフォルトの名無しさん
2006/03/27(月) 02:21:19可能性だのなんだの、お花畑PTAや厨房アニメの奇麗事みたいなこと言ってんな。
ないの。いいところは全く。
↓そうじゃないってんなら、思いつくのを書いてみろ
0238デフォルトの名無しさん
2006/03/27(月) 02:38:26なんとも香ばしい状態でして、あれを実用するとなるとちょっと・・・
0239デフォルトの名無しさん
2006/03/27(月) 02:44:39ちょっと、何だよ?
言いたいことがあるならはっきり言ってみろってんだ。
0240デフォルトの名無しさん
2006/03/27(月) 02:44:46そもそもMaxで出力された奴は時間の概念がおかしいからうっとうしい・・・
マトリックスキーで最大の欠点は任意のスピードの再生が出来ないことだな。
スローモーションとか補間できないからカクカクになる。
高速再生も整数倍でしかできないし。
0241デフォルトの名無しさん
2006/03/27(月) 07:03:33そんなのDirectXの開発者に聞けよ。
逆に聞くけど、Tinyのサンプルで何かまずいことあるの?
サンプルならあれで十分じゃないの?
0242デフォルトの名無しさん
2006/03/27(月) 08:28:250243デフォルトの名無しさん
2006/03/27(月) 11:44:07お前もアニメの悪役みたいな台詞で必死になるなって
モーションブレンドが必要ない状況ならあれが高速で使いやすい。
問題はモーションブレンドが必要な時が多いのに行列キーしかサポートしてないって点だろ
0244デフォルトの名無しさん
2006/03/27(月) 15:55:22ID3DXAnimationControllerだっけ?
あれがなかったころのskinnedmesh.cppの実装は
行列キーのは線形補完じゃなくて本当にコマ送り処理だったな
0245デフォルトの名無しさん
2006/03/28(火) 12:51:46各種ゲームスレで「XPなんですけどこれ動きますか?」が何回書き込まれるんだろう
0246デフォルトの名無しさん
2006/03/28(火) 13:11:25なんだかんだで楽しそうでもあるな。
0247デフォルトの名無しさん
2006/03/30(木) 15:11:43D3DXMatrixIdentity(&matW);
static float g_rotY =0,x=0,z=0,big=1;
g_rotY +=0.1f;
D3DXMatrixRotationYawPitchRoll( &matW, g_rotY, 0,0 );
D3DXMATRIX matrix;
D3DXMatrixTranslation(&matrix,x,0,z);
x+=0.01;
//z+=0.5;
matW*=matrix;
D3DXMATRIX ScaleMat;
D3DXMatrixScaling(&ScaleMat,big,big,big);
matW*=ScaleMat;
big+=0.009;
ど〜ん^^
0248デフォルトの名無しさん
2006/03/30(木) 15:22:25マジ感動した!!
0249デフォルトの名無しさん
2006/03/30(木) 18:01:500250デフォルトの名無しさん
2006/03/30(木) 20:30:33これは元々ブレンドとか補間とかが必要でない状況に用意されてる物であって
その他の状況で使う物ではないのと思うのですよ.
例えばいわゆるポリゴンムービーとか決まり切ったモーションを
フレームベースで処理するときなどに使用するのではないかと.
ブレンドも補間も必要ないから他のキーでは無駄でしょ?そんな時に応えてくれるのがマトリクスキーです.
ブレンド云々言っている方は道具の使い方間違ってるだけでマトリクスキーを責めるのはお門違いだと思う.
まあマトリクスキーしか出力出来ないソフトはポリゴンムービーしか
想定してないということではないでしょうか...
0251デフォルトの名無しさん
2006/03/30(木) 20:50:13ムービー用途で長時間動かしたら、行列の束だけでバイナリでもMB単位。
0252デフォルトの名無しさん
2006/03/31(金) 01:12:12数フレーム毎に9x4BYTEで済むが、
マトリックスキーは毎フレーム16x4BYTE必要。
メモリ気にしないでいいPCだからこその手法ってとこだな。
■ このスレッドは過去ログ倉庫に格納されています