3Dモデルをワイヤーフレームで描画する
その他のテクニックとして、3Dモデルをワイヤーフレームで描画する方法を紹介します。骨格が透けて背面が描画されることにより、奥行のある3Dらしさを演出できます。
private void OnDraw(object sender, GameTimerEventArgs e) { // 画面を黒色で塗り潰します SharedGraphicsDeviceManager.Current.GraphicsDevice.Clear(Color.Black); // ワイヤーフレームの表示有無を設定します if (showWireFrameCheckBox.IsChecked.Value) { SharedGraphicsDeviceManager.Current.GraphicsDevice.RasterizerState = new RasterizerState() { FillMode = FillMode.WireFrame, CullMode = CullMode.None, }; } … }
上記のコードでは、GameTimer.OnDrawイベント内において背景色を黒色に設定し、チェックボックスがオンである場合に、3Dモデルをワイヤーフレームで描画するように設定します。具体的には、GraphicsDevice.RasterizerStateプロパティを利用することにより、ポリゴンを面ではなく線として描画し、普段は描画されない裏側のポリゴンも含めて描画するように設定します。上記のコードを実行してGamePageに遷移し、「ワイヤーフレームを表示」チェックボックスをオンにすると、以下のように3Dモデルがワイヤーフレームで表示されます。
![実行結果](http://cz-cdn.shoeisha.jp/static/images/article/6374/6374_result_app.gif)
これにより、冒頭で紹介した3Dアプリケーションが完成しました! この3Dアプリケーションが何なのか、筆者にもよく分かりません。でも、なんかカッコイイ! そう思わせる表現力もまた、3Dアプリケーションの大きな魅力ではないでしょうか?
さいごに
いかがでしたでしょうか? 全4回に渡り、Silverlight/XNAを基盤として3Dアプリケーションを開発する方法をご紹介しました。ご覧いただいたように、Silverlight/XNAという最新のテクノロジを利用することで、SilverlightとXNAを相互に連携させられるようになります。また、3DCGソフトウェアを利用した3Dモデルの作成や、3Dモデルの描画処理に関しても、決して敷居の高いものではないということが、ご理解いただければと思います。
もちろん、本連載でご紹介した方法は、数ある開発方法の一例に過ぎません。ですが、3Dアプリケーションを開発するための一助としていただけましたら幸いです。なお、今回作成した3Dアプリケーションは、ページ上部のリンクからダウンロードできます。ぜひ実際に、Windows Phoneで3Dアプリケーションが快適に動作する様子をご覧ください。
それでは、最後までご覧いただき誠にありがとうございました! またどこかでお目に掛かれることを願って、最後は「3本締め」ならぬ「3どうぃ~~~ん締め」でお別れしましょう!
…と思いましたが、動画はすでに削除されてしまったようです。