• ベストアンサー

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

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

  • 0xEF
  • お礼率59% (193/327)

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

 こんばんは。  試した訳ではありませんが、  pDevice9->SetRenderState(D3DRS_POINTSIZE, *((DWORD*)&PointSize));  では無いでしょうか。  http://msdn.microsoft.com/ja-jp/library/cc324230.aspx  http://msdn.microsoft.com/ja-jp/library/cc324335.aspx

0xEF
質問者

お礼

回答ありがとうございます。 今試してみたところ、期待通りの動作をいたしました。 ありがとうございました。

関連するQ&A

  • Directxで一度に描画する方法

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

  • DirectX:描画されません・・・ヒント下さい・・・

    VCでC++を使ってDirectXを使ったプログラムを書いてます。 そういう仕事しているわけではなく、素人です。 DirectXは色々とややこしくて、何がなんだかさっぱりです。 とりあえず、Win32APIを使って、ウィンドウを表示し、DirectXを使って、ボタンを押すことで、ウィンドウモードとフルスクリーンモードを切り替えることの出来るプログラムは作れました。 しかし、3Dのモデルが表示されません。 何が駄目なのかが、さっぱりです。 こういう場合、何に原因があることが多いのでしょうか?? DirectX経験者の方、どうか、教えてください。お願いします。 以下に現在の状況を列挙します。 足りなければ、ご指摘ください。 ソースは見せることはできるのですが、かなり、スパゲティーなので・・・・。 DirectX:November 2008 目標:Xファイルからじゃなく座標を自分で指定して立方体を描画したい 出来ていると思われること ・Win32APIを使ったウィンドウの作成 ・Direct3Dオブジェクトの作成Direct3DCreate9⇒  D3DDeviceオブジェクトのプレゼンテーションパラメータの設定 ・カメラとライトの設定 ・あと、DirectXのメソッドで背景色だけは変えられます。 経験者の方がた、よろしくお願いします!!

  • DirectX9.0での四角形の描画について

    現在、WindowsXP, VS2005, DirectX9.0, C/C++の環境で 4角形を表示するプログラムを作ろうとしています。 しかし、3Dモデルの表示などは資料も多くあり、比較的 容易に学ぶことが出来たものの、4角形や3角形、円など 基本図形の描画については手持ちの書籍にはほとんど 書かれておらず、私が探せたサイトではVBやDirectX8.0 などの情報ばかりヒットしてしまい、少し困ってしまっています。 確かDirectX8.0と9.0では手順が違うと聞いたことがあったので、 もしよろしければ参考になりそうなサイトや書籍やソースコードを ご教授頂けると幸いです。

  • DirectXを使ってライン描画。

    DirectXを使ってWEB上でラインを描画しようと思うのですが、 DirectXの機能が良くわかりません。 OS、ブラウザによっては上手く動作しなかったりするのでしょうか? また改善策はあるのでしょうか?よろしくお願いします。

  • OpenGLのD3DTS_WORLDはどれですか?

    こんにちは。 OpenGLでプログラムを書いているものです。 もともとはずっとDirectXでプログラムを書いていたものですが、行列の扱い方で質問させてください。 DirectXでは変換行列はD3DTS_PROJECTION,D3DTS_VIEW,D3DTS_WORLDと3つあったと思うのですが(他にもテクスチャ変換行列などがありますが今回は除外)OpenGLでD3DTS_WORLDに当たるのはどれでしょうか? 現在私は以下のように考えています。 // 射影行列 glMatrixMode( GL_PROJECTION ); glLoadMatrixf( proj ); // ビューイング行列 glMatrixMode( GL_MODELVIEW ); glLoadMatrixf( view ); モデルの頂点を変換するワールド行列はどこにセットすればよいでしょうか? よろしくお願いします。

  • DirectXとOpenGLについて

    現在DirectXにてプログラムを作成しているのですが、パソコンの性能に対して柔軟性を持とうと思い、OpenGLに変えようと思っています。 ですが、OpenGLを使ったことがないため苦戦しております。 DirectXのAという関数は、OpenGLの?関数にあたる。 のような感じで書かれているサイト等を知っている方はいますでしょうか? ちなみに使用しているのは、 IDirect3D9 IDirect3DDevice9 IDirect3DTexture9 IDirect3DSurface9 です。 これをOpenGLで表現するには何を使ったらいいのでしょうか? サイトや調べ方(検索)などありましたら教えてください。 よろしくお願い致します。

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

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

  • DirectXについて

     僕は某オンラインゲームをインストールしました。 そして、動作環境を見てみるとどうやらDirectX9.0cが必要なようでこれと、DirectX エンド ユーザー ランタイム Web インストーラを外付けHDDにインストールしました。 そして、ゲームを起動しようとすると、なんか「コンピューターに d3dx10_43.dll がないため、プログラムを開始できません。」というエラーが出て来ます。   どうやらd3dx10_43.dllはDirectXの事らしいのですが、なぜちゃんとDirectX9.0cを入れてるのにこのようなエラーが出るのでしょうか?  DirectX9.0cやユーザーランタイムを外付けHDDにインストールしたからでしょうか?  あっ、そういえば元々PCにはDirectX11が入ってるのですが、それが原因ですかね? まあとにかくDirectX9.0cをしっかり入れてるのになぜコンピューターにないというエラーが出るのかを知りたいです。 よろしくお願い致します。

  • DirectXとOpenGLについて。

    DirectXとOpenGLについて。 DirectXかOpenGLを用いて、グーグルストリートビューのように、周囲360°の風景をマウスなどで動かして探索できるプログラムをC#で作りたいと思っております。そのためにはスフィアマッピングと呼ばれる手法が必要らしいのですが、DirectXとOpenGLだとどちらを使ったほうが効率的に開発を進めることが可能でしょうか?是非回答お願いします。 またスフィアマッピングの手法についてわかりやすく解説しているサイトなどを教えてもらえたら幸いです。

  • 描画

    DirectXで扇形を描画する質問です。 60度の角度で上方向に扇形を描画さしたいのですが(円弧の方が上) 開始地点は275から半径50の扇形を描画さしたいのですが pD3Device->SetTexture(0, pTexture[0]); pt[0].x = 250.0f; pt[1].x = 300.0f; pt[3].x = 275.0f; pt[2].x = 275.0f; pt[0].y = 225.0f; pt[1].y = 225.0f; pt[2].y = 275.0f; pt[3].y = 275.0f; pt[0].tu = pt[3].tu = 0.0f  / 1024; pt[1].tu = pt[2].tu = 200.0f / 1024; pt[0].tv = pt[1].tv = 0.0f  / 1024; pt[2].tv = pt[3].tv = 200.0f / 1024; pD3Device->DrawPrimitiveUP(D3DPT_TRIANGLEFAN,2,pt,sizeof(CUSTOMVERTEX)); このままでは、斜面が50の三角形ができただけで・・・ pt[0].xとpt[1].xは、ただ単に50とゆうだけで角度で表していないので場所は変わるかと思いますがpt[2].xとpt[3].xは275から開始でお願いします。 これを扇形にしたいのですが、どなたかご教示ください。お願いします。

専門家に質問してみよう