トップページ⇒tech
1001コメント342KB

【C++】 DirectX初心者質問スレ 【C++】

■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさんNGNG
DirectXスレは既にあるってのは知っていますが、
初心者が気軽に質問できるような雰囲気じゃないのでスレをたてますた。

これらに当てはまる人のための質問スレです。
1.C/C++は多少理解している。
2.最近DirectXを始めたばかり
3.SDKを見ても、Googleで検索しても、いまいち理解できない人



【 回答してくださる方 】
・ できるだけ優しく質問に答えてあげてください。
・ 優しく教えるのが嫌でしたら、解決するためのヒントだけでも結構です。
 「ググれ」「SDK見れ」以外の回答でおながいします。
・ 神ですら理解不能な質問は無視して下さい。


【 質問する香具師 】
・ どんな事で躓いているのか明確にしる。
・ 長くならないなら躓いている部分のコードを晒してみれ。
・ 解決した場合、お礼を言うのは当然だが、何をどうしたら解決したかを明確に書け。
0153147NGNG
>>148
人に教えれるほどやっているわけではないので間違ったことを言ってるのを前提に聞いてくれ。
まず基底の意味がそのクラスの元となっているもの(クラスと捕らえているのだがここは合ってるか?
そうすると
>3Dで言うと、ローカル、ワールド、ビュウって基底が違うだろ。
がおかしくなるので違うか。
自分の考えを書くと
> 自分が寝転んだら、自分の絶対座標の基底は逆になるだろ。
X軸{1,0,0} Y軸{0,1,0} Z軸{0,0,1}の基底クラス(地球(重力の反対がY軸ベクトルとする))があって、その派生が人間とする。
その人間が{{1,0,0},{0,0,1},{0,-1,0}}と横になっても、どっから見ようが方位は変わらないと思うのだが。
もちろん人間(派生)のY軸の回転と地球(基底)のY軸回転は違うわけだが。
0154デフォルトの名無しさんNGNG
>>152
出来るかどうか・・・なんとか頑張ってみます。
0155デフォルトの名無しさんNGNG
>>153
ローカルで横になって、ワールドで変化なしでも
ローカルで変化なしで、ワールドで横になっても

見た目は同じだが、ワールドでの姿勢制御行列は違うだろ。

0156デフォルトの名無しさんNGNG
>>153
基底をわかってない。それで語り出すなよ。
人間には人間の基底があって、地球には地球の基底がある。
人間を地球の基底にもって行くのをLocalWorld変換と言うんだろ。

なんだよ…派生って…
0157147NGNG
半端な知識な点について申し訳ない。
>>155
ワールドがメッシュAでローカルがメッシュBとして
メッシュAの中にメッシュBがあると考えていたけど違うか。
メッシュAが姿勢を変えたらメッシュBも姿勢が変わる。
メッシュBが姿勢を変えてもメッシュAは姿勢が変わらない。
>>156
3年前は基底クラスと派生クラスと学んでいたのでそのまま使っているが最近(cpp)は違うのか。
それとも基底の解釈の仕方が違うのかも知れんが。

考え方が色々あるみたいなので当方も頑張って勉強します。
様々なサイトや本を見ながら格ゲーを作ったけどこの考え方で作れたのは奇跡に近いのか・・・
0158デフォルトの名無しさんNGNG
>>157
これ以上、醜態を晒すなよ。

一つのメッシュで、ローカル、ワールド、ビュウと変換していくんだよ。
で、それぞれの座標系で姿勢制御行列は変わるだろ。

基底クラス?それはC++の話。
回転と姿勢制御で基底ってわからないの?
>{{1,0,0},{0,0,1},{0,-1,0}}
とか自分で言ってるじゃん?

>様々なサイトや本を見ながら格ゲーを作ったけどこの考え方で作れたのは奇跡に近いのか・・・
丸写し、サンプルコピペ、D3DXライブラリ等、知識なくとも作れるよ。
作れた == 知識ある
じゃない。

自前実装でもして勉強したら。
0159デフォルトの名無しさんNGNG
>>157
>3年前は
>3年前は
>3年前は

3Dの適正ない…
0160デフォルトの名無しさんNGNG
>考え方が色々あるみたいなので

…なと言えばいいのかな…
貴方の捉え方、理解のしかたをもって
基本的な考えを
>考え方が色々あるみたいなので
と言ってるの?
0161デフォルトの名無しさんNGNG
>>135   もういないかな

向氏のページのぐぐるキャッシュ
http://www.google.co.jp/search?q=cache:6AL2u5uKMeYJ:member.nifty.ne.jp/Mukai/3d.htm+%E5%9B%9E%E8%BB%A2%E3%80%80%E3%82%AF%E3%82%AA%E3%83%BC%E3%82%BF%E3%83%8B%E3%82%AA%E3%83%B3&hl=ja
0162147NGNG
>>158
半端な知識と書いてある通り知識があるわけでないしそもそも基底の意味が分からん。
Javaで少し出てきたけどcppでは今のところ出てきていない。
DXでの自分の考えでは
基となるのが大きなメッシュ その中に小さなメッシュ
小さなメッシュにXファイルをいれて大きなメッシュから見た座標と姿勢を指定する。(3x3の行列)
カメラも大きなメッシュの中にあってこれも同じく座標と姿勢を指定する。(Zベクトルが視点)
人などの小さなメッシュは大きなメッシュを基にして動くのでみんなバラバラに動くことができる。
大きなメッシュが動くとその中にある全ての小さなメッシュ(カメラ)も動く。
大きなメッシュが180度回転しようが大きなメッシュを基にしているので
小さなメッシュやカメラも一緒に動く・・・結果中身に何も変化なし。
つまり大きなメッシュを動かしても小さなメッシュと東西南北などの方位は変わらないのでは。

>>160
本に書いてあることがバラバラでどれが基本なのかわからない。
なので自分にとって分かりやすい考え方を自分の基本にしている。
英単語を覚えるのは基本的に何度も読み書きをするだけど
無理やりローマ字読みしたり睡眠中に流して覚えると言うものそれが自分に合ってればその人の基本かと。
基本は違えど結果は同じわけだし。
0163デフォルトの名無しさんNGNG
フレームとメッシュが滅茶苦茶に混同されている。
しかもメッシュの中にXファイルっていったい…。
0164デフォルトの名無しさんNGNG
>>147
お前、キモイんだよ、間違った自分の考えをダラダラと。

基底とは数学の話だよ。なんだよJavaって。
でモロに、ワールドでの話でしかないだろ、下らない例をグダグダと。

>本に書いてあることがバラバラでどれが基本なのかわからない。
>なので自分にとって分かりやすい考え方を自分の基本にしている。
数学的な物は、バラバラなわけないだろ。
で今は、モロに3Dの数学的な姿勢制御と座標系の話をグダグダ述べてんだろ、お前。

基本が同じって自前で実装してるなら通じるが
ライブラリやサンプルコピペしてるような奴は、基本が同じなど
おこがましい。
0165デフォルトの名無しさんNGNG
とりあえず餅つけ
0166147NGNG
>>163
ご免、素で変なこと書いてた。
大きなメッシュ→大きなフレーム(親)
小さなメッシュ→小さなフレーム(子)
>しかもメッシュの中にXファイルっていったい…。
箱の中にポリゴンを入れているイメージが載っていたのでそういう形で覚えてました。
(大きな箱を動かしたら小さな箱も一緒に動く 等)
変だろうけど勘弁してください。

>>164
数学の基底、学校で習うわけでもないし今まで必要じゃなかったので
回転と姿勢制御で基底ってわからないの?
分からないと言うよりも知らないの方が正しいです。
0167デフォルトの名無しさんNGNG
>>147
何を言い分けしても、お前の3Dの基本はグダグダ。
ワールド座標系しか理解出来ない奴は、ワールド座標系でしか物事考えられんって奴だ。
基底座標の変換と、同じ基底内の回転、平行移動、スケールが混同されすぎってか
理解も出来てない。
それで、語ってりゃ世話ない。

偉大だよな、DirectXって。
こんなイカレ野郎でも3Dやってる気にさせちゃうんだから。
0168デフォルトの名無しさんNGNG
モーフィングしたいのですがどうすればよいでしょうか?

モーフィングという言葉が不適切かもしれませんがメッシュAをメッシュBへ変形させたいのです
顔A、顔Bと用意しておいて顔Aから顔Bへ徐々に変形していくことで表情を変えたりしたいです
0169デフォルトの名無しさんNGNG
頂点とIndex(あるなら)を対応したモデルが前提で
各頂点をモーフィングの度合いで線形補間して表示すれば良いだけじゃん。
0170デフォルトの名無しさんNGNG
頂点データについて質問です。

3Dの頂点宣言に、D3DFVFを使って行う方法は分かったのですが、

3Dの頂点宣言に、D3DVERTEXELEMENTを使いたいときには
どのように指定したらいいのでしょうか?


D3DFVFを使用したときには、
float x, y, z, rhw; → float x, y, z;
のように、float型3つになっていたので、

D3DDECLTYPE_FLOAT4 の代わりに D3DDECLTYPE_FLOAT3 を
使ったりしてみましたが、無理でした・・・。


また重ねて質問なんですが、
D3DVERTEXELEMENT での頂点宣言を使う利点って何なんでしょうか?
0171170NGNG
「2Dの頂点宣言を、3Dの頂点宣言にする際に」を

>D3DFVFを使用したときには、
>float x, y, z, rhw; → float x, y, z;
>のように、float型3つになっていたので、

の前に追加願います・・・。
スレ汚しスイマセン。
0172デフォルトの名無しさんNGNG
>>169
DirectXにそういう機能は無いってことですか?
0173デフォルトの名無しさんNGNG
>>170
全然要領を得ない。
何言ってるの理解不能。
頂点型とD3DVERTEXELEMENT型の宣言を見せてみ?

>>172
頂点バッファの値も取得出来るし、書き換えも出来る。
だからスキニング等のアニメーションが出来るんでしょ?
まさか、D3DX系関数で関数呼べばやってくれるとかじゃないよな?
0174170NGNG
>>173
レスサンクスです。なんか自分、相当勘違いしてるみたいですね・・・。
それぞれ、

struct CUSTOMVERTEX
{
 float x, y, z;
 DWORD color;
};
#define D3DFVF_CUSTOMVERTEX (D3DFVF_XYZ | D3DFVF_DIFFUSE)

D3DVERTEXELEMENT9 VertexDeclaration[] =
{
 { 0, 0, D3DDECLTYPE_FLOAT3, D3DDECLMETHOD_DEFAULT, D3DDECLUSAGE_POSITION, 0 },
 { 0, 12, D3DDECLTYPE_D3DCOLOR, D3DDECLMETHOD_DEFAULT, D3DDECLUSAGE_COLOR, 0 },
 D3DDECL_END()
};

って感じです。
下のD3DVERTEXELEMENT型を3Dのポリゴンに使いたいのですが。
0175デフォルトの名無しさんNGNG
>>174
別にオカシイと思える所はなさげだけど?

もしかして2Dを3Dにとか言ってるって事は、
プロジェクション変換してないとか?
0176デフォルトの名無しさんNGNG
>>175
プロジェクション変換については、
spinの
ttp://spin.s2c.ne.jp/stoday/stoday04.html
のページを参考にしていて、
ClipVolumeサンプルを元に作成してるので、大丈夫だと思うのですが・・・。

元は、
D3DVERTEXELEMENT9 VertexDeclaration[] =
{
 // 2Dの頂点位置
 { 0, 0, D3DDECLTYPE_FLOAT4, D3DDECLMETHOD_DEFAULT, D3DDECLUSAGE_POSITIONT, 0 },
 // 頂点の色
 { 0, 16, D3DDECLTYPE_D3DCOLOR, D3DDECLMETHOD_DEFAULT, D3DDECLUSAGE_COLOR, 0 },
 // 終了の印
 D3DDECL_END()
};
という指定だったのですが、この指定から>>174の指定にした場合、
他にどのような部分を変更しなければいけないのでしょうか?
0177170NGNG
スイマセン・・・、どうやら見えない位置に
しっかり表示されていました・・・orz
お手数とってしまってホント申し訳ない・・・・。
スレ汚しスイマセンでした・・・。
0178デフォルトの名無しさんNGNG
MeshとPMeshってどう違うのですか?
0179デフォルトの名無しさんNGNG
P
0180デフォルトの名無しさんNGNG
DrawIndexedPrimitiveの間の4つの引数について教えて下さい。
今もなんとなくは使えてるのですが…。

//ヘルプの引用
HRESULT DrawIndexedPrimitive(
 D3DPRIMITIVETYPE Type, //これはOK
 INT BaseVertexIndex, //インデックスバッファの開始地点から最初の頂点インデックスまでのオフセット
 UINT MinIndex, //この呼び出しの間に使用される頂点群に対する最小の頂点インデックス
 UINT NumVertices, //この呼び出しで使用される頂点の数 (BaseVertexIndex + MinIndex から始まる)。
 UINT StartIndex, //インデックス配列の中で頂点の読み取りを開始する位置
 UINT PrimitiveCount //これもOK
);

IndexBuffer配列
[0][1][2][1][2][3][3][5][4][4][6][8][9][6][5][4][5][7][4][5]

駄目人間>>180の考え
BaseVertexIndex 最初の頂点インデックスって何の最初だろ…描画したい範囲の最初だろうか…
MinIndex IB配列に入ってる0〜9の値のうち、最小の値である0という事?
NumVertices 使う頂点は0〜9だし10個?でもBaseVertexIndex + MinIndexとか言ってるし…
StartIndex BaseVertexIndexとは違うのだろうか…
0181デフォルトの名無しさんNGNG
>>180
http://www.google.co.jp/search?hl=ja&ie=UTF-8&q=DrawIndexedPrimitive&lr=lang_ja
0182デフォルトの名無しさんNGNG
2Dスプライトの表示と移動を行うソースなんですが
エラー原因特定が掴めない。あと、ファイルのまとめ方とか
プログラムの書き方とかも自信無いのでアドバイスを頂けたら光栄なんですが。駄目元で、ソース置いときます。。。

ちなみにエラー有りそうな所はsprite.hとDXInput.hが有力で
次にDXHeader.hが有りそう。

http://sterdust.net/upload/upload.cgi?page=Download&dir=&sort=date&filename=VSHTest.zip
0183182NGNG
バグとれました。(冷やし中華始めました風)
ソース見て下さった人ありがとう。(いたかどうか分かりませんが)
0184デフォルトの名無しさんNGNG
SDKに付いているd3dappを使って組むのと
1から組むのどっちがいいと思いますか?

まぁたいした量じゃないけど、、、めんどくさい
0185デフォルトの名無しさんNGNG
その程度を面倒くさいという理由でやろうとしない人間は、
結局何も作れないで終わるだけ。
0186デフォルトの名無しさんNGNG
>185
すみません
僕が甘かったようです

ちょっと調べて思ったんですが
ネット上の情報ってなんでエフェクト処理ばかりなんだろう。。。
ゲームにはそんな重要ではないと思うが
0187デフォルトの名無しさんNGNG
xファイルを読み込んでDrawSubsetで描画する、というのを
ネットで適当にサンプルを拾ってきてそれをコピペしてやってみたのですが、
なぜか所々ポリゴンが抜け落ちたようになります
(3角形の穴が開いたように、裏側というか内側?が見えたりする)
また、メッシュのx座標を変化させても抜け落ちるポリゴンは変わらないのですが、
z座標を変化させると別のポリゴンがかけたりします
こうなる原因として、何が考えられるでしょう?

バージョンはDirectX9で、開発環境はVC++.netです
0188デフォルトの名無しさんNGNG
>>187
背面カリングをしない設定だとちゃんと描画されるのか?
0189デフォルトの名無しさん NGNG
LINK : fatal error LNK1181: 入力ファイル "dinput8.lib" を開けません

ビルドするとこんな↑エラーが出るのですが、どうすればいいのですか?
0190デフォルトの名無しさんNGNG
ここはDirectXの初心者スレだ

開発環境C/C++の初心者スレではない
0191デフォルトの名無しさんNGNG
Windowsをぶっこぬくほうほうを教えてください
0192デフォルトの名無しさんNGNG
どうすれば、テクスチャ上の文字列をきれいにそのまま表示できますか?
テクスチャは拡大も縮小もせず(Worldで256x256なら、Screen上でも256x256で表示)、
傾き0で表示していますが、ノイズが入ることがあります。
0193デフォルトの名無しさんNGNG
スプライトって飲むとシュワシュワしますか。
0194192NGNG
うーん、スプライトではなくてテクスチャで何とかしたいのですが。。。
0195デフォルトの名無しさんNGNG
トランスフォーム済みで0.5ずらすだけ。
0196デフォルトの名無しさんNGNG
>>180
DrawIndexedPrimitive
IDirect3DDevice9::SetIndices を繰り返し呼び出すことなく、
同じインデックス バッファで複数のプリミティブをバッチ処理できるように、
IDirect3DDevice9::DrawIndexedPrimitive が変更された。

とあるから、それぞれの意味はなんとなくわかるよね?
0197187NGNG
>>188
背面カリングをしない状態でも、同じのようです

よく見ると>>187で書いたのと少し違うようで(スイマセン...
背面は描画されないのですが、
たとえば球の前に立方体を置いて、立方体の方向から
球が立方体の影になるようにして球を見ると、
球のポリゴンがチラつくように立方体を通して表示されます
(球と立方体でひとつのメッシュです)

わかりにくいと思いますが、よろしくお願いします
0198デフォルトの名無しさんNGNG
射影の遠近設定が不適切で、Zバッファの精度が足りなくなっているのでは?
0199187NGNG
>>198
まだ安定してませんがどうやらその辺りのようです
ありがとうございました
0200デフォルトの名無しさんNGNG
>>180
一応それっぽい意味を。
BaseVertexIndex
ヘルプの説明がわかりにく。とりあえずこれは頂点バッファの
先頭からのオフセット。
1を設定すると頂点1個分sizeof(CUSTOMVERTEX)分進む。(複数オブジェクトをまとめる時にでも)
MinIndex
最小のインデックス番号?なのかな。基本的になに設定しても動作はかわらんかった記憶が・・・
なんか内部で最適化されるとかいってるからとりあえず0に。最適化なのかなんなのかしらないけど
そこまでデータの割り振りを手元に用意するのはめんどいなと。
NumVerticesは単にレンダリングに使用する頂点数。
StartIndex、これはインデックスバッファのインデックスオフセット。これをずらして作業することって
あまりなさそうだけど{0,1,2,3,4,5,6}のインデックスにたいして1をセットすれば
内部で{1,2,3,4,5,6}になる。PrimitiveCountとの整合性は保たないとあれかね。
まぁ部分的に間違ってるヤカン
0201180NGNG
>>196 >>200
(*゚Д゚*)!

いや正直未だに分からず放置してたんです。
な、なるほど!インデックスバッファをまとまり毎に処理するためのものに加え、
頂点バッファもまとまり毎に処理が可能に出来てるんですね。

IKのためにオブジェクト毎に持っていた頂点バッファを、ひとつにまとめて
変更を少なくしたり出来ちゃうわけですか。これは便利だ…。
いや目が覚める思いです。まことにありがとうございました!
0202デフォルトの名無しさんNGNG
バッファはあればあるほどよい

この親父が権威。
ttp://www.jca.apc.org/~maki_t/waseda2-82.jpg
0203デフォルトの名無しさんNGNG
あまり面白くないね。
0204デフォルトの名無しさんNGNG
ATL/WTLと一緒に使うサンプルなんかありませんかね?
0205デフォルトの名無しさんNGNG
ウィンドウに描画されているものを、そのまま引き伸ばすにはどうすればいいんでしょう?
(ウィンドウサイズが自由に変更できて、そのサイズに合わせて表示されるようにしたいのです)
0206デフォルトの名無しさんNGNG
描画先のサイズを指定するだけ。
0207デフォルトの名無しさんNGNG
>>205
チュートリアルぐらいみようじぇー

Presentのあたりを
0208205NGNG
Thanks!!
0209デフォルトの名無しさんNGNG
.pic形式のファイルをLPDIRECT3DTEXTURE9型で扱えるように読み込んでくれる関数ってないですか?
0210デフォルトの名無しさんNGNG
fopenとか。
読み込んだらテクスチャのフォーマットに変換すれば完了。
0211デフォルトの名無しさんNGNG
GDI使ってサーフェスに直線を描きたいんですが
WM_PAINTの中でコードを書いてInvalidateRectしないと駄目ですか?
InvalidateRectは画面がちらつくからできれば使いたくないんです。
0212デフォルトの名無しさんNGNG
バックグラウンドサーフェイスに描くのなら、別にちらつきなど関係ないが?
0213211NGNG
いえ、peekmessageループの中でバックグラウンドサーフェスに描いてみても
なぜか描画されないんです。
WM_PAINTの中でバックグラウンドサーフェスに描いてInvalidateRectすれば
ちらつきながらも描画されました。
0214デフォルトの名無しさんNGNG
どこのDCに描いているか記せ。
0215211NGNG
HDC hdc
oss(オフスクリーンサーフェス)->GetDC(&hdc)
こんな感じです。
0216デフォルトの名無しさんNGNG
GdiFlushしてる?
0217デフォルトの名無しさんNGNG
WM_PAINTの中で
BeginPaint->Blt(hdc,...oss,...);->EndPaint
他は好きなところでossに書けばいいだけじゃ?
0218デフォルトの名無しさんNGNG
いつのまにかMSのサイトからDirectX7.0日本語のヘルプファイルが消されてしまいました。
DirectDrawだけ使いたいのに困ってしまう。
googleで探しても見つからない。どこかにミラーしてありませんでしょうか。
0219デフォルトの名無しさんNGNG
>>213
InvalidateRectの3つめの引数の
TRUEとFALSEを入れ替えてみろ。
0220デフォルトの名無しさんNGNG
すんません、助けてください。
DirectXではポリゴンアニメフォーマットとして
Xファイルが対応している事は解るのですが、
そのXファイル作成方法がどーしてもわかりません。

LW7.5でアニメーション作成してLWS2X.exeでxファイルに
変換しようとしたのですが、Ver7.5には対応しておらず、
オブジェクトと共にVer5として出力して変換させると
Xファイルに変換はするのですが、まったくアニメーションしません。

途方にくれて2週間・・・・どうかヒントだけでも教えてくださいませ。
_| ̄|○
0221デフォルトの名無しさんNGNG
別にDirectXがXファイルに対応しているわけではない。
0222デフォルトの名無しさんNGNG
>>220
割れでも使ってるのか?
LW7.5用のXfileエクスポータープラグインは無料でD-STROMのサイトでDL出来るが…
0223220NGNG
無事解決できました。
感謝いたします。
m(_ _)m
0224デフォルトの名無しさんNGNG
アセンボラって
覚えたほうふあいいですか。
0225デフォルトの名無しさんNGNG
>>224
何がしたいかによる
以上
0226デフォルトの名無しさんNGNG
3Dグラフィコにはアセンブラ必須だろ

MFC使ってノホホンと組んで
「別に遅くなってもいーや」とか
ハナクソほじりながら言える分野じゃない
0227デフォルトの名無しさんNGNG
必須じゃねーよタコ。シェーダ以外でアセンブラを使ってる方が稀だ。
0228デフォルトの名無しさんNGNG
レベルによるだろ。理解出来ない、気が付かない奴は知らないだろ。

例えばD3DX系の関数は内部でSSEで最適化されているとか。
行列x行列なんてモロにアセンブラでオプティマイズ必須だろ。
自分で行列型なりクラスなり作っても、一番簡単な高速化はアセンブラだし。

演算子オーバーロードして
matrix = matrix * matrix;
なんて速度を意識してない奴だけ、
そりゃアセンブラなんて必須じゃないし、何故必要かも理解も出来ないレベルだろうね。
0229デフォルトの名無しさんNGNG
行列*行列は頂点*行列に比べると圧倒的に数が少なく、
全体に与える影響など極微量なのだが、
それが理解できていない奴がこういう勘違い発言をしてしまう。
0230デフォルトの名無しさんNGNG
ま、少なくとも日本のゲームには無いな
0231デフォルトの名無しさんNGNG
このスレには日本で発売されたゲーム全てのソースを、
一つ残らず見たお方がいます。
0232デフォルトの名無しさんNGNG
それで全部書けりゃ一番いいことは間違いないわけだ

実際DX8までは全員これでなきゃシェーダ書けなかったわけだし
シェーダに限らずアセンブラで全部できればそれが一番いい
0233デフォルトの名無しさんNGNG
>>229
スゲー頭悪いね…
アセンブラを使うってのは頂点*行列でも同じ意味だろ?

行列*行列はアセンブラ使って
頂点*行列は使わないってか?
0234デフォルトの名無しさんNGNG
>頂点*行列は使わないってか?
Direct3Dでまともにプログラムを作ったことがない人間だということが、
この発言で証明されてしまったわけだが
0235デフォルトの名無しさんNGNG
>>233はきっとDirectXには頼らず、自前でソフトウェアレンダラを作ったのですよ。
0236デフォルトの名無しさんNGNG
算術ライブラリ程度作った事があれば、
オペレーター演算子計算の中身と、関数化した違いは分るだろ。

D3DX系のクラスのヘッダーは見れる訳だし、
HELPにもD3DX算術計算は内部でSSEに最適化した処理を持っていると(アライメントした型を使うが)
記述されている。
0237デフォルトの名無しさんNGNG
つまんねーよオマエラ
もっとマシな話をしろや
0238デフォルトの名無しさんNGNG
>>234
国語の力を身に付けてください。

>行列*行列はアセンブラ使って
>頂点*行列は使わないってか?

>>頂点*行列は使わないってか?
>Direct3Dでまともにプログラムを作ったことがない人間だということが、
>この発言で証明されてしまったわけだが

頂点*行列にかかってくる使わないかどうかの物は、アセンブラであって
頂点*行列自体を使うかどうかではありません。



0239デフォルトの名無しさんNGNG
>>234
>>頂点*行列は使わないってか?
>Direct3Dでまともにプログラムを作ったことがない人間だということが、
>この発言で証明されてしまったわけだが

D3DX使わないと、まともにDirect3Dでプログラム組めない人間だということが、
この発言で証明されてしまったわけだが

0240デフォルトの名無しさんNGNG


行列*行列は(では)アセンブラ使って
頂点*行列は(では)(アセンブラを)使わないってか?


0241デフォルトの名無しさんNGNG
>>238
>行列*行列は頂点*行列に比べると圧倒的に数が少なく、
最も計算量の多い頂点*行列はDirectXを使う限り、そちら側で行われる。
アセンブラで最適化する余地はほとんど残されていない。
にもかかわらずその反論が、
>行列*行列はアセンブラ使って
>頂点*行列は使わないってか?
恥の上塗りはみっともない。

さらに致命的な墓穴、
>>>頂点*行列は使わないってか?
>>Direct3Dでまともにプログラムを作ったことがない人間だということが、
>>この発言で証明されてしまったわけだが
>D3DX使わないと、まともにDirect3Dでプログラム組めない人間だということが、
なぜそこでD3Dではなく、D3DXになるのか。
頂点*行列をDirectXに任せるのであれば、少ない例外を除けばD3DXの介入余地はない。

プログラムを組んだことが無いどころか、全然DirectXを理解していないだろう?
0242デフォルトの名無しさんNGNG
>>241
D3DXはDirect3Dとは別物。
vectorクラスやmatrixクラスの演算子のオーバーロードによる計算は
あくまでクラスの実装。

>頂点*行列をDirectXに任せるのであれば
お前が全く理解してない。

0243デフォルトの名無しさんNGNG
特定の最適化を馬鹿の一つ覚えで連呼する奴は、
最適化した部分のみで計測する偏ったベンチマーク結果は出すが、
それを組み込んだ場合に、システム全体がどの程度高速化するのかは全く考えない。
実際にやってみると、誤差程度に1FPS増えたような差しか出なかったりするわけだが、
それをひた隠しにするか、それ以前にそういう実験すらしない。
0244デフォルトの名無しさんNGNG
>>241
D3Dには算術系の処理なんてありませんよ??
0245デフォルトの名無しさんNGNG
>>243
>特定の最適化
と・く・て・い
なんだから
さらっとやっとけ。
0246デフォルトの名無しさんNGNG
>>241
どっちにも与す気はないが、234は確かに読解力無いよ

D3DXMATRIXのmatrix * matrixは、最適化されてないのかね
0247デフォルトの名無しさんNGNG
>>244
トランスフォーム済みにでもしない限り、
D3D側がHALやソフトエミュで頂点*行列を行うわけだが。
0248デフォルトの名無しさんNGNG
>>246
241様はD3DX使わずに、
D3Dの方で
vector * matrix が出来ると発言なさってます。
0249デフォルトの名無しさんNGNG
つまりD3D側で頂点*行列が出来ないと思っていたわけか。
ならアセンブラアセンブラと連呼するのも納得がいった。
元から何も分かってないだけじゃん。
0250デフォルトの名無しさんNGNG
>>247
ハードウェアT&Lと激しく混同なさってますyo...
0251デフォルトの名無しさんNGNG
>>249
ハードウェアT&Lと激しく混同なさってますyo...
0252デフォルトの名無しさんNGNG
アセンボラ
■ このスレッドは過去ログ倉庫に格納されています