WPFで3D

■ その2 3Dモデルをコードから追加する       【1】 

前回 は3D基礎として、WPFにおける3Dにはどのような要素があるかを説明しました。
今回は、3Dモデルをソースコードから動的に追加する方法を説明します。


以下の画面をスタートにしています。 前回使用したサンプルから、ライトと3Dモデルを変更しています。
ソース
詳細はソースコードをご参照ください。

今回の結果はこのようになります。

プロジェクトファイルはこちら ソース
プロジェクトは以下の環境で作成しています。
Visual Studio 2010 C# / .NET Framework 4.0

・ソースコードの整理
その1で示したサンプルのように、Viewport3Dの中に全ての要素を記述すると、文字が非常に長くて見づらくなります。まず、リソースディクショナリを使用して、3Dモデルとライトを別のXAMLファイルに移動します。

整理後のViewport3D要素は以下のような記述になります。

-- MainWindow.xaml --
<Viewport3D>
    <Viewport3D.Camera>
       <PerspectiveCamera Position="0,0,1.5" LookDirection="0,0,-1" FieldOfView="80"
    </Viewport3D.Camera>
    <ContainerUIElement3D>
       <ModelUIElement3D Model="{StaticResource ResourceKey=starLight}"
       <ModelUIElement3D Model="{StaticResource ResourceKey=starModel}"
    </ContainerUIElement3D>
</Viewport3D>

リソースディクショナリにはModel3DGroup要素を記述します。また、Viewport3D を配置しているWindowで、Window.ResourcesにResourceDictionary.MergedDictionariesを宣言してリソースディクショナリを参照しています。

1   >> 次へ

最新号はこちらから