• 締切済み

Directxで一度に描画する方法

DirectXで複数枚のポリゴンを描画しているのですが、それぞれ頂点変換行列やテクスチャが違うのでDrawPrimitiveをポリゴン毎に呼び出さなければいけなくなっています。 上記のような状態で一度に描画する方法はありますでしょうか?

noname#142253
noname#142253

みんなの回答

  • chie65535
  • ベストアンサー率43% (8516/19358)
回答No.1

「ボーン」「ウェイト」「マテリアル」「モデリング」「変形」などについて調べると良い事があるかも知れません。

noname#142253
質問者

補足

調べてみましたが良く分かりませんでした。

関連するQ&A

  • directxのspriteの描画について

    VisualStudioによりc++とdirectxを使って3Dオブジェクト(xファイルなど)とspriteによるテクスチャの描画をしたいのです。3Dの格闘ゲームのようにカメラが動いているのに、ライフバーが固定されているようなものを作りたいのです。 3Dオブジェクトはプロジェクション変換とビューポート変換をして描画し、spriteのテクスチャは画面の左上を座標(0,0)として描画したいのですが、どのように実装すればいいのでしょうか? 現時点ではspriteを描画する前にプロジェクション変換とビューポート変換のときに使うポインタを初期化してパイプラインに送ればいいと考えやったのですが、3Dオブジェクトは描画されているのですがspriteはうまくいきませんでした。

  • DirectXのポリゴンモデルの表示について。

    DirectXの勉強を始めたばかりの者です。 3Dポリゴンモデルの表示をさせたいと思いWeb上の解説記事を読んでいるのですが 何枚かの板ポリゴンで構成される「ポリゴンモデル」のデータを「プログラム内で記述」して描画させるにはどうしたら良いのか、ということが分かりません。 解説記事を読んでいて、まず、DrawPrimitive()等で一枚ずつポリゴンを描画させることを知りました。 それから「メッシュモデル」という単位で、3Dモデリングソフトで作成した「xファイル」からロードして描画できることを知りました。 (http://princess-tiara.biz/directx/?chapter=12)  ただし「メッシュモデル」のような単位のポリゴン群データを「xファイル」からロードするのでは無く、プログラム内での配列データのセットのような感じで記述したいと思っています。  こういう場合、頂点の繋がりや法線などのデータを全く自前の構造体で定義して、各ポリゴンをforループで一枚ずつDrawPrimitiveなどで描画するというのも、それも1つの手だとは思うのですが、それは何となく本筋という訳でも無いのではと思えます。  また、別のモデリングソフトで「xファイル」を作って、というのも例えば幾何学的な多面体モデルを作りたいと思う場合にはあまり適していないように思います。(その場合、頂点の座標値は是非コンピュータ自身に計算させてセットしたいものです。)  メッシュモデルのようなデータをプログラム上に記述したい場合、プログラム自身に座標値をセットさせたい場合、どうしたら良いのでしょうか?  何か特定の記述のフォーマットなどがあるのでしょうか。またそれを描画する方法はあるでしょうか。解説されているページなどありましたらリンクのみでも助かります。  

  • DIRECTXのスプライト描画で質問です

    いつもお世話になってます。 DIRECTX9.0、VC++6.0を使っています。 DIRECTXでLPDIRECT3DTEXTURE9(テクスチャ)とLPD3DXSPRITE(スプライト)を使って描画しています。 ですが、テクスチャの縦と横のサイズが256*256を超えたものが正常に表示できません。 色々調べてみると、縦と横のピクセル数が2の乗数以外の中途半端なサイズのテクスチャは、キリの良いサイズに変換されるみたいですが、一応縦横共に2の乗数のテクスチャなのにうまく表示できません。 例:768*512ピクセルのTGA形式のファイル 大きな画像ファイルを表示する方法はないでしょうか? どうぞ宜しくお願いします。

  • DirectXによる「黒い物体」の描画

    現在、DirectXを用いて原潜のメッシュを描画しています。 今はテクスチャを貼っていますが、パフォーマンス改善のためテクスチャを貼らないものも制作しようと思いました。 しかし、黒い物体をそのまま描画すると、当然黒くて形状がわからないものが描画されてしまいます。 そこで質問なのですが、黒い物体を、光沢を付けるなどして形状が明確にわかるように描画するにはどうすればいいでしょうか? 3Dモデル制作の段階や、マテリアルの設定、ライトの設定などの範囲で回答していただけたらなおありがたいです。 なお、自己照明は最大にしており、黒い物体以外は正常に描画されるため、黒い物体だけの問題だと思われます。 回答よろしくお願いします。

  • DirectXで曲面の描画

    DirectX9で曲面の描画を考えています。 x=0.0~10.0、y=0.0~10.0、z=exp(-x^2-y^2)といった座標を与えて、 波を打つような曲面を作成したいのですが (QNo.2528542のような滑らかな曲面でなくてもよいです) 自分でメッシュを作成することで実現可能なのでしょうか? メッシュを作成するには頂点(バッファ)を指定するの思うのですが、 その頂点は射影行列を施した後の(x座標、y座標、Z値)になり、 上のような3次元空間上の座標から直接メッシュが作り出せないものかと考えています。 ティーポットのようなメッシュをXファイルを使わずに作り出すにはどうしたらよろしいでしょうか? (↑曲面の描画 イコール メッシュの作成と考えての質問です、そもそもこの思考が間違っていますか?) だらだらと書き綴りましたがよろしくお願いします。

  • DirectXのテクスチャについて

    DirectXを始めて2週間もたたないレベルの初心者です。 下記サイトを見ながら勉強しているのですが、1つわからないことがあります。 テクスチャをポリゴンに貼り付けるという作業のなかで 貼り付け先のポリゴンを選択するという部分がどれだかわらないのです。 普通に考えて、ポリゴンが複数ある場合テクスチャを作成してもどこに貼り付けるかわからなくなってしまいます。 どういう仕組みで貼り付け先のポリゴンを選択しているのか教えてください。 できれば、初心者の私にもわかりやすようにお願いします><。 開発環境 VisualStudio2008(C++) 参考サイト http://marupeke296.com/DXGSmp_No3_CreateTexture.html

  • 3Dの描画について

    3Dの描画について 今、Cで3Dライブラリを作っています。 そこで質問なのですが、 空間上に頂点の座標が与えられたポリゴンが複数あるとします。 それをカメラから遠いものから順に描画したいです。 うまく描画するためには、どのような基準をもって カメラからの遠近を判断すればよいのかわかりません。。。 どなたか、アドバイスを頂けないでしょうか。 よろしくお願いします。

  • DirectXでの板ポリゴンのUV

    DiretXでテクスチャの貼っている板ポリゴン(正方形)の頂点を移動した場合、 A ____ B  |     / |  |   /   |  |/___ | C        D Dの頂点を移動すればA、B、Cのテクスチャは変わらずに、B、C、Dのテクスチャだけが引き延ばされるので、奇妙な事になってしまいます。 Dの頂点だけを移動した際にテクスチャ全体が程よく引き延ばされる方法はないでしょうか。

  • DirectX、DrawPrimitive、D3DPT_POINTLISTで描画される点の大きさを変えたい

    こんにちは。 現在DirectXにてプログラムを書いていて Device->DrawPrimitive( D3DPT_POINTLIST, 10, 0 ); で描画される点のサイズを変えたいのですがそのようなメソッドはどのメソッドになるのでしょうか? OpenGLでいうglPointSize( size );と同じような動作をするメソッドを探しているのですが見つかりません。 よろしくお願いします。

  • DirectXのSpriteについて

    現在DirectXを使ってプログラムを書いています。 スプライトを使って画像を描画しようと思ったのですが、 LPD3DXSPRITE pSprite;//スプライト LPDIRECT3DTEXTURE9 texture;//適当な画像 pSprite->Begin( 0 ); pSprite->Draw( texture, 0,0,0,0xffffffff ); pSprite->End(); というように使って画像を描画するようですが、これを見ると pSpriteはアプリケーション内に1つ存在すればいいような気がするのですが複数用意する意味はあるのでしょうか? 教えてください。

専門家に質問してみよう