トップページgamedev
987コメント315KB

鬱だ氏のう DirectX (Part 5)

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

■旧スレ(プログラム板)
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)

コピペスマソ
0719名前は開発中のものです。02/09/22 05:50ID:???
うちのGeForce3では期待した動作をしてくれるんですが、
知り合いのMatroxのVGAで動かしたら駄目らしいんです。
ここまではよくある話なんですが、ちょっと不可解なので…

ALPHAOP と COLOROP にそれぞれ
STAGE0 に D3DTOP_MODULATE, D3DTA_TEXTURE, D3DTA_DIFFUSE
STAGE1 に D3DTOP_MODULATE, D3DTA_TFACTOR, D3DTA_CURRENT
と指定するのと、
STAGE0 に D3DTOP_MODULATE, D3DTA_TEXTURE, D3DTA_TFACTOR
と指定するので表示結果が変わってしまいました。
具体的には、最初のほうのTFACTORが影響されてない感じでした。
(頂点ディフューズ色は0xFFFFFFFFでデフォルトと一緒にしてます)

テクスチャステージも3まで対応してるとD3DDEVCAPS8には出てるし、
他に考えられる原因が分かりません…。
0720名前は開発中のものです。02/09/22 06:07ID:???
>>718
話題はずれるが、今後のためにD3DXGetErrorStringを見といた方がいいぞ
0721名前は開発中のものです。02/09/22 06:26ID:???
VCのデフォルトっぽい構成で、カレントディレクトリはmyprojと仮定。
myproj\data\mesh.x
myproj\data\a.bmp
myproj\debug\prog.exe

D3DXLoadMeshFromX("data\mesh.x"...);で読んだら
"a.bmp"のパスは"data\a.bmp"
0722名前は開発中のものです。02/09/22 07:53ID:fagAZlUu
なんか、成功しました。カレントディレクトリの問題だったようですぅ。
0723名前は開発中のものです。02/09/22 10:19ID:???
>>719
リファレンスラスタライザではどうなる?
リファレンスと異なるならMatroxに報告してあげるとか・・・
0724名前は開発中のものです。02/09/22 12:47ID:???
>>722
よくある間違いだ。過去ログ見るひとのために一応書いておくと
./debugのアプリは ./ に移動させてから実行しないといけないんだよな。
072571902/09/22 13:55ID:???
>>723
うちの環境のREFで実験したら、期待通りの動作でした。

Matroxの最新ドライバで試すのをすっかり忘れてたので、
それで駄目だったらMatroxに通報してみます
0726名前は開発中のものです。02/09/22 17:05ID:???
この間やっとDX8.1bSDK入れたんだけどDX7でやってた
IDirectMusicLoader::GetObject()が全角ファイル指定すると
失敗するようになったんですが前のプロジェクトは全部捨てろと
MSは言ってーるのですか?・・・半角カタカナは前からだったけど
0727名前は開発中のものです。02/09/22 18:53ID:???
>>719
D3DTA_DIFFUSEとD3DTA_TFACTORは同時に使えない環境がある。
SDKの説明にもそんなことが書いてある。
NVIDIAでも同時に使えるようになったのはGeForce3から。
072871902/09/22 19:56ID:???
>>727
へぇぇ、そうだったのかー
ってことは、結構ハードウェア的には厳しい実装だったのね・・
情報ありがトン
0729名前は開発中のものです。02/09/22 21:21ID:???
起伏のある地形をxファイルで読み込んで
その地形の上をカメラが移動する、という風にしたいのですが
地形が盛り上がっているところや凹んでいるところで
カメラの高さをどのように上げ下げするのかわかりません。

検索したところBSPというものが引っ掛かったのですが
これを用いる方法しかないのでしょうか?
0730名前は開発中のものです。02/09/22 21:23ID:???
初歩的な質問ですいません。
キーワードだけでも教えていただけると助かります。
0731名前は開発中のものです。02/09/22 21:27ID:???
起伏の形状を取り出してx, y座標からz座標を求めればいいんじゃなかろーか
0732名前は開発中のものです。02/09/22 21:36ID:???
起伏のある地形ということならHeightFieldがいいんじゃないか?
これならx座標とz座標に応じてフィールドのy座標が決まるから、
それにカメラの高さを加えてやればいいだけだな
0733名前は開発中のものです。02/09/22 21:41ID:???
ちなみにこう。
float field[FIELD_SIZE][FIELD_SIZE];
initialize(field);
int camera_x = hoge();
int camera_z = hage();
float camera_y = field[camera_x][camera_z] + camera_height;
このままだとカメラの移動に応じて高さが一気に変わるから適当に補完とかしる
0734名前は開発中のものです。02/09/22 22:05ID:???
ただ、HightFieldだと広めのマップが表現できない
0735名前は開発中のものです。02/09/22 22:19ID:jVKC+C+L
>>734
そこは頭の使いようだろ?
HightFieldというアルゴリズム自体にはなんの問題も無い。
0736名前は開発中のものです。02/09/22 22:29ID:???
>>729
BSP(Binary Space Partition)と

>地形が盛り上がっているところや凹んでいるところで
>カメラの高さをどのように上げ下げするのか

はあまり関係ないよ。
BSPは空間分割のデータ構造とか探索のアルゴリズムの手法で、
君が求めてるのは多分ポリゴンメッシュとカメラオブジェクトの
当たり判定の話だしょ。
0737名前は開発中のものです。02/09/22 22:45ID:jVKC+C+L
729は平面の式について調べれ。
0738名前は開発中のものです。02/09/22 23:03ID:UA7t4cRe
DirectShowの話題はまだー?
0739名前は開発中のものです。02/09/22 23:35ID:???
>>729
正解などない。
どのようにと聞かれても、地面の起伏に応じてカメラ動かせ
としか答えようがない。君にビジョンがないと話が進まないな。
BPSは今のところ本質的には関係ない。
0740名前は開発中のものです。02/09/23 02:48ID:???
DirectDrawの話題はまだー?
0741名前は開発中のものです。02/09/23 03:46ID:???
>>740
聞いてやるよ、質問は何だ?
0742名前は開発中のものです。02/09/23 07:06ID:???
>>729
皆、小出しだね。そりゃ調べる力も必要だろうが…
漏れのやり方で良いなら、
先ず、ポリゴンは三角形として話を進める。地形は3ポリの集合。
ココで使うのは、平面の方程式、ax+by+cz+d=0って奴。
之を変形して、d=-(ax+by+cz)と考える。
んでカメラが居るポリゴンの位置(XZ平面での)を調べる。カメラで解らないのはY情報なんだから解るでしょ?
ココで其のポリゴンの三頂点のどれでも良いから、一つチョイスする。
その頂点と、他の二つの頂点でベクトルを定義して、外積か何かで法線ベクトルを出す。
そいつを単位化して、各要素をa,b,cとする。次は選んだポリゴンのX,Y,Zをx,y,zとして
d=-(ax+by+cz)の計算をしてdを求める。
こいつの値は変数にでもぶっこんで、値は知らなくても良い。
そして最後に、また変形、y=-(ax+cz+d)/bで考える。
ココでx,y,zはカメラの位置ベクトルの各要素、つまりyが求まる。x,zは解っているので
a,b,cは先程の法線ベクトルを単位化した各要素、dも先程求めた物。
つまりy以外は全て値が出てるよね。
お終い。
074374202/09/23 07:09ID:???
>次は選んだポリゴンのX,Y,Zをx,y,zとして
間違い。スマソ
次は選んだ頂点のX,Y,Zをx,y,zとして
0744名前は開発中のものです。02/09/23 08:20ID:???
カメラの乗っかってるポリゴンの
3頂点の重み付き平均でいいんじゃないの?
0745名前は開発中のものです。02/09/23 08:25ID:???
>>742
要約してみた。

D3DXIntersect

以上(ワラ
0746名前は開発中のものです。02/09/23 09:01ID:???
D3DXCreateMesh()使って作ったメッシュに頂点情報とか
入れるにはどうすればいいんですか?
またはそれが載っているサンプルを教えて下さい
0747名前は開発中のものです。02/09/23 09:56ID:???
>>746
んなんロックして流し込めばいいだけだ。
つか、教えて君モロ出し系で質問するなら
「物凄い勢いスレ」とか「初心者歓迎スレ」のほうがいい。
ここだといきなり噛み付かれても文句いえねーよ。
0748名前は開発中のものです。02/09/23 09:58ID:???
http://game.2ch.net/test/read.cgi/gamedev/1032098770/
http://game.2ch.net/test/read.cgi/gamedev/1013645518/
074974202/09/24 03:03ID:???
>>745
そうきましたか…
ココはDirectX板だから関数があれば、それを教えれば良いのかも知れませんが…
処理的に何をやってるのか解らないで、使うってどうなんでしょう?

始めたばかりの時、行列で回転かけるのをRotation関数使わないで
ロックして全頂点をループで自前の行列計算したりってやりませんでした?
用意された関数オンリーな人って、バーテクス、ピクセルシェーダーとか
出来るようには、為ら無いんじゃ…
0750 02/09/24 04:10ID:???
でも742の方法はイマイチな気がするのはオレだけか?
イチイチ平面の方程式にしないほうがイイんでないか?

xファイルを読み込む。カメラ位置はp0とする(x,zは特定されている)
頂点/インデックスバッファをロックして頂点データp1,p2,p3がまずわかる。
p1+a*(p2-p1)+b*(p3-p1) = p0 をp0のy座標,a,bについて解く
a >= 0 , b >= 0, a+b <= 1 ならそのポリゴン上にあるので求まったp0を採用
ポリゴン上になかったらほかのポリゴンを探す

でいいんでないか?知らんけど

んで、この方法だと毎フレームごとにポリゴンごとに判定しなくちゃイケナイから重い
初歩的な最適化の方法としては、画面をxzのグリッドで分けて、
グリッドごとに衝突する可能性のあるポリゴンのテーブルを作っておく
そーすっと、カメラの属するグリッドのポリゴンでのみ判定すればよくなる。
グリッド間隔は小さいほど効率が上がるがそれだけメモリを消費するんでテキトーに。

あとはアレだ。イチイチ頂点バッファのロックアンロックを繰り返すと重くなりそーなんで
頂点データは必要な部分をコピーしといたほうがいいな。

オレのラベルではこんくらいしか方法は思いつかん。もっとイイ方法があったら教えれ。
075174202/09/24 06:50ID:???
>>750
744の3頂点の重み付き平均って奴ですね。
内分の関係を逆に捉えて、条件が満たされていれば点と点を内分する状態であると。
やはり、人のやり方って勉強になりますね。
こう言う、数学的なルーチンワークって面白いですよね。

>ポリゴン上になかったらほかのポリゴンを探す
これが、プログラマの腕の見せ所ですね。当方はへっぽこ専門生なんで
数学はともかく、プログラムはイマイチです。ここの最適化が重要ですね。
0752名前は開発中のものです。02/09/24 09:56ID:???
>>751 3頂点の重み付き平均って奴ですね
違うぞ。
075374202/09/24 22:49ID:???
>>752
4頂点の重み付き平均でした。失礼しました。
0754名前は開発中のものです。02/09/25 19:54ID:MSCNJlmH
MDX
age
0755名前は開発中のものです。02/09/26 01:23ID:Th5mYXTg
カスタムVERTEX SHADERをいじるとき、適当なことをやるとwin2000でも青画面になるのですが、どのようなときに青画面になりますか。
0756名前は開発中のものです。02/09/26 02:15ID:???
>>755
適当なことをやったとき
0757名前は開発中のものです。02/09/26 04:28ID:Th5mYXTg
>>755
IDがもう少しでMSDN
0758名前は開発中のものです。02/09/26 04:31ID:???
一歩足りてないな。
0759名前は開発中のものです。02/09/26 06:26ID:???
755 名前:名前は開発中のものです。 :02/09/26 01:23 ID:Th5mYXTg
757 名前:名前は開発中のものです。 :02/09/26 04:28 ID:Th5mYXTg

0760名前は開発中のものです。02/09/26 07:41ID:???

(゚∀゚)アヒャ!
0761名前は開発中のものです。02/09/26 10:20ID:ANzLdQ8E
DirectX8.1で画像を1枚表示させるだけのプログラムで、
うちのマシンだと、たまにFPSが1も出ないような状況が起こってしまいます。

そんなに性能のいいマシンではないのですが、普通のDirectXを使った
ゲームはFPS60で普通に動いてます。

なんでそうなるのでしょうか。
再現性のないバグなのでよくわかりません。
0762名前は開発中のものです。02/09/26 10:21ID:???
グラフィックボードぐらいかいてくれろ
0763名前は開発中のものです。02/09/26 10:23ID:???
> そんなに性能のいいマシンではないのですが、普通のDirectXを使った
> ゲームはFPS60で普通に動いてます。
UnrealTournament2003やBattleField1942でFPS60出てるなら、プログラム側のバグかと。
0764名前は開発中のものです。02/09/26 11:05ID:???
実行環境と普通のDirectXを使ったゲームってのが分からないとな。
あと1枚画像を表示させるってのも具体的にどうやって表示してるのか。
0765名前は開発中のものです。02/09/26 11:08ID:???
>>761
>たまにFPSが1も出ない

DirectXの側でその手の不具合は聞かないな。
アプリのほうで凡ミスをやってる予感がするな。
戻り値はチェックしてるか。SDK付属サンプルは無事に動いてるか。
サンプルが無事に動いてるならそっちを参考にしたほうが早いぞ。

あとはアンチウイルスツールとかの常駐ソフトの所為かもな。
0766名前は開発中のものです。02/09/26 11:41ID:???
>>761
ドライバは最新のものにしてる?
古いものだと新しいDirectXに対応してなくて
変な現象が起こることがあるよ。
0767名前は開発中のものです。02/09/26 11:54ID:???
ノートンのAntiVirusでAutoProtectを有効にしてると
BattleField1942の通信対戦中にフレームレートが
極端に落ちる現象がたまーに起きる。それ以外は知らない。
0768名前は開発中のものです。02/09/26 11:56ID:???
ここは素晴らしいインターネットですね。
0769名前は開発中のものです。02/09/26 11:57ID:???
六角大王でXfileを出す方法を教えてください、おながいします。
0770名前は開発中のものです。02/09/26 12:02ID:Th5mYXTg
>>761
FPSを格納するバッファを更新してないかったというオチでしょうか。
あと、1枚表示させるだけの静止画だとFPSがどんくらいか判断しづらいです。
>>769
3dsに変換してconv3dsという糞ツールでxに変換してください。
077176702/09/26 12:03ID:???
ちなみにその現象が起きるのを確認した環境は
Win98SE+DirectX8.1b
BattleField1942(製品版)
ビデオチップはGeForce4Ti4200。
ドライバはBeta Detonator 40.52だ。
 
761の環境はどうだ。
0772名前は開発中のものです。02/09/26 12:03ID:???
>>761
HDDにアクセスしにいってるとかそういうのは無いか?
0773名前は開発中のものです。02/09/26 12:03ID:???
>>769
スレに合ってる内容とはとても思えないが…
とりあえずデータコンバータとしてもMetasequoiaをお勧めしとこう。
詳しくはMetasequoia公式のデータ交換の項を読め。
0774名前は開発中のものです。02/09/26 12:10ID:Th5mYXTg
たまに、だからちがうか。
0775名前は開発中のものです。02/09/26 14:19ID:???
スレ進行停止>質問>怒涛のレス>繰り返し
0776名前は開発中のものです。02/09/26 14:27ID:???
Metasequoiaもあと2,3年したら
どこかの会社が買い取って入門用3Dモデラ\39,800-とかで売り出すことになるんでない
0777名前は開発中のものです。02/09/26 16:05ID:???
ゲーム用の音楽素材として、ループする音楽を作りたいのですが
フリーで何か良いソフトはありませんか?
0778名前は開発中のものです。02/09/26 16:33ID:???
あまりにもスレ違いすぎるぞ。
0779名前は開発中のものです。02/09/26 18:20ID:Th5mYXTg
>777
DirectX付属のDirectMusicComposerとかいうのがあったと思います。
0780名前は開発中のものです。02/09/27 00:32ID:???
ぼかしテクスチャを作ろうと思ってレンダリングしたテクスチャを、
SetTexture( 0, &rtex );
SetTexture( 1, &rtex );
SetTexture( 2, &rtex );
SetTexture( 3, &rtex );
のように4つのステージにセットしてピクセルシェーダーで
加工しようと思ったらt0以外ではうまくピクセルが取れなかった。
CopyRectして使ってみてもやはりステージ0以外ではうまくいかない。
ロードしてあらかじめ用意したテクスチャを使用した場合はどの
ステージのテクスチャもうまく取れたけど何か分かる人いない?
0781名前は開発中のものです。02/09/27 04:58ID:???
>>780
テクスチャ座標を適切にセットしてないだけかと。
0782名前は開発中のものです。02/09/27 05:37ID:BHwi6z60
DirectMusic Producer でした。
0783名前は開発中のものです。02/09/27 05:44ID:XQiRpxo1
http://muvc.net/jsweb/profiles.html
0784名前は開発中のものです。02/09/27 08:42ID:???
>>780
普通は問題なく出来るぞ。
具体的にどういう手順で失敗したのかを書けば
原因は見えると思うが、780の説明だけでは何とも。
0785名前は開発中のものです。02/09/27 14:32ID:???
>>780
もしかして使用してるピクセルシェーダーのバージョン、1.4だったりしない?
1.4ならテクスチャステージと同じ番号のレジスタにしかテクスチャロードできなかったような・・・
texldする時も
texld r0,t0
texld r1,t0
texld r2,t0
texld r3,t0
ってしないとだめだし、つーか基本か。
見当違いだったらすまん。
078678002/09/27 21:25ID:???
>>781
UVはちゃん設定してるのでロードしたテクスチャでぼかすと
UVがうまくずれてぼけてます。つまり期待通りの結果。

>>784
普通に考えたら簡単に出来るよね。ロードしたテクスチャと
レンダリングしたテクスチャに何か違いでもあるんだろうか。
でもなんかSetRenderStateとSetTextureStateの設定で
いろいろ症状が変わるので調査中。
SetTextureを0〜3まで順番に設定していくと、段々テクスチャが
何かとαブレンドされて薄くなったりしてる。

>>785
PS1.0なんだけどね。

うちはGeForce2MXだから来週また会社で試してみます。
みんなありがとね。
0787名前は開発中のものです。02/09/28 00:31ID:???
The Dot Net Zone is a resource for wanna-be Dot Net
Wiz kids, primarily aimed at people who have nominated
C# (CSharp) as their language of choice, and have a
hankerin for writing games.

どうやらDirectX9は.NET完全対応のようですね。
C#しか持ってないんで対応しなかったら…
0788名前は開発中のものです。02/09/29 15:52ID:MTZiZpi/
プログラムのことでなくて恐縮なんですけど
DirectX8SDKのインストールのことで質問です。

Windows2000にSDKをインストールしようとすると
"unable to create installdriver"
というエラーが出てとまってしまいます。

もしよかったら解決法を教えてもらいたく思います。
どうぞよろしくお願いします。(既出だったらすいません)
0789名前は開発中のものです。02/09/29 16:22ID:???
たぶん諦めるしかない
どうしても入れたければOSの再インストール。
あ、PlatformSDKをフルで入れれば入るからそれでもいい。
ただし、ランタイムはRetailなのでデバッグやりづらいかもしれないけど
0790名前は開発中のものです。02/09/29 16:24ID:???
別にインストールしなくてもアーカイブの内容をそのままコピーすればすむのでは?
0791名前は開発中のものです。02/09/29 17:10ID:???
>>788
管理者権限がないとインストールできないと言うオチでは?
079278802/09/29 20:18ID:???
どうも本当に親切なレスありがとうございます。

>>789
OSの再インストールってことはやはりインストール順番がまずかったのでしょうか?
SP3→デバドラ→DirectX8SDK
ってやりました。
PlatformSDKっていうのは何ですか?
MSNのヘルプでそういう項目もあった気もしますけど、それのことでしょうか?

>>790
後にランタイム版のインストールなら成功したので、
Libファイルとヘッダファイルのみコピーで大丈夫でしょうか?

>>791
うーん、ちゃんとadministratorでログオンしてます。
0793名前は開発中のものです。02/09/29 20:36ID:???
こういうときはエラーメッセージ
"unable to create installdriver"
でgoogleしてみることをオススメする
079478802/09/29 20:44ID:Ifw9RZf/
>>793
もちろんしました、
でも検索結果は望むものがでなかったんです

ほかにもいろいろ検索ワードを変えてやったりしましたがだめでした。
ほかにもいろんなWin2000のトラブルが書いてあるホームページなども
調べたけどだめでした。
1時間しらべてどうしても見つからなかったので
ここで質問させていただきました。どうかよろしくお願いします。
079578802/09/29 20:47ID:Ifw9RZf/
>>793
ごめんなさい。間違えてました。
うちのエラーメッセージはそれじゃなかったので勘違いしました。
どうもありがとうございました。

そのワードで検索した結果で解決しそうです。
ほんとにすいません。どうもありがとうございました
079678802/09/29 20:49ID:Ifw9RZf/
・・・
さらにごめんなさい
検索ワードまで一致してましたね・・・
ほんとにすいません、反省してます。
どうも検索ワードが悪かったです、まさかそのままいれて結果がでるとは
思わなかったので試してませんでした、すいません
079778002/09/30 20:03ID:???
4テクスチャステージでのぼかしテクスチャ作成の件だけど
問題解決しました。
SetTextureState( 0,D3DTSS_COLOROP,D3DTOP_MODULATE );
これをステージ0だけじゃなくて1〜3ステージにもやっていたのが
原因でした。理由はいまいち飲み込めてないけど。

で、この先に進むわけだけどぼかしテクスチャを3枚ほど用意したいので
レンダリングターゲットからCopyRectした画像で動的にMIPMAPを
作成したいです。ただ動的MIPMAPはネット上にもあまり資料が
ないのでやり方が分かりません。誰か分かる人いませんか?

あとぼかしテクスチャからMIPを作るかMIPを作ってから
それぞれのレベルでぼかしテクスチャをレンダリングするか迷うなぁ。
0798名前は開発中のものです。02/09/30 21:43ID:???
動的MIPMAPはDirectX9で強化されるからそれを待て、なーんてね
0799名前は開発中のものです。02/09/30 21:47ID:???
DirectX9 早く正式版でないかぁ。
こっそり(?)2D周りも強化されているのが嬉しい。
0800名前は開発中のものです。02/09/30 21:54ID:???
おまえらNDAを守りなさい
0801名前は開発中のものです。02/09/30 21:58ID:???
798,799 ぐらいの内容なら、CEDECで一般向けに公開されたので無問題
080278002/09/30 23:09ID:PG8kIa+b
>>798
CEDEC行って動的MIPMAPが強化されるのは知って
るんだけどDX8でも出来るんじゃないかと思って。
出来ないんだったら1/2サイズのテクスチャにバイリニア
掛けてレンダリングして作っていかないとダメかな?
080378002/09/30 23:12ID:???
ミス。1/2のサイズのポリゴンに張ってレンダリング
しての間違い。
0804名前は開発中のものです。02/09/30 23:16ID:???
DirectX9ってどこがNDAにする必要あるんだ?
MSは開発者のキモチしらねーアフォか?
ベータのSDKくらいすぐ公開しやがれ!
何ヶ月待たせてると思ってるんだ!
0805名前は開発中のものです。02/09/30 23:21ID:???
SetRenderTargetの負荷が低いことを祈るしかないねえ・・・
ところで便乗質問なんだけど、SetRenderTargetするときは
BeginScene/EndSceneで区切る必要ありますか?
080678002/10/01 00:41ID:???
SetRenderTargetってBegin-Endで区切らなくても使えるよね。
ただSetRenderTargetって2の累乗サイズのテクスチャじゃないとね。
CopyRectの負荷がもったいないので512*512にレンダリングして
640*480に戻すってのもアリかなぁと思ったりもする。
これなら解像度の低いRenderTargetを複数用意してレンダリングを
回せば簡単にMIPが作れるね。
ああ、それでDX9にはマルチレンダーターゲットとかいうのが付いたのか。
080778002/10/01 01:10ID:???
DX9で一つ気になる事が。VertexShaderのbレジスタだけど
ifやcallでしか使えないらしいけど頂点毎に判定するんだろうか。
どうせ定数としか比較しないんだからDraw発行した時にシェーダー
を最適化して頂点毎にifで判定なんてしないようになっていればいいが。
もし頂点毎での判定ならどうしても必要な時以外はifは使えんよな。
あと計算結果との比較や頂点毎にスケルトン数を持たせてその数で
処理を振り分けたり出来るんだろうか。
0808名前は開発中のものです。02/10/01 01:12ID:???
マルチレンダーターゲットはATIのチップしか対応してねーから意味ねー罠。
0809名前は開発中のものです。02/10/01 01:59ID:q1lKlffC
お菓子版 ▲至福▲ おいしい菓子パン part4 ▲極楽▲ 
ここスレにいる>>220は基地外です。自分がこのスレの中心的な存在でなければ
気がすまない新参者を受け入れようとしない閉鎖的な人間です。
そのためには自作自演も当たり前のようにします
そんな態度が周りに不快感を与え、知らず知らず敵を作っているのです。
本人は気づいているのでしょうか
よろしければ一度見にいってくださいこのスレには彼の執念を感じます
       ↓
http://food.2ch.net/candy/#3
0810名前は開発中のものです。02/10/01 13:41ID:pawwJ8Cr
IDirectXFileDataのメッシュオブジェクトから
IDirectXFileData::GetNextObject()を呼んでも
子供のマテリアル等にいかなくてNOMOREOBJECTを返すのですが
どうなってるの?ちなみにairplane 2.xで試してます
0811名前は開発中のものです。02/10/01 17:57ID:???
>>810
サンプルとしてはちょっと過剰機能かもしれないが、
SkinMeshのLorderサンプルに答えがあるよ。
兄弟オブジェクトと子供オブジェクトは違うということに注意だな。
0812名前は開発中のものです。02/10/01 18:42ID:???
>>811
SkinnedMeshに手を加えてやってます
IDirectXFile::CreateEnumObject()
=>IDirectXFileEnumObject::GetNextDataObject()
=>IDirectXFileData::GetNextObject()
=>IUnknown::QueryInterface()で取得した
メッシュオブジェクト(IDirectXFileData)で
IDirectXFileData::GetNextObject()を呼んでるのですが
MeshFaceWraps MeshTextureCoords MeshNormals
MeshVertexColors MeshMaterialList
はメッシュの子供ではないのですか?
ヘルプに書いてあるオプションのデータ要素は
子供かと思っていたのですが
081381102/10/01 19:43ID:???
>>812
っていうかメッシュ読み込むんでしょ?
それならD3DXLoadMesh〜系の奴ならマテリアルとか自力解析する必要ないと思うんだけど…
何か特別なことやりたいのかな?
081478002/10/01 22:45ID:???
SetRenderTarget使ってぼかしテクスチャを3つ用意してみた。
512*512(元)と、512*512と256*256と128*128のぼかしテクスチャ。
あとはデプス値によってブレンドするみたいだけど、どうやるか分からん。

512*512の元画像のデプスバッファをテクスチャステージにセットして
ピクセルシェーダーで読むんかな?
でもダブルスチールはテクスチャ3枚とぼかし量のルックアップテーブル
らしいからデプス値はやはり元画像のアルファチャンネルに描くのか。
じゃないとテクスチャステージ4つじゃ足りないし。

すると元画像のカラーとデプスをステージ0と1にセットして
アルファにデプス入れ込むシェーダーで一回レンダリングするのか?
確かにこんな風にすればピクセルシェーダーで8ビットのデプス値を
取れそうだけど。すると256個のルックアップテーブルを確かに
参照させられそうだ。あとはルックアップテーブルの計算方法が
わかればいいけど難しそう。
0815名前は開発中のものです。02/10/02 01:28ID:???
http://www.beyond3d.com/forum/viewtopic.php?t=2538

> You can set break points in your shaders or set breakpoints on screen pixels!.
screen pixelにブレークポイントが置けるなんて面白い。
0816名前は開発中のものです。02/10/02 12:37ID:???
>>815
激しくスレ違いだけどVCでループカウンタがいくつのときにブレーク!とかってやっぱできるのかな?
できるんだろうなぁと重いながら、if文書いてブレークさせてる俺が憎い!
0817名前は開発中のものです。02/10/02 12:46ID:???
>>816
できますよ
編集->ブレークポイント->条件で
0818名前は開発中のものです。02/10/02 12:53ID:???
>>816
そんな君にお薦めの本
http://bookweb.kinokuniya.co.jp/pocketpc/wsea.cgi?W-NIPS=997437703X&RCODE=GB25%2FG03

デバッガの使い方から簡単なx86アセンブリ言語まで理解できるようになる。
クイックリファレンスシートもついていてお得だよ。お値段4800円
■ このスレッドは過去ログ倉庫に格納されています