DirectX8以降で2Dを表示する場合は、どの手法をとるべきか

このQ&Aのポイント
  • DirectX7以降では、2D表示のみを行う場合でもDirectXGraphicsを使用する方が良いのでしょうか?
  • 2D表示のみの場合は、DirectDrawを使用する方が良いのですか?
  • DirectXを勉強している際に、DirectXGraphicsを使って2D表示されるサンプルが多いですが、2Dの場合はどの手法を使用すべきでしょうか?
回答を見る
  • ベストアンサー

DirectX8以降で2Dを表示する場合は、どの手法をとるべきか

現在、DirectXの勉強をしているのですが、入門書では 「ここでは2Dを表示する場合に、DirectDrawを使わずにDirectXGraphicsを使って描画するサンプルを解説します」 とのように、あえてDirectXGraphicsをつかった2D表示をしているものが多いようです。(購入した解説書はすべてDirectX9の入門書でDirectDrawの解説はありませんでした。) そこで質問なのですが、DirectX7以降では、2D表示のみを行う場合でもDirectXGraphicsを使用した方がいいのでしょうか? それとも、2Dのみの場合はDirectDrawを使用した方がいいのですか? どなたか教えてください。

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

  • ベストアンサー
  • sha-girl
  • ベストアンサー率52% (430/816)
回答No.1

DirectDrawを使う方法というのがDirectX7の手法なのです。 単に下位互換を維持するためにddraw.hが残っているだけで 7→8になって機能拡張されたわけではありません。 DirectX8以降では DirectX7までのDirectDrawとDirect3Dが統合されて DirectGraphicsになったのです。 DirectDrawではバックサーフェイスを持たせて フリップをさせるというやり方でしたが DirectGraphicsでは2Dは3Dに内包されるものと考え 2Dも3Dオブジェクトと同じように頂点座標を持ちテクスチャを使います。 (DirectGraphicsの方が作り的にVRAMを消費しやすい。) しかし古いPCでも動作させようとする場合はDirectDrawを使わざるをえません。 ただDirectDrawは廃れていく方向にあります。

yko2003
質問者

お礼

お礼が遅くなって申し訳ありません。 2Dでも3Dを使わねばならないと信じるまでに今までかかりました。 これからはテクスチャを貼り付けて2D描画することにします。

関連するQ&A

  • DirectXを使用するゲームを起動すると固まります

    タイトルにあるようにDirectXを使用するゲームを起動するとPCが固まってしまい、電源ボタンの長押しによる強制終了しか出来なくなります。 描画方法を変更できるゲームで、描画方法をGDIに変更すると正常に起動するので原因はDirectXにあると思われます。多くのゲームでDirectXが使用されているので困っています。 また、DirectX診断ツールのディスプレイタブでは「問題は見つかりませんでした」と表示されますが、Direct3Dのテストを行なうと止まります。DirectDrawのテストでは止まりません。 ハードウェアアクセラレータでは「DirectDraw および Direct3D すべてのアクセラレータを無効にします」まで下げると起動するようになります。ただ、アクセラレータを無効にしているので主に3Dのゲームは表示はされませんが・・・。 DirectXのバージョンは9.0cで再インストール(ファイルの更新?)も行いました。グラフィックドライバの再インストールも行いました。バージョンは最新のものを使用しています。 今まで問題なく使えていたのに先週末あたりからこの問題が発生するようになりました。原因は思い当たるところがありませんが、以上のことからDirectXに何か問題がおきていると思うのですがどうでしょうか?よろしくお願いします。

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

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

  • DirectX9 の解説書さがしてます

    現在のゲームは技術の発展により3Dとか非常にリアルな画像が当たり前となっています。(たぶん) だから、DirectX9の本となると3Dについて解説した本ばかりで、DirectX の基本的構造や DirectX Audio DirectInput DirectShow などに全体的に解説されいる本が非常に少ないです。 現在、先生の作成したライブラリを使用してゲームを作成していますが、いずれかこれを改造しなくてはならなく、また、将来的には自分でもライブラリを作ってみたいとも思ってみたりしています。 では聞きたいのですが、 (1)DirectX の基本的概念はいまだに変わらないのですが? (2)DirectX9 基本的概念すなわち構造を解説した本を紹介してください。 ※(1)の質問で基本的概念は昔と変わらないのならバージョンは問いません。 ※入門者向きの本をできればおねがいします。

  • DirectX9を勉強できるサイトを教えてください。

    DirectX9の勉強を始めたばかりの初心者です。 初心者でも分かるようにサンプルを詳しく解説しているようなサイトを探しています。 どなたかご存知の方、よろしくお願いします。

  • DirectX 入門書

    こんにちは。 私は今までC++、WinAPIと学んできて、そろそろDirectXを使ってゲームを作りたいな、と思っています。 今まで色々なサイトを回ってきましたが、あまりしっくりくる物が無かったり、サンプルがコンパイル出来なかったりなので、何か入門書を買おうと思いました。 しかし、入門書と言ってもどれがわかりやすいのか、初心者向けなのか、という事がわからず迷いましたのでここに書き込ませていただきました。 今までに見てよさそうだな、と思った本は、 「書籍版 DirectX9実践プログラミング」 「DirectX9 DirectX Graphics」 「サンプルで学ぶDirectX9プログラミングテクニック」 の3つです。 これはいい、これは買わないほうがいい、また別にいい本がある、というご意見をお願いいたします。 もちろん「いいページがあるから本は買わなくてよい」や、「サンプルで理解せよ」等の意見もあればお願いします。 開発はVisal C++ 2005 Express Editionなので、注意点があれば教えていただけると嬉しいです。

  • DirectXが有効にできません

    ゲーム起動のため、DirectXを有効にしたいのですが ドライバやDirectXを(恐らく)最新のものでインストールし直してもボタンが表示されず 知識のある方にお教えいただければ助かります。 【現在の環境】 マシン:DELL Inspiron 545s OS:Windows XP Professional (5.1, Build 2600) CPU:Intel(R) Core(TM)2 Duo CPU E7400 @ 2.80GHz (2 CPUs) DirectX:DirectX 9.0c (4.09.0000.0904) ディスプレイデバイス:Intel(R) G33/G31 Express Chipset Family ディスプレイドライバ:igxprd32.dll 以上の環境でディスプレイの注意欄には ------ 問題は見つかりませんでした。 DirectDraw の機能をテストするには、上の[DirectDraw のテスト] ボタンをクリックしてください。 Direct3D の機能は利用できません。ドライバが製造元によって提供されている最新のものであることを確認してください。 ------ と表示されており、DirectDrawのテストボタン以外は押せない状態になっています。 (ちなみにテストは正常に終了します。) 上記のような状態なのですが、解決方法おわかりになる方いらっしゃいませんでしょうか。 もし不足の情報などありましたらご指摘いただけると助かります。 よろしくお願いします。

  • Directx診断ツールについて

    オンラインゲームが急に出来なくなり問い合わせしたところ、「Directxの機能が有効か確認して下さい」という回答。 そこで、なんとかDirectx診断ツールまで辿り着いたら、 DirectDraw  アクセラレータ 使用可能 (無効) Direct3D   アクセラレータ 使用可能 (無効) AGPテクスチャ アクセラレータ 使用可能 (無効) と、表示されていました。 これらの有効化はどのようにするのでしょうか? また、そもそも有効化は問題ないのでしょうか?有効化するというのは現状をどのように変えることになるのでしょうか?教えてください。 ちなみに、Directxのバージョンは9.0b オンラインゲーム側では「Directxは最新バージョンをダウンロードして下さい」と案内しています。

  • GDIからDirectXへの移行

    描画速度を向上させるため、DirectXを使いたいと思っているのですが、裏画面を作成して、線を引いて、文字を書いて、画面に転送するだけの簡単なCでのサンプルはどこかにないでしょうか? サイトや本を探しても、3Dや複雑なサンプルばっかりで、Hello Worldのような超簡単なサンプルを探しています。 今は、CreateCompatibleBitmapで裏画面を作成して、GDIで描画して、BitBltで画面に転送しています。

  • DirectXやWin32API (2Dゲーム作りたいです)

    こんにちは,私は2D(最終的には3D(メインは2D))のゲームを C++,DirectX を利用して作りたいと思っています.  今のところ,プログラミングはC,C++は入門+α, ゲーム関係は『ゲームプログラマになる前に覚えておきたい技術』という本の2D分野を読み実習しました.このゲームの本はDirectXやWin32APIなどを利用せずに,なにやらライブラリなどを用意していてそれを利用する形でした. -- 質問 --  DirectX や Win32API を全然わからないという このくらいの知識の人が本格的に2Dゲームをだんだんと作って行きたいのですが,このそれぞれに対してなにかよい参考書はないでしょうか,またその理由などもいただきたいです. --気になること-- 以下あいまいな知識の質問です. ・最近(DirectX7以降かな)はDirectXは2D描写と3D描写の機能が合体したと聞きました,DirectXの参考書は3Dのばかりで3Dも学べていいのですが,2Dゲームが作れるDirectXの内容も詳しく含んだ参考書が欲しいです. ・Win32APIはゲーム製作にどう影響してくるんですか?まだよくわかっていません.ゲームウィンドウなどを表示するのは必用そうですが,, サウンドやグラフィックを読み込むのに必須なのだろうか, でもそれはDirectXでもできませんか?関係がよくわかりません. --まとめ-- できれば 気になること の回答など簡単にしていただきたいです.  長文ここまで読んでいただきありがとうございました. よろしくお願いします.

  • DirectXの表示

    Windows Liveメッセンジャーのリモートアシスタンス機能を使用して、 自分のPCの画面を相手側に表示させたのですが、「SolidWorks」と言う3D-CADソフトの画面だけが、相手側に表示されません。SolidWorksの作業ウィンドウは表示されるのですが、3D-CAD画面が表示されません。 SolidWorksがDirectXを使っているからでしょうか?また、メッセンジャーでDirectXを表示させる方法などございませんでしょうか?

専門家に質問してみよう