- 1 名前:デフォルトの名無しさん mailto:sage [2009/06/22(月) 22:06:29 ]
- ※回答する人も、質問する人も必ず読んでください
これらに当てはまる人のための質問スレです。 1.C/C++は多少理解している。 2.最近DirectXを始めたばかり 3.SDKを見ても、Googleで検索しても、いまいち理解できない人 4.余計な雑談は不要ですよ 【 回答してくださる方 】 ・ できるだけ優しく質問に答えてあげてください。 ・ 優しく教えるのが嫌でしたら、解決するためのヒントだけでも結構です。 「ググれ」「SDK見れ」以外の回答でおながいします。 ・ 神ですら理解不能な質問は無視して下さい。 【 質問する方 】 ・ どんな事で躓いているのか明確にしよう。 ・ 長くならないなら躓いている部分のコードを晒してみれ。 ・ 解決した場合、お礼を言うのは当然だが、何をどうしたら解決したかを明確に書こう。 ・ 回答して貰ったら、出来るだけお礼もしよう。 【C++】 DirectX初心者質問スレ Part23 【C】 pc12.2ch.net/test/read.cgi/tech/1242977486/
- 652 名前:デフォルトの名無しさん mailto:sage [2009/08/02(日) 15:28:10 ]
- それでも、Direct3D9で2D等倍表示をするときだけしか正しくない「頂点座標を0,5ずらす」を
後生大事に信じ込むのは馬鹿だろう
- 653 名前:デフォルトの名無しさん mailto:sage [2009/08/02(日) 15:40:27 ]
- 基本的な質問で申し訳ないんだが、
GPUの機種によって描画できる場合と描画できない場合ができていて困っている。 原因は何が考えられるだろう? 動作条件は ・DirectX 9使用 ・Vertex/PixelShader使用 ・FVFはPosition|DiffUse|UV ・空間座標変換はCPU側で事前に合成してから単一の4x4行列としてID3DXEffectに入力。 現行のプログラムでRADEON HD4850だと正常にポリゴンが描画できるが、 Intel GMA950では描画されない。Device->Clear()は動いてる。 また、FVFがPositionRhw|DiffUse|UV のときは描画できることも確認している。(座標変換が利かなくなるが) シェーダー使ってなかったころのプログラムやシェーダーを使ってる サンプルプログラムでは描画できてるから、ハードウェアのせいではない。
- 654 名前:デフォルトの名無しさん mailto:sage [2009/08/02(日) 15:45:16 ]
- きわめて一般的な描画方法だからどこかおかしいんと違う?
- 655 名前:デフォルトの名無しさん mailto:sage [2009/08/02(日) 17:51:26 ]
- >>653
それだけの情報で分かるわけないだろう。 デバッグランタイムも何も文句言わないの?
- 656 名前:デフォルトの名無しさん mailto:sage [2009/08/02(日) 19:32:40 ]
- >>655
デバッグランタイムは動かしたことないな。試してみる。 開発マシンじゃなくてテストマシンだったからDirectX SDKは入れてないので。 vs/ps3.0を指定してたら描画結果が真っ白になってしまったことはあったけど、 今回はそんなわかりやすい現象じゃないからなぁ。
- 657 名前:デフォルトの名無しさん mailto:sage [2009/08/02(日) 23:00:15 ]
- developer.download.nvidia.com/SDK/10.5/direct3d/samples.html
Stencil Routed K-BufferってDirectX9では出来ないんでしょうか? マルチサンプルへのアクセスが必要でDirectX9では出来ない、というようなことが書いてありますが マルチサンプル使わずに出来たりはしないんでしょうか。
- 658 名前:デフォルトの名無しさん mailto:sage [2009/08/03(月) 00:21:35 ]
- ここで質問していいのか微妙な内容なのですが
スレ違いでしたらスルーしてください。 DirectXを使用するとどうしても気になってくるんですが プログラムで使用されているVRAMの消費量を調べる方法はありませんか? メモリ使用量を調べるような関数があるのかと思ったのですが見つけられず… よろしくお願いします。
- 659 名前:デフォルトの名無しさん [2009/08/03(月) 02:01:17 ]
- DeviceCaps取得すれば
VRAM容量わかるお
- 660 名前:デフォルトの名無しさん mailto:sage [2009/08/03(月) 13:27:18 ]
- nai
- 661 名前:デフォルトの名無しさん mailto:sage [2009/08/03(月) 13:27:58 ]
- このスレにいる人レベル高いなぁ
多分大学生が多いだろうから、大手狙いなんだろうなぁ……負けないように何か作るか
- 662 名前:デフォルトの名無しさん mailto:sage [2009/08/03(月) 14:04:14 ]
- Zバッファがうまく動かないんですが
環境 WindowsXP VisualStudio2005 MFC Geforce9600GT 初期化 m_d3dPP.EnableAutoDepthStencil = TRUE; m_d3dPP.AutoDepthStencilFormat = D3DFMT_D16; LINE_VERTEX line[6] = { {-1 , 0, 0, 0xFF00FF00}, {1 , 0, 0, 0xFF00FF00}, {0 , 0 , 0 , 0xFFFF0000} , {0 , 1 , 0 , 0xFFFF0000}, {0 , 0 , -1 , 0xFF0000FF} , {0 , 0 , 1 , 0xFF0000FF} }; CreateVertexで書き込み
- 663 名前:デフォルトの名無しさん mailto:sage [2009/08/03(月) 14:06:11 ]
- 視点の初期化(マウスで回転した時も)
D3DXMatrixLookAtLH(&d3dm , &D3DXVECTOR3(0, 0, 6) , &D3DXVECTOR3(0, 0, 0) , &D3DXVECTOR3(0 , 1 , 0)); m_pDeviceD3D->SetTransform(D3DTS_VIEW , &d3dm); D3DXMatrixPerspectiveFovLH(&d3dm , D3DXToRadian(45.0) , (float)rect.right / (float)rect.bottom , 0 , 1000); m_pDeviceD3D->SetTransform(D3DTS_PROJECTION , &d3dm); D3DXMatrixRotationYawPitchRoll(&Rot, D3DXToRadian(m_AngleY), D3DXToRadian(m_AngleX), D3DXToRadian(0.0f)); m_pDeviceD3D->SetTransform(D3DTS_WORLDMATRIX(0) , &Rot); m_pDeviceD3D->SetRenderState(D3DRS_CULLMODE , D3DCULL_NONE); m_pDeviceD3D->SetRenderState(D3DRS_LIGHTING , FALSE); m_pDeviceD3D->SetRenderState(D3DRS_ZENABLE, TRUE); m_pDeviceD3D->SetRenderState(D3DRS_ZWRITEENABLE, TRUE);
- 664 名前:デフォルトの名無しさん mailto:sage [2009/08/03(月) 14:09:05 ]
- 描画
m_pDeviceD3D->Clear(0, NULL, D3DCLEAR_TARGET|D3DCLEAR_ZBUFFER, D3DCOLOR_XRGB(20,0,50),1.0f, 0); m_pDeviceD3D->BeginScene(); m_pDeviceD3D->SetStreamSource( 0, g_pVB, 0, sizeof(LINE_VERTEX) ); m_pDeviceD3D->SetFVF( D3DFVF_XYZ|D3DFVF_DIFFUSE ); for(int i=0; i<3; i++) m_pDeviceD3D->DrawPrimitive( D3DPT_LINELIST, i*2, 1); XYZの軸を引いてマウスで回転させてるだけなんだけど 角度によって後ろの線が前に出てきたりZバッファが機能してないみたいなんだけど どこが間違ってるんでしょう?
- 665 名前:デフォルトの名無しさん mailto:sage [2009/08/03(月) 15:40:38 ]
- D3DXMatrixPerspectiveFovLHの第4引数(znear)が0になってますがな
- 666 名前:デフォルトの名無しさん mailto:sage [2009/08/03(月) 19:40:54 ]
- >665
ゼロからじゃだめなんですか?
- 667 名前:デフォルトの名無しさん mailto:sage [2009/08/03(月) 20:22:40 ]
- だめ。
視錐台の前面が面積0になってしまう。
- 668 名前:デフォルトの名無しさん mailto:sage [2009/08/03(月) 20:49:46 ]
- >>665
ありがとう、とりあえずそこを1.0にしてみたら出来たけど いまいち原理が良くわからないから調べますわ
- 669 名前:デフォルトの名無しさん mailto:sage [2009/08/03(月) 23:17:36 ]
- 質問です。
川瀬式MGFを実装しようと思い、ここを参考にしながら journal.mycom.co.jp/column/graphics/050/index.html やってみたのですが、うまくいきません。 低解像度テクスチャに書き出し拡大しても こんな風に●の中心を中心に、拡大されたようにならないんですが 何かご存知のであればアドバイスをいただきたいです。
- 670 名前:デフォルトの名無しさん mailto:sage [2009/08/03(月) 23:33:29 ]
- きみがやってみて失敗した結果の画像をどこかのアプロダに張れないか
- 671 名前:デフォルトの名無しさん mailto:sage [2009/08/03(月) 23:35:04 ]
- ちょっと待っててください
- 672 名前:デフォルトの名無しさん mailto:sage [2009/08/04(火) 01:58:54 ]
- そして>670は待ち続けた。
雨が降ろうと、風が吹こうと、雪が積もろうと、>671が帰ってくるのをずっと 待ち続けた。 スレの主人はそんな>670を不憫に思い、毎晩、スレを畳む時間になると、残り 物のレスをそっと脇に置いて帰ったが、翌朝までに手をつけられていたことは、 一度も無かった。>670は、ただひたすら一つのレスを見続けていた。 結局、>671が帰ってくることは、二度と無かったのだ。 なぜなら、>671は
- 673 名前:デフォルトの名無しさん mailto:sage [2009/08/04(火) 08:48:32 ]
- (続き) なぜなら、>671は>672だったからなのだ。
- 674 名前:デフォルトの名無しさん mailto:sage [2009/08/04(火) 10:00:36 ]
- UV値を入れずにポリゴンを書くとテクスチャを指定しても表示されないんだけど
大きさを可変にしたいからタイルパターンでテクスチャを貼り付けたい時はどうすればいいの?
- 675 名前:デフォルトの名無しさん mailto:sage [2009/08/04(火) 10:03:27 ]
- そういうふうにUVを指定しろ
- 676 名前:デフォルトの名無しさん mailto:sage [2009/08/04(火) 17:30:35 ]
- >674
テクスチャ画像を作る段階でタイルパターンの画像にしておけば良いのでは?
- 677 名前:デフォルトの名無しさん mailto:sage [2009/08/04(火) 17:36:42 ]
- シェーダー使えば可能だろ
- 678 名前:デフォルトの名無しさん mailto:sage [2009/08/04(火) 17:51:34 ]
- いろいろあるよ
- 679 名前:デフォルトの名無しさん mailto:sage [2009/08/04(火) 18:17:51 ]
- 2Dを扱う場合、高速で描画できる方法を教えてください。
一応自分なりに調べて、描画をさせてみたのですが DXライブラリというライブラリを使った場合と比べるとかなり差が出てしまい 原因を探しています。 描画方法は、頂点バッファを使いDrawPrimitiveで画像を1つずつ描写しています。 よろしくお願いします。
- 680 名前:デフォルトの名無しさん mailto:sage [2009/08/04(火) 18:26:04 ]
- 頂点バッファを使い1回のDrawPrimitiveで全部の画像を描画すると速いと思うよ
必要な絵全部を1枚のテクスチャに詰め込んでおくと良い
- 681 名前:デフォルトの名無しさん mailto:sage [2009/08/04(火) 18:44:55 ]
- >>頂点バッファを使い1回のDrawPrimitiveで全部の画像を描画すると速いと思うよ
このやりかたが分からず…方法の載っているサイトなどありましたらおねがいします。 DirectXによる2Dゲーム制作サイトなど見たのですが、1フレーム分描画するのに何度もDrawPrimitiveしているものばかりでした
- 682 名前:デフォルトの名無しさん mailto:sage [2009/08/04(火) 19:00:41 ]
- 画像数×6個の頂点が入る大きさの頂点バッファを作って、
全部の頂点を書き込んで、DrawPrimitiveするだけ
- 683 名前:デフォルトの名無しさん mailto:sage [2009/08/04(火) 19:15:58 ]
- 頂点バッファを一つにまとめて、テクスチャも一つにし
それを一度にDrawPrimitiveすればいいってことですよね… つまりDrawPrimitiveの呼び出し回数が描画速度に関わってるって ことですか… 複数のテクスチャを扱っているので、できるだけ呼び出し回数を減らしてみます。
- 684 名前:デフォルトの名無しさん mailto:sage [2009/08/04(火) 19:25:00 ]
- >>683
↓まだ読んでないなら、読んでおくといい msdn.microsoft.com/ja-jp/library/bb147263(VS.85).aspx
- 685 名前:684 mailto:sage [2009/08/04(火) 19:47:36 ]
- >>684
ありがとうございます。複数のテクスチャを扱うときは グループ化すれば、描写速度があがるんですね。非常に勉強になりました。
- 686 名前:683 mailto:sage [2009/08/04(火) 19:51:33 ]
- >>685は名前ミスです。
早速、現状と比べてきます。
- 687 名前:デフォルトの名無しさん mailto:sage [2009/08/05(水) 01:40:39 ]
- 表示中のモデルに直接色を塗りたいんだけど
爆発で黒く焦げたりとかしたい 決まった場所じゃないし、同じモデルがいっぱいあるから テクスチャをいじるわけにもいかないし どうすればいいんですか?
- 688 名前:デフォルトの名無しさん mailto:sage [2009/08/05(水) 05:35:12 ]
- 頂点カラーを使うとか
- 689 名前:デフォルトの名無しさん mailto:sage [2009/08/05(水) 07:36:02 ]
- マルチテクスチャで加工用のを重ねる。
洋ゲーでキャラを血まみれにするので使ってた実例もなんかあったはず
- 690 名前:デフォルトの名無しさん mailto:sage [2009/08/05(水) 09:51:18 ]
- 質問です。
>>684でもあがっているこの最適化ページに >できるだけ正方形テクスチャーを使用します。ディメンジョンが 256 × 256 のテクスチャーが最速です とあるのですが、 今までパーティクルに使うテクスチャは32x32くらいのなるべく小さいものにしていました。 もしかして256x256のほうが良いのでしょうか?
- 691 名前:デフォルトの名無しさん mailto:sage [2009/08/05(水) 10:07:16 ]
- 色々な環境で実測してから言え
- 692 名前:デフォルトの名無しさん mailto:sage [2009/08/05(水) 10:18:23 ]
- 32x32のテクスチャをたくさん使ってるなら256x256の1枚だけにまとめた方がいいかもしれないが、
32x32のテクスチャをひとつしか使ってないならそのままでよい
- 693 名前:デフォルトの名無しさん mailto:sage [2009/08/05(水) 10:45:30 ]
- >>691
お前何しにこのスレ来てんの?
- 694 名前:デフォルトの名無しさん mailto:sage [2009/08/05(水) 11:06:40 ]
- >>690
どうでもいいが、DirectXヘルプでよく出てくるこの「ディメンジョン」という訳が気持ち悪い。 dimensionの発音はディメンションだし、寸法という適切な日本語もあるのに。
- 695 名前:デフォルトの名無しさん mailto:sage [2009/08/05(水) 11:56:10 ]
- >>694
昔、FORTRANの時代にSIONをTIONと間違わないためにあえてディメンジョンと言ってた名残かと
- 696 名前:デフォルトの名無しさん mailto:sage [2009/08/05(水) 13:31:59 ]
- ディメンジョンが何を指しているのかもよくわからんしな。
>できるだけ正方形テクスチャーを使用します。ディメンジョンが 256 × 256 のテクスチャーが最速です 画像サイズが。という意味でいいんだろうかw X軸とY軸のことをディメンジョンと呼んでいるような気はするんだがw
- 697 名前:デフォルトの名無しさん mailto:sage [2009/08/05(水) 13:36:26 ]
- >>696
>>694 がいってる、寸法っていうのがしっくり来るな。
- 698 名前:デフォルトの名無しさん mailto:sage [2009/08/05(水) 13:48:54 ]
- 日本人にとってはdimensionというと数学用語の「次元」のほうが馴染みがあるけど、
英和辞典で最初に出てくるのは「寸法」だね。
- 699 名前:デフォルトの名無しさん mailto:sage [2009/08/05(水) 13:49:46 ]
- 訳した人がよくわからなかっただけじゃねえの?
- 700 名前:デフォルトの名無しさん mailto:sage [2009/08/05(水) 15:30:30 ]
- マイクロソフトの翻訳が糞なのは仕様
surfaceの正確な発音はサーフィスだけど サーフェイスと書いてあったり
- 701 名前:デフォルトの名無しさん mailto:sage [2009/08/05(水) 15:33:21 ]
- それって翻訳なのか?
- 702 名前:デフォルトの名無しさん mailto:sage [2009/08/05(水) 15:44:19 ]
- >>700
まあまあ。最近は歴史学でも用語発音の厳密化の流れはあるけど、 『サーフェイス』か『サーフェス』、『サーフィス』かというのは和製英語のレベルだよ。 (両方でググると引っかかる結果が違って興味深い) 英語的に考えると『サー』の部分も『フィ』の部分もむかつき音だから 「セーフェス」のほうがむしろ近いわけだが、読んでも意味がわからなくなる。 個人的にはサーフェスくらいかな。でもサーフェイスで覚えてしまってる。
- 703 名前:デフォルトの名無しさん mailto:sage [2009/08/05(水) 16:11:46 ]
- "むかつき音"の検索結果 2 件
www.google.co.jp/search?q=%22%E3%82%80%E3%81%8B%E3%81%A4%E3%81%8D%E9%9F%B3%22
- 704 名前:デフォルトの名無しさん mailto:sage [2009/08/05(水) 16:19:28 ]
- そもそもMSDNの翻訳って、機械翻訳じゃなかったっけ?
- 705 名前:デフォルトの名無しさん mailto:sage [2009/08/05(水) 16:25:06 ]
- MSの機械翻訳はそこまで優秀じゃないよ
少なくともDirectX部分に関してはMSKKの川西さんが最終的な監修をしているはず
- 706 名前:デフォルトの名無しさん mailto:sage [2009/08/05(水) 17:02:58 ]
- やってる奴が、有能か無能か、業務か無料奉仕かなんて関係無く
機械翻訳にしか見え無いとは酷い話だ
- 707 名前:デフォルトの名無しさん mailto:sage [2009/08/05(水) 17:05:05 ]
- くだらねえ
- 708 名前:デフォルトの名無しさん mailto:sage [2009/08/05(水) 20:52:40 ]
- 初心者のばかな言動を叱り付けると爽やかな気持ちでプログラミングに励むことができます
- 709 名前:デフォルトの名無しさん mailto:sage [2009/08/06(木) 14:46:35 ]
- RPG風なダメージを表現しようとして敵が表示されているときのみ数字を表示って考えてるんだが
if D3DXVec3Dot( &敵, &カメラ )>0 ってやるとカメラを回転させたときに数字が出ずに困ってる。 方向ベクトルの符号を変えればよいっぽいんだが変えるタイミングがわからない。
- 710 名前:デフォルトの名無しさん mailto:sage [2009/08/06(木) 15:17:27 ]
- 数字の表示を独立するんじゃなくて
敵の表示処理のときに一緒に処理すればいいんじゃないの?
- 711 名前:デフォルトの名無しさん mailto:sage [2009/08/06(木) 15:45:35 ]
- 質問させて下さい。
固定機能パイプラインのディフューズ、インデックスバッファを使用して 描画しているのですが、頂点に設定した色で面の色は補間されてしまいます。 頂点毎の色ではなくて面毎に色を設定したい場合は頂点シェーダを 使用するしかないのでしょうか?
- 712 名前:デフォルトの名無しさん mailto:sage [2009/08/06(木) 16:02:59 ]
- >>711
D3DRS_SHADEMODEをD3DSHADE_FLATにすると、最初の頂点の色で 面が塗られる。
- 713 名前:デフォルトの名無しさん mailto:sage [2009/08/06(木) 16:17:44 ]
- >>712
ぬおおお!!本当だ!!知らなかった!! 本にも載ってなかった、ありがとうございます!!
- 714 名前:デフォルトの名無しさん mailto:sage [2009/08/06(木) 17:26:22 ]
- その本を捨てるか
俺のチンコをしゃぶるか 選べ
- 715 名前:デフォルトの名無しさん mailto:sage [2009/08/07(金) 08:52:57 ]
- >>714 氏ね
プリミティブ数より頂点数が少ない場合、 (インデックスバッファを使用して頂点を共有しまくってる場合) どうすればいいんですかね? こういう場合はFLATでのシェーディングは不可能という事ですか。
- 716 名前:デフォルトの名無しさん mailto:sage [2009/08/07(金) 10:34:40 ]
- >>715
そんなにFLATにこだわるならポリゴンごとに頂点を分割したらいいんじゃないの? 何をそんなにこだわってるんだか。
- 717 名前:デフォルトの名無しさん mailto:sage [2009/08/07(金) 10:51:09 ]
- >>716
こだわってるはモデラー的なものを作りいんですよ。 モデラーってスムージング角度を指定して、FLATかスムースになりますよね。 頂点数がどれくらい多くなるか分からないので、 効率考えてインデックスバッファは使いたいんですが、 今のやり方ではDirectXの仕様的に無理そうな感じですね。
- 718 名前:デフォルトの名無しさん mailto:sage [2009/08/07(金) 10:52:02 ]
- 面ごとの色を決めて描画という方法は無い。
少なくとも頂点カラーは使えない。 やるならマテリアルわけするしかあるまい。 俺も昔OpenGLで同じことをやりたくて探したが、OpenGLにもDirect3Dにもなかった。 頂点カラーならぬ、面カラーがあるに違いないと思っていたが、幻想だったよ。
- 719 名前:デフォルトの名無しさん mailto:sage [2009/08/07(金) 11:03:07 ]
- 質問です。
テクスチャに対して、マルチサンプリングを行っての描画をしたいのですが、可能でしょうか? 以下のことは調べました。 ・CreateTextureしたテクスチャからGetSurfaceLevelし、それをSetRenderTargetして描画 マルチサンプリングは効きませんが、描画がちゃんとできるのを確認しました。 ・CreateRenderTarget したサーフェイスをSetRenderTargetして描画 描画後、LockRectなどで描画が確かに行われているこを確認しました。 マルチサンプリングも効いています。 後者で描画した後、LockRectして手に入れた内容を、テクスチャーに転送する。 という手段でとりあえずは可能なのですが、いかにも周り道です。 ダイレクトにテクスチャにマルチサンプリング描画を行うにはどうしたらよいのでしょうか?
- 720 名前:デフォルトの名無しさん mailto:sage [2009/08/07(金) 11:03:58 ]
- シェーダーを使えば可能
- 721 名前:デフォルトの名無しさん mailto:sage [2009/08/07(金) 12:32:00 ]
- >>718
そうなんですかorz ありがとうございました。
- 722 名前:デフォルトの名無しさん mailto:sage [2009/08/07(金) 17:33:45 ]
- >>718
>>720 当然じゃないか。 3Dの基本単位は頂点なのであって、 3つの頂点の配置からポリゴンの位置・大きさ・向きを判定するんだ。 面が先にあるわけじゃない。
- 723 名前:デフォルトの名無しさん mailto:sage [2009/08/07(金) 17:47:35 ]
- 別に当然ではないだろう。
どうせ描画時には面単位で描画していくのだから。 DrawPrimitiveの引数だって、頂点数じゃなくて「プリミティブ数」じゃないか。
- 724 名前:デフォルトの名無しさん [2009/08/07(金) 23:47:44 ]
- DirectSoundってボリューム増幅させることできます?
IDirectSoundBuffer8::SetVolumeは増幅はサポートしてないって書いてあるけど
- 725 名前:デフォルトの名無しさん mailto:sage [2009/08/08(土) 00:44:07 ]
- アプリケーションのデフォルトを50%相当の音量にすればよい。
- 726 名前:デフォルトの名無しさん mailto:sage [2009/08/08(土) 18:39:50 ]
- ウィンドウモードで画面サイズが変わったらバッファをリセットするんだけど
テクスチャとバーテックスバッファを登録した状態でResetを呼び出すと失敗するんだけど 全部ReleaseしてResetして再登録しろってこと?
- 727 名前:デフォルトの名無しさん mailto:sage [2009/08/08(土) 18:41:59 ]
- D3DPOOL_DEFAULTは全て
- 728 名前:デフォルトの名無しさん mailto:sage [2009/08/08(土) 18:50:58 ]
- なるほど
- 729 名前:デフォルトの名無しさん mailto:sage [2009/08/08(土) 19:40:06 ]
- いつもテクスチャはD3DPOOL_MANAGEDしか使わないんだが、
RenderTargetに指定できない以外は別に問題ないよな?
- 730 名前:デフォルトの名無しさん mailto:sage [2009/08/08(土) 19:47:48 ]
- 問題ない
- 731 名前:デフォルトの名無しさん mailto:sage [2009/08/08(土) 20:51:41 ]
- D3DPOOL_MANAGEDに変えたらテクスチャが真っ赤になったんだが
どういうこと?
- 732 名前:デフォルトの名無しさん mailto:sage [2009/08/08(土) 20:54:16 ]
- これまで初期化を怠ってきたから環境依存してる
- 733 名前:デフォルトの名無しさん mailto:sage [2009/08/08(土) 21:52:12 ]
- LPDIRECT3DTEXTURE9 pTex;
HRESULT hr; hr = D3DXCreateTexture(dev, img.GetWidth(), img.GetHeight(), 1, 0, D3DFMT_A8R8G8B8, D3DPOOL_MANAGED, &pTex); D3DLOCKED_RECT pLockedRect; hr = (*pTex).LockRect(0, &pLockedRect, NULL, D3DLOCK_DISCARD); unsigned char *dest = (unsigned char*)pLockedRect.pBits; unsigned char *src = img.GetData(); <- imgはRGBの24bit画像データが入ったクラス int j; int dest_pos=0; int src_pos=0; for(j=0;j<img.GetWidth() * img.GetHeight();j++){ dest[dest_pos] = src[src_pos+2]; dest[dest_pos+1] = src[src_pos+1]; dest[dest_pos+2] = src[src_pos]; dest[dest_pos+3] = 0xff; } dest_pos+=4; src_pos+=3; } hr = (*pTex).UnlockRect(0);
- 734 名前:デフォルトの名無しさん mailto:sage [2009/08/08(土) 21:54:32 ]
- dest[dest_pos] = src[src_pos+2];
dest[dest_pos+1] = 0xff; dest[dest_pos+2] = 0xff; dest[dest_pos+3] = 0xff; こうすると真っ白 dest[dest_pos] = src[src_pos+2]; dest[dest_pos+1] = 0xff; dest[dest_pos+2] = src[src_pos]; dest[dest_pos+3] = 0xff; こうすると紫 dest[dest_pos] = src[src_pos+2]; dest[dest_pos+1] = src[src_pos+1]; dest[dest_pos+2] = 0xff; dest[dest_pos+3] = 0xff; こうすると水色 dest[dest_pos] = src[src_pos+2]; dest[dest_pos+1] = src[src_pos+1]; dest[dest_pos+2] = src[src_pos]; dest[dest_pos+3] = 0xff; これで青 どういうこと?まじで分からない
- 735 名前:デフォルトの名無しさん mailto:sage [2009/08/08(土) 22:08:18 ]
- srcの中身なんだかわかんねーしよ
それはそうと、D3DFMT_A8R8G8B8であればdestのオフセットは 0=B 1=G 2=R 3=A
- 736 名前:デフォルトの名無しさん mailto:sage [2009/08/08(土) 22:20:35 ]
- というか、あれだけ優秀なD3DXライブラリを使わない理由がわからない。
- 737 名前:デフォルトの名無しさん mailto:sage [2009/08/08(土) 22:33:14 ]
- せめてビットシフトのマクロ作れよw
なんだその無様なコードは
- 738 名前:デフォルトの名無しさん mailto:sage [2009/08/08(土) 22:35:24 ]
- 原因判明 UV座標が狂ってたw
- 739 名前:デフォルトの名無しさん mailto:sage [2009/08/08(土) 22:37:15 ]
- >>736
モデルファイルのコンバーターを作ってるから専用のライブラリで統合してるんだ
- 740 名前:デフォルトの名無しさん mailto:sage [2009/08/08(土) 22:39:31 ]
- >>737
別に無様とは思わないが?
- 741 名前:デフォルトの名無しさん mailto:sage [2009/08/09(日) 14:11:40 ]
- ポリゴンが透けてしまう原因として何が考えられますか・・・?
アバウトな質問ですいません。
- 742 名前:デフォルトの名無しさん mailto:sage [2009/08/09(日) 14:16:01 ]
- アルファブレンドの値や設定が透過するようになってるとか?
- 743 名前:デフォルトの名無しさん mailto:sage [2009/08/09(日) 14:33:09 ]
- >>742
アルファブレンドは使っていないんです。
- 744 名前:デフォルトの名無しさん mailto:sage [2009/08/09(日) 14:53:23 ]
- >>741
われわれはエスパーではないのでそんなアバウトな説明では何もわかりません。
- 745 名前:741 mailto:sage [2009/08/09(日) 14:58:32 ]
- 透けてしまうというか奥にあるはずのポリゴンが
手前に表示されてしまうという現象です。 頂点座標は間違っていないので、何故かまったく分からないです。 同じ現象にあった方が居たらと思いまして質問しました。
- 746 名前:デフォルトの名無しさん mailto:sage [2009/08/09(日) 15:08:36 ]
- Zバッファおかしんじゃね
- 747 名前:デフォルトの名無しさん mailto:sage [2009/08/09(日) 16:22:23 ]
- >>745
Zバッファが有効になってないと、前後関係無く最前面に描画されてそうなる。
- 748 名前:デフォルトの名無しさん mailto:sage [2009/08/09(日) 18:17:40 ]
- >>746
>>747 ご指摘の通りでした、zバッファ有効になってなかったです。 原因は視錐台の前面をゼロにしていました。 過去ログ見れば一発でしたね、お手数お掛けました。
- 749 名前:デフォルトの名無しさん mailto:sage [2009/08/09(日) 23:27:48 ]
- ライトがXファイルによって反映されるのとされないのがあるのはなぜですか?
アンビエントはかかるんですが・・・
- 750 名前:デフォルトの名無しさん mailto:sage [2009/08/09(日) 23:29:03 ]
- マテリアル関係かな
- 751 名前:デフォルトの名無しさん mailto:sage [2009/08/10(月) 09:45:58 ]
- 法線がないんじゃあるまいか?
確かデフォルトだとオートノーマライズもOFFだし、初心者ひっかかりやすいよね
- 752 名前:デフォルトの名無しさん mailto:sage [2009/08/10(月) 14:09:07 ]
- それでした
ずっとアンビエントでやってたから気が付かなかった・・・
- 753 名前:デフォルトの名無しさん mailto:sage [2009/08/10(月) 15:34:01 ]
- オートノーマライズって何?
- 754 名前:デフォルトの名無しさん mailto:sage [2009/08/10(月) 15:38:53 ]
- glEnable(GL_NORMALIZE) のことでは
- 755 名前:デフォルトの名無しさん mailto:sage [2009/08/10(月) 15:39:35 ]
- ごめん、DirectXのスレだった・・・逝ってくる
- 756 名前:デフォルトの名無しさん mailto:sage [2009/08/10(月) 17:08:21 ]
- >>753
頂点の構成要素には、位置座標ベクトルや法線ベクトルがあるが これらはレンダリングパイプライン通過時に、頂点変換行列によって変換される。 この頂点変換行列の内容によっては、法線ベクトルが単位長でなくなることもある。 パイプライン内のライティング処理は法線ベクトルを利用し計算を行うが、 そのとき法線ベクトルは単位長でないと正確な計算が出来ない。 よって、ライティング処理時、法線ベクトルを自動で正規化し単位長にするのがオートノーマライズ機能。
- 757 名前:デフォルトの名無しさん mailto:sage [2009/08/10(月) 18:35:44 ]
- なんだ左手系とかで面の向きが分かるから勝手に法線を生成してくれるのかと思った
自分で作らないとだめなのかな?
- 758 名前:デフォルトの名無しさん mailto:sage [2009/08/10(月) 18:50:39 ]
- 頂点は複数の面で共有するケースもあるので、
法線を動的に生成するのは、重い割に得られるものが少ない。
- 759 名前:デフォルトの名無しさん mailto:sage [2009/08/10(月) 19:21:48 ]
- 出来ると思うのなら、鋭角と鈍角が入り交じった立体から、
何の情報もなく法線を自動生成するプログラムを作ってみろ。
- 760 名前:デフォルトの名無しさん mailto:sage [2009/08/10(月) 19:29:03 ]
- 何の情報も無かったら法線以前に描画出来ないだろw
- 761 名前:デフォルトの名無しさん mailto:sage [2009/08/10(月) 19:33:49 ]
- 立体なんだから頂点情報があるのが前提だと想像できないのは、
プログラム云々以前だな。
- 762 名前:デフォルトの名無しさん mailto:sage [2009/08/10(月) 19:36:20 ]
- 法線の生成なんて何十年も前から論文が何十本と出ていて、未だにコレという決定的な方法がない領域だからな。
- 763 名前:デフォルトの名無しさん mailto:sage [2009/08/10(月) 22:24:55 ]
- 右回りになる方向のベクトルでいいんじゃないの?
- 764 名前:デフォルトの名無しさん mailto:sage [2009/08/10(月) 22:47:33 ]
- >>763
1つの頂点を共有する3つ以上のポリゴンの頂点における法線のことだろ?
- 765 名前:デフォルトの名無しさん mailto:sage [2009/08/10(月) 22:53:10 ]
- >>763
鈍角をどうやって認識するつもりなんだ? 体験版でもいいから、まともなモデリングソフトを使って勉強し直せ。
- 766 名前:デフォルトの名無しさん mailto:sage [2009/08/10(月) 22:55:58 ]
- 球体を外積で出した法線で描画すればいかに間抜けなのかが分かるよ。
- 767 名前:デフォルトの名無しさん mailto:sage [2009/08/11(火) 00:19:26 ]
- 話が噛み合ってないのか?
homepage1.nifty.com/t_kuji/3DCG_guide/normal_vector/normal_vector.html こういうことじゃないの?
- 768 名前:デフォルトの名無しさん mailto:sage [2009/08/11(火) 02:46:04 ]
- 包丁一本〜さらしに巻いて〜
- 769 名前:デフォルトの名無しさん mailto:sage [2009/08/11(火) 09:35:29 ]
- >>767
だからそれじゃ鈍角の法線が出ないんだよ。 かみ合っていない以前に、分かっていないのなら勉強し直せ。
- 770 名前:デフォルトの名無しさん mailto:sage [2009/08/11(火) 09:39:28 ]
- なんで鈍角が出ないかといえば、そこが鋭角なのか鈍角なのかを頂点座標だけでは判断できないから。
- 771 名前:デフォルトの名無しさん mailto:sage [2009/08/11(火) 10:12:57 ]
- 鈍角の法線って何ですか?
- 772 名前:デフォルトの名無しさん mailto:sage [2009/08/11(火) 10:14:51 ]
- 内積とれば鈍角か鋭角は判断できる。
でも鈍角だったら、なんなんだ?
- 773 名前:デフォルトの名無しさん mailto:sage [2009/08/11(火) 10:55:42 ]
- 凹多角形の事でも言ってるんだろうか?
- 774 名前:デフォルトの名無しさん mailto:sage [2009/08/11(火) 11:14:06 ]
- 出ないっていう奴が問題だして
出るって言ってる奴が解けば結論でる
- 775 名前:デフォルトの名無しさん mailto:sage [2009/08/11(火) 11:57:10 ]
- >>772
鈍角鋭角というのは角度の話じゃない。 法線を出すときに頂点座標だけでは、 周囲の頂点と平均をとるのかとらないのかが判断できないということだよ。 だから一般的な3Dフォーマットは、法線をデータとして含めるか、 頂点に対してスムージングをかけるか判断するための情報を入れるんだよ。
- 776 名前:デフォルトの名無しさん mailto:sage [2009/08/11(火) 12:30:56 ]
- 1行目がわかりません
角度じゃない鈍角鋭角って何のことですか
- 777 名前:デフォルトの名無しさん mailto:sage [2009/08/11(火) 12:51:49 ]
- 曲線のなす角と平面のなす角を言いたいんじゃないのか?
- 778 名前:デフォルトの名無しさん [2009/08/11(火) 13:07:02 ]
- すいません、質問したいのですが、
現在外部ファイルを読み込みたくて APIのGetOpenFileNameを使っているのですが この関数を使った後だと何故か D3DXCreateTextureFromFileEx や D3DXLoadMeshHierarchyFromX が 失敗してしまうみたいなのですが原因が分かりません…。
- 779 名前:デフォルトの名無しさん mailto:sage [2009/08/11(火) 13:22:57 ]
- たぶんカレントディレクトリが変更されている
- 780 名前:デフォルトの名無しさん [2009/08/11(火) 13:27:29 ]
- >>779
カレントディレクトリで検索してみたら 確かにGetOpenFileNameが成功するとディレクトリが変わってしまうそうですね。 恐らくこれが原因だと思います、ありがとうございました!
- 781 名前:デフォルトの名無しさん mailto:sage [2009/08/11(火) 13:28:02 ]
- 現行のやつをカレントディレクトリに依存しないようにするのがいいけど、
とりあえず OFN_NOCHANGEDIR で試してみそ
- 782 名前:デフォルトの名無しさん [2009/08/11(火) 13:40:30 ]
- >>781
ちゃんと動くようになりました! ありがとうございます、昨日ここで1日詰まってたんで助かりました^^; 普段からフルパスで書いてるほうがいいんですかね・・・? ほとんどの場合カレントディレクトリ前提でソース書いてましたが…
- 783 名前:デフォルトの名無しさん mailto:sage [2009/08/11(火) 13:46:14 ]
- >>782
別にいい悪いはないが、相対アクセスをするときには常にカレントディレクトリがどこかを把握しておく必要がある。
- 784 名前:デフォルトの名無しさん [2009/08/11(火) 13:49:25 ]
- なるほど、たしかに相対する時はカレントディレクトリだとやりにくそうですね…
ありがとうございます、すごく参考になりました。
- 785 名前:デフォルトの名無しさん mailto:sage [2009/08/11(火) 14:04:09 ]
- >>784
老婆心ながら蛇足を描くと、 ゲームのようなデータファイルの多いソフトを開発する際は、相対アクセスの方が便利かもしれない。 VisualStudioのデバッグ時に作業ディレクトリを指定できるのでそこでカレントディレクトリを設定しておくと、 必要に応じて複数の動作環境を用意できる。 サンプルゲームが複数になってきたらそれで切り替えられる。
- 786 名前:デフォルトの名無しさん mailto:sage [2009/08/11(火) 14:44:23 ]
- Xファイルを別フォルダに入れて読み込んでも問題ないのに
テクスチャをXファイルと一緒に入れるとテクスチャだけ読み込まないのはなぜですか? 一応Xファイル内にはA.BMPのように書いて同じところにあるファイルを読むようにしているんですが・・・
- 787 名前:デフォルトの名無しさん mailto:sage [2009/08/11(火) 15:04:19 ]
- X-File内の画像のパスを画像ファイルのあるパスに設定しろ。
X-Fileを読み込むときに勝手にカレントディレクトリを移動してくれる訳じゃないぞ。
- 788 名前:デフォルトの名無しさん mailto:sage [2009/08/11(火) 15:09:49 ]
- やっぱりそれしかないですか・・・
わかりました
- 789 名前:デフォルトの名無しさん mailto:sage [2009/08/11(火) 18:01:10 ]
- やっぱりパス関連の面倒を見てくれるローダは、さっさと自分で作るべきだよな
- 790 名前:デフォルトの名無しさん mailto:sage [2009/08/11(火) 18:04:54 ]
- >>775
ようするにその角が丸みを帯びてるのか鋭いままなのかは計算では設定出来ないと言いたいのか?
- 791 名前:デフォルトの名無しさん mailto:sage [2009/08/11(火) 18:11:54 ]
- その通り
- 792 名前:デフォルトの名無しさん mailto:sage [2009/08/11(火) 19:19:55 ]
- どうでもいいが、頂点法線のスムージングの話で「鈍角」「鋭角」という用語を使うやつは初めて見た
- 793 名前:デフォルトの名無しさん mailto:sage [2009/08/11(火) 19:52:30 ]
- 「どうでもいい」のにレスする意味が分からない
- 794 名前:641 mailto:sage [2009/08/11(火) 19:59:15 ]
- なんにしろ、読み返してみれば鈍角さんがなんのことを言っているのかを
解明するだけの流れだったな。
- 795 名前:デフォルトの名無しさん mailto:sage [2009/08/11(火) 21:08:11 ]
- >>792
鈍角は90度を超える角で、鋭角は90度未満の角だよな、 小学校かどっかで習う範囲だと。
- 796 名前:デフォルトの名無しさん mailto:sage [2009/08/11(火) 22:46:42 ]
- だから誰もそんなことは問題にしてないんだって
- 797 名前:デフォルトの名無しさん mailto:sage [2009/08/11(火) 22:53:36 ]
- スムージングを使わずに単にポリゴン数を増やせばいいだけじゃん
- 798 名前:デフォルトの名無しさん mailto:sage [2009/08/11(火) 22:55:37 ]
- 本当にそれでいいと思うのならそうすればいい。
- 799 名前:デフォルトの名無しさん mailto:sage [2009/08/12(水) 00:42:40 ]
- 必要になったら実装すればいいだけで、大抵は平均化だけで十分。
というかデザイナとの相談だな。
- 800 名前:デフォルトの名無しさん mailto:sage [2009/08/12(水) 00:54:41 ]
- D3DXLoadMeshHierarchyFromX(
の LPD3DXFRAME* ppFrameHeirarchy, LPD3DXANIMATIONCONTROLLER* ppAnimController この部分をXファイルじゃなくて計算で組み立てたいんだが どっかに解説したサイトとかサンプルとかありませんかね? この単語で検索すれば出てくるとかヒントでも
- 801 名前:デフォルトの名無しさん mailto:sage [2009/08/12(水) 00:56:39 ]
- 平均化だけで十分って、立方体とかが悲しいことになるぞ。
相談も何も普通に法線を含めればいいだけの話だろ。
- 802 名前:デフォルトの名無しさん mailto:sage [2009/08/12(水) 00:59:11 ]
- >>800
自分でモデリングソフトのアニメーション部分を作るつもりなのか? というかそれ以前にプログラム云々以前で、 アニメーションを作る工程をやったことがあるのか?
- 803 名前:デフォルトの名無しさん mailto:sage [2009/08/12(水) 01:02:34 ]
- >>802
モデリングソフトのようなものを作ってまして
- 804 名前:デフォルトの名無しさん mailto:sage [2009/08/12(水) 01:10:48 ]
- またお前か
- 805 名前:デフォルトの名無しさん mailto:sage [2009/08/12(水) 02:07:36 ]
- DirectXのプログラミングはすぐに次のバージョンに移れるものですか?
最近DIrectXを始めたばかり、というか 9 か 10 を勉強するかで悩んでいます。 現在使用しているPCがWindowsXPで10が扱えまないので9にしようと考えていたのですが、 今後新しいOSが普及して10以降が主流になったりすると置いてかれるような気がしまして。 そのPCも大分ガタが来たので10が対応しているPCに買い替えることも考えています。 今は10対応といえばvistaくらいでしょうが・・・
- 806 名前:デフォルトの名無しさん mailto:sage [2009/08/12(水) 05:09:57 ]
- FromX使わない方が勉強になるね
頂点情報をバイナリ化したりとか色々出来るようになるし
- 807 名前:デフォルトの名無しさん mailto:sage [2009/08/12(水) 05:15:28 ]
- >>805
10はシェーダ必須だから敷居が高め。 まず9をFVF使用で書けるようになってから、9のシェーダ、10のシェーダと行くのが比較的平坦な道のりだと思う。 多分言ってる意味分かんないと思うけど要するに9のチュートリアルから始めていいんじゃないかなということだ。
- 808 名前:デフォルトの名無しさん mailto:sage [2009/08/12(水) 08:52:28 ]
- Easy Link Libraryの他にdirectx用のライブラリってありますか?
- 809 名前:デフォルトの名無しさん mailto:sage [2009/08/12(水) 08:56:42 ]
- たくさんある。
- 810 名前:デフォルトの名無しさん mailto:sage [2009/08/12(水) 09:07:07 ]
- 9でやった方が楽。
10は抽象化されていて、慣れてないと途方に暮れる。 10を改造して11にするのは難しくはなさそう。 製品を売るなら9。 趣味のライブラリなら、9&10共用。将来は10を捨てて9&11でもいい。
- 811 名前:デフォルトの名無しさん mailto:sage [2009/08/12(水) 09:30:14 ]
- 将来を見据えるなら11オンリーだろw
Windows7が出てしばらくすればさすがにXPはかなり数が減るし その頃にはDirectX9世代のビデオカードなんて淘汰されてるよ。 現状でさえ3世代前の代物なんだから。
- 812 名前:デフォルトの名無しさん mailto:sage [2009/08/12(水) 09:40:05 ]
- 11は今日からプログラムに取り掛かれない
- 813 名前:デフォルトの名無しさん mailto:sage [2009/08/12(水) 11:20:14 ]
- >>811
>Windows7が出てしばらくすればさすがにXPはかなり数が減るし そうかな?
- 814 名前:デフォルトの名無しさん mailto:sage [2009/08/12(水) 11:24:58 ]
- 自分が必要だと思う環境でプログラムを組めばいい。
他人に対してどうこう言う問題じゃない。 この分野の人間は自分がやっていることを他人に押しつけたがる者が少なからずいるが、 それは誰のためにもならない。
- 815 名前:デフォルトの名無しさん mailto:sage [2009/08/12(水) 11:32:41 ]
- DirectX9
・情報が豊富 ・今からでもプログラム可能 ・ゲーム作って配布するとしても、流石にDirect9対応必須をうたっていいと思う DirectX10 ・情報そこそこ ・Vistaなら今からでもプログラム可能 ・ゲームなどを売るにはつらい(XPユーザーが多いから) DirectX11 ・情報少ない ・将来的に主流になりそう ・今からプログラムするのは困難 とりあえず9で勉強して、おいおい必要に応じてうつればいいかと
- 816 名前:805 mailto:sage [2009/08/12(水) 11:54:56 ]
- レスありがとうございます。今は9で勉強しておくことにします。
- 817 名前:デフォルトの名無しさん [2009/08/12(水) 11:59:13 ]
- おまいらってやたら詳しいけど、趣味なの?本職なの?
- 818 名前:デフォルトの名無しさん mailto:sage [2009/08/12(水) 12:51:59 ]
- うるせえ黙れ
- 819 名前:デフォルトの名無しさん mailto:sage [2009/08/12(水) 18:29:21 ]
- こんなマッチョじゃ感情移入できない
アドルは永遠の優しい夢見る少年だろう どうみても童貞じゃないし
- 820 名前:デフォルトの名無しさん mailto:sage [2009/08/12(水) 21:33:17 ]
- >>813
いずれにしろDirectX10やDirectX11対応のゲームが増えてくれば Vistaか7のどちらかにするしかないがVistaは選択肢にはいらないだろ。 どうせ2,3年もすればXPも売られなくなるし 新規でPC買えば全部Windows7化されてるだろ。 いつまでもDirectX9+XPにしがみ付いて技術的に取り残されるのも馬鹿らしい。 趣味でやる分にはDirectX9でぜんぜん問題ないと思うけどね。
- 821 名前:デフォルトの名無しさん mailto:sage [2009/08/12(水) 21:56:00 ]
- 固定機能でお茶を濁したクズ本が消えるかと思うと
清々するわ
- 822 名前:デフォルトの名無しさん mailto:sage [2009/08/12(水) 22:04:30 ]
- 逆に本がぜんぜんでなくなってるよな。
もうついていけてないんだろうか。
- 823 名前:デフォルトの名無しさん mailto:sage [2009/08/12(水) 22:06:45 ]
- ていうかゲームなんて作るのやめろ
ゲーPGなんてまったく金にならないし 本とか買ってまで作るなマジで
- 824 名前:デフォルトの名無しさん mailto:sage [2009/08/12(水) 23:13:49 ]
- 金が目的なら株でもいじってろよw
- 825 名前:デフォルトの名無しさん mailto:sage [2009/08/13(木) 11:28:23 ]
- 3Dゲームのエフェクトを強引にキャンセルさせてCPU負荷を下げる方法ってないですか?
- 826 名前:デフォルトの名無しさん mailto:sage [2009/08/13(木) 11:35:32 ]
- >>825
えーと、それは自分が作ってるゲームに関する質問?
- 827 名前:デフォルトの名無しさん mailto:sage [2009/08/13(木) 12:45:36 ]
- 某エロゲのモザイク的な修正がパーティクルで実装されているので
- 828 名前:デフォルトの名無しさん mailto:sage [2009/08/13(木) 13:00:53 ]
- 実行ファイルを書きかえれ
- 829 名前:デフォルトの名無しさん mailto:sage [2009/08/13(木) 16:10:27 ]
-
工エエェェ(´д`)ェェエエ工工
- 830 名前:デフォルトの名無しさん mailto:sage [2009/08/13(木) 23:35:07 ]
- あそこが見たいだけじゃないのか?
- 831 名前:デフォルトの名無しさん mailto:sage [2009/08/13(木) 23:40:13 ]
- >>828
長門さんがこちらを見ています
- 832 名前:デフォルトの名無しさん mailto:sage [2009/08/14(金) 07:20:57 ]
- 脳内変換だ
- 833 名前:デフォルトの名無しさん mailto:sage [2009/08/14(金) 11:11:36 ]
- アニメーションコントローラーを使ったアニメーションで
1ループ分のアニメーションの完了を検知したいのですが、 // if(アニメーション時間 >= 1ループかかる時間) if(AnimationSet(AnimationID)->GetPeriodicPosition( ? ) >= AnimationSet(AnimationID)->GetPeriod()) このような判定で合っているでしょうか? 合ってる場合、「?」の部分の引数にはなにを指定したらいいのでしょう? msdnの解説では「アニメーションセットのローカル時間」と書いていますが、 GetPeriodicPosition()の戻り値こそがローカル時間ではないのでしょうか?
- 834 名前:デフォルトの名無しさん mailto:sage [2009/08/14(金) 11:34:13 ]
- なんかもう、誰も使ってない、仕様があやふやだし自分で作らない限り無間地獄から抜けられない
という結論が数年前から変わってない。
- 835 名前:デフォルトの名無しさん [2009/08/14(金) 11:56:07 ]
- いやいやDirectX使わないとXBOXやWindowsでゲーム作れないって
- 836 名前:833 mailto:sage [2009/08/14(金) 12:32:32 ]
- 自己解決(´・ω・`)
GetPeriodicPosition()はグローバルな時間をローカル時間に変換するメソッドのようで? 参照すべきだったのはトラックの方でした
- 837 名前:デフォルトの名無しさん mailto:sage [2009/08/14(金) 21:41:02 ]
- シェーダーで描画してるんですが
固定機能のフォグって同時に使えるんですかね? やってみたらかからないので、 やはりピクセルシェーダーで自前でかけるんでしょうか?
- 838 名前:デフォルトの名無しさん mailto:sage [2009/08/14(金) 21:53:15 ]
- ピクセルシェーダを自前で書くのなら、自前でかける
- 839 名前:デフォルトの名無しさん mailto:sage [2009/08/16(日) 02:53:20 ]
- DirectXのプログラミングを始めようとおもうのですが
これはSDKのチュートリアルにのってる最新のもの?から勉強していって良いのでしょうか? それとも以前のバージョンから順に勉強していくほうが良いのでしょうか?
- 840 名前:デフォルトの名無しさん mailto:sage [2009/08/16(日) 02:55:23 ]
- >>839
通常はそんなめんどくさいことはする必要はない。 ただしバージョンごとにできることと動かせる環境に差異があるので、 DirectXのバージョンを比較した記事をいくつか読んで、 自分の作りたいものがバージョンいくつがふさわしいか最初に決めること。 後々でバージョンを変更するのはプログラムを作り直すようなことと等しい。
- 841 名前:デフォルトの名無しさん mailto:sage [2009/08/16(日) 02:58:53 ]
- directxを更に使いやすくしたライブラリって通称名とかありますか?
また鉄板の物はありますか?
- 842 名前:デフォルトの名無しさん mailto:sage [2009/08/16(日) 03:05:53 ]
- >>841
山ほどある。 が、結局DirectX自体と直接格闘したほうが得るものが多い。 お勧めのライブラリはほかのヤツらよろしく。
- 843 名前:デフォルトの名無しさん mailto:sage [2009/08/16(日) 03:07:37 ]
- >>842
なるほど、ありがとうございます ある程度作れるようになったら、改めて探してみることにします
- 844 名前:839 mailto:sage [2009/08/16(日) 03:10:57 ]
- >>840
なるほど、勉強になりました。 ありがとうございます
- 845 名前:デフォルトの名無しさん mailto:sage [2009/08/16(日) 03:53:38 ]
- directx自体を理解してないとライブラリの使い方も理解出来ないからライブラリは無駄w
- 846 名前:デフォルトの名無しさん mailto:sage [2009/08/16(日) 03:57:10 ]
- そうそう、面法線を計算して頂点を共有する面頂点の合計を正規化したものを頂点の法線に設定してみたけど
球体の見た目はかなり綺麗に仕上がる 角度で適用するかどうか判別すれば尖った部分も表現出来るんじゃないか
- 847 名前:デフォルトの名無しさん mailto:sage [2009/08/16(日) 07:25:33 ]
- >>845
さすがにそれはない。 もしそうならEasyLinkLibraryはあんなに流行らなかった。
- 848 名前:デフォルトの名無しさん mailto:sage [2009/08/16(日) 08:04:06 ]
- >>846
モデルデータ制作者の意図のをエスパーのごとく判断するプログラムを作らない限り無理。 だったら普通に法線をデータに含めればいいだけだろ。 いったい何がしたいんだ?
- 849 名前:デフォルトの名無しさん mailto:sage [2009/08/16(日) 08:05:14 ]
- 大抵のライブラリは自由度を優先しててただのDirectXラッパーで終わってるから意味ないんだよ
例えば視点移動とかエフェクトとかがすべて内包されてて使用者はその中から選ぶだけとか そこまでやってあるライブラリなら意味があると思うけどないでしょ 仮に誰かが作ったとしても無料では出さないでしょ
- 850 名前:デフォルトの名無しさん mailto:sage [2009/08/16(日) 08:06:43 ]
- >>849
それもうライブラリじゃなくてただのツクールだから。
- 851 名前:デフォルトの名無しさん mailto:sage [2009/08/16(日) 08:07:12 ]
- >>848
とりあえずただの頂点データだけのメッシュをフォトリアルに表示する方法を模索してる
- 852 名前:デフォルトの名無しさん mailto:sage [2009/08/16(日) 08:09:38 ]
- >>851
だからなんで頂点データだけにする必要があるのかを聞いているんだが。
- 853 名前:デフォルトの名無しさん mailto:sage [2009/08/16(日) 08:11:10 ]
- >>849
Irrlichtとかがまさにそれじゃないか?
- 854 名前:デフォルトの名無しさん mailto:sage [2009/08/16(日) 08:13:38 ]
- >>852
ただのモデルビューアだから、決まったものを表示するわけじゃないので 最終的にはゲームを作りたいけど、とりあえずビューア作って勉強しつつライブラリに包括していってる ツクールの心臓部分になるかもしれない
- 855 名前:デフォルトの名無しさん mailto:sage [2009/08/16(日) 08:14:47 ]
- 法線がなかったらライティングしない、
あるならライティングする、が普通のモデルビューアーの挙動だと思うが
- 856 名前:デフォルトの名無しさん mailto:sage [2009/08/16(日) 08:17:19 ]
- だから最終目標がツクールレベルだから、法線さえ知らなくても最新ゲーム並みの画像が出せるライブラリを作ってる
自分用にw
- 857 名前:デフォルトの名無しさん mailto:sage [2009/08/16(日) 08:22:21 ]
- 法線なしで最新ゲームなみの画像とはこれはこれは大したもんだ。
デザイナーだったら3秒で投げ捨てろって言うライブラリだな。
- 858 名前:デフォルトの名無しさん mailto:sage [2009/08/16(日) 08:23:54 ]
- 自動生成した感じでもかなりリアルだけどな
- 859 名前:デフォルトの名無しさん mailto:sage [2009/08/16(日) 08:35:18 ]
- エッジの抽出をどうすんだって話じゃねえの
- 860 名前:デフォルトの名無しさん mailto:sage [2009/08/16(日) 09:13:15 ]
- モデリングソフトで簡単に出力できるものを、わざわざ利用しない理由の答えになっていない。
カラーで出力できるのに、わざわざモノクロ写真からカラー写真にしろと言っているのが理解できているのか?
- 861 名前:デフォルトの名無しさん mailto:sage [2009/08/16(日) 09:55:00 ]
- モノクロ写真をカラーにする技術は重宝されてるし、画像処理では主流の研究課題ですけど
- 862 名前:デフォルトの名無しさん mailto:sage [2009/08/16(日) 10:00:14 ]
- 頂点法線の取り扱いについて、多少話しが振れてくれれば
得るものもあるが、デザイナとかモデリングソフトとか 得るものが何もない。 >>モデルデータ制作者の意図のをエスパーのごとく判断するプログラムを作らない限り無理。 別にモデルデータ制作者の意図を反映する必要はない。
- 863 名前:デフォルトの名無しさん mailto:sage [2009/08/16(日) 10:35:16 ]
- >>861
元のツールがカラーで出力できるんだからそれでいいだろって話してんだろ。
- 864 名前:デフォルトの名無しさん mailto:sage [2009/08/16(日) 10:36:12 ]
- >別にモデルデータ制作者の意図を反映する必要はない。
デザイナーに言ったら殴り飛ばされそうなセリフだな
- 865 名前:デフォルトの名無しさん mailto:sage [2009/08/16(日) 10:49:53 ]
- 何小難しい討論してんだ
正確に描画したいなら法線をつけて出力する。 法線がない時は「とりあえずそれなりに描画する」ってやりたいだけだろ? 別にD3DXにだって、法線の自動生成機能はあるけど、別に批難するやつはいないだろ
- 866 名前:デフォルトの名無しさん mailto:sage [2009/08/16(日) 11:17:19 ]
- そもそも法線を自動化することも出来るってだけで法線入れればそっちを優先するだけだがw
- 867 名前:デフォルトの名無しさん mailto:sage [2009/08/16(日) 12:48:52 ]
- 質問です。
DrawTextを使って計算したFPSを表示したいのですが、LPSTR型に変換すると動かなくなります。LPSTR型にうまく変換する方法はありませんか?
- 868 名前:デフォルトの名無しさん mailto:sage [2009/08/16(日) 12:58:51 ]
- >>867
逆だ。プログラム全体をLPWSTRで統一するんだ。(Unicodeビルドしてるなら) オレはそれが嫌になってC++でWindowsプログラム書くのをやめた。
- 869 名前:デフォルトの名無しさん mailto:sage [2009/08/16(日) 13:01:04 ]
- なんでこのスレにいるの?
- 870 名前:デフォルトの名無しさん mailto:sage [2009/08/16(日) 15:45:23 ]
- ヒトリデモ オオク ノ ワカモノ ヲ ユニコード ノ ジゴクカラ スクイタイ
- 871 名前:デフォルトの名無しさん mailto:sage [2009/08/16(日) 15:47:40 ]
- 時代に取り残された老人は消えるべきだ
- 872 名前:デフォルトの名無しさん mailto:sage [2009/08/16(日) 17:19:28 ]
- SJISがデフォルトのOS上でプロジェクト新規作成したらユニコードデフォルトとか嫌がらせ以外の何者でもない
- 873 名前:デフォルトの名無しさん mailto:sage [2009/08/16(日) 17:36:36 ]
- 時代に取り残された老人は消えるべきだ
- 874 名前:デフォルトの名無しさん mailto:sage [2009/08/16(日) 17:42:06 ]
- もはやSJISがデフォルトにはなっていないが、いったいいつの時代の話をしているんだ?
- 875 名前:デフォルトの名無しさん mailto:sage [2009/08/16(日) 18:31:50 ]
- 今時のOSはユニコードが基本ってばっちゃが言ってたけど
- 876 名前:デフォルトの名無しさん mailto:sage [2009/08/16(日) 19:42:12 ]
- 最近のOSがどうだろうが関係ねえ。
社内のツールがすべてSJIS前提だから選択肢ねーんだよ。 という会社けっこうあるんじゃない。
- 877 名前:デフォルトの名無しさん mailto:sage [2009/08/16(日) 19:57:32 ]
- オープンソースのぜんぶSJISなのにどうすんの
- 878 名前:デフォルトの名無しさん mailto:sage [2009/08/16(日) 20:00:01 ]
- ゲームのパラメータファイルとかは、基本SJISだからなぁ
わざわざユニコで書く奴いるか?
- 879 名前:デフォルトの名無しさん mailto:sage [2009/08/16(日) 20:07:20 ]
- ツールが吐き出すXMLもUTF8が使われている時代に何を言ってるんだろう?
- 880 名前:デフォルトの名無しさん mailto:sage [2009/08/16(日) 20:18:40 ]
- XML厨のプログラマが自己満足で環境を整備しないとSJISでズルズルいくね。
そして、運用する側はタイプ総量とタイプミスが激増して精神病むの。
- 881 名前:デフォルトの名無しさん mailto:sage [2009/08/16(日) 21:18:14 ]
- 普通XMLはUTF-8で書くだろアホか
- 882 名前:デフォルトの名無しさん mailto:sage [2009/08/16(日) 21:19:58 ]
- UTF-8なら何も問題ないんだが、WindowsはUTF-16LEなわけよ。
- 883 名前:デフォルトの名無しさん mailto:sage [2009/08/16(日) 21:28:43 ]
- 3D空間で人が平面上を動き回れる状態で色々試しています。
人が2m弱として、地面を1000m四方と巨大な板を置いているのですがバンプマップが上手くかかりません。 バンプマップで凹凸を表現するには細分化しないと効果が出ないものなのでしょうか。 テクスチャスクロールだけで地面の上を動いているように見せたかったのに 同じ絵(凹凸)の部分を色んな方向から見ても大して変化せず違和感があります。
- 884 名前:デフォルトの名無しさん mailto:sage [2009/08/16(日) 21:36:59 ]
- >>868
unicodeは使ってないです。あと、LPCWSTRじゃ引き算とかが出来なくて困ります。他に解決方法はありませんか?
- 885 名前:デフォルトの名無しさん mailto:sage [2009/08/16(日) 21:42:55 ]
- 色んな方向から見て変化させるのは、パララックスマッピングとかでは?
バンプマッピングなら、光源の位置と向きを変化させると、見え方が変わると思います。
- 886 名前:デフォルトの名無しさん mailto:sage [2009/08/16(日) 21:43:32 ]
- >>884
というか、MBCSとUTF-16は相互に変換するAPIがあるぞ? 引き算の意味するところは分からんが。
- 887 名前:デフォルトの名無しさん mailto:sage [2009/08/16(日) 21:52:26 ]
- >>884
fpsをLPSTRに変換するというのは、もしかしてこういうことをやってるとか? int fps = ..... ; LPSTR lpstr = (LPSTR) fps; DrawText( .... );
- 888 名前:デフォルトの名無しさん mailto:sage [2009/08/16(日) 22:13:19 ]
- 文字コードの変換すら出来ないのはDirectX以前の問題だろ。
基本からやり直せ。
- 889 名前:デフォルトの名無しさん mailto:sage [2009/08/16(日) 22:13:48 ]
- >>887
大体そんな感じです。INTのポインタを入れたりしてみましたがダメでした。 漢字とかに変換するのが正解なんですかね?
- 890 名前:デフォルトの名無しさん mailto:sage [2009/08/16(日) 22:18:00 ]
- >>889
まずはC言語の入門書から読もうな。 このスレに来るのは3ヶ月くらい早すぎた。
- 891 名前:デフォルトの名無しさん mailto:sage [2009/08/16(日) 22:26:21 ]
- >>888
どうか可能か不可能かだけでもご教授を…
- 892 名前:デフォルトの名無しさん mailto:sage [2009/08/16(日) 22:41:28 ]
- 叶
- 893 名前:デフォルトの名無しさん mailto:sage [2009/08/16(日) 22:41:50 ]
- これは酷い
- 894 名前:デフォルトの名無しさん mailto:sage [2009/08/16(日) 23:56:53 ]
- 木曽がわかってないのに応用問題を解こうとして話を難しくしてる
- 895 名前:デフォルトの名無しさん mailto:sage [2009/08/17(月) 00:02:15 ]
- 初心者は死ね
それがこのスレの掟だ
- 896 名前:デフォルトの名無しさん mailto:sage [2009/08/17(月) 00:07:01 ]
- それはまた、エラいスレのタイトルと矛盾する掟だな。
- 897 名前:デフォルトの名無しさん mailto:sage [2009/08/17(月) 00:09:14 ]
- sprintf発見!確かに論外だ。
DIRECTXは続けるので、また詰まった時はお願いします。
- 898 名前:デフォルトの名無しさん mailto:sage [2009/08/17(月) 00:12:04 ]
- 流石にCの初心者までは扱いきれんだろw
- 899 名前:デフォルトの名無しさん mailto:sage [2009/08/17(月) 00:15:49 ]
- CがダメならC#を使えばいいじゃない
- 900 名前:デフォルトの名無しさん mailto:sage [2009/08/17(月) 04:04:17 ]
- メッシュコンテナ(D3DXMESHCONTAINER 構造体)から面ごとのマテリアル対応情報を取りだそうとしてるんだけど、
pMesh->GetAttributeTable()メソッドで取り出した、属性テーブル(D3DXATTRIBUTERANGE 構造体)の中の「AttribId」ってのは pMaterials[i]の添え字(i)に対応してるんでしょうか? 同じ属性テーブル内にある「FaceStart」というのも、インデックスバッファ内の面の構成データの格納順に対応してるのか疑問です・・・
- 901 名前:デフォルトの名無しさん mailto:sage [2009/08/17(月) 05:41:26 ]
- プロジェクトの設定をマルチバイト文字を使用するに変更すればいいだけじゃない
- 902 名前:デフォルトの名無しさん mailto:sage [2009/08/17(月) 05:44:49 ]
- >>900
出なかったからたぶんマテリアルとは関係ない メッシュをマトリックスグループみたいに分割することが出来てそのインデックス情報を格納するんじゃないかと でDraw???って関数でそのインデックスを指定するとその面だけが描画されるという
- 903 名前:デフォルトの名無しさん mailto:sage [2009/08/17(月) 05:49:18 ]
- ああ、そうか
マテリアルのインデックスを入れといてSetMaterialと連動させて その面だけを描画すればマテリアルのインデックスという意味にもなるのか まあ、ただ数字を入れて描画グループを分割出来るだけの代物だよ
- 904 名前:デフォルトの名無しさん mailto:sage [2009/08/17(月) 06:36:53 ]
- うーん、pMaterials[i]の添え字(i)と頂点番号(もとい、面番号)を関連付けるデータは
メッシュコンテナ内には無いのでしょうか? メッシュデータ内の全頂点から、あるマテリアルが適用されている頂点を特定したいのですが・・・
- 905 名前:904 mailto:sage [2009/08/17(月) 08:19:54 ]
- 多分、自己解決
ボーンコンビネーションテーブル(LPD3DXBONECOMBINATION型)に サブセット番号からメッシュデータ(最適化後)の頂点インデックスまで全て格納されてたので そちらを参照することにしました
- 906 名前:デフォルトの名無しさん mailto:sage [2009/08/17(月) 12:04:53 ]
- ttp://marupeke296.com/DXGSmp_No26_WorldTransMatrix.html
このサンプルプログラムを使って tiny.xを読み込んでも何もアニメーションしないのですが なぜでしょうか? ヒントだけでもいいので後生ですから教えてください・・><!
- 907 名前:デフォルトの名無しさん mailto:sage [2009/08/17(月) 12:37:41 ]
- DirectXで直線を引くにはどうすれば?(´・ω・`)
ポリゴンとかXファイルとかは表示できるのに・・・
- 908 名前:デフォルトの名無しさん mailto:sage [2009/08/17(月) 12:50:40 ]
- DrawPrimitiveでいけるやないかアホでんねん(´・ω・`)
- 909 名前:デフォルトの名無しさん mailto:sage [2009/08/17(月) 13:10:51 ]
- >>906
公式ならともかく、そこのページは管理人がちゃんと質問掲示板開いてるじゃないか そっちで質問しる・;(`ε()゙
- 910 名前:デフォルトの名無しさん mailto:sage [2009/08/17(月) 13:41:09 ]
- なんなんだ・・・
釣りなのか本気なのか・・・
- 911 名前:デフォルトの名無しさん mailto:sage [2009/08/17(月) 18:35:49 ]
- 残念ながら、釣りではありません。
- 912 名前:883 mailto:sage [2009/08/17(月) 19:09:07 ]
- >>885
ありがとうございます。 基本的にはカメラを固定した状態でも動き回るものはバンプ、 それ以外はパララックスという使い方が良さそうですね。 もちろん場合に寄りますけど。
- 913 名前:デフォルトの名無しさん mailto:sage [2009/08/17(月) 20:17:35 ]
- >>907
ttp://homepage2.nifty.com/natupaji/DxLib/dxfunc.html
- 914 名前:デフォルトの名無しさん [2009/08/17(月) 21:41:59 ]
- 現在DirectXを使ってゲームを作っているのですが、
ボタンが後ろに隠れてしまっています。 なので、ボタンがある位置にスプライトを使ってボタン用の画像を 表示しているのですが、時差が出来たりしてうまく機能しません。 どうすれば、ボタンそのものを前面に表示出るのでしょうか?
- 915 名前:デフォルトの名無しさん mailto:sage [2009/08/17(月) 21:45:23 ]
- DirectXにボタンなど無い
DirectXにスプライトなど無い
- 916 名前:デフォルトの名無しさん mailto:sage [2009/08/17(月) 22:07:50 ]
- 「Direct3Dで作っているゲームのキャラと地形のことで質問ですが…」
「Direct3Dにキャラや地形などない」
- 917 名前:デフォルトの名無しさん [2009/08/17(月) 22:09:25 ]
- >>915
ボタンはウィンドウズの標準のもので、 スプライトはID3DXSpriteです。
- 918 名前:デフォルトの名無しさん mailto:sage [2009/08/17(月) 22:21:26 ]
- ID3DXSpriteを使ってボタンの画像を描画しているのなら、
そもそも標準コントロールを使う必要性がない。
- 919 名前:デフォルトの名無しさん [2009/08/17(月) 22:51:14 ]
- >>918
それもそうですね。 DirectXのサンプルに使われているボタンは 標準コントロールを基にしてるのかと思ってましたが 今調べてみたら違いますね。 ご迷惑をおかけしました。
- 920 名前:デフォルトの名無しさん mailto:sage [2009/08/17(月) 22:53:43 ]
- まぁ、ツールを作る際にDirectXで描画されたものとWindosのコントロール併用することがあるから
色々試しても無駄にはならないことだけどね。
- 921 名前:デフォルトの名無しさん mailto:sage [2009/08/18(火) 01:52:08 ]
- Vistaか7ならどっちでも同じことだが
- 922 名前:デフォルトの名無しさん mailto:sage [2009/08/18(火) 08:20:52 ]
- 同じじゃねえよ。
どれだけ馬鹿なんだ?
- 923 名前:デフォルトの名無しさん mailto:sage [2009/08/18(火) 08:36:24 ]
- D3DXLoadMeshHierarchyFromX
の必要な LPD3DXALLOCATEHIERARCHY pAlloc,がインターフェイスのポインタと なっているのですが COMインターフェイスってなんでしょうか? 調べてもプログラムの再利用としか出てこないので全くわかりません。
- 924 名前:デフォルトの名無しさん mailto:sage [2009/08/18(火) 08:42:21 ]
- COMインターフェイスで検索しろ
- 925 名前:デフォルトの名無しさん mailto:sage [2009/08/18(火) 09:54:49 ]
- Direct3D 11.0, Direct3D 10.1/10.0, DXGI 1.0/1.1, Direct2D 1.0, DirectWrite, Windows Imaging Component (WIC) APIs. (DirectWrite and WIC have partial support)
あたりのサンプル実装がMSから出たぞ。 code.msdn.microsoft.com/WindowsAPICodePack
- 926 名前:デフォルトの名無しさん mailto:sage [2009/08/18(火) 10:52:08 ]
- >>923
そのあたりは、とにかくまずはサンプルコピペして、動きを見て、内容を理解し、自分で改良するしかない。 マジ。 理解しないままゲームとか作ると、あと後絶対苦労するから
- 927 名前:デフォルトの名無しさん mailto:sage [2009/08/18(火) 15:48:21 ]
- 1000に近づいてますが、質問させてください。
2D板ポリゴンの描画についてなのですが、DrawPrimitive系は重いので 1回で複数枚の板を表示するようにしてみました。 D3DXVECTOR4 vPos; D3DCOLOR color; D3DXVECTOR2 vTex; 上のようなメンバーを持った頂点オブジェクトの配列Vertexを作り、 for(int i = 0; i < Max; i++){ Vertex[i*4].vTex=D3DXVECTOR2(0.0f, 0.0f); Vertex[i*4+1].vTex=D3DXVECTOR2(1.0f, 0.0f); Vertex[i*4+2].vTex=D3DXVECTOR2(0.0, 1.0f); Vertex[i*4+3].vTex=D3DXVECTOR2(1.0f, 1.0f); } とu, vを初期化。そして、描画処理が入った数だけ Vertex[Cnt*4].vPos = D3DXVECTOR4(left, top, 0.0f, 1.0f); Vertex[Cnt*4+1].vPos = D3DXVECTOR4(right, top, 0.0f, 1.0f); Vertex[Cnt*4+2].vPos = D3DXVECTOR4(left, bottom, 0.0f, 1.0f); Vertex[Cnt*4+3].vPos = D3DXVECTOR4(right, bottom, 0.0f, 1.0f); ※color省略 Cnt++; とし、SetTextureして DrawPrimitiveUP(D3DPT_TRIANGLESTRIP, Cnt*2, Vertex, sizeof(VERTEX); としたらテクスチャがあらぬ方向に伸びました。何故か正しく表示できてるものもあるのですが・・・。 どこか根本的に勘違いしてるのでしょうか?ご指摘いただけませんか・・・。
- 928 名前:デフォルトの名無しさん mailto:sage [2009/08/18(火) 15:51:04 ]
- TRIANGLESTRIPがどういうものか調べてくるといい
- 929 名前:デフォルトの名無しさん mailto:sage [2009/08/18(火) 15:56:02 ]
- >>928
さっそくのご指摘ありがとうございます。 全部プリミティブが繋がってると言うことでしょうか? 他の部分は問題ないものとしてTRIANGLELISTで実装してみます。
- 930 名前:デフォルトの名無しさん mailto:sage [2009/08/18(火) 16:36:00 ]
- >>928
TRIANGLELISTでできました!1枚の板に6つ頂点使ってますが、 ちゃんとu,vと対応させたらOKでした。後は頂点インデックス使ったほうがいいですかね。 どれくらいパフォーンマンスに影響するかはわかりませんが。ともあれ即レス感謝です!
- 931 名前:デフォルトの名無しさん mailto:sage [2009/08/18(火) 16:42:06 ]
- >>930
すぐに非効率性に気づいてTRIANGLELIST+IndexBufferに移行するだろうがな。
- 932 名前:デフォルトの名無しさん mailto:sage [2009/08/19(水) 00:54:18 ]
- 解決したんじゃなくて先送りしただけという事に気づくんだw
- 933 名前:デフォルトの名無しさん mailto:sage [2009/08/19(水) 06:23:18 ]
- D3DXMATRIX mat;
D3DXVECTOR3 vec; パターン1: lpdevice->SetTransform( D3DTS_WORLD, &mat ); →vec(頂点)をDrawPrimitivで描画 パターン2: vec = vec * mat; →vec(頂点)をDrawPrimitivで描画(SetTransformしない) この2つは同じ結果になると思ってたんですが、どうやら違うらしいです。 SetTransformをせず、パターン1と同じ結果を得るためにはどうすればいいのでしょう?
- 934 名前:933 mailto:sage [2009/08/19(水) 07:24:03 ]
- 計算ミスってました(ノ∀`)
サーセン orz
- 935 名前:デフォルトの名無しさん mailto:sage [2009/08/19(水) 10:33:40 ]
- >>933
SetTransformしないってのは、座標変換しないって意味じゃないぞ。 初期値として単位行列が設定されているから、起動時から一度も設定してなければ 結果的に入力と出力が同じ座標になるが。 何もセットしなけいと別の場所でSetTransformした値が残っているので、 明示的に単位行列をセットすべき。
- 936 名前:デフォルトの名無しさん [2009/08/19(水) 14:55:22 ]
- ガラスのコップみたいな透明な物体を描画するには、
テクスチャーを透過するだけでいいんだな
- 937 名前:デフォルトの名無しさん mailto:sage [2009/08/19(水) 15:10:03 ]
- >>966
DeffUseのαを設定する形にすれば透過率を後から変更できるけどな。 いずれにせよ描画順に制約を受けるので注意。
- 938 名前:デフォルトの名無しさん mailto:sage [2009/08/19(水) 15:46:26 ]
- グラスの表現は透過率の調整だけじゃ出来ねえよ
プログラム以前に最低限のモデリングを経験してからにしろ。
- 939 名前:デフォルトの名無しさん [2009/08/19(水) 17:22:15 ]
- >>937
deffuseのアルファ値か、ありがとう! >>938 屈折の話とかかな? ヒントサンクス!
- 940 名前:デフォルトの名無しさん mailto:sage [2009/08/19(水) 20:09:42 ]
- マウスの左ボタンを押しているときにprintfDx関数で"Hello C World!\n"と出力し、
押してないときはclsDx関数で消すというコードを書いたつもりなのですがうまく消えてくれません。 どうしてでしょうか?初歩的な質問ですいませんが、よろしくおねがいします。 #include "DxLib.h" int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance,LPSTR lpCmdLine, int nCmdShow ){ ChangeWindowMode(TRUE);//ウィンドウモード if(DxLib_Init() == -1 || SetDrawScreen( DX_SCREEN_BACK )!=0) return -1;//初期化と裏画面化 char Key[256]; //ループ開始 while(ProcessMessage()==0 && ClearDrawScreen()==0 && !GetHitKeyStateAll( Key )){ //↑メッセージ処理 ↑画面をクリア //ココ↓ if( ( GetMouseInput() & MOUSE_INPUT_LEFT ) != 0 ) { // 押されている printfDx( "Hello C World!\n" ) ; } else // 押されていない { int clsDx( void ); } //ココ↑ ScreenFlip(); } DxLib_End(); return 0; }
- 941 名前:デフォルトの名無しさん mailto:sage [2009/08/19(水) 20:18:12 ]
- >>940
ここはDirectXのスレです。
- 942 名前:デフォルトの名無しさん mailto:sage [2009/08/19(水) 20:21:55 ]
- >>941
スレ違いでしたか、すいませんでした
- 943 名前:デフォルトの名無しさん [2009/08/20(木) 17:55:06 ]
- DirectX9とc++でゲームを作っているのだが、ゲーム会社に就職する
には、どれくらいの技術が必要ですか? よく聞く基準 ライブラリを作れるとか 簡単な3Dゲームが必要とか 2Dだったら、完成度が高くないといけない だいたいでいいから基準みたいなものはありますか?
- 944 名前:デフォルトの名無しさん mailto:sage [2009/08/20(木) 17:57:57 ]
- ゲーム1本作れればおkよ
- 945 名前:デフォルトの名無しさん mailto:sage [2009/08/20(木) 19:03:07 ]
- 人事担当じゃないから詳しいことは分からないけど、DirectXでゲームとして完成度の高いものを作っても意味ないよ。
一番は表現力。HLSLでSDKのサンプル以上の何かを出来ればそれだけで十分だったりも。 小規模な企業ならそれでいいけど、中規模以上の企業であれば数学・物理が人に教えることが出来るレベルじゃないとダメ。 ハードが変わっても求めたい答えとその計算方法が分かっていれば問題ないしね。 ちなみにバンナムは数学・物理中心で、簡単なC言語ソースの問題(穴埋め)。 任天堂は数学・物理中心、あとは一般常識と発想力。 大企業になると技術力をアピールする機会がなかったり、それ以前に蹴落とされるから注意してね。 まぁ、場違いな書き込みなんですけど。
- 946 名前:デフォルトの名無しさん mailto:sage [2009/08/20(木) 19:38:01 ]
- 板違いな奴は入れないお
レスする方もたいがいだけどな
- 947 名前:デフォルトの名無しさん mailto:sage [2009/08/20(木) 19:45:42 ]
- ゲームとして完成度の高いもの(笑)
- 948 名前:デフォルトの名無しさん mailto:sage [2009/08/20(木) 21:04:59 ]
- そもそもここは進路相談のスレじゃない
- 949 名前:デフォルトの名無しさん [2009/08/21(金) 00:03:24 ]
- >>947
面白いゲーム作れなくて、数学物理が出来ても仕方ないと思うけどな。 単なる技術のデモンストレーションみたいなゲームは嫌だろ。 ゲームとしての捻りが無ければ売れんだろうし。 ま、だからって数学物理がいらないとは言わないが。
- 950 名前:デフォルトの名無しさん mailto:sage [2009/08/21(金) 00:09:04 ]
- >>949
そういう人ばかりいたら駄目だろうが、当然面白いゲームを作るための人というのもまた別に雇用するだろう。
- 951 名前:デフォルトの名無しさん mailto:sage [2009/08/21(金) 00:23:24 ]
- ゲームが面白いかどうかなんて、グラフィックや企画、仕様による所が大きいだろーが
つーか、ここはプログラマ板だろ プログラマ(だぶん一人)が作った、転職、就職用ゲームが面白いかどうか、 なんて言ってるのは、ロートルの分って無いオッサンにしか見えん 挙動とかタイミングなんて言うなよ? それこそ、そのサンプルプログラムで言い訳だろ つまり、数学物理とは言わないが 技術スキルが分るサンプルやデモで十分 採用に面白い完成したゲームとか言ってる奴は、マジで組織のお荷物ぽっい いい年して技術が無く、技術的な問題可決もトンチレベルの発想で 結局、若い技術ある奴が残業や休日出勤でカバーとか、ねw
- 952 名前:デフォルトの名無しさん mailto:sage [2009/08/21(金) 00:26:00 ]
- ゲームってこれからも
どんどんどんどんどんどん 難しくなってくのかな? 昔はフォトンマップとか非線形計画問題とか考えなくても ゲーム作れたのに。 うざい、皆死ねばいいのに。
- 953 名前:デフォルトの名無しさん mailto:sage [2009/08/21(金) 00:36:28 ]
- うんうん、板もわきまえずに語りだす奴は皆氏ねばいいね
- 954 名前:デフォルトの名無しさん mailto:sage [2009/08/21(金) 02:14:38 ]
- ツールが増えてるからむしろ簡単になってるんじゃない?
- 955 名前:デフォルトの名無しさん mailto:sage [2009/08/21(金) 03:28:34 ]
- Physixスレがないのだがここでいいのかな
|

|