鬱だ氏のう DirectX (Part 7)
■ このスレッドは過去ログ倉庫に格納されています
0001名前は開発中のものです。
02/12/10 17:34ID:tkEwMMYm初心者用相談室では扱わないような少し高度な話題も受け持つ。
■ 過去スレ
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/
0103名前は開発中のものです。
02/12/22 16:14ID:mBDSZwTf実はプログラム技術板にもDirectXスレがあったり…
鬱だ氏のう DirectX 2
http://pc3.2ch.net/test/read.cgi/tech/997101556/l50
0104あぼーん
NGNG0105名前は開発中のものです。
02/12/22 17:22ID:sSsEI5R3テクスチャを使うと背景画像やキャラ画像が512x512になってしまいます。
やはりサーフェイスを使うべきでしょうか?
DirectX8のスプライト機能は重いって聞くけど、
ポリゴンにテクスチャを貼るようにしたほうがいいのでしょうか?
0106名前は開発中のものです。
02/12/22 17:37ID:IeNHUVjA後は7以前で組むとか。
0107名前は開発中のものです。
02/12/22 17:47ID:ab12EPgU0108名前は開発中のものです。
02/12/22 18:01ID:sSsEI5R3DX8の2D系はあまり良くないみたいですね。
もう少し弄ってみてダメそうなら諦めます。
>>107
DX9はまだ触ってないのでなんとも言えません。
触るのはもうちょと先ですね・・・
0109名前は開発中のものです。
02/12/22 19:06ID:Zc9XiYaJ7なら大抵の環境で動くしな。1年後くらいに9に移行する。
0110名前は開発中のものです。
02/12/22 20:55ID:O6Yda65i0111名前は開発中のものです。
02/12/22 23:33ID:3R93okVP抜き出して、メッシュを表示しながらそれらを編集するプログラムを作って
います。
D3DXLoadMeshFromXofでメッシュを作ると、そのメッシュXfileDataの中に
あるマテリアルリストのデータやメッシュノーマルのデータ等の子データが
GetNextObjectで取得できなくなってしまいます。先にその子データを取得すると今度は
D3DXLoadMeshFromXofの方でエラーがでるため、多分この関数内でGetNextObjectを
やっているのだと思います。そのせいでこの関数が子を取得するとこのメッシュデータ
の子を自分で取得できなくなる、という風に考えているのですが、どうにかして
GetNextObjectでの子オブジェクトの参照カウントを元に戻す方法ってありますか?
AddrefやReleaseをしてみても何も変化はないです。教えて下さい。
0112111
02/12/22 23:36ID:3R93okVP>D3DXLoadMeshFromXofの方でエラーがでるため
間違えました。エラーはでないのですが、マテリアルリスト等の子データを
持たないメッシュができてしまい、表示がおかしくなります。
0113あぼーん
NGNG0114名前は開発中のものです。
02/12/23 13:40ID:NO9DtWWSManaged DirectX(C#とVB.NET)にはないんだろう。
単に省略しただけなのか、使えない理由があるのか。
0115名前は開発中のものです。
02/12/23 15:55ID:EfpKXfeuあまりに遅くて泣く泣く削った… では無い事を祈る。
0116名前は開発中のものです。
02/12/23 16:11ID:qFc82hVW0117114
02/12/23 23:44ID:NO9DtWWSまー、たいした理由でないといいですな。
0118名前は開発中のものです。
02/12/24 01:15ID:JJdtC4Utやつらは3Dがやりたいんであって、C#やVBは上からのお達しで
仕方なくやってるdake
0119名前は開発中のものです。
02/12/24 04:52ID:U9xcR896数のサンプルを用意してきた事に驚いたけど。
本音を言うと、C#のサンプルなんか用意するよりもD-MAPやMRTのサンプルを
作って欲しいんだが。毎度のことだけど、売りであるはずの新しい機能の
サンプルが無いんだよな。
0120名前は開発中のものです。
02/12/24 06:10ID:IMP3us1SDX9落としたんだけど、サンプルがコンパイル出来ません。
UINTPTRが未定義とか言われる。
basetsd.hてのに宣言されてるけど、エラー出ていてるヘッダファイル
D3D9.h(かな?)には、#includeそのものがない。
どうなってるんでしょうか?
同じエラー出た人います?
(オプション>ディレクトリのパスは通してます(C:\DXSDK\include))
0121名前は開発中のものです。
02/12/24 06:18ID:6zRcQ9qZそのディレクトリの検索順は一番上にageてあるか?
0122名前は開発中のものです。
02/12/24 12:23ID:RrtXDOZR0123名前は開発中のものです。
02/12/24 20:46ID:CjExnJI6テクスチャサイズは2の累乗にしなくちゃいけないんじゃなかったっけ?
0124名前は開発中のものです。
02/12/24 20:51ID:8FHlCXa70125名前は開発中のものです。
02/12/24 22:14ID:sve9Duu3DX8から部分的にサポートされてるよ
ただし利用方法が激しく制限されてるので
2^nの一部を使ったほうがまだマシ
0126名前は開発中のものです。
02/12/24 23:39ID:wBChHQUXどこが激しいのか疑問。
ミップマップ以外は制限とは言えない程度のささいな事じゃん。
2^nであってもCLAMPにしたらテクスチャラッピングは使えないから、
実質的に制限は2つだけ。
0127名前は開発中のものです。
02/12/24 23:54ID:sve9Duu3使ったことないのに無理しないで。
あとサポートしてる環境を把握してる?
0128名前は開発中のものです。
02/12/24 23:58ID:nM8z+tpm痛い香具師ハケーン
0129名前は開発中のものです。
02/12/25 00:28ID:5yYW1Zioそういう自分こそ使ったことない&把握してないのでは?
あの制限のどこが問題になるのか説明してくれる?
0130名前は開発中のものです。
02/12/25 00:41ID:o5sX+mEC戻らないのですが、元に戻すには何かしなければいけないのですか?
0131名前は開発中のものです。
02/12/25 00:56ID:C+V8gp8bResetが必要なんではないか。
詳しくはサンプルを参照。
0132名前は開発中のものです。
02/12/25 01:06ID:loF3ndqX0133名前は開発中のものです。
02/12/25 01:23ID:MT7gu6YF0134名前は開発中のものです。
02/12/25 03:30ID:PtOPqJI+D3Ddevice 作り直さないとだめなのよ〜ん(タブン)
0135名前は開発中のものです。
02/12/25 03:44ID:Km2eVg0y0136あぼーん
NGNG0137名前は開発中のものです。
02/12/25 07:41ID:BoDn9JVh10 DEFINT A-Z:SCREEN 3,0,0,1WIDTH 80,25:CONSOLE 0,25,0,1:CLS 3
20 device = new Device(0, DeviceType.Hardware, this, CreateFlags.SoftwareVertexProcessing, presentParams);
30 RELEASE(device);
0138あぼーん
NGNG0139名前は開発中のものです。
02/12/25 10:23ID:vBfJXHZbBBXも野郎BBSも閉鎖だし、ここはこんな風だし…
日本のアマチュアゲーム開発は終了だな。(´・ω・`)ショボーン
0140名前は開発中のものです。
02/12/25 10:45ID:N0hSeH2R0141名前は開発中のものです。
02/12/25 11:55ID:ztzHsFBr0142名前は開発中のものです。
02/12/25 11:58ID:srbFeJO+http://bbx.hp.infoseek.co.jp/cgi-bin/bbx.cgi
教えて欲しかっただけだろ?
0143名前は開発中のものです。
02/12/25 11:58ID:cEvsDgEI0144名前は開発中のものです。
02/12/25 12:06ID:6xTmGeBz調べることができない人間ほどBBSに頼りたがる
BBSに頼りたがる人間ほど移転しただけで閉鎖したと勘違いする
勘違いする人間ほど自分が頼るものを失った時点で全てのアマチュアプログラマが開発を終了したと思いこむ
0145あぼーん
NGNG0146あぼーん
NGNG0147名前は開発中のものです。
02/12/25 16:10ID:o5sX+mEC自分のプログラムでは、MIDIを再生すると、リバーブ等のエフェクトが
最大になってしまいます。一度再生すると、全てのMIDIとWAVがこうなってしまいます。
そこで、エフェクトを削除する方法がわかったので、SetFX(0, NULL, NULL)で
エフェクトを削除したら、すでに再生しているMIDIがとまってしまいました。
で、もう一度MIDIを再生しようとすると、またエフェクトがかかってしまうのです。
エフェクトを削除したら、再生しているMIDIがとまったというのは、
工学社のサンプルでもそうだったので(コードも同じでした)、そういうもんなのだと思ったのですが、
では、どうすればいいのでしょう。
そもそもMIDIを再生した時点でエフェクトがかかるのが間違いですか?
0148あぼーん
NGNG0149名前は開発中のものです。
02/12/25 18:50ID:srbFeJO+0150名前は開発中のものです。
02/12/25 20:54ID:PzwC4Farメッシュにxファイルを読み込みたいのですが、
そのファイルはどこら辺に入れておいたらよいのでしょうか?
本を買って勉強しているのですが、その辺がどうもわからなくて、つい。
0151名前は開発中のものです。
02/12/25 21:16ID:NnnYhCf/カレントデレクトリ
0152あぼーん
NGNG0153あぼーん
NGNG0154名前は開発中のものです。
02/12/25 22:05ID:PzwC4Farお返事ありがとう!
…つまり、プロジェクトが入っているフォルダ?
0155名前は開発中のものです。
02/12/25 22:09ID:NnnYhCf/VisualStudioから実行した場合はたぶんそうだけど
普通はexeファイルがあるところ、
カレントディレクトリをゲットする関数(Win32)とかもあるんで
調べてみたらいいかも?
0156名前は開発中のものです。
02/12/25 23:29ID:/fn3aOJDSPRITEで半透明ってできませんか?
0157名前は開発中のものです。
02/12/25 23:29ID:lmj/8fOxカレントディレクトリはプログラムの実行の仕方や、実行中の操作で変化
するから、できればフルパスで指定した方がいいよ。
でも、大抵の場合はカレントディレクトリから読み込んで問題無い。
VisualStudioから実行した場合は、デフォルト設定のままならプロジェクト
のある場所がカレントディレクトリになるけど、プロジェクトの設定の
作業用のディレクトリで変更できる。
ちなみに、実行中にファイル選択ダイアログを使う場合は、このダイアログ
がカレントディレクトリを変更してしまうので要注意。
0158_
02/12/25 23:34ID:7ccBlzyEどうやるのが一般的か知りませんが、自分は
char path[_MAX_PATH];
GetModuleFileName(hInst,path,_MAX_PATH);
で、exeファイルフルパスを取得したあと、邪魔なファイル名を削ってカレントディレクトリを取得しています。
実行ファイル名の削り方は、
char pDrive[_MAX_DRIVE+1];
char pDir[_MAX_DIR+1];
char pFname[_MAX_FNAME+1];
char pExt[_MAX_EXT+1];
_splitpath(path,pDrive,pDir,pFname,pExt);
でフルパスを分解してから、
string currentDirectory=pDrive+pDir;
currentDirectory+="\\";
くらいでいいのでは。
例えば、
Text.xというxファイルを、exeのあるフォルダにいれたとしたら、
ファイルを読み込むときに、
string filename=currentDirectory;
filename+="Test.x";
のようにかいて、それをファイルを読み込むメソッドの引数に入れるとか。
う〜ん、わかりずらいですね…。
0159158
02/12/25 23:37ID:7ccBlzyEcurrentDirectory+="\\";
は必要なかった。
0160名前は開発中のものです。
02/12/26 00:15ID:IJOtQDAyぜぇっっってぇーフルパスにしとけ。
なにがなんでもフルパスを使うくせをつけろ。
0161名前は開発中のものです。
02/12/26 00:18ID:hDb5j8vTテクスチャのα値をいじれば?
0162名前は開発中のものです。
02/12/26 00:49ID:ZW5MFsfxDirectX8のスプライトはあまり良くないので、ポリゴンでスプライトの代用した方が
自由度が高いよ。
0163_
02/12/26 00:52ID:p7bBeRQyID3DXSprite使ったこと無いけど、たぶん
ID3DXSprite::Drawの引数D3DCOLORのα値を指定するのかと。
例えば50%半透明なら、
D3DCOLORにD3DCOLOR_ARGB(128,255,255,255)を入れればいいと思う。
>>162
同意。ID3DXSpriteには、あまりいい噂はききませんね。
0164名前は開発中のものです。
02/12/26 02:43ID:8elQi3d2exeのある場所を最初にカレントにして、そこから相対パスってのが基本だろ。
0165名前は開発中のものです。
02/12/26 02:49ID:u+QTkfIN開発中はdebug\hoge.exeとかになってるぽ
0166名前は開発中のものです。
02/12/26 03:48ID:9RUwBm5sコモンダイアログのファイル選択ダイアログを使ったことがあれば
フルパスマンセーになるぞ。
ゲームならあまり使わないかもしれないがツールだとまず確実に使う。
0167名前は開発中のものです。
02/12/26 05:51ID:AGlHM0EQファイル選択ダイアログのフラグにOFN_NOCHANGEDIRつけとけばカレントディレクトリかわらないよ。
まあ、毎回元のディレクトリから始まるようになるので、
遠くのファイルを何回も選ぶ場合には面倒だけど。
嫌なら毎回ディレクトリ保存しておいて復元してもいいし。
0168あぼーん
NGNG0169名前は開発中のものです。
02/12/26 07:04ID:ePwyo9mVってのが一番面倒、ぶんなぐれ。
でかいツール作ってるときは誰がなにやってくれるかわからない。
ゲーム本体でもユーザーに保存場所を選ばせる場合だと必要になるから、いっそフルパスマンセーのが楽に逝ける。
0170名前は開発中のものです。
02/12/26 07:08ID:oxPiSeR20171156
02/12/26 07:10ID:h8wBSWcJお、ちゃんとα描画できました。
SPRITEの方が簡単に作れると思ったのですが、やはり普通に
ポリゴンで扱ったほうがいいみたいですね…。
ありがとうございました(・∀・)
0172あぼーん
NGNG0173名前は開発中のものです。
02/12/26 07:52ID:f4uAG8OsXファイルのテクスチャをフルパスで吐き出すのが困りものなのよね。
ところで、フルパスからカレントパスを作るのも意外とめんどい
んだけどなんか良い関数ないもんですかね?
0174150
02/12/26 09:15ID:ik1sR7sqこんなにレスがつくとは思いもよりませんでした。
本当にありがとうございます!!
では引き続き作業を頑張ります。
0175名前は開発中のものです。
02/12/26 09:53ID:8elQi3d2どっか他にない?
0176名前は開発中のものです。
02/12/26 11:22ID:8ZNjq3avftpからはおとせたYO!
ftp://download1.nvidia.com/developer/cg/
0177名前は開発中のものです。
02/12/26 11:34ID:AGlHM0EQPathRelativePathToあたりどう?
環境(IEのバージョン?)によっては動かないかもしれないけど。
0178名前は開発中のものです。
02/12/26 11:46ID:Tz6MkjNI現在.hackの様な視点の3Dゲームを作ろうとしているのですが、
周りの物体が妙に傾いたように描画されてしまいます。
プロジェクションマトリックスのセットはこんな感じです、
D3DXMatrixPerspectiveFovLH(&mProj, 60*PI/180 , 1.0f , 0.5f , 640.0f);
何か解決策は無いでしょうか。
0179名前は開発中のものです。
02/12/26 12:12ID:u+QTkfIN画面の縦横比をいれなきゃダメよ。
0180名前は開発中のものです。
02/12/26 12:19ID:Tz6MkjNI早速アスペクト比をWIDTH/HEIGHTで入れたのですが、
やっぱり画面端に行くにつれ、木などが傾いてしまいます。
0181名前は開発中のものです。
02/12/26 12:34ID:j+J1+fQKってか、連書き規制きびしすぎねえ?1時間以上経つのにかけなかったよ
0182名前は開発中のものです。
02/12/26 12:40ID:W0NkvfZI640*480の解像度で1.33333fとか入ってるの。
0.75だろうが!って突っ込みたかった。
0183名前は開発中のものです。
02/12/26 12:47ID:+a+DZGj70184名前は開発中のものです。
02/12/26 13:18ID:u+QTkfINあとはfloatにキャストしてないとか
int W = 320;
int H = 240;
D3DX...( ... , W/H, ...);
じゃあダメよ。
0185あぼーん
NGNG0186名前は開発中のものです。
02/12/26 16:50ID:rNK9GIomありがちだな
0187名前は開発中のものです。
02/12/26 17:30ID:Tz6MkjNID3DXMatrixPerspectiveFovLH(&mProj , 35.0f*PI/180 ,(float)WIDTH/(float)HEIGHT , 1.0f ,640.0f);
と、してみたところ結構マシになりました。
ありがとうございました。
0188名前は開発中のものです。
02/12/26 17:39ID:u+QTkfINおめでとう。
あと、WとHが逆だったかもしれん。
0189名前は開発中のものです。
02/12/26 18:25ID:SuFqab0rがあるそうですがどの関数で切り替えられれますか?
0190189
02/12/26 18:38ID:SuFqab0rでは処理速度はフラットの方が速いでしょうか?
0191名前は開発中のものです。
02/12/26 20:39ID:bqU4KP+U試してみるのが一番だ。
0192名前は開発中のものです。
02/12/27 07:45ID:md1EDfNJ激しく環境依存ってことも忘れずにね
0193あぼーん
NGNG0194名前は開発中のものです。
02/12/27 12:24ID:7dHzV0a8スプライトのDraw「だけ」なんですか?
ポリゴンを描画しようとすると、自分の環境では表示がおかしくなるのですが、
ほかにおかしそうなところが見当たらないので、そういうもんと認識しても
いいのでしょうか。
0195名前は開発中のものです。
02/12/27 13:20ID:vFPVFOouパフォーマンスの初期化のところでデフォルトのオーディオパス・タイプをみて
DMUS_APATH_SHARED_STEREOPLUSREVERBになってませんか?
DMUS_APATH_DYNAMIC_STEREOにすればエコーがなくなります。
0196195
02/12/27 13:22ID:vFPVFOouhr = g_pPerformance->InitAudio(
NULL, // IDirectMusicインターフェイスは不要
NULL, // IDirectSoundインターフェイスは不要
NULL, // ウィンドウのハンドル
/*DMUS_APATH_SHARED_STEREOPLUSREVERB*/DMUS_APATH_DYNAMIC_STEREO , // デフォルトのオーディオパス・タイプ
64,// パフォーマンス・チャンネルの数
/*DMUS_AUDIOF_ALL*/NULL, // シンセサイザの機能
NULL); // オーディオ・パラメータにはデフォルトを使用
if (FAILED(hr))
{
DXTRACE_ERR("DirectMusicPerformance8の初期化に失敗", hr);
return FALSE;
}
参考書コードの修正後ソース・・・この方が分かりやすいかと・・・
0197あぼーん
NGNG0198名前は開発中のものです。
02/12/28 18:56ID:pcScEEbX終了
おまえら首吊れ
0199名前は開発中のものです。
02/12/28 21:55ID:EVvwHmrD0200名前は開発中のものです。
02/12/28 23:48ID:KFOt0L7zうわぁ〜。すごいすごい。
その通りやったら見事直りました。
ありがとうございました。
0201あぼーん
NGNG0202名前は開発中のものです。
02/12/29 04:51ID:mxtUttMfまともな製品作るならシェーダで突っ走るに決まってる。
糞ユーザーのためにシェーダ使わない選択するのは愚挙。
そういうときはソフトウェアで頂点シェーダ動かしてピクセルシェーダは放置
0203名前は開発中のものです。
02/12/29 05:46ID:YZiM0Z3Wそれは別として、DirectX 9の日本語HTMLヘルプがウィンドウサイズ記憶してくれない……。
どうなっとるんでしょうかこれわ。8のはちゃんと覚えてくれるのに。
■ このスレッドは過去ログ倉庫に格納されています