トップページgamedev
1001コメント341KB

Direct 3D

レス数が1000を超えています。これ以上書き込みはできません。
0001.01/11/09 17:06ID:wrfy6OtC
Direct Xはあるみたいですが、こちらはD3D専門という事で。
とりあえずDX8以降は初期化が簡単になったり関数が変わったり
結構大幅に変わりましたがその辺も踏まえてお願いします。
0951名前は開発中のものです。2006/08/20(日) 00:28:51ID:FmTUYmId
>>947
逆にFVF毎に3D描画に関係無いような名前を付けてる俺マッシュ。
0952名前は開発中のものです。2006/08/20(日) 01:39:46ID:ekgZYi2k
>>947
hoge
0953名前は開発中のものです。2006/08/20(日) 02:25:33ID:i51kMu5X
>>948-949
947はビルボードの名前を聞いているんじゃなくて
2Dオブジェクトの名称の例としてスプライトを出しただけかと。

で、3Dの場合だとMeshあたりかね。
0954名前は開発中のものです。2006/08/20(日) 03:40:50ID:IV6K60G4
モデル
0955名前は開発中のものです。2006/08/20(日) 09:42:05ID:WG+AEKUI
プリミティブ
0956名前は開発中のものです。2006/08/20(日) 12:04:21ID:UXPgli+S
おいらはobjectとか使ってるなぁ...DxObjとか...
オブジェクト指向とかのobjectと混同するから使わない人もいるだろうけど。
もっとイイの無いかね?

ModelとかMeshはおいら的には違うなぁ。
x-fileなんかを読み込んだ物がModelで、そん中にMeshとかFrameがあって、
Modelを3D空間に配置した物がObject、って使ってる。
1つのModelを複数個表示することもあるわけだし。
PrimitiveはDrawPrimitive()のPrimitiveってカンジがする。
0957名前は開発中のものです。2006/08/20(日) 15:01:19ID:JTywg2ac
モデルとメッシュ
0958名前は開発中のものです。2006/08/20(日) 22:51:38ID:IV6K60G4
>956
>1つのModelを複数個表示することもあるわけだし
一つのスプライトを複数個表示することもある訳だが
0959名前は開発中のものです。2006/08/21(月) 08:35:04ID:dkS6CWGq
>>947
シンシアさん
ttp://ja.wikipedia.org/wiki/%E3%83%8E%E3%83%BC%E3%83%88:X68000
0960名前は開発中のものです。2006/08/31(木) 23:10:20ID:5wxtWzxs
テクスチャサーフェースを、マップチップとして、例えば16x16個のパーツにした場合、
テクスチャ座標使って、どのチップを表示するか決める訳だけど、
マップをちょっと拡大すると、隣のチップのドット情報が、わずか1ドットぐらい描画されて、
四角いシマシマ状になるんだけど、
これを回避するには、チップ間を2ドットあけて両チップの最後のドットを1ドット延長して書いておけばいいが、
もっとスマートなやり方で治らないですか?
0961名前は開発中のものです。2006/08/31(木) 23:23:35ID:sIr8NDj7
   0.5/テクスチャー分割数  1-0.5/テクスチャー分割数
  ↓               ↓
 ┌┬┬┬┬ … ┬┬┬┬┬┐
 ├┼┼┼┼ … ┼┼┼┼┼┤
 └┴┴┴┴ … ┴┴┴┴┴┘
0962名前は開発中のものです。2006/08/31(木) 23:33:40ID:JbQMb9iU
>>960
ヘルプの三角形ラスタ化ルールとかいう項目に詳細な説明が載ってる。
0.5ずらすのもいいけど、マシンによって違うし、
ひっくり返すとポリゴンの裏面は逆にずれてるので両面ポリゴン使ってるときはヤバイ。
さらにバイリニアフィルタ掛けるともうどのくらいズレルか全く予想がつかないので
クランプテクスチャアドレッシングモードがオススメ。
0963名前は開発中のものです。2006/08/31(木) 23:36:58ID:WZnRnl1o
0.5ずらしても1ピクセル分の範囲は0.0-1.0になるので、1.0の境界線は終了地点であり開始地点になる。
つまり隣の色が出てしまっても間違いとは言えない。
隣の色を引っ張ってくるかはビデオカード次第。
これを回避するには、微妙に終了座標を縮めるしかない。
0964名前は開発中のものです。2006/08/31(木) 23:49:45ID:JbQMb9iU
でもぶっちゃけ、チップなんて使って作るぐらいなら、
最初からモデリングソフトでそういうモデルを作れといいたい。(チップなんて使わずに)
むしろ、ある程度まとまったモデルをチップのように貼れといいたい。

ハードにあった作り方というものがある。
これはどんなにハードが進化してもどうにもならん。
解決しようとするのは極めて困難だ。
その時代にあった作り方をするがよいわ!
それが嫌なら地獄をみろ!
0965名前は開発中のものです。2006/09/01(金) 01:21:24ID:bbAaczJt
>0.5ずらすのもいいけど、マシンによって違うし、

流石に最近では見なくなった気がするけど、今でもそんなマシンはあるのかね。
0966名前は開発中のものです。2006/09/01(金) 01:31:12ID:4647tUfZ
過疎スレだと思ってたが、思ったよりレスがあったり・・・。
0.5ずらすのは既にやってました。テクスチャ座標を1ドット分の半分の値を、引いたり足したりで。
しかし、治らない。
多分、拡大されたときにテクスチャをぼかす、バイリニアフィルタをやってるから?
そこで、テクスチャ座標1ドット分の値を、引いたり足したりしたが、やはり拡大されてくると、
隣のチップのドットが出てくる。
クランプテクスチャアドレッシングモードは、テクスチャ座標が1.0より上の場合に有効なので、
マップチップの隅にあるパーツ以外では使えない。
やはりスマートな方法が見つからず。
0967名前は開発中のものです。2006/09/01(金) 01:37:20ID:4647tUfZ
2ドット分を加算減算したら上手くいきました。
しかしチップの上下左右の2ドットが表示されません
0968名前は開発中のものです。2006/09/01(金) 06:42:25ID:w52JDnCq
>>966
>クランプテクスチャアドレッシングモードは、テクスチャ座標が1.0より上の場合に有効なので、
>マップチップの隅にあるパーツ以外では使えない。
いや、だから、テクスチャを無理に1枚に敷き詰めようとするからじゃん。
テクスチャなんて切り替えたってそこまで速度下がらないよ。
シェーダ使ってりゃ死ぬほど切り替えるんだぞ。
マップチップなんてウンコみたいな数だろ。速度に影響しない。
0969名前は開発中のものです。2006/09/01(金) 08:38:33ID:ZbJ3UMQE
マップチップは敷き詰めるのが普通かと思うんだが
0970名前は開発中のものです。2006/09/01(金) 11:31:44ID:4647tUfZ
マップチップを利用してポリゴンを100個描画するとき、
頂点を全て設定して1回のDrawPrimitiveを実行するのと、
100回DrawPrimitiveを実行するのとでは、どっちが早いの?
0971名前は開発中のものです。2006/09/01(金) 11:57:10ID:S26duukq
マップチップ系はバイリニアと相性悪いから諦めたほうが……。
どうしてもと言うなら、一度オフスクリーンのレンダーターゲットに
バイリニア無しで敷き詰めて、それを拡大ってのでどう?
0972名前は開発中のものです。2006/09/01(金) 12:33:38ID:0ApikcMy
DrawPrimitiveUPなら若干差が出るかもしれないが、
それでも100ポリゴン程度ならほとんど変わらん。
0973名前は開発中のものです。2006/09/01(金) 14:11:38ID:4647tUfZ
だって、関数呼び出しが99回減るんだから、1回で実行した方が早くない?
0974名前は開発中のものです。2006/09/01(金) 15:27:24ID:SOIOoZPO
>>970
1回のDrawPrimitiveで描画する方が速い。
DirectXのFAQにも書いてある話。
0975名前は開発中のものです。2006/09/01(金) 16:01:49ID:4647tUfZ
>>968
テクスチャ切り替えって、1チップごとにDrawPrimitiveをするって意味ですよね。
じゃ、速度が低下するんじゃん。
0976名前は開発中のものです。2006/09/01(金) 21:59:11ID:XNX6bf8U
テクスチャやステートの切り替えがなくてもDrawPrimitive自体がかなり処理的に重い。
0977名前は開発中のものです。2006/09/01(金) 22:01:44ID:w52JDnCq
>>975
でも、それだと0.5ドットずれる問題(+フィルタ関係全滅)に対して全く打つ手が無いじゃん。
そこで品質を取るか、速度を取るかのトレードオフになると思うんだよね。
ターゲットマシンで一発動かしてみてチップごとにテクスチャ切り替えて
速度的に間に合ったらそれでいいんじゃないの?
0978名前は開発中のものです。2006/09/01(金) 22:02:12ID:4647tUfZ
ケキョーク、1ドットを余分に付加することにしました。
今、変換ツール作ってますが、DIBセクションの作成やらBMPファイルの読み取りやらで
思ったよりまんどい
0979名前は開発中のものです。2006/09/01(金) 22:07:10ID:w52JDnCq
>>978
意味わかんね。
つまり、どういうこと?
チップごとにテクスチャを切り替える方法をやってみたけど遅くて使い物にならなかった?
テクスチャごとにまとめておいて描画すればそんなに遅くはならないと思うんだけど。
0980名前は開発中のものです。2006/09/02(土) 01:14:53ID:rF9mlnnG
0.5ずらすのって、テクスチャ座標じゃなくてポリゴン座標だよ。
ポリゴン座標に 0.5足してみ。
0981名前は開発中のものです。2006/09/02(土) 06:14:27ID:udcl1M/G
DrawPrimitiveを使わなけりゃいいじゃん。
0982名前は開発中のものです。2006/09/02(土) 07:11:20ID:LmoAi9PT
結局、速度も測らずに遅い遅い言ってるだけのクズでFAだろ。
そもそもハードに合わない仕様に無理やりしてる時点でそいつ、およびそいつの環境に未来はない。
0983名前は開発中のものです。2006/09/02(土) 08:15:52ID:38/ohoru
>>982
そんなこと言ってる割にはずいぶんと具体性を欠いた批判だな
0984名前は開発中のものです。2006/09/02(土) 12:51:41ID:/COj+PxF
つーかどのマシン使ってるかしらんが、俺がチップ敷き詰め系のゲーム作った時は
フィルタあろうがなかろうがドットが欠けるとかずれるとかいう現象は起こらなかったが。
0985名前は開発中のものです。2006/09/02(土) 20:50:09ID:eY5cFahb
>>984
てことは、私のグラボ、GF2MXという一昔前のグラボが悪いのか?
これ、ドライバをNIVIDIAからダウンしたのにしたらバグったので、
どっかのオンボードグラボにGF2がある、オンボード用のを利用してる。
0986名前は開発中のものです。2006/09/02(土) 22:01:24ID:LmoAi9PT
はぁ?何言ってんの?
三角形ラスタ化ルールってDirectXのヘルプにも載ってるって言ってるだろ。
0987名前は開発中のものです。2006/09/02(土) 22:05:24ID:LmoAi9PT
http://msdn.microsoft.com/library/ja/default.asp?url=/library/ja/DirectX9_c/directx/graphics/programmingguide/gettingstarted/3dcoordinatesystems/rasterizationrules.asp
0988名前は開発中のものです。2006/09/02(土) 22:47:22ID:eY5cFahb
GF4MXにしたけど同じだった。。。
0989名前は開発中のものです。2006/09/02(土) 23:09:48ID:LmoAi9PT
>>988
ちなみにRadeon9600でも当然ながら同じ。
0990名前は開発中のものです。2006/09/02(土) 23:36:49ID:eY5cFahb
拡大時のぼかしフィルターをOFFにしても同じだった
0991名前は開発中のものです。2006/09/02(土) 23:44:00ID:eY5cFahb
ついに原因判明!!!!!!!!!!
空白のチップは、カラーコード0の真っ黒にしてたのだが、
問題のチップの隣のチップの一番下は、暗い紺色ですが、
これが何故か真っ黒になっており、このY座標を基準に次のチップを描いたので、
そのチップは、通常のチップより1ドット小さいチップで、
その上で確認のために一番下に、はみ出し描画確認用の赤いラインを書いたので、
当然ならが、正常にテクスチャ座標が設定されれば、確認用の赤いラインまで描画されるというこで、
機械の方は正直に素直に動いてくれていたことが分かりましたーーーー!!!!!ありがとう機械!!!!!!!
ちなみに、三角形なんとかルールは全く関係ありません。
0992名前は開発中のものです。2006/09/03(日) 00:03:25ID:zsKqvcJI
>>991
落ち着いて清書してくれ。勿論日本語で頼む。
0993名前は開発中のものです。2006/09/03(日) 00:32:25ID:YAC/s3Yf
チップが2つならんでるとこを想像してみて。
左がわのチップの、一番下のラインは、暗い紺色のはずだった。
ところが、これが未使用チップの色として使用する、黒 だった。
そのチップの右隣のチップをツールで描くとき、
チップの高さは、左隣のチップを基準にして描いたんだ。
そうすると、左隣のチップの一番下は、黒なので、それを基準にして
その右隣のチップを書くと、Yのサイズが1ドット小さくなるんだ。
0994名前は開発中のものです。2006/09/03(日) 02:04:47ID:bRItgJ9B
てゆうか、お前固有の問題は正直どうでもいい。
マップチップなんて使ってる時点で程度が低すぎて話するだけ時間の無駄だし。
0995名前は開発中のものです。2006/09/03(日) 11:26:49ID:2TnsP4e5
時間の無駄だとかいいながらレスしちゃうひとってかわいい☆
0996名前は開発中のものです。2006/09/03(日) 13:24:45ID:bRItgJ9B
まあ、レス返してほしいのはラスタ化ルールの問題をわかってて
ちゃんと対処してる奴だけなんだけどな。
0997名前は開発中のものです。2006/09/03(日) 17:54:38ID:uHyZT6NJ
Direct3D10 では、0.5ピクセルずらすのが不要になるらしい。
0998名前は開発中のものです。2006/09/03(日) 18:49:54ID:YAC/s3Yf
>>996
そんなにそのルールが好きなら結婚すればいいのに
0999名前は開発中のものです。2006/09/03(日) 19:00:23ID:zsKqvcJI
5年近くかけて、やっとたどり着いた次スレの季節。
ttp://pc8.2ch.net/test/read.cgi/gamedev/1132937938/
1000名前は開発中のものです。2006/09/03(日) 19:01:39ID:zsKqvcJI
まぁ、あっちもすぐ埋まりそうではあるw
10011001Over 1000Thread
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。