この項では、Microsoft® Direct3D®保持モードのサンプルについて解説する。各サンプルの要約では、サンプルごとに、Microsoft DirectX®ソフトウェア開発キット (SDK) にデフォルトでインストールされるディレクトリとサンプルの簡単な説明を示してある。
Direct3D保持モードのサンプルは、RMBegin1、RMBegin2、RMEnum、Viewerを除き、すべてのサンプルがRMMainヘルパコードを使用している。RMMainヘルパコードを使用する全サンプルは、Rmmain.cppによってアプリケーションのメインウィンドウを提供し、Rmmain.rcによってメニューとアクセラレータを提供する。これらのサンプルは、Ddraw.libおよびD3drm.lib librariesにもリンクしている。サンプルの各ディレクトリには、Microsoft Developer Studioのプロジェクトファイル (.dsp) がインクルードされる。.dspファイルは、Developer Studioで開き、サンプルを構築するために使用できる。
Direct3D保持モードを初めて使用する場合は、最初にRMBegin1、RMBegin2、RMEnum、Egg、Globe、Hier1、およびTex1サンプルを参照すること。
次の項目では、サンプルコードを順を追って詳述している。
一部のDirectX Foundation SDKサンプルは、複数の技術を使用している。これらのサンプルを参照して、各技術がどのように連係しているか確認することができる。たとえば、DS3dView DirectSoundサンプルは、Direct3D保持モードの3DオブジェクトであるViewerサンプルの単純な拡張である。DS3dViewを使用すると、サウンドをオブジェクトにアタッチし、オブジェクトを3次元空間で移動できる。
パス
mssdk\samples\multimedia\d3drm\src\Egg
説明
このサンプルは、単一のメッシュオブジェクトで構成した単純なDirectXファイルをロードする。Egg.xはDxsdk\Mediaディレクトリに格納されている。このサンプルは、シーンの照明の初期化、メッシュファイルのロード、シーン上のeggフレームの作成、メッシュのフレームへの追加、フレームの位置、方向、回転の設定を行う。サンプルは、IDirect3DRM3 (CreateFrame、CreateLightRGB、CreateMeshBuilder)、IDirect3DRMFrame3 (SetPosition、AddLight、SetRotation、AddVisual、SetOrientation)、IDirect3DRMMeshBuilder3 (Load) のメソッドを使用している。
必要なライブラリ
- Ddraw.lib
- D3drm.lib
必要なRMMainコード
- Rmmain.cpp
- Rmmain.rc
パス
mssdk\samples\multimedia\d3drm\src\Faces
説明
このサンプルでは、メッシュオブジェクトを1回につき1つの面を作成する。
必要なライブラリ
- Ddraw.lib
- D3drm.lib.
必要なRMMainコード
- Rmmain.cpp
- Rmmain.rc
パス
mssdk\samples\multimedia\d3drm\src\Fly
説明
このサンプルは、アニメーションを使用して、カーブしたパスに沿って、宇宙船の位置を設定する。
必要なライブラリ
- Ddraw.lib
- D3drm.lib
必要なRMMainコード
- Rmmain.cpp
- Rmmain.rc
パス
mssdk\samples\multimedia\d3drm\src\Globe
説明
このサンプルは、テクスチャを伴う単純な単一のメッシュで構成したDirectXファイルをロードする。これは以下のメソッドを使用する。
- IDirect3DRM3
- CreateFrame
- CreateLightRGB
- CreateMeshBuilder
- CreateMaterial
- CreateWrap
- LoadTexture
- CreateAnimation
- IDirect3DRMFrame3
- GetScene
- LookAt
- SetPosition
- AddLight
- SetOrientation
- SetRotation
- AddVisual
- AddMoveCallback
- AddDestroyCallback
- IDirect3DRMMeshBuilder3
- Load
- SetMaterial
- Scale
- SetColorRGB
- GetBox
- SetTexture
- IDirect3DRMAnimation
- SetFrame
- SetTime
- SetOptions
- AddPositionKey
- IDirect3DRMWrap
- Apply
- IDirect3DRMTexture3
- SetShades
必要なライブラリ
- Ddraw.lib
- D3drm.lib
必要なRMMainコード
- Rmmain.cpp
- Rmmain.rc
パス
mssdk\samples\multimedia\d3drm\src\Hier1
説明
このサンプルは、2つのメッシュで構成する単純な階層を作成し、フレームの概念を具体的に示す。シーンの照明を初期化し、2本のメッシュファイルをロードし、フレーム階層 (フレーム内のフレーム) 作成する。Hier1はテクスチャをロードし、メッシュにラッピングし、メッシュをフレームに追加し、フレームの位置、方向、回転を設定する。
必要なライブラリ
- Ddraw.lib
- D3drm.lib
必要なRMMainコード
- Rmmain.cpp
- Rmmain.rc
参照
パス
mssdk\samples\multimedia\d3drm\src\Hier2
説明
このサンプルは、4つのメッシュで構成する単純な階層を具体的に示している。
必要なライブラリ
- Ddraw.lib
- D3drm.lib
必要なRMMainコード
- Rmmain.cpp
- Rmmain.rc
参照
Hier1
パス
mssdk\samples\multimedia\d3drm\src\Morph
説明
このサンプルは、補間の使用法を示している。
必要なライブラリ
- Ddraw.lib
- D3drm.lib
必要なRMMainコード
- Rmmain.cpp
- Rmmain.rc
参照
IDirect3DRMInterpolator
パス
mssdk\samples\multimedia\d3drm\src\Quat
説明
このサンプルは、クォータニオンを使用して、空間内の2本のベクトルを補間する。
必要なライブラリ
- Ddraw.lib
- D3drm.lib
必要なRMMainコード
- Rmmain.cpp
- Rmmain.rc
パス
mssdk\samples\multimedia\d3drm\src\RMBegin1
説明
このサンプルは、Direct3D保持モードのデフォルトデバイスの作成、DirectXファイルからのメッシュのロード、照明の追加、メッシュオブジェクト回転の「要点」を示している。サンプルコード全体に丁寧なコメントを付けて、コードの目的を説明している。
このサンプルは、大部分のDirect3D保持モードサンプルと異なり、RMMainヘルパファイル、Rmmain.cpp、Rmmain.rcが提供する拡張メニューを使用しない。
RMBegin1サンプルのコードの詳細は、「オブジェクトの回転: RMBegin1サンプル」を参照すること。
RMBegin1サンプルコードから構築したサンプルについては、RMBegin2を参照すること。
必要なライブラリ
- Ddraw.lib
- D3drm.lib
パス
mssdk\samples\multimedia\d3drm\src\RMBegin2
説明
このサンプルは、フレーム階層の「要点」を示している。DirectXファイルから3つのオブジェクトをロードし、スケーリング、照明、マッピングを行う。3つのオブジェクトは、太陽、地球、月を表し、月は地球のまわりを、地球と月は太陽のまわりを回る。このサンプルは、RMBegin1サンプルで使用したコードから構築したものである。RMBegin1の上により複雑なシーンを構築し、ウィンドウサイズを変更し、WM_ACTIVATEとWM_PAINTメッセージを処理している。サンプルコード全体に丁寧なコメントを付けて、コードの目的を説明している。
このサンプルは、大部分のDirect3D保持モードサンプルと異なり、RMMainヘルパファイル、Rmmain.cpp、Rmmain.rcが提供する拡張メニューを使用しない。
RMBegin2サンプルのコードの詳細は、「フレーム階層:RMBegin2サンプル」を参照すること。
必要なライブラリ
- Ddraw.lib
- D3drm.lib
パス
mssdk\samples\multimedia\d3drm\src\Rmenum
説明
これは、デバイスを列挙して、最適なデバイスを選択し、Direct3D保持モードデバイスを作成する「要点」を示したサンプルである。このサンプルではレンダリングはまったく行わない。コードを読みやすくするために、デバイスの列挙だけを扱っている。また、ユーザーがメニューからデバイスを選択できるようにする。
このサンプルは、大部分のDirect3D保持モードサンプルと異なり、RMMainヘルパファイル、Rmmain.cpp、Rmmain.rcが提供する拡張メニューを使用しない。Rmerror.cファイルのエラー報告機能を使用している。
RMEnumサンプルのコードの詳細は、「デバイスの列挙:RMEnumサンプル」を参照すること。
必要なライブラリ
- Ddraw.lib
- D3drm.lib
パス
mssdk\samples\multimedia\d3drm\src\Misc
説明
RMMain ヘルパコードは、Microsoft DirectDraw®およびDirect3D保持モードオブジェクトの作成、列挙、管理などの一般的なタスクを処理し、メニューに共通のリソースを提供する。RMMainは、Direct3D保持モードを使用して、レンダリング用のウィンドウを設定し、サンプルが提供するBuildScene関数を呼び出して、サンプルのシーンを構築し、Direct3D保持モードを使用してシーンをレンダリングする。ほとんどのDirect3D保持モードサンプルは、この共通コードにリンクしており、アプリケーション固有のコードを非常に単純化している。RMMainを使用するサンプルは、ウィンドウモードだけで動作する。
RMMainは多数のメニュー項目も提供しており、ユーザーはレンダリングオプションの効果を確認できる。アニメーションを1手順ずつ操作して、レンダリング用のデバイスを選択し、シェーディングモード (フラットまたはグロー) を選択し、照明とディザリングをオンまたはオフに設定し、塗りつぶしオプション (点、ワイヤフレームまたはソリッド) を選択できる。
RMMainヘルパコードは、次のファイルで構成されている。
Rmmain.cpp WinMainおよびメッセージハンドラをインクルードした基本的なソースファイル。Direct3D保持モードを作成し、保持モードを使用してレンダリング用のウィンドウを設定した後、サンプルを呼び出してシーンを構築する。 Resource.h Rmmain.rcのヘッダファイル。 Rmmain.rc Rmmain.cppのリソースファイル。メニュー、キーボードアクセラレータ、および [About] ダイアログボックスを提供する。
パス
mssdk\samples\multimedia\d3drm\src\Shadow
説明
このサンプルはメッシュオブジェクトの影を作成する。
必要なライブラリ
- Ddraw.lib
- D3drm.lib
必要なRMMainコード
- Rmmain.cpp
- Rmmain.rc
パス
mssdk\samples\multimedia\d3drm\src\Tex1
説明
このサンプルは、円柱マッピングを使用してテクスチャをマッピングした単純なメッシュオブジェクトをロードする。
必要なライブラリ
- Ddraw.lib
- D3drm.lib
必要なRMMainコード
- Rmmain.cpp
- Rmmain.rc
参照
Tex3、 Tex4、 Tex5
パス
mssdk\samples\multimedia\d3drm\src\Tex3
説明
このサンプルは、フレームに関連した球体マッピングを使用して、特殊効果のテクスチャラッピングを使用する。
必要なライブラリ
- Ddraw.lib
- D3drm.lib
必要なRMMainコード
- Rmmain.cpp
- Rmmain.rc
参照
Tex1、 Tex4、 Tex5
パス
mssdk\samples\multimedia\d3drm\src\Tex4
説明
このサンプルは、カメラに関連した球体マッピングを使用して、特殊効果を出すためにテクスチャラッピングを使用する。テクスチャは、シーンの背景としても使用されている。
必要なライブラリ
- Ddraw.lib
- D3drm.lib
必要なRMMainコード
- Rmmain.cpp
- Rmmain.rc
参照
Tex1、 Tex3、 Tex5
パス
mssdk\samples\multimedia\d3drm\src\Tex5
説明
このサンプルは、クロムマッピングのラッピング、およびデカールとしてテクスチャマッピングを使用している。
必要なライブラリ
- Ddraw.lib
- D3drm.lib
必要なRMMainコード
- Rmmain.cpp
- Rmmain.rc
参照
Tex1、 Tex3、 Tex4
パス
mssdk\samples\multimedia\d3drm\src\Trans
説明
このサンプルは、透明なテクスチャマッピングの実例を示している。立体の球を回転させ、部分的に透明な格子模様の立方体2つを個別に回転して、球体と交差させる。サンプルは、フレーム、照明、メッシュビルダ、メッシュ、テクスチャ、マテリアルを作成する。IDirect3DRMTexture3::SetDecalTransparencyを呼び出してデカールを透明にする。
必要なライブラリ
- Ddraw.lib
- D3drm.lib
必要なRMMainコード
- Rmmain.cpp
- Rmmain.rc
パス
mssdk\samples\multimedia\d3drm\src\Uvis
説明
このサンプルは、Direct3D保持モードでDirect3Dを使用する方法を示している。Direct3D保持モードシーンのビジュアルとして、Direct3D直接モードの実行バッファを使用する方法を示す。
必要なライブラリ
- Ddraw.lib
- D3drm.lib
必要なRMMainコード
- Rmmain.cpp
- Rmmain.rc
パス
mssdk\samples\multimedia\d3drm\src\Viewer
説明
Viewer (Direct3D Retained Mode Object Viewer) は、3Dオブジェクトをロードして表示するスタンドアロンタイプの保持モードアプリケーションである。
最初のシーンには右上隅に照明が配置されている。照明を見るには、TまたはRキーを使用して、前後に移動する。追加のオブジェクトは、[File] メニューからロードし、新しい照明は [Lights] メニューで追加する。マウスの左ボタンでオブジェクトを回転し、右ボタンでドラッグできる。
最後に回転またはドラッグしたオブジェクトが現在の選択アイテムになる。
デバイスの質は、[Renderer] メニューで変更する。このメニューを使用すると、使用するデバイスのタイプをランプからRGBに切り替えられる。RGBデバイスを使用すると、シーンの照明が、オブジェクトのカラーを変更するのと同じように変更できる。256色モードでは、RGBデバイスをディザリング処理すると最適な結果が得られる。
制御キーは次のとおりである。
T 前方 R 後方 Z 現在の選択アイテムを前方に移動 X 現在の選択アイテムを後方に移動 Ctrl+G グーローシェーディング Ctrl+F フラットシェーディング Ctrl+D ディザ(トグル) 矢印キー 左/右/上/下に移動 Del 現在の選択範囲を削除
必要なライブラリ
- Ddraw.lib
- D3drm.lib
- Comdlg32.lib
- Winmm.lib
- Msvcrt.lib
トップに戻る
© 1999 Microsoft and/or its suppliers. All rights reserved. Terms of Use.