サンプル

この項では、Microsoft® Direct3D®保持モードのサンプルについて解説する。各サンプルの要約では、サンプルごとに、Microsoft DirectX®ソフトウェア開発キット (SDK) にデフォルトでインストールされるディレクトリとサンプルの簡単な説明を示してある。

Direct3D保持モードのサンプルは、RMBegin1RMBegin2RMEnumViewerを除き、すべてのサンプルがRMMainヘルパコードを使用している。RMMainヘルパコードを使用する全サンプルは、Rmmain.cppによってアプリケーションのメインウィンドウを提供し、Rmmain.rcによってメニューとアクセラレータを提供する。これらのサンプルは、Ddraw.libおよびD3drm.lib librariesにもリンクしている。サンプルの各ディレクトリには、Microsoft Developer Studioのプロジェクトファイル (.dsp) がインクルードされる。.dspファイルは、Developer Studioで開き、サンプルを構築するために使用できる。

Direct3D保持モードを初めて使用する場合は、最初にRMBegin1RMBegin2RMEnumEggGlobeHier1、およびTex1サンプルを参照すること。

次の項目では、サンプルコードを順を追って詳述している。

サンプル一覧

一部のDirectX Foundation SDKサンプルは、複数の技術を使用している。これらのサンプルを参照して、各技術がどのように連係しているか確認することができる。たとえば、DS3dView DirectSoundサンプルは、Direct3D保持モードの3DオブジェクトであるViewerサンプルの単純な拡張である。DS3dViewを使用すると、サウンドをオブジェクトにアタッチし、オブジェクトを3次元空間で移動できる。


Egg

パス

mssdk\samples\multimedia\d3drm\src\Egg

説明

このサンプルは、単一のメッシュオブジェクトで構成した単純なDirectXファイルをロードする。Egg.xはDxsdk\Mediaディレクトリに格納されている。このサンプルは、シーンの照明の初期化、メッシュファイルのロード、シーン上のeggフレームの作成、メッシュのフレームへの追加、フレームの位置、方向、回転の設定を行う。サンプルは、IDirect3DRM3 (CreateFrame、CreateLightRGB、CreateMeshBuilder)、IDirect3DRMFrame3 (SetPosition、AddLight、SetRotation、AddVisual、SetOrientation)、IDirect3DRMMeshBuilder3 (Load) のメソッドを使用している。

必要なライブラリ

必要なRMMainコード


Faces

パス

mssdk\samples\multimedia\d3drm\src\Faces

説明

このサンプルでは、メッシュオブジェクトを1回につき1つの面を作成する。

必要なライブラリ

必要なRMMainコード


Fly

パス

mssdk\samples\multimedia\d3drm\src\Fly

説明

このサンプルは、アニメーションを使用して、カーブしたパスに沿って、宇宙船の位置を設定する。

必要なライブラリ

必要なRMMainコード


Globe

パス

mssdk\samples\multimedia\d3drm\src\Globe

説明

このサンプルは、テクスチャを伴う単純な単一のメッシュで構成したDirectXファイルをロードする。これは以下のメソッドを使用する。

必要なライブラリ

必要なRMMainコード


Hier1

パス

mssdk\samples\multimedia\d3drm\src\Hier1

説明

このサンプルは、2つのメッシュで構成する単純な階層を作成し、フレームの概念を具体的に示す。シーンの照明を初期化し、2本のメッシュファイルをロードし、フレーム階層 (フレーム内のフレーム) 作成する。Hier1はテクスチャをロードし、メッシュにラッピングし、メッシュをフレームに追加し、フレームの位置、方向、回転を設定する。

必要なライブラリ

必要なRMMainコード

参照

Hier2


Hier2

パス

mssdk\samples\multimedia\d3drm\src\Hier2

説明

このサンプルは、4つのメッシュで構成する単純な階層を具体的に示している。

必要なライブラリ

必要なRMMainコード

参照

Hier1

Morph

パス

mssdk\samples\multimedia\d3drm\src\Morph

説明

このサンプルは、補間の使用法を示している。

必要なライブラリ

必要なRMMainコード

参照

IDirect3DRMInterpolator

Quat

パス

mssdk\samples\multimedia\d3drm\src\Quat

説明

このサンプルは、クォータニオンを使用して、空間内の2本のベクトルを補間する。

必要なライブラリ

必要なRMMainコード


RMBegin1

パス

mssdk\samples\multimedia\d3drm\src\RMBegin1

説明

このサンプルは、Direct3D保持モードのデフォルトデバイスの作成、DirectXファイルからのメッシュのロード、照明の追加、メッシュオブジェクト回転の「要点」を示している。サンプルコード全体に丁寧なコメントを付けて、コードの目的を説明している。

このサンプルは、大部分のDirect3D保持モードサンプルと異なり、RMMainヘルパファイル、Rmmain.cpp、Rmmain.rcが提供する拡張メニューを使用しない。

RMBegin1サンプルのコードの詳細は、「オブジェクトの回転: RMBegin1サンプル」を参照すること。

RMBegin1サンプルコードから構築したサンプルについては、RMBegin2を参照すること。

必要なライブラリ


RMBegin2

パス

mssdk\samples\multimedia\d3drm\src\RMBegin2

説明

このサンプルは、フレーム階層の「要点」を示している。DirectXファイルから3つのオブジェクトをロードし、スケーリング、照明、マッピングを行う。3つのオブジェクトは、太陽、地球、月を表し、月は地球のまわりを、地球と月は太陽のまわりを回る。このサンプルは、RMBegin1サンプルで使用したコードから構築したものである。RMBegin1の上により複雑なシーンを構築し、ウィンドウサイズを変更し、WM_ACTIVATEとWM_PAINTメッセージを処理している。サンプルコード全体に丁寧なコメントを付けて、コードの目的を説明している。

このサンプルは、大部分のDirect3D保持モードサンプルと異なり、RMMainヘルパファイル、Rmmain.cpp、Rmmain.rcが提供する拡張メニューを使用しない。

RMBegin2サンプルのコードの詳細は、「フレーム階層:RMBegin2サンプル」を参照すること。

必要なライブラリ


RMEnum

パス

mssdk\samples\multimedia\d3drm\src\Rmenum

説明

これは、デバイスを列挙して、最適なデバイスを選択し、Direct3D保持モードデバイスを作成する「要点」を示したサンプルである。このサンプルではレンダリングはまったく行わない。コードを読みやすくするために、デバイスの列挙だけを扱っている。また、ユーザーがメニューからデバイスを選択できるようにする。

このサンプルは、大部分のDirect3D保持モードサンプルと異なり、RMMainヘルパファイル、Rmmain.cpp、Rmmain.rcが提供する拡張メニューを使用しない。Rmerror.cファイルのエラー報告機能を使用している。

RMEnumサンプルのコードの詳細は、「デバイスの列挙:RMEnumサンプル」を参照すること。

必要なライブラリ


RMMain

パス

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] ダイアログボックスを提供する。


Shadow

パス

mssdk\samples\multimedia\d3drm\src\Shadow

説明

このサンプルはメッシュオブジェクトの影を作成する。

必要なライブラリ

必要なRMMainコード


Tex1

パス

mssdk\samples\multimedia\d3drm\src\Tex1

説明

このサンプルは、円柱マッピングを使用してテクスチャをマッピングした単純なメッシュオブジェクトをロードする。

必要なライブラリ

必要なRMMainコード

参照

Tex3Tex4Tex5

Tex3

パス

mssdk\samples\multimedia\d3drm\src\Tex3

説明

このサンプルは、フレームに関連した球体マッピングを使用して、特殊効果のテクスチャラッピングを使用する。

必要なライブラリ

必要なRMMainコード

参照

Tex1Tex4Tex5

Tex4

パス

mssdk\samples\multimedia\d3drm\src\Tex4

説明

このサンプルは、カメラに関連した球体マッピングを使用して、特殊効果を出すためにテクスチャラッピングを使用する。テクスチャは、シーンの背景としても使用されている。

必要なライブラリ

必要なRMMainコード

参照

Tex1Tex3Tex5

Tex5

パス

mssdk\samples\multimedia\d3drm\src\Tex5

説明

このサンプルは、クロムマッピングのラッピング、およびデカールとしてテクスチャマッピングを使用している。

必要なライブラリ

必要なRMMainコード

参照

Tex1Tex3Tex4

Trans

パス

mssdk\samples\multimedia\d3drm\src\Trans

説明

このサンプルは、透明なテクスチャマッピングの実例を示している。立体の球を回転させ、部分的に透明な格子模様の立方体2つを個別に回転して、球体と交差させる。サンプルは、フレーム、照明、メッシュビルダ、メッシュ、テクスチャ、マテリアルを作成する。IDirect3DRMTexture3::SetDecalTransparencyを呼び出してデカールを透明にする。

必要なライブラリ

必要なRMMainコード


Uvis

パス

mssdk\samples\multimedia\d3drm\src\Uvis

説明

このサンプルは、Direct3D保持モードでDirect3Dを使用する方法を示している。Direct3D保持モードシーンのビジュアルとして、Direct3D直接モードの実行バッファを使用する方法を示す。

必要なライブラリ

必要なRMMainコード


Viewer

パス

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 現在の選択範囲を削除

必要なライブラリ


トップに戻る トップに戻る
© 1999 Microsoft and/or its suppliers. All rights reserved. Terms of Use.