鬱だ氏のう 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)
コピペスマソ
0431名前は開発中のものです。
02/08/22 14:29ID:???0432名前は開発中のものです。
02/08/22 16:25ID:???u=Nx/2+0.5
v=Ny/2+0.5
なんですが、uv座標のv軸って下向きですよね。
これだと上下ひっくり返ってしまう気がするんですが、僕が何か勘違いしているのでしょうか。
0433名前は開発中のものです。
02/08/22 19:14ID:???0434名前は開発中のものです。
02/08/22 19:55ID:???法線NxNyはローカル座標でuvはテクスチャ座標ですよね?
0435名前は開発中のものです。
02/08/22 21:37ID:???有益なスレなら張られても意味がない。気にしないことだ。
0436名前は開発中のものです。
02/08/22 23:52ID:???テクスチャをひっくりかえせばいいやん
0437名前は開発中のものです。
02/08/23 00:03ID:???はい、そうなんですが…
今のところはv=-(Ny/2)+0.5とすることで目的の描画をさせることができています。
でもホントはこんな修正する必要ないんじゃないかなあと。
0438名前は開発中のものです。
02/08/23 10:19ID:???最近「期限が切れています」と、新バージョンへのアップデートを促すアラートが
ちょくちょく表示されてしまいます。DirectX9の新βなどは、あるのでしょうか?
個人的には9を使いつづけることよりも、むしろ8.1に戻したいのですが、
どうすればいいでしょうか?再インストールですか?
0439名前は開発中のものです。
02/08/23 13:04ID:???通報しますた。
0440名前は開発中のものです。
02/08/23 14:04ID:???捕まりますた(´・ω・`)
ヽ∞ノ
自分の周りの色々な方向/位置から音が聞こえてくるようにしたいのですが、
GetObjectInPathで取得したバッファにSetPosition等をすると
Pathに含まれる全てのサウンドの位置が変わってしまいます。
音声ごとのバッファの取得方法を教えていただきたいです。
DirectSoundで自前のでバッファを作成して
自前でwavの読み込みをすればできるような気もしますが、
なるべくDirectMusicをベースにして作成したいです。
ご教示よろしくおねがいします。
0442名前は開発中のものです。
02/08/23 18:37ID:???アルファブレンドのソフトウェア処理で最適化に凝るのも良いけど、
プログラマ以外の人にそれを見せても何とも思われない・・・
ハッキリ言って、ハードウェアをバリバリ使って作った方が断然素人ウケする。
そりゃ、他の人が作った非常に良く出来た最適化コードなんかを見ると
スゲーと思いますが、そんな事は一部の人間しか分かりません。
人気ゲームを作るには、ハードウェア処理優先で作るほうが絶対良いですよ。
0443名前は開発中のものです。
02/08/23 19:12ID:???かっこいいどころか恥ずかしい
0444名前は開発中のものです。
02/08/23 19:27ID:???0445名前は開発中のものです。
02/08/23 20:37ID:???結構、回答のレスがつくけど、そーいう人は何作ってんだ?
僕はラッパーつくっててクラス設計で頓挫中。しばらくほっておくと
綺麗に忘れてるので同じところ回ってます
0446名前は開発中のものです。
02/08/23 22:39ID:???ちょっと触って、何か作ろうとして、途中であきらめて、
単なる技術デモ・検証程度で終わる人が多いかと。
本当に出きる人は本職の方が忙しくて面白いもの作ってる暇がなかったり。
(国産XBOXゲー、デキはいいと思うけどね・・・売れないだけで)
0447名前は開発中のものです。
02/08/24 04:24ID:???ゲームとして要素を組み合わせるまではいかないで、疑問点や
納得いかない点を突き詰められたらやる気失せる、とか?
0448名前は開発中のものです。
02/08/24 09:16ID:???製作時間さえあれば、このゲームは史上空前のものになるな。
俺って天才だ・・・・」
0449名前は開発中のものです。
02/08/24 10:32ID:???ゲームに組み込もうとしたらデータ形式の変更やレンダリングエンジン
の組みなおしが必要だったりして、すでに出来上がってるのがあると、
そこまで手を出せないということかもよ
0450名前は開発中のものです。
02/08/24 16:09ID:nIDqas2v>>432の式は一般的な球状環境マップを扱う公式。
んで、テクスチャが上下逆なのはDirectXというかWindowsの仕様。
ただそれだけ。
0451名前は開発中のものです。
02/08/24 16:27ID:nIDqas2vSDK等にあったりするとガクッとくる。
nVidiaのテクスチャ用のクラスとか、自分が作ろうとしていたものより
全然良い出来なんで、このまま作るかそれとも割り切ってこいつを使うか迷った。
0452名前は開発中のものです。
02/08/24 18:03ID:???優越感に浸るために見てるの?
自分より優れたものを見たいから見てるんじゃないの?
0453名前は開発中のものです。
02/08/24 18:18ID:????車輪の再発明の危険と、資料探しの時間浪費のジレンマに
悩んでいるだけのように見えるんだけど?というかレス番間違い?
見つけたライブラリの出来が良くても、自分の予定を組み上げて
しまっているのなら、そのまま元の予定で行く方が堅実かも。
確実に楽になるなら別だけど。
0454名前は開発中のものです。
02/08/24 19:13ID:???本当は車輪作ってる場合じゃないんだろうけどね
0455名前は開発中のものです。
02/08/24 20:46ID:BJyMAVuF円柱と三角形の交差判定のアルゴリズムでいいのありませんか。
0456名前は開発中のものです。
02/08/24 21:39ID:???勉強と実製作はある程度割り切って考えた方が良いと思う。
というか自分に言い聞かせてるような物だけど。
0457名前は開発中のものです。
02/08/24 23:13ID:???レスどうもです。なるほど、そういうことですか。
OpenGL向けのページでも同じ式だったのでおかしいなとは思っていたのですが。
0458履歴書房
02/08/25 00:48ID:???DirectXの質問では無いような気もしないが、
もう普通に考えた通りで良いんでは?
先ず円柱を上部と下部の円で捉える、そして其の二つの円の
中心を結ぶ線分、この三つ(上部円、下部円、線分)と
三角形から導かれる平面との判定をすれば良いのでは?
……まさかソースくれって話じゃ無いよね?
0461名前は開発中のものです。
02/08/25 03:18ID:Kq2PLf7rシステムマウスのIDirectInputDevice8オブジェクト2つ作ることってできるんでしょうか?
自分で試せばいいのですが面倒なので誰かやり方知ってる人が居たら教えてください。
0462名前は開発中のものです。
02/08/25 03:30ID:???最後の1行が気に入らない。
だから適当に教える。正しいやり方かどうかは知らん。
絶対値モードでやって、自分で前フレの値を取っておいて
それと今フレの値で相対値を出す。
どうかな???
0463461
02/08/25 04:12ID:Kq2PLf7rすみません。
答えてくださってありがとうございます。
相対値とはマウスの移動量を知りたいのですが、前フレの絶対値と比較して計算するとカーソルが画面の端にあるときに画面の外側にカーソルを移動させたときに正しい移動量が求められませんよね?
0464名前は開発中のものです。
02/08/25 04:41ID:???キーボードはGetAsyncKeyState()で十分。
DInput使うのはパッドの時だけじゃ。
0465名前は開発中のものです。
02/08/25 08:55ID:???パッドだってjoyGetDevCapsがあるやん。
0466名前は開発中のものです。
02/08/25 10:38ID:???画面外に相当する値ならば自分でクリッピング
0467名前は開発中のものです。
02/08/25 15:03ID:X4JD8AfKDWORD dwsize;
BYTE *pb;
lpXFileData->GetData("メンバ名", &dwsize, (void**)&pb);
だと毎回dwsizeが4になるんですが、何か間違っているんでしょうか?
0468名前は開発中のものです。
02/08/25 15:44ID:???君の場合、DWORDが4Byte環境なんでしょ?
0469名前は開発中のものです。
02/08/25 17:12ID:???おかげで読み込めました。
pbの内容を勘違いしていました。
0470名前は開発中のものです。
02/08/26 07:20ID:???なんでAAばっかなんだろう
0471名前は開発中のものです。
02/08/26 09:16ID:???0472名前は開発中のものです。
02/08/26 17:27ID:???0473名前は開発中のものです。
02/08/27 00:25ID:???0474名前は開発中のものです。
02/08/27 18:25ID:???一度押したキーがずっと押しっぱなしになるという現象がたま〜に発生してしまいます。
(常に( keyboardBuff[ほにゃらら] & 0x80 )でtrueが返ってくる)
どんな原因が考えられるのでしょうか?
0475名前は開発中のものです。
02/08/27 22:10ID:???ちょっとわからない。
DirectInput使わない状態でもなる?
0476名前は開発中のものです。
02/08/27 22:11ID:???0477名前は開発中のものです。
02/08/27 22:34ID:???デバッガのなんかのスレッドが落っこちるときじゃねえ?
バイナリ単体では発生しないみたいだから俺は気にしてないけどw
0478名前は開発中のものです。
02/08/27 22:37ID:???なるほど。WinAPIで試してみます。
あ、あと、押しっぱなし状態になる直前なんですけど、
前兆があって必ず4,5秒固まります。
で、動き出すと同時に直前まで押してたキーが押しっぱなしになるという感じです。
0479477
02/08/27 22:44ID:???あ、やっぱりそれだよ。アウトプットウィンドウで、なんかのスレッドが終了するときだ。
気にしてないけど、やっぱ気になるから防ぎ方知ってる人いたらおせーて
0480名前は開発中のものです。
02/08/27 22:49ID:???速いマシンに買い替えなさい。
0481名前は開発中のものです。
02/08/28 00:38ID:???これ防ぐ方法で何か知ってる人はいらっしゃいませんか?
0482名前は開発中のものです。
02/08/28 00:51ID:???DirectSoundの役割を考えるが良い。
さすれば汝の疑問は解決しよう。
DirectX経典にはDirectSound以外にも音を司る技法が記されているのだよ。
汝、信仰を深めよ。
0483名前は開発中のものです。
02/08/28 01:27ID:???DirectMusicになるんでしょうかねぇ。。
ちと諸事情でサウンドの生PCMデータを再生しなきゃならないんで、
DirectSoundだと楽でいいかなぁ、と思ってたりするんですが。
0484名前は開発中のものです。
02/08/28 02:04ID:21zL3WvrVRAM上のサーフェスを、丸ごとシステムメモリサーフェスに
等倍コピーしたのですが、遅すぎて困っています。
(640x480の2回コピーを1セットとして、1秒間に10回行かない)
セレ1200+GeForce2MX(32M)と、P3-600+ATI RageM(4M)のノートで、
ほぼ同じ結果が出るのですが、仕方のない事なのでしょうか?
若しくは、何らかの解決方法があるでしょうか?
(両方VRAM上とか、両方システムメモリ上っていうのは別として。)
ご経験の方が居ましたら、情報頂けると嬉しいです。
あと、(この件についての)資料HPなどがありましたら、教えて下さい。
0485名前は開発中のものです。
02/08/28 02:17ID:???フルスクリーン(640*480)に設定したのはいいんですが、
実行後、Alt+Tabで通常のスクリーンサイズ(1024*768)に戻し、
そのご復帰しようとすると、復帰できません。
640*480の灰色のウィンドウが1枚、
1024*768のデスクトップに表示されており、
なんの反応も示しません。Alt+F4で落ちますけど。
復帰って、できないんですか?
私のソースが悪いだけですか?
0486名前は開発中のものです。
02/08/28 02:23ID:???VRAMの内容を戻すのはシステムじゃなくてプログラム側の仕事
0487名前は開発中のものです。
02/08/28 02:32ID:???毎フレーム描画する前にTestCooperativeLevel。
DEVICENOTRESETが帰ってきたらResetしてやるべし。
Reset時にMANAGEDじゃないデバイスオブジェクトの無効化、復元も忘れずに。
0488名前は開発中のものです。
02/08/28 02:45ID:???会社のWin2kではそれ置きます。
CPUを新しいのにしても無駄でしょう。1.5Gだし。
でも自宅のXpでプログラムしてると起きたことありません。
0489夏房
02/08/28 05:40ID:PGMDNgH5フィルレートって奴を検索して学ぶんだな。
以上。
0490名前は開発中のものです。
02/08/28 07:04ID:???VRAM->システムメモリ
VRAM<-システムメモリ
は激重なのが今のPCの通例です。
コンシューマ感覚で造ると痛い目見ます。
0491名前は開発中のものです。
02/08/28 07:52ID:???そのレベルなら、、とりあえずの完成品を目指して、
elなりなんなりを使うなりした方が良いのでないか?
扱っているバージョンが8でないものは駄目だろうけど。
世間一般のライブラリ使用ならその辺を考える必要も少なくて良いと思う。
頭から尻まで、そして頭だけ作って終わる。。。
0492名前は開発中のものです。
02/08/28 13:37ID:???0493名前は開発中のものです。
02/08/28 14:24ID:???メインのスレッドでシーンをレンダリング中に他のスレッドで
テクスチャをロックしても大丈夫かな?
IDirect3D8::CreateDeviceで
D3DCREATE_MULTITHREADEDを指定したら大丈夫っぽいけど
誰かやったことある人いない?
0494名前は開発中のものです。
02/08/29 10:43ID:???マテリアルのα値って、影響しないんでしょうか?
頂点のディフューズ色にα値を入れたときは半透明になるんですが、
マテリアルだと反映されないです。。
0495名前は開発中のものです。
02/08/29 10:52ID:???どっか設定が変なのかな。。
0496494
02/08/29 11:30ID:???ディフューズ色がある頂点バッファはマテリアルのアルファが反映されないんですが、
ディフューズ色がないほうは反映されました。これはこういうもんなんでしょうか?
キッチリ理解してちゃんと設定しといたほうがイイと思われ...
こんなもんかな?でうまくいったからそのまま開発を進めると、
他のグラフィックカードでは変な動作になったりしてデバグが大変になる罠
0498名前は開発中のものです。
02/08/29 16:12ID:???ヘルプ「ライティングにおける数学的計算」で検索。
色の決定に関する全ての事項が一つの数式にまとめられています。
これさえイメージできてれば自由自在に色を扱えます。
「「「Π
((((´ー`)/"
<<<( ヨメヨ.)
.ノノノ ゞ
0499494
02/08/30 12:15ID:???レスありがとうございます〜。
確かにTextureStageState、ライティングの計算ともに、あまり理解してませんでした。
まだまだ勉強すること沢山だ〜… 頑張ります。
0500500
02/08/31 00:16ID:???0501名前は開発中のものです。
02/08/31 12:13ID:???SetTimeのMatrixKeyって補完のところは手抜き?
行列の補完てどうするの?
位置・スケール・回転の時には補完ありになるんだったよね?
マトリックスの補完はできないと思うので、
補完したかったらマトリックスキーでなく、
位置等の情報を持つXファイルを作れば良いと思われ...
速度優先でやりたかったら、各フレームごとにサンプリングして
マトリックスキーをいっぱい作る。
0503名前は開発中のものです。
02/08/31 18:28ID:???0504名前は開発中のものです。
02/08/31 18:35ID:???o補間
MatrixKeyとはスケールと平行移動も込み?
0505名前は開発中のものです。
02/08/31 23:33ID:???作るために、D3DXComputeBoundingBoxを使おうと思ったんですが
数値がおかしく、うまく作れません。
第一引数に渡す頂点データのバッファへのポインタってD3DXLoadMeshFromXの
第四引数じゃだめなんでしょうか?
0506名前は開発中のものです。
02/08/31 23:47ID:???サンプルはLockしてそのポインタを渡しているから俺もそうしているが、
それ試して上手くいかなかったらソースの一部を書いてくれ。
0507名前は開発中のものです。
02/09/01 15:06ID:xIdjFJT5やって見たんですがスケールが変になります。
うまくやる方法ないでしょうか。
キーフレームが細かければ全メンバの線形補間の方が再現性たかいです・・・
m._11 = lerp( t, m1._11, m2._11);
m._12 = lerp( t, m1._12, m2._12);
m._13 = lerp( t, m1._13, m2._13);
m._14 = lerp( t, m1._14, m2._14);
m._21 = lerp( t, m1._21, m2._21);
m._22 = lerp( t, m1._22, m2._22);
・・・・
0508オレー ◆Kvyv1OZU
02/09/01 16:07ID:???マトリクス→クォータにオン→D3DXQuaternionSlerp→マトリクス
じゃ駄目なのか?
0509507
02/09/01 16:16ID:???D3DXVECTOR3 pos;
D3DXQUATERNION q, q1, q2;
D3DXMATRIX r, t;
D3DXVec3Lerp(&pos, (const VEC3*)&m_pMatrixKeys[dwp2].mat._41,
(const VEC3*)&m_pMatrixKeys[dwp3].mat._41, fLerpValue);
D3DXQuaternionRotationMatrix(&q1, &m_pMatrixKeys[dwp2]);
D3DXQuaternionRotationMatrix(&q2, &m_pMatrixKeys[dwp3]);
D3DXQuaternionSlerp(&q, &q1, &q2, fLerpValue);
D3DXMatrixRotationQuaternion(&r, &q);
D3DXMatrixTranslation(&t, p.x, p.y, p.z);
pframeToAnimate->matRot = r * t;
0510名前は開発中のものです。
02/09/02 01:57ID:5xwxSg5fZバッファを有効にしながらアルファチャンネル(カラーキー)で抜けを作ったポリゴンの
描画はどうすれば良いのでしょうか?
今は、抜けの部分にもzバッファが適用されてしまいます。
0511名前は開発中のものです。
02/09/02 02:07ID:???一般的には、アルファテストで抜けの部分を描画しないようにする。
アルファの微妙な濃度が重要な場合は、どこまでやるかによる。
Z書き込みなしで オブジェクト単位/ポリゴン単位 でZソートとか。
0513名前は開発中のものです。
02/09/02 09:15ID:???0514名前は開発中のものです。
02/09/02 09:46ID:???0516名前は開発中のものです。
02/09/02 21:28ID:???水面にマルチテクスチャで反射と屈折のテクスチャを合成して張っています。
で、反射はキューブマップを使って求めているのですが、屈折の描画方法で詰まっています。
屈折したベクトルと箱の交点を求めることでテクスチャ座標は求まるのですが、
箱の底面で交わるとは限らず、側面と交わることもあります。また、水中に物体を沈めた場合、
その物体と交わる場合もあります。
そういうような底面以外で交わった場合には、底面のテクスチャだけではどうしようもなくなってしまうのですが、
どうすればいいのでしょうか?
0517名前は開発中のものです。
02/09/02 22:06ID:???で、何の市販ゲー?
タイトル教えてよ。
0518名前は開発中のものです。
02/09/02 23:26ID:???底面と側面だけならなんとかなりそうな気がするよ
0519名前は開発中のものです。
02/09/03 00:54ID:???D3DCapsで確認してPixelShader1.0未満だったので
D3DDeviceはSOFTWAREで初期化しました。
カードはGeForce2GTS
OSはWinXP Pro ,DirectX8.0SDK
鬱です。オナガイします
0520名前は開発中のものです。
02/09/03 00:58ID:???SoftwareVertexProcessingの事?
HEL(REF)の事?
0521名前は開発中のものです。
02/09/03 01:06ID:???長かったので勝手に省略しました(^^;
SOFTWARE = SoftwareVertexProcessing
現在はこんな感じで初期化です
pD3D->CreateDevice(D3DADAPTER_DEFAULT, D3DDEVTYPE_HAL,hWnd,
D3DCREATE_SOFTWARE_VERTEXPROCESSING, ...
0522名前は開発中のものです。
02/09/03 01:12ID:???つか、GF2なんて糞カード捨てろ
0523名前は開発中のものです。
02/09/03 01:20ID:???D3DDEVTYPE_REF,hWnd,
D3DCREATE_HARDWARE_VERTEXPROCESSING | D3DCREATE_PUREDEVICE, ...
でも動かないし、
サンプルであるMFCPixelShaderでも真っ黒のまま動かない、、
あきらめてGF2からRadeon9000に変えますw
0524名前は開発中のものです。
02/09/03 01:43ID:???水中の物体は自力で屈折線が物体と交わってるか調べるしかないんじゃないかなぁ…。
壁の方は、屈折線が壁にぶつかったら、底面を延長させた平面にぶつかるまで延長させて、
そこに対応するテクスチャを貼る感じになるんじゃないだろうか。
これはGemsにもやり方が載っているので参考にしてみるといいかも。。
0525524
02/09/03 01:47ID:???回って漢字の内外正方形の四隅を繋いだ感じなんだけど分かりますかね
0526524
02/09/03 01:58ID:???意味不明な日本語ですた(汗
屈折線が壁にぶつかっても、
延長させた底面と延長させた屈折線の交点を求めるってことです
その交点のテクスチャ座標に壁のテクスチャ座標の画像を貼るわけですな
自己レスでスレ汚してしまってスマン
0527名前は開発中のものです。
02/09/03 04:22ID:???なぜかD3DXFONTの描画をやめるとアプリが劇重になります
lpFont->DrawText("test", -1, &rc, DT_NOCLIP, D3DCOLOR_RGBA(255,255,255,255));
↑をコメントアウトすると40〜50秒くらい固まって、その後終了キーの入力を受け取って、
終了するといった具合です
固まっている間は、カーソルもほとんど動きません(動いてもかくかく)
デバイスの作成や、レンダリングステートなどいろいろいじってみましたが、どうもフォントが原因のようなのです
DX8.1,Win2Kです(WinMeだと起こらなかったです)
どなたかこんな現象に遭遇された方いますか?
0528名前は開発中のものです。
02/09/03 08:12ID:???俺は行列の補間やったことないから自信ないけど、それスケーリングどう見ても無視してない?
最初は遅くなってもいいから、行列を一旦スケール、回転、移動の3つに分解してみては…。
速度の最適化は動いてからでもいいですから。
>>508
オレーたん発見ー… 明らかにスレ違いですがレースゲー頑張ってください。
あそこのスレでは書き込むと自演っぽく見えるので(汗
0529528
02/09/03 08:17ID:???ロード時に拡大回転移動の3つのキーへ変換してしまえば、
SetTimeのMatrixKeyの補間は不必要なのかな? これって間違ってる?
0530516
02/09/03 11:25ID:???レスどうもです。
底面と側面を一枚のテクスチャで扱うわけですね。
なんとなく側面の水面の上と下の部分を上手く合わすのが大変そうな
気がしたりもするんですが、なるほどやってみます。
■ このスレッドは過去ログ倉庫に格納されています