Direct3D
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
NGNGとりあえずDX8以降は初期化が簡単になったり関数が変わったり
結構大幅に変わりましたがその辺も踏まえて語ってみましょう。
要はDirect3Dを用いて、3Dプログラムまたは3Dの表現技術を学術的に語ってください。
ちなみにDirect3Drm歓迎です。
ゲーム開発板の勢いがイマイチなのでこちらに建ててみました。
0232デフォルトの名無しさん
NGNGだからさ、230の意味解る?
そのローカルの座標系に変換するのにワールドの逆行列を使うって意味を。
つーかさ3D上の当たり判定なんて、姿勢で難度なんて変わらない。
ローカルでもワールドでも、どんな姿勢だろうが一緒。
その辺を簡単だからなんて理由で、計算増やす意味無い処理してるのが理解不能。
>「まわる足場にキャラが飛びのる」場面を処理するにはワールド座標上で処理を行うのは
>非常に困難だと思われます。
全然困難じゃないだろ。
よーく解ったよ。とんだ低レベルな奴が言ってるのが。
0233デフォルトの名無しさん
NGNG>問題が出るのではないでしょうか?
こいつさ、プログラムした事ないな。
1フレームで動く移動量で足場とキャラを変化させてから当たり判定だろ。
どっちが先とか関係無いだろ。
移動、判定、描画は全てのオブジェクトでその処理時に行なうのが常識。
なんだよ?
どちらを先に動かすって?
理解不能。
0234デフォルトの名無しさん
NGNG>そのローカルの座標系に変換するのにワールドの逆行列を使うって意味を。
それってローカル座標上に直してるじゃん。
ワールド座標上じゃないだろ。
0235デフォルトの名無しさん
NGNG>移動、判定、描画は全てのオブジェクトでその処理時に行なうのが常識。
内部の処理と描画処理はわけるだろ?
片方のオブジェクトの処理を終えたあとでも他のオブジェクトがそいつに
ぶつからないとは限らないぞ。
0236デフォルトの名無しさん
NGNGだから、そのローカルに直す無意味を解らないのかと言う意味だろ。
ワールドの逆行列をかけるって事は、ワールドでも同じコストで判定できるはずだろって意味。
>>235
これも解らないのか?
移動を全て終えてから、全ての当たり判定、それで全ての描画って意味を。
この処理で、当たり判定時にオブジェクトが動く事はありえないって意味を。
0237デフォルトの名無しさん
NGNG当たり判定後の補正はいつかけるの?
0238デフォルトの名無しさん
NGNG当たり判定後
0239デフォルトの名無しさん
NGNG処理の順番、判定の順番、補正の順番によって結果が変わることがあるよね?
0240デフォルトの名無しさん
NGNGそれを考えて、プログラムするんじゃん。
結果が変わるのなら、それは処理の方法や概念じゃなくプログラム自体が駄目なんだろ。
0241デフォルトの名無しさん
NGNG>どちらを先に動かすって?
>理解不能。
理解可能?
0242デフォルトの名無しさん
NGNGもう1つマジネタ。
D3Dでテクスチャを設定するとき、頂点情報にテクスチャ座標を含めるから、
別々のテクスチャを貼る場合、同じ座標の頂点であっても、
別に頂点を設定しなくてはならない。
例
A――――B――――C
| | |
| | |
| | |
D――――E――――F
四角形ABED に、TEX1を貼る。
四角形BCEF に、TEX2を貼る。
この場合、EとBは、同じ頂点を使用できると思ったら、
テクスチャ座標が異なる場合は、別々にXYZも設けなければならない。
これが変
0243デフォルトの名無しさん
NGNG>これが変
辺じゃない!
頂点だ・・・。
・・・なんつって。
0244ぬびでぃあ
NGNG0245デフォルトの名無しさん
NGNG0246デフォルトの名無しさん
NGNGふつうに共有頂点の場合Textureを分けるのでは無く、UVを分ける。
言ってる意味解る?
一枚のTextureに、その2枚分のTexture情報をいれてUVで切り分けるんだよ。
なんの為のUV指定なのやら…
ほんとに3Dのド素人…
0247デフォルトの名無しさん
NGNGオマエガナー
0248デフォルトの名無しさん
NGNG0249デフォルトの名無しさん
NGNG0250デフォルトの名無しさん
NGNG0251デフォルトの名無しさん
NGNG242じゃないけどそれじゃなんの解決にもならない予感。
2Dマップチップでも配置するときなんかを考えると
解決にならない理由がわかるかも。
0252デフォルトの名無しさん
NGNG画像が粗くなるのを覚悟でそのまま使うかしないといけないし
0253246
NGNGやっぱほんとに3Dのド素人ばっかりなんだね(禿藁
0254デフォルトの名無しさん
NGNG同じ頂点座標を2度書かなきゃいけないのが、気に入らないと?
0255デフォルトの名無しさん
NGNGだけどそういうのを犠牲にしてるおかげでハードウェア的には処理が効率がいいんだろうね、
0256デフォルトの名無しさん
NGNG0257デフォルトの名無しさん
NGNGいや、冗談抜きで本当にわからない。
しかも、わからない人数からいっておまいの
説明の仕方の方が悪いと考えるのがいい気がする。
ここらで人に説明するためのスキルアップも兼ねて
おにーさんに説明してごらん。
0258デフォルトの名無しさん
NGNGが、何を言ってるのか分からんかた。
>ふつうに共有頂点の場合Textureを分けるのでは無く、UVを分ける。
>言ってる意味解る?
>一枚のTextureに、その2枚分のTexture情報をいれてUVで切り分けるんだよ。
テクスチャが数枚の場合は、1つのテクスチャにして、
それから切りぬく形で、テクスチャ座標を設定する。
というのは、分かる。
でも、それであっても、テクスチャ座標が異なる場合は、
頂点座標まで同じのを2つ用意しなきゃならんぞ。
0259デフォルトの名無しさん
NGNG普通は、まず頂点座標を全て求めて、
それから面情報に基づいて面を描画する。
面がテクスチャ描画の場合は、テクスチャ座標を用いて、テクスチャを描画する。
つまり、頂点情報とテクスチャ座標を一緒にした仕様が変なわけだ。
0260デフォルトの名無しさん
NGNGハードウェア的にはそれしか扱えないようにして単純化するほうが効率がよいと。
0261真の246
NGNGTextureも作れないアホばっかなの?
共有頂点でUVが一つで良い様にTexture作れば良いだろうよ。
しょうもないTextureを前提に言ってる理論は、ほんとド素人。
0262デフォルトの名無しさん
NGNG0263デフォルトの名無しさん
NGNG不可能だろ?よく考えてみてよ。
マップチップみたいにテクスチャを何回も使いまわして、
かつ、色んな組み合わせがある場合を考えてみろって。
0264真の246
NGNG普通は、その使いまわす組み合わせ通りのTextureを用意する。
同じ部分だからって1パターンのみの画像内容しか用意しないのはTextureMappingを理解してない証拠。
ほんと、プログラマらいし根性で。
やっぱ3Dのド素人だな。
0265デフォルトの名無しさん
NGNG例えば、土管を作る場合、テクスチャは横一列に並んだものでできるから、
これだとテクスチャ座標を含めた頂点が、共用できる。
でも、サイコロの場合はどうすんだ?
0267デフォルトの名無しさん
NGNGキューブ環境マップでサイコロはできそうだ。(やったことない)
サイコロは簡単すぎた。
サイコロじゃなくって、ガンダムのコアファイター。(頂点数をできるだけ減らしたもので)
コアファイターだとテクスチャ貼る必要が無いかもしれないが、
ティティールを表現するとして、全てにテクスチャを貼る。
これだと環境マップじゃ、どーやってもできないよな。
0268デフォルトの名無しさん
NGNGドラクエみたいなマップを、テクスチャで描画しようってことだ。
そんで、246は、
>普通は、その使いまわす組み合わせ通りのTextureを用意する。
・・・。やはり馬鹿だったのか?
0269デフォルトの名無しさん
NGNGおそらくどこかの「テクスチャの張り方」とか読んで理解したつもりになった厨だろう。
0270デフォルトの名無しさん
NGNG0271真の246
NGNG3Dどころか2chド素人だなww
0272デフォルトの名無しさん
NGNG∧∧ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
〜′ ̄ ̄(,,゚Д゚)< おまいマジで間違えてただろ?
UU ̄ ̄ U U \_____________
0273デフォルトの名無しさん
NGNGしかも頂点座標の余計な重複を防ぐという条件なら、
UV座標をトランスフォームさせて使い回せば出来るけど、
その程度説明できない>>246は確かに素人ですね
0274デフォルトの名無しさん
NGNGUV座標をトランスフォーム?そんなの聞いたことないぞ。
それであても、DrawPrimitivに渡すときは、頂点座標が重複するだろ。
0275デフォルトの名無しさん
NGNG>>246の言ってる意味はわかるし、普通のやりかた。
でも説明が下手で誤解されてるのかな。
ちなみに、漏れはゲーム屋、プロです。
0276デフォルトの名無しさん
NGNG0277デフォルトの名無しさん
NGNG説明して
0278デフォルトの名無しさん
NGNGヘルプに「テクスチャ座標トランスフォーム」というのがあるから見てみなさい
0279デフォルトの名無しさん
NGNG0280デフォルトの名無しさん
NGNG0281デフォルトの名無しさん
NGNGα値をβしてDMA伝送したら
VU0をHALTして/dev/hdaをMOVQするんだ
そうすると、MM0がFPUをEMMSするから
伝送遅れを防ぐためにCNOPを挟み込んでWTOマクロを発行する
すると、さっきβした領域がEXTENT 16でABEND S=B37するから
その前にJSDSCPYを実行してFMACパイプラインを即時に閉塞
閉塞したVF01をREG0〜32まで一気にSTALLしてやれば良いわけだ。
わかったかな?
0282デフォルトの名無しさん
NGNG全く関係無い言葉を並べております。
0283デフォルトの名無しさん
NGNG嘘つくな馬鹿。
0284デフォルトの名無しさん
NGNG>>277
テクスチャサーフェースをジオメトリでラスタライズするには、
テクスチャ座標を用いるが、これを自動生成させることができて、
これを環境マップとも言って、自動生成の場合に何を用いてテクスチャ座標を生成するかについては、
光の反射方向(反射ベクトル)を用いる方法があり、
これは、人間の感覚的に言うとテクスチャサーフェースを紙に例えてプリミテイィブを覆うようなイメージで、
この場合、複雑なプリミティブであってもやはり汚い貼り方でしかなく、
説明も分からない。
0285デフォルトの名無しさん
NGNG恥の上塗りみっともない
0286デフォルトの名無しさん
NGNGあ、水の流れる様子が表現できるか。あとは、灯篭。
炎のゆらめきもできそうだけど、なんにしても、
そんなことは暇なプロだけがやることだろう
0287デフォルトの名無しさん
NGNG1つの位置座標に複数のUV座標が存在してしまうことの回避は
場合によっては不可能っつーことだけは確か。
0288デフォルトの名無しさん
NGNGプロのゲーム屋(=ゲームショップの販売員)ですか?(藁
0289デフォルトの名無しさん
NGNG>CNOP
>WTOマクロ
>ABEND S=B37
>JSDSCPY
それを知っている貴様はいったい何者ですか?
0290デフォルトの名無しさん
NGNG友人に「DirectXをやるならアセンブラを知らないと遅くて話にならないよ」と言われたもので・・・
0291デフォルトの名無しさん
NGNGそういう奴は具体的にどの部分に使うのか突っ込むとすぐにボロを出す
上手く玩具にして遊べ
0292デフォルトの名無しさん
NGNGDirectPlay でもアセンブラ?
なかなかやるな。
0293デフォルトの名無しさん
NGNG0294290
NGNG友人は結構プログラムに詳しいのですが
やはりハッタリなのでしょうか、試しに聞いてみたいと思います
>>292
DirectPlayですか・・
ネットワークはちょっと分からないです
>>293
バイト代をゲームと自作PCにつぎ込んでるような奴なので結構ハイスペックです
先日Pentium4の3GHzになったとか豪語してましたw
自分の方はAthlonの1GHzですが・・
0295デフォルトの名無しさん
NGNG綺麗な表現ができないっていうだけだろう
0296デフォルトの名無しさん
NGNG0297デフォルトの名無しさん
NGNG0298デフォルトの名無しさん
NGNGとりあえず普通にC++あたりで作って動かしてみてから考えた方がよろしいかと
0299デフォルトの名無しさん
NGNG自前処理で回転拡大縮小半透明やってるんだよw
0300デフォルトの名無しさん
NGNG0301デフォルトの名無しさん
NGNG0302デフォルトの名無しさん
NGNGありえるな、かたくなに3Dを拒否するやつっているからね
0303デフォルトの名無しさん
NGNGAthlon の 1G なら、非常にクリティカルななにかの処理するところにアセンブラ使うと効果あるかもね。
でもそんなの Direct3D 使って何かやるときにはあまりお目にかからないし、初級者ならそんなことより
他にやりたいこと・やるべきことがイパーイあるから気にスンナ。アセンブラ覚える時間があったらバイト
でもして良いビデオカード買ったほうがいい。
Pentium4 だとパーシャルレジスタストールのペナルティがすごく大きいから、普通に Intel Compiler
なんかで最適化したコード以上に早いコードをアセンブラで書ける場面は少ないんだよ。まあこれは
漏れの腕が悪いからかも知れないけど。。。
0304デフォルトの名無しさん
NGNGテクニックを駆使して条件分岐を排除し演算のみでロジックを構成するような場合
これはさすがにコンパイラはやってくれないが、2Dの時代が終わった今、活用する場面はほぼ皆無
0305デフォルトの名無しさん
NGNGサウンドプログラミング
てまぁゲームには関係ないな…
0306デフォルトの名無しさん
NGNG>でもして良いビデオカード買ったほうがいい。
それは無い。
0307デフォルトの名無しさん
NGNG条件分岐といえば、C言語の switch case って、
if(){...}else if(){}...else if(){...}
と同じようにアセンブラでコード化されると聞いたことあるが、これってホント?
0308デフォルトの名無しさん
NGNGうそ!
0309デフォルトの名無しさん
NGNGdefault:が無い時は
ジャンプテーブル化されることもあるってきいたことある
オレがVC++6.0でやったときはリストしてみたけど全部条件分岐にされててへこんだ…
0310デフォルトの名無しさん
NGNG0311デフォルトの名無しさん
NGNGマジかよ、、、。
ジャンプテーブルってcase ???: が、連番ならいいけど、ばらけてたらどうすんだろ。
0312デフォルトの名無しさん
NGNG255以内でジャンプテーブルを生成する
0313デフォルトの名無しさん
NGNG葉外道
糞なビデオカードを使ってる奴に限って変なビデオカードの対応ばかり
気にしてる奴が多い。
「そんなのおまいの作ったゲームが気にするほど普及してからでも遅くないぞ。」
といってやりたいがなかなかいいにくい。
0314290
NGNGなんかアセンブラアセンブラ絶叫してるだけであまり説得力のある回答をもらえませんでした。
頂点シェーダーやピクセルシェーダーをいじってみたいので(おもしろそう)
その話もしたんですが、メチャメチャに否定されました。
「シェーダーを使うよりロックしてアセンブラで操作した方が高速で・・・(ry」
なんかよく分からない事を並べられましたが
シェーダーが面白そうなので否定された事はスルーして密かにがんばってみます。
0315デフォルトの名無しさん
NGNG> 「シェーダーを使うよりロックしてアセンブラで操作した方が高速で・・・(ry」
こいつ、見捨てていいよ。
0316デフォルトの名無しさん
NGNG今後、その人にはプログラムの話題は振らないことをおすすめする
0317デフォルトの名無しさん
NGNG0318デフォルトの名無しさん
NGNGWatcomの場合は?
0319デフォルトの名無しさん
NGNG自分で試してくれ
0320デフォルトの名無しさん
NGNGエロゲ業界では、今でもビットマップをアセンブラでゴリゴリしているけど、
シェーダ使うより、ロックしてアセンブラのほうが速いなんて言い出すのは、
昔に固執して、いまの技術を追っていない証拠。無視無視。
0321デフォルトの名無しさん
NGNG0322290
NGNG彼のプログラムウンチク関係は少し距離を置きつつ聞き流したいと思います
こんな事してる場合じゃない!VisualC++を起動せねば!
スレ汚しすいませんでした
0323デフォルトの名無しさん
NGNGさすがにこれはネタだろうと
おまいは遊ばれてるんじゃね?
0324デフォルトの名無しさん
NGNG0325デフォルトの名無しさん
NGNG0326デフォルトの名無しさん
NGNGきっとこれ系のゲームの作者だ
0327デフォルトの名無しさん
NGNGあーもったいねぇなぁ。
ちょっと3Dに興味もってくれるだけでいいんだけどなぁ。
0328デフォルトの名無しさん
NGNG3Dが人気無いって事を身を持って理解してるのでは。
0329デフォルトの名無しさん
NGNG半透明をソフトウェアで行ってるから遅い、というだけ
これからの時代は2Dポリゴンつかえってことだよ
つーかここまでの流れがそうなってるだろ・・・
まぁそこの開発日記でDirect3Dによる2Dポリゴンに移行みたいなこと書いてあったらしいから
移行するんだろうね
0330デフォルトの名無しさん
NGNGサポートが大変
0331デフォルトの名無しさん
NGNG問題の起こる可能性が高いんだから当然じゃん
■ このスレッドは過去ログ倉庫に格納されています