トップページ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)

コピペスマソ
0070名前は開発中のものです。02/07/27 13:46ID:???
1024*512でもテクスチャは作れるな。
俺のマシンでは2の乗数じゃないとダメぽ…
0071名無しサソ02/07/27 17:45ID:???
>69
 おうちにあるVoodooシリーズにはそう言う制限があったんだよ。
お試し済みなので、一応。今となっては意味がないと言われるかも
知れないけど、あまり意味のない制限で動作ハードウェアを減らすのは
どうかという主義だから、テクスチャは正方形かつ2の乗数を普通に
使ってるんだけど・・・。

 主義が違う、と言うんならゴメソ。
0072名前は開発中のものです。02/07/27 17:51ID:???
2の「乗数」ってネタですよね
0073名前は開発中のものです。02/07/27 17:57ID:.3MPTeOs
価値はある。だが今の金のない厨房たちにとって手が届く範囲なのかどうか。
値段下げればもっと売れるとおもうんだが。
しかし、2000からどんどん素材の質が下がってきてるな。
先頭画面に配置されてるドラゴンなんか見る影もない・・・
00747302/07/27 17:57ID:???
誤爆
0075名前は開発中のものです。02/07/27 18:58ID:???
IDirect3DDevice8::CreateTexture()
で作成したテクスチャをRelease()で開放しても使用メモリが減らないのは何故??

CD3DFont(AppWizardが吐くヤツね)使ってて、
最初にCD3DFont::InitDeviceObjects呼んで、
最後にCD3DFont::DeleteDeviceObjectsで開放してんだけど。
俺だけ?

Windows2000 VisualC++6.0 DirectX8.1 Debug/Release
0076名前は開発中のものです。02/07/27 19:30ID:???
Voodooは何か制限あるってハナシは聞いたことあるな。
てことは、たとえば640*480のテクスチャ貼りたいとおもったら、
512*512を2枚用意しろってコト?
0077名前は開発中のものです。02/07/27 19:59ID:???
>>76
Voodoo3まではテクスチャの最大サイズが256*256なので、
その場合は256*256のテクスチャを6枚用意することになるよ。
0078名前は開発中のものです。02/07/27 20:20ID:???
>>77
うげ、マジすか
自分でテクスチャクラス作って、ビデオカードに合わせて内部で処理を切り替えるか…
それとも256*256で基準で作ればいいのかな?
まさか64*64までしか作れないなんてビデオカードはあるまい…
0079名前は開発中のものです。02/07/27 21:48ID:???
>>78
インストーラで、テクスチャ解像度を選択させてインストールという手もある。
市販ゲームでもよく使われてる。
0080名前は開発中のものです。02/07/27 23:11ID:???
>>69
>適当なことを書く前に試せ
試す前にヘルプを読め
008169じゃないけど、ちと調べてみた02/07/28 00:23ID:???
>テクスチャが正方形?
日本語版8.0のヘルプを「正方形」で検索したけど出てこなかった。

IDirect3DDevice8::GetDeviceCaps()で得られる情報の、
TextureCaps が D3DPTEXTURECAPS_SQUAREONLY の場合は正方形でないとまずいだろうけど
そうじゃなければ別にいいのでは?

# DirectX Graphics > プログラミングのヒントおよびツール > パフォーマンスの最適化
#  > テクスチャサイズ …によれば、256 × 256 のテクスチャが最速らしいが。
0082名前は開発中のものです。02/07/28 01:01ID:???
>そうじゃなければ別にいいのでは?
そうじゃなければ別にいいけどさぁ・・・
0083名前は開発中のものです。02/07/28 03:36ID:???
>>69
>一部に作れるものが存在するかもしれないが

NVIDIAはGeForce3以降、ATiは初代RADEON以降、MatroxはG200以降、Intelは830で
作れるようになったけど、それが一部?現状の半分くらいは行ってると思うが。
(815が対応してないのが痛い)

SQUAREONLYの方はNeoMagicやVIAまでチェックしてみたけどYesのは見つからなかった。
Riva128やVoodoo3でもNoだった。
逆にこれがYesでDirectX8が使えるチップがあったら教えて欲しい。
0084名前は開発中のものです。02/07/28 04:46ID:???
>>83
そうムキにならなくても…
0085名前は開発中のものです。02/07/28 08:43ID:???
正方形必須のはまだ見たことないなあ...
0086名前は開発中のものです。02/07/28 09:16ID:???
VRAM256M標準になったら正方形必須でも構わん
0087名前は開発中のものです。02/07/28 09:35ID:???
>>85
初期のViRGEとかはそう。昔はそれに加えて、半透明の対応度が
各社マチマチで酷かった。
0088名前は開発中のものです。02/07/28 17:01ID:???
いまさらながら「鬱だ氏のう」ってタイトルがぴったりくるなあと実感。
0089名前は開発中のものです。02/07/29 16:43ID:???
大体ここに質問できるって時点で、
自己解決できる奴が大半なんだよね。
すごいや。
0090名前は開発中のものです。02/07/30 00:22ID:???
質問すらできない奴ってどんなんだ?
0091名前は開発中のものです。02/07/30 03:08ID:???
>>90
誇り高き孤高の天才プログラマ
0092名前は開発中のものです。02/07/30 08:56ID:???
つーか天才なら余裕でしょ。
0093名前は開発中のものです。02/07/30 16:04ID:???
>81
>#  > テクスチャサイズ …によれば、256 × 256 のテクスチャが最速らしいが。
これは128*128テクスチャを4つ切り替えるよりも256*256にしたほうが速いってことで、
サイズは小さいにこしたことはない。





って話が旧スレにあったような
0094名前は開発中のものです。02/07/30 23:15ID:???
MIPマップが存在する意味を考えれば分かりそうなものだが
0095名前は開発中のものです。02/07/31 05:40ID:???
MIPMAPは速度よりも画質のために使うってのが本音かな
0096名前は開発中のものです。02/07/31 06:55ID:a9hxPLQ6
DirectX8でmidiを鳴らしてるんだけど、音質がすごい悪いんです。
mciで鳴らした方がぜんぜん良い。mciの方は環境に依存されるんだろうけど
それでもぜんぜんまし。
改善する方法ってありますか?
0097名前は開発中のものです。02/07/31 08:26ID:???
DirectX8でポリゴンにてくすちゃはっつけて画像表示したいんですが、
意図したサイズになってくれません。
描画開始位置は正しいのですが、たとえば
 :
vertex[3] =_TLVERTEX( x2, y2 , 0, 1, D3DCOLOR_XRGB(255,255,255), 2, 2);
とかやっても、画像と画像のあいだに画像の60%近い隙間ができてしまいます。
画像サイズが通常の4割減されてるようです。
Zの距離の問題でしょうか、さっぱりです。
ちなみにまだ3D空間や行列には手をつけてません。
どうかご進言ください。
0098名前は開発中のものです。02/07/31 10:07ID:???
>>97です。
もしかして、ときどき話題にはあがってたようですが
スプライトのサイズって(2^n)ピクセルにしないといけないんですか?
それでやったら直ったんですが・・・・・・
マジですか。
0099名前は開発中のものです。02/07/31 10:14ID:???
>>98
マジです
0100名前は開発中のものです。02/07/31 10:34ID:???
スプライトのサイズは別に2^nで無くても良いけど、
ロード系のAPIで勝手に補完されて読み込まれる
0101名前は開発中のものです。02/07/31 12:40ID:94NQNZrs
D3DXでテクスチャを表示するとエッジがぼやけ、アルファを0に設定したはずの元絵の色(カラーキー)が淵にくっついています。
カラーキーがマゼンダで黒が1ドットあるとすると、黒が暗い紫になります。まいりました。SetRenderStateやTextureStageでANTIALIES等いろいろ設定したのですがだめでした。どうすればよいでしょう。
0102名前は開発中のものです。02/07/31 12:51ID:???
SetTextureStageStateで
MIN/MAGFILTERに
D3DTEXF_POINTを使ったら?
ニヤレストネイバー法を使うようになるはず
0103名前は開発中のものです。02/07/31 16:59ID:???
トランスフォーム済み頂点のポリゴンの半透明描画が上手くいきません。。
頂点のDiffuseにα値入れてもαブレンドがきいてないみたい。
α関係のレンダーステートはこれだけやってます。
device->SetRenderState( D3DRS_ALPHABLENDENABLE, true );
device->SetRenderState( D3DRS_SRCBLEND, D3DBLEND_SRCALPHA );
device->SetRenderState( D3DRS_DESTBLEND, D3DBLEND_INVSRCALPHA );
やってもやらなくても変わらず… なんか関係なさそう。
他の場所に何か設定があるんでしょうか?

それと、ID3DXSprite::BeginとかID3DXFont::Beginとかやった後だとαブレンドがききます。
多分この関数の内部でやってるレンダーステート変更をやればいいのだろうけど…
なんなのか全く不明です。。(涙
0104名前は開発中のものです。02/07/31 18:25ID:???
>>103
ALPHABLENDに使用されるSRCALPHA値はTextureStageStateで決まるので、
そちらも適切に設定しないと駄目。
device->SetTextureStageState( 0, D3DTSS_ALPHAOP, D3DTOP_SELECTARG1 );
device->SetTextureStageState( 0, D3DTSS_ALPHAARG1, D3DTA_DIFFUSE );

それと、ライティングは明示的に無効にしておかないと問題あるかも。
device->SetRenderState( D3DRS_LIGHTING, FALSE );
010510302/07/31 18:29ID:???
>>104
うわ〜、ありがとうございます… 上手くいきました。
Lightingは元々オフだったようなので大丈夫でした。
テクスチャ無しのポリゴンなのでテクスチャに目がいってなかったなぁ…
0106名前は開発中のものです。02/07/31 18:47ID:94NQNZrs
>102
MINにNONE、MAGにPOINTを使ったらできました。どうもありがとうございました。
0107名前は開発中のものです。02/07/31 19:50ID:94NQNZrs
どっちともNONEでした。
0108名前は開発中のものです。02/07/31 19:53ID:???
それ、NONEの使い方ちがうぞ
0109名前は開発中のものです。02/07/31 20:42ID:94NQNZrs
しかしこれ以外だとぼやけてしまいます。使い方が違うというと、やはり後からどこかに支障をきたしたりしますか?
0110名前は開発中のものです。02/08/01 00:31ID:???
>>109
ピクセルの中心が整数位置にくるようにする。
例えば、100,200から表示させたかったら、座標は99.5, 199.5を渡す。
ヘルプの テクスチャ - テクスチャ座標 - テクセルとピクセル間の直接マッピング
を見れ
011111002/08/01 00:34ID:???
110のようにすればリニアフィルタでもボケないということ
0112名前は開発中のものです。02/08/01 00:43ID:l3x/2iyM
>>110
そういうことだったのですか。いやー参考になりました。どうもありがとうざいます。
0113名前は開発中のものです。02/08/01 02:45ID:???
>>110
知らなかった…鬱
0114名前は開発中のものです。02/08/02 02:56ID:???
エロゲプログラマでDirect3D使わない主義の奴には
そのあたりを知らないのがいそうだな。
0115◆OiOOQQF.02/08/02 10:45ID:Rsc9P1wM
ボーン入りのアニメーションを再生するために、SkinnedMeshのサンプルを何も考えず使っています。
そこで、キャラの頭だけ敵のほうに向けるといった事をやりたいのですが、サンプルが難しくて
どうやって特定のボーンを回転させられるかが分かりません。
教えてください。
0116名前は開発中のものです。02/08/02 14:24ID:???
>>114
ボーン入りって事は、Xfile形式ですよね?
それなら、そのXfileが、望む動きのモーションの情報をもっていないと
かなり面倒な作業をしないと無理です。

幾つかやり方があると思いますが、一番良いのは3Dモデリングソフト等で
動きを付けた物を、Xfileに吐き出すってやり方。
(オーソドックスなやり方だと、基本の位置から色々な動きのモーションを付け
複数のXfileにして、入力ごとにそれぞれを再生描画)

後は、自分でXfileを読み込んで、自分で頂点情報を形成。
勿論、法線情報、UV展開等も自分で。
そして、自分でその頂点に重みを付けて(ジオメトリブレンディング参照)
動きを制御ってやり方。
しかし、3Dソフトも使える身としては、2番目のやり方は
果てしなく面倒、無論、3Dプログラマなら出来なくてはいけないが、
目的と経緯を考えると、漏れは始めから、望む動きのXfileを持つって方を進める。

何方か、これ以外の方法があったならレスして下さい。
此方も参考にしたいです。
0117◆OiOOQQF.02/08/02 15:04ID:Rsc9P1wM
レスありがとうございます。

>幾つかやり方があると思いますが、一番良いのは3Dモデリングソフト等で
>動きを付けた物を、Xfileに吐き出すってやり方。

はい、モーション付きのxfileを読み込んで再生っていう所までは大丈夫なんです。
説明不足でしたが、例えばバイオハザード型ゲームでプレイヤーキャラが歩いていて、
近くにゾンビが来たり、謎解きのヒントになるものがあれば、頭だけをそっちの方向
に向けたいと思っています。頭以外の部分は歩行モーションの再生を続け、頭の動き
はプログラムで好きに角度を指定したいのです。
今までサンプルをブラックボックスとして使っていたので、ソースを見てもどうすれば
いいのかヘッポコな漏れにはわかりません・・・(^^;
0118名前は開発中のものです。02/08/02 15:15ID:???
各ボーンの行列テーブルがあるから、それの
頭の部分を書き換えろ

っていってもそのレベルじゃきびしいぞ。ソースきちんと読むしかないんじゃ?
011911602/08/02 15:31ID:???
>近くにゾンビが来たり、謎解きのヒントになるものがあれば、頭だけをそっちの方向
>に向けたいと思っています。頭以外の部分は歩行モーションの再生を続け、頭の動き
>はプログラムで好きに角度を指定したいのです。

リアルタイムにですか?うーん…自分では思いつく方法は
前レスにも書いた通り、自分でXfileから各情報を引っ張って来て
自分でオブジェクトを形成、そして自分で各頂点にジオメトリ係数(重み)を
リアルタイムで与えて、自分で変換をかけるしか……。

それと、DirectXではボーンは無いです。在るのは、各頂点の
ジオメトリ係数(重み)です。その重みが違うから、行列変換を
かけても一様な動きをしないので、関節で曲がったりと言った風に
動くのです。3Dソフト見たく、ボーンをつまんで、キーフレームで
動きを作るイメージでは無いのです。
…知っていたら、ごめんなさい。
0120◆OiOOQQF.02/08/02 15:36ID:Rsc9P1wM
なるほど、行列テーブルを持ってるんですね・・・
これをボーンの名前で引っ張ってくるようにすれば良いんですか。
ありがとうございました
0121名前は開発中のものです。02/08/02 15:43ID:???
首だけ別オブジェクトにするのも一つの手。
死んだときに首がとれて転がる、なんて演出もできるけど
((((((;゚д゚))))))
012211602/08/02 15:49ID:???
何か話が噛合わなくな……。

>>120
それだと、動き事のXfileを吐き出してるのと同じでは?
てっきり、動きの(ボーン)の無い所を
自分で動かしたい物だと思っておりました。
0123◆OiOOQQF.02/08/02 17:03ID:Rsc9P1wM
>>122
>それと、DirectXではボーンは無いです。在るのは、各頂点の
>ジオメトリ係数(重み)です。その重みが違うから、行列変換を

その各頂点に対応する行列のテーブルがあるんですよね?<サンプル
ですから、アニメーションのフレームを1コマ進めた後に、頭に対応してる行列を
自分で上書きしてやれば、頭だけ決め打ちのモーションとは違う動きをさせること
が出来ると理解したのですが・・・
0124名前は開発中のものです。02/08/02 17:16ID:???
ハードによって一度にブレンドできる頂点数が違うので
サンプルでは最初にデーターを解析して最適かつ表示可能な状態に頂点indexデーターを分割する

で、この頂点Indexを表示する為には、行列の配列のx番(例えば肩)とy番(上腕)をD3DDeviceにセットしてちょ
って感じになる

だから、配列の頭の部分を書き換えればできるよ
頭の配列の位置を調べるのはどうやるんだったかな?
名前から取れるはずだけど忘れた
0125名前は開発中のものです。02/08/02 17:35ID:???
>>124
漏れも質問。その配列の頭の部分が取れたとして、そこに例えばD3DXMatrixRotationYで
右に90度回転させる行列を作ってドカンとセットしてやれば、普通にキャラは右を向い
て表示される訳??
親子関係とか考えなくてダイジョーブなのか
0126名前は開発中のものです。02/08/02 17:52ID:???
もう覚えてないよ。今ざっと見たけど

以下CMy3Dappricationのメンバ関数ね
順番としては
frameMove() (Frameに時間をセットする。するとSFrameクラス内で事前に登録されたアニメーションデーターからその時間の姿勢行列が作られる
親に時間をセットすると、子に伝達されていき、

Render関数の中のから
UpdateFrame() を呼び出して親子関係の計算
drawFrame() 描画

なのでUpdateFrame()前にいじると出来る気がする

上に上げた関数あたりを読んでちょ
0127名前は開発中のものです。02/08/02 18:05ID:O1bDfjPo
GDIがらみの質問なんですが、DirectX8のフルスクリーンで
GDIもの(コントロールなど)を描画する方法ってありますか?
ウィンドウモードの時は出来るのだが、フルスクリーンになると
駄目でした。

おそらくD3Dがウィンドウモードの時はBlt方式、フルスクリーンは
Flip方式ってな感じで勝手に切り替えてると思うんですが、これを
手動で制御できる方法があれば教えてください。
0128名前は開発中のものです。02/08/02 18:06ID:???
>>126
なるほどサンクス
0129名前は開発中のものです。02/08/02 18:46ID:???
>>127
ステンシルでマスク
0130名前は開発中のものです。02/08/02 20:22ID:???
>>127
D3DPRESENT_PARAMETERSの設定で一応はFlipを使わせずにBltを使わせることは
できるけど、Clipperが使用されないのでオススメできない。
DX8はGDIは使わせない方針なので、GDIを使いたいならDX9を待った方がいいかも。
DX9では関数一発でGDIモードの切り替えができるようになっていて便利。
再びSurfaceからGetDCできるようになっているから、使いやすさではDX8よりも
遥かに上。
0131名前は開発中のものです。02/08/02 20:26ID:???
>>130
GetDCしたいんじゃなくて、常にGDI面にしたいって話だろ?
0132名前は開発中のものです。02/08/02 20:38ID:???
そういえばぼちぼちDX9でるのか?
0133名前は開発中のものです。02/08/02 21:11ID:???
>>131
だから、それがDX9では関数一つ呼ぶだけで出来るんだってば。
PresentがBltになってClipper使用状態。
動的に切り替えられるから、GDIが必要なくなれば再びFlipに戻せる。
0134名前は開発中のものです。02/08/02 22:37ID:???
>だから、それがDX9では関数一つ呼ぶだけで出来るんだってば。
>PresentがBltになってClipper使用状態。
>動的に切り替えられるから、GDIが必要なくなれば再びFlipに戻せる。

そうか・・・・また激烈に仕様が変わるのか・・・・・・・・鬱氏のう
0135naya02/08/03 01:09ID:???
sinとcosの値から角度を求めるにはどうすればいいんですか?
0136名前は開発中のものです。02/08/03 01:18ID:???
asinとacosだな…
0137名前は開発中のものです。02/08/03 01:23ID:???
>>125
首の部分の基本姿勢行列によるのでは?
ワールドに対して任意の方向(この場合ならワールド座標系で右)
になるような行列をかけてやればよいのではないかと。

>>135
アークサイン、アークコサインではダメなの?
(asin, acos)
そういう意味ではなくて?
0138naya02/08/03 02:26ID:???
そうですか、ありがとうございます。
スティックを傾けた方向にプレイヤーを向かせるようにしたいのですが
D3DXMatrixRotationYの第2引数はラジアンなんだけど、DirectInputで
得られる軸の2つの数字からそれを求めるにはどうすればいいのかなって
思いまして。
asin,acosを使ってやってみようと思います。
atan,atan2では無理でしょうか?
0139naya02/08/03 03:01ID:???
const double PI2 = 6.28318530717958647692528676655901;
double SinCosToAngle(double sinval, double cosval)
{
double asinval = asin(sinval);
double acosval = acos(cosval);
if(asinval > 0.0) return acosval;
else return PI2 - acosval;
}

いろいろ調べたらソースが出てきたのですが、これでいいんですよね?
この値を直接RotationYにつっこめばいいのですか?
0140名前は開発中のものです。02/08/03 03:28ID:3vnUJh66
>>139
asin,acosは(多分)内部でatan,atan2を呼び出しています

っていうか、三角関数同士は密接な関係があるです
(sin x)^2=1 - (cos x)^2 と同じように
asin,acosとatanは関係しています
具体的な式はめんどくさいので省略
0141名前は開発中のものです。02/08/03 03:30ID:3vnUJh66
追加

atan2の方が(級数展開の関係上)計算が早く、誤差も少ないので
そちらを使うことをお勧めします
0142naya02/08/03 04:08ID:???
そうですか、アドバイスありがとうございます。

cosとsinの2引数を入れたらラジアンで戻ってくるような関数があったらいいんですけどね。
0143名前は開発中のものです。02/08/03 04:09ID:3vnUJh66
>>142
あのぉ・・・
それ、atan2なんですけどぉ・・・
0144naya02/08/03 04:21ID:???
あ、やっぱそうなんですか・・・・・・。
atan2ってそういう関数なんですかかって聞くと恥ずかしいから
遠回しな聞き方してしまったのですが、やっぱどっちにしろ恥ずかしいですね。

大学受験時は偏差値70近くあった数学もやらないとさびてしまう物ですね。
まして、複雑な三角関数や偏微分とかはやらなかったし。
0145名前は開発中のものです。02/08/03 04:34ID:???
三角関数が複雑なんですか?
数学の基礎中の基礎でこれが出来ないと何も出来ないと思うんですが。
0146名前は開発中のものです。02/08/03 04:43ID:???
まあまあ。受験勉強とか偏差値とはそんなもんさ
0147naya02/08/03 04:59ID:???
いや、三角関数が複雑だったのではなく、ハイパボリックやマクローリンとか
への変換や積分とか三角関数をもちいた複雑な問題が大変だったということです。

高校ではそこまでつっこんでやりませんでしたからね。
0148名前は開発中のものです。02/08/03 05:20ID:3vnUJh66
>>146
むしろ、大学受験までの勉強が「基礎中の基礎」なだけであって
意味が無いとは思わない

ただ、ゲーム製作に必要な知識はもうちょっと上のほうだと思う
nayaさんは、基礎がしっかり出来てるみたいだから、
ちょっと勉強すればぜんぜん出来るようになるでしょう

重要なのは、今勉強するかですからね
0149名前は開発中のものです。02/08/03 05:29ID:???
>>149
基礎が出来ているならむしろ>>135>>142のような発言は無いと思うけど…。
まぁ慣れというか、何事も何回も使っていくうちに頭に刷り込まれていくものだと
思うんで、がんばってください。
0150名前は開発中のものです。02/08/03 06:14ID:???
D3DXMatrixRotationYなんて使わずに直接行列を求めた方がスッキリすると思うが。
sin,cosが分かってるなら、そのまま行列に代入するだけだし。
高校レベルの数学だけど今の高校って行列やらないんだっけ?

>>149
誰に言ってるの?
0151名前は開発中のものです。02/08/03 09:27ID:???
>D3DXMatrixRotationYなんて使わずに直接行列を求めた方がスッキリすると思うが。
人それぞれですな。
0152名前は開発中のものです。02/08/03 19:45ID:4pHFWPGk
>>150
理系である程度のレベルの学校ならやる。数Cで。
だけどベクトルとの関連性を無視して、単なる計算で終わっているので使い物にならない。
大学に入ってからやる線形代数の授業もそう。単なる計算で終わっている。
ちなみに自分はコンピュータグラフィックスの特別講義ではじめて、行列と幾何の結びつきを知った。
0153名前は開発中のものです。02/08/03 21:25ID:???
>>152
現行課程への移行時に一次変換が削除されたのが痛かったね。
来年度から施行される新課程では、数学Cに、行列の応用として
「点の移動」という単元が加わっているみたいだよ。
ttp://nierdb.nier.go.jp/db/cofs/h10h/chap2-4.htm
0154naya02/08/03 21:28ID:???
自分が高校生の時もそのような感じでした。
しかも、数学Cは受験時には選択制だったり、このジャンルが出題されないため、数学Vの方を重点的に勉強してしまい、ほとんど勉強しませんね。

また、最近は数学を受験科目に選択しなくても理系学科に入れる試験制度が
ある大学が増えてきたようですね。
0155名前は開発中のものです。02/08/03 22:28ID:???
--教育関係の話題はスレ違いにつきそろそろ終了--
0156名前は開発中のものです。02/08/04 01:58ID:5a7Xd0hg
ID3DXMeshから頂点とインデックスの情報を取り出すにはどうすればいいのですか?
GetVertexBuffer()で頂点バッファのポインタが取得できるみたいなんですが、
その頂点を格納しているIDirect3DVertexBuffer8がいまいちわからないのです。
フレキシブルな頂点フォーマットというのが8で導入されたみたいなんですが、
その頂点フォーマットのタイプとサイズはどこで得られるんだか、わけがわかんないのです。
チュートリアルでこのあたりまで解説してくれるとありがたいんだけどなあ>MSさん

んー、というより本当はD3DX使いたくないんですけどね。
Xファイル読み込むにはこれが一番お手軽なもので・・・
どこかにXファイル簡単に読んでくれるクラス転がってないですかねえ。
0157名前は開発中のものです。02/08/04 02:02ID:???
GetFVF
0158名前は開発中のものです。02/08/04 02:06ID:5a7Xd0hg
>>157
どうもありがとう・・・余分なものを一切書かないとこに貴方のセンスを感じる。

んで、IDirect3DVertexBuffer8::GetPrivateData()で得られるポインタに
データの本体が入っている、と。
でもこれは単なる配列なので、頂点フォーマットの構造体が無いとデータ取り出せませんよね?
GetFVF()で得られたフォーマットから頂点フォーマットの構造を得るには
どうすりゃいいんでしょうか。
0159名前は開発中のものです。02/08/04 02:19ID:???
>>156
IDirect3DVertexBuffer8::GetDesc

初心者程度の知識しかないくせに、なめた口を利いてんなよ。
「ヘルプ読め厨房!」がお似合いだ。
知識がないのは誰でも最初はそうだが、お前は必要な情報を探す気もろくにないだろ。
ふだんは2chで個人叩きと荒らしばかりやってるだろ。
0160名前は開発中のものです。02/08/04 02:19ID:???
IndexBufferって知ってる?
0161名前は開発中のものです。02/08/04 02:22ID:5a7Xd0hg
やっぱこんな時間じゃすぐ答え返ってこないよなあ。

誰かこういうの作って!!
・1つのクラスが1つのXファイルを扱う
・格納される情報は、頂点、インデックス、マテリアル、テクスチャ(のファイルの名前)
・アニメーションは、パターンに番号が付いていて、1とか2とか指定すると
  "変換済みの"頂点を返してくれる(自分で行列の演算とかしなくていい)
0162名前は開発中のものです。02/08/04 02:35ID:???
僕はゲームの専門学校に逝ってます。
今は、就職活動中ですが、周りの皆が良く言うのは
”この業種での業界の求人が少ない”って話です。
僕的には???です。その辺の会社のHPに
”3DPG急募”って沢山在ります。

でも161読んで、何か解ったような気がします。
…それをPGが言うな!自分で作れ!
今時のゲー専生徒でも、自分で作ってるわ!(クラスじゃ無いけど)
0163名前は開発中のものです。02/08/04 03:27ID:5a7Xd0hg
みんなして俺をバカにしやがって!!
調べるより聞く方が早いから聞いてんだろうがヴォケ!
それが許されないなら掲示板は何の為にあるんだ言ってみろ!
ゲー専生徒でも自分で作ってるだ?てめーらは学校の実習とかでやってんだろうが。
こっちはプログラムなんか夏休みぐれーしかできねえんだよ!
その夏休みの間にDirectXマスターしようとしてるんだ。
てめーら俺に協力してくれたっていいじゃねえかよ。なんでそんな風に言うんだよ。
何にもやる気なくなっちまうよ。
016416202/08/04 03:36ID:???
学校でXfileの解析(読み込み)、自前制御なんか教えてくれませんよ。
どっちも、元から関数用意されていますので。
そもそもDirectXの授業なんて、殆ど無いに等しいです。
自分で必要だったら、自分でやってるだけです。
実習とバイトの合間を縫って。
0165名前は開発中のものです。02/08/04 03:45ID:???
>>163
もう少し簡潔に質問してくれ。
それとどれとどれが163の発言が分からないからどれに返答していいか分からん。
0166名前は開発中のものです。02/08/04 03:47ID:y/qD5Xb2
>>163
>みんなして俺をバカにしやがって!!
ワロタ
0167名前は開発中のものです。02/08/04 03:51ID:y/qD5Xb2
>>161

>"変換済みの"頂点を返してくれる(自分で行列の演算とかしなくていい)
どういう事?
頂点のワールド行列て事?
モーフィングとかやりたいの?
0168名前は開発中のものです。02/08/04 04:05ID:???
>>163
そういう風に言われると教えたくなくなる…というか係り合いたくなくなるが…
少なくともヘルプ読んでくれよ。
DirectX AppWizardが吐き出すCD3DFileクラスをちょっといじればそれくらいできるぞ。
0169名前は開発中のものです。02/08/04 04:08ID:???
>>163
>調べるより聞く方が早いから聞いてんだろうがヴォケ!
激しくワラタ
多分、自分で調べたほうが早いよ。
俺たちはアナタの辞書じゃない。

おまえこのスレの1だろ
ttp://game.2ch.net/test/read.cgi/gamedev/1028396250/l50
■ このスレッドは過去ログ倉庫に格納されています