最新 Visual Studio と DirectX 9.0 Ex で戦う 3D プログラミング

Similar documents
BricRobo V1.5 インストールマニュアル

Microsoft PowerPoint - 1_コンパイラ入門セミナー.ppt

目次 はじめに 4 概要 4 背景 4 対象 5 スケジュール 5 目標点 6 使用機材 6 第 1 章 C# 言語 7 C# 言語の歴史 7 基本構文 8 C 言語との違い 9 Java 言語との違い 10.Netフレームワーク 10 開発資料 10 第 2 章 Mono 11 Monoの歴史 1

コンピュータグラフィックス

NetworkVantage 9

「RAD Studio XE5によるマルチ言語/マルチデバイス開発の進め方」

ピクセル同期を利用した順不同半透明描画 (更新)

図 1:[ バージョン情報 ] ウィンドウ 図 1 からわかるとおり 本稿は Visual Studio Community 2017 Ver をもとに執筆していま す 3. 本書相当のテンプレートの作成 Ver.15.7では 本書で利 しているテンプレートはなくなってしまいましたが

24th Embarcadero Developer Camp

インテル(R) Visual Fortran コンパイラ 10.0

2 / 8 オンデマンドダウンロード機能 を使用するときに次の制約があります 1. インターネットに接続されていない ( オフライン ) 場合は OneDrive エリアのみにあるファイルを開くことはできない 2.OneDrive エリアからダウンロードが完了するまでいくらか待たされるし ( 特に大

Microsoft Word - StartVisualC++2008EE.doc

Anniversary Update の手動アップデート PC 資料 年 8 月 2 日 Microsoft から Windows 10 2 回目の大型アップデート Windows 10 Anniversary Update が提供されました 多くのセキュリティ修正の

Microsoft Word - VisualC++利用法2.doc

Visual Studio 2017 RC インストール & ファーストステップガイド 2016 年 11 月 16 日 (V1.0)

7th CodeGear Developer Camp

内容 はじめに... 3 セキュリティと仕様変更について... 3 Windows10 と IE Java のインストール... 3 Java が入っていない場合... 4 Java が古い場合... 7 Java の設定が必要な場合... 8 Mac と Safari の場合...

◎phpapi.indd

Unite Tokyo DS.key

ArcGIS Runtime SDK for .NET アプリケーション配布ガイド

MultiLABELISTOCX と MultiLABELISTV4 MLOCX は MLV4 のレイアウト発行機能を継承しています したがって MLV4 の振分発行やプ リセット発行を使用するための登録情報は使用できません MLV4 のレイアウト管理でレイアウトを作成すると 拡張子が m lay

目次 初めに... 3 実習用 PC... 3 USB ケーブル... 4 Visual Studio 2015 のインストール... 4.NET Micro Framework SDK のインストール... 6 Azure SDK のインストール... 9 補足 NET Micro F

Steinberg 社 - VST3 対応シンセサイザービルド環境テンプレート (Windows 版 ) Quick 説明書 はじめにこの度は Steinberg 社 - VST3 対応シンセサイザービルド環境テンプレートをダウンロードして下さり 誠にありがとうございます 本説明書はビルド環境テンプ

Microsoft Word - Windows10 活用(1版)

実習を行う上での心構えについて

1. 開発ツールの概要 1.1 OSS の開発ツール本書では OSS( オープンソースソフトウェア ) の開発ツールを使用します 一般に OSS は営利企業ではない特定のグループが開発するソフトウェアで ソースコードが公開されており無償で使用できます OSS は誰でも開発に参加できますが 大規模な

kantan_C_1_iro3.indd

Visual Studio with Cordova クロスプラットフォーム開発の全貌

NEC COBOL Enterprise Edition Developer クライアントライセンス V2.0 COBOL Enterprise Edition Developer クライアントライセンス V2.0 (1 年間保守付 ) COBOL Enterprise Edition Develo

fmserver_book.indd

平成 30 年度 プログラミング研修講座 岩手県立総合教育センター

Xamarinインストール手順書_

2 / /08/07 16:53 図 2 スマートフォンの影響を きく受けたデスクトップ環境 2012 年 3 29 にリリースされた Ubuntu LTS ベータ 2 のデスクトップ画 です このようなデスクトップ環境は スマートフォンやタブレットで成功している機能などを取

Windows10の新機能

Microsoft Word - Python利用環境構築ガイド_ docx

Maple 18 スタンドアロン版インストール手順

統合開発環境CubeSuite+ V へのバージョンアップのお知らせ

PowerPoint プレゼンテーション

コンピュータグラフィックスS 演習資料

ゲームエンジン班最終報告 澤田進平 開発動機そもそも 今年度の開発する予定のものはゲームエンジンではなかった 1 学期に主張したことは 汎用的なノードグラフエディターの開発 であった 当時 必要に迫られていたのが開発動機である 一応 夏休み中にある程度開発したものがこれである C

Unite_Japan_2014_Technical_Session

自宅でJava言語の開発環境を作る方法

Microsoft Word - CMSv3マニュアル-STB編(WindowsPC).docx

RW-5100 導入説明書 Windows7 用 2017 年 7 月 シャープ株式会社

IronPython による柔軟なゲーム開発 筑波大学 AmusementCreators

ArcGIS Runtime SDK for WPF インストールガイド (v10.2.5)

Microsoft Word - CygwinでPython.docx

Microsoft Visual Studio 2010 Professional Data Sheet

発環境を準備しよう2 章開Eclipseをインストールしようそれでは Eclipseをセットアップしましょう Eclipseは Eclipse Foundationのサイトからダウンロードできます ダウンロードのページを開くと いく

25th Developer Camp

コンピュータグラフィックス第8回

Microsoft* Windows* 10 における新しい命令セットの利用

Visual C++ 使用 C 言語 ワンポイント講座 デバッガで言語文法を理解する M.NET.SC デバッガで言語仕様 ( 文法 ) の実体 ( コンパイラの解釈と振る舞い ) を理解する プログラムでできることを習得する

RW-4040 導入説明書 Windows 7 用 2017 年 7 月 シャープ株式会社

1. Java Development Kit ORACLE のサイトから JAVA の開発キットをダウンロードします バージョンは JDK の最新版 ( 現在 8u45) が必要です また定期的に更新されますが そのたびに入れ替えることをお勧めします JDK のダウンロード ORACLE サイト

Install / Protect / Monetize InstallShield 全機能 データシート プロフェッショナルなインストールの作成 PREMIER PROFESSIONAL EXPRESS MSIX パッケージ サポート フレームワークをサポート Windows Installer(

5-3- 基統合開発環境に関する知識 1 独立行政法人情報処理推進機構

CommonMP Ver1.5 インストール手順書 目 次 1. 概要 目的 必要動作環境 ハードウェア構成 ソフトウェア構成 CommonMP のインストール手順 利用フロー

Microsoft Word - VB.doc

SureFile for 達人プラスインストールマニュアル V1.7 本マニュアルでは アイスペシャル C-Ⅱ C-Ⅲ 専用画像振り分けソフト SureFile for 達人プラスについて 下記に示した項目を説明しています SureFie( 標準版 ) のアンインストール インストール 起動 設定の

Windowsユーザでも 手軽に作れるiPhoneアプリ

Microsoft Word - Writing Windows Installer's DLL.doc

ポリシーマネージャ       Linux版                                 集中管理環境の新規構築

Maple 18 ネットワーク版インストール手順

プリンタドライバのバージョンと パッケージのバージョン バージョン には プリンタドライバ単体のバージョンとプリンタドライバ群を表すパッケージバージョンの 2 通りあります プリンタドライバのバージョンは プリンタドライバプロパティを開いて確認することができます 1. プリンタフォルダを開きます 2

ご利用のコンピュータを設定する方法 このラボの作業を行うには 事前設定された dcloud ラボを使用するか 自身のコンピュータをセットアップします 詳細については イベントの事前準備 [ 英語 ] とラボの設定 [ 英語 ] の両方のモジュールを参照してください Python を使用した Spar

ミガロ.製品 最新情報

JACi400のご紹介~RPGとHTMLで簡単Web化~

PCL6115-EV 取扱説明書

CubePDF ユーザーズマニュアル

Doxygenを用いた効率的な プログラム仕様書の作成

V5.0 V4.2 から V5 への 変更点 1.1 版 2010 年 03 月 26 日

ゲームプログラミング講習 第0章 導入

XNA Framework

目次 第 1 章はじめに 取扱いについて 記載内容について... 6 第 2 章基本操作 Excel Online を開く ファイル ( ブック ) を作成する ファイル ( ブック ) を開く..

生存確認調査ツール

セットアップカード


使用する前に

ARCHITREND ZERO バージョンアップ/オプション追加編

VPS マニュアル p. 1

1. インストール方法 マクロテンプレートをダブルクリックして開くと 図 1 のような セキュリティ警告 が表示されること があります 図 1 セキュリティの警告 (Windows 7 + Word 2010) テンプレートが開かれて 図 1 の セキュリティの警告 メッセージが表示されます コンテ

目次 1. はじめに 本書対象者 PALRO のアプリケーションについて Ubuntu 8.04LTS の入手について Linux 上での開発環境の構築 事前準備 Ubuntu のインストール..

インテル® Parallel Studio XE 2013 Windows* 版インストール・ガイドおよびリリースノート

PSQL v12 新機能のご紹介 ~ 認証要件変更に伴う運用の見直し ~ 株式会社エージーテック 2015 年 1 月 13 日

Microsoft PowerPoint - kougi2.ppt

インテル® Parallel Studio XE 2019 Composer Edition for Fortran Windows : インストール・ガイド

Maple 12 Windows版シングルユーザ/ネットワークライセンス

Microsoft Word - JDBCドラバーの設定.doc

Microsoft Word - NaviPortalFAQ-master.doc

事前準備マニュアル

目次はじめに 必要システム環境 インストール手順 インストール前の注意点 インストールの準備 (.NET Framework3.5 SP1 のインストール ) ライセンスの登録 初期設定情報の入力... 8

テキストファイルの入出力1

無償期間中に Windows10 に アップグレードをお考えのお客様へ 現在 御太助.net で使用している SQL Server のバージョンは Windows10 ではその動作が保証されていません そのため 御太助.net を WIndows10 で使用するにあたっては SQL Server の

D シンクライアントデバイス Wyse シリーズを利用した 仮想化環境での EVE MA 顔認証 指静脈認証の実現 株式会社ディー ディー エス 営業本部販売推進部営業技術課 1 Wyse シリーズとの連携デル株式会社が取り扱うシンクライアントデバイス Wyse シリーズ( 以下 Wys

駅すぱあとWebサービス for Unityを使った 交通機関情報の活用 竹田龍介 株式会社ヴァル研究所 1

Intl WebStorm Google Chrome (64-bit) Node.js git for Windows 開発環境バージョンアップの影響 1 章変更なし 2 章変更なしソフトウェアのバージョン指定 3 章

SILAND.JP テンプレート集

『テクノス』V2プログラムインストール説明書

NEC Express5800 シリーズ COBOL Enterprise Edition クライアントライセンス V1 COBOL Enterprise Edition クライアントライセンス V1 (1 年間保守付き ) COBOL Enterprise Edition クライアントライセンス

Transcription:

次 第 1 章 はじめに 1 1.1 なぜ今 DirectX 9.0Ex なのか........................ 1 1.2 3D 数学について................................ 2 1.3 動作環境について............................... 2 1.4 DirectX の歴史................................ 3 1.5 本書での DirectX 9.0c............................. 4 1.6 サンプルコードについて............................ 4 第 2 章 DirectX 9.0Ex の世界へ 5 2.1 DirectX 9.0Ex のメリット.......................... 5 2.2 プロジェクトの準備.............................. 5 2.3 ウィンドウモードアプリケーション...................... 9 2.4 フルスクリーンアプリケーション....................... 16 2.5 仮想フルスクリーンのすすめ......................... 21 2.6 まとめ..................................... 27 第 3 章 ポリゴン描画の前の基礎知識 28 3.1 論理的なレンダリングパイプライン...................... 28 3.2 DirectX 9.0 (Ex) の論理的なレンダリングパイプライン........... 30 3.3 Vertex Shader と Pixel Shader........................ 30 3.4 まとめ..................................... 31 第 4 章 ポリゴンを描画する 32 4.1 DirectX Math................................. 32 4.2 シェーダーの準備............................... 35 4.3 3 形ポリゴンの描画............................. 38 4.4 teapot の描画................................. 47 4.5 まとめ..................................... 51 第 5 章 テクスチャを使う 52 i

次 5.1 画像からテクスチャを作成する........................ 52 5.2 テクスチャありの描画............................. 57 5.3 その他の形式 (DDS) について......................... 60 5.4 まとめ..................................... 61 第 6 章 配布について 62 6.1 リリースビルドを使う............................. 62 6.2 VC++ ランタイム問題............................ 63 6.3 DirectX に関する依存 DLL について..................... 64 6.4 デバイスロストへの対応............................ 64 6.5 まとめ..................................... 65 第 7 章 応 編 66 7.1 動的なシェーダーコンパイルへの対応..................... 66 7.2 ディファードレンダリング........................... 69 7.3 まとめ..................................... 75 第 8 章 DirectX 9.0 Ex 新機能の話 76 8.1 デバイスロストに関しての変更........................ 76 8.2 ソフトウェア頂点処理を無効化........................ 76 8.3 1 ビットサーフェース............................. 76 8.4 UpdateSurface での Depth/Stencil バッファの読み取り対応........ 77 8.5 リソースの共有................................. 77 8.6 システムメモリ内からテクスチャの 成.................... 78 あとがき 79 ii

第 1 章 はじめに この本を に取っていただき ありがとうございます この本は Microsoft Windows の環 境で動作する DirectX 9.0 ( 正確には DirectX 9.0Ex) を紹介するものです 1.1 なぜ今 DirectX 9.0Ex なのか 今さら DirectX 9.0 かという声が聞こえてきそうです 現在においては 最新のグラフィックス API だと DirectX 12 (D3D12) や Vulkan といったものがあります また歴史の い OpenGL の API ですら進化を続けて バージョン 4.6 まで到達しました 敢えてこれらの API を解説せず DirectX 9.0Ex を選んだかというと DirectX 9.0 はバランスのとれた扱いやすい 3D の API だと私は考えています 特に ゲームエンジンに頼らずに 3D のプログラミングをやってみたい という に適しています しかしながら 古い API であるが故に問題が多くあります この問題というのは 実 できる環境が少ないとか不具合とかそういったものではありません DirectX 9.0c に関してのプログラミングの情報は多いものの 現在においてはコンパイルできる状態で説明されているものは少ないかと思います こういった状況のため 現在の環境に合わせた DirectX 9.0c プログラミングの書籍を作成することにしました 今 DirectX 9.0c を Windows 10 の環境で触るという点で DirectX 9.0Ex を対象として説明を っていきます また よく問題に上がる作成したプログラムの配布に関しての話題も取り上げてみました 特に以下の点で悩んだことがある は この本の内容に納得してもらえると思っています 環境構築においての DirectX SDK の問題 近年の Windows.h との相性 D3DX が使えないことへの対処 算術系 シェーダーのコンパイル テクスチャの利 アプリの配布に関しての問題 d3dx_**.dll への依存 1

第 1 章はじめに 1.2 3D 数学について 対象読者この本の読者として DirectX 9.0 以降を触ったことはある DirectX 9 世代の開発環境構築に苦戦している DirectX 11 を触ったけど DirectX 9 世代が 軽だったと思っている DirectX 9.0 でもまだまだやれると思っている DirectX 9.0 Ex 初 者の を想定しています 特に 現在の最新環境で DirectX 9.0 プログラミング環境を構築する点で悩んでいる に最適です DirectX 9.0 の情報がインターネット上には数多くありますが 環境のセットアップに関しては現在は通 しないものがほとんどです この本では そういった部分を補うものとなっています 動作環境も Windows 10 を前提として DirectX 9.0 Ex を使 しています DirectX 9.0 Ex については情報も少ないので 使い についてはこの本が役 つものと信じています 1.2 3D 数学について 3D を扱うにあたり どうしても数学が必要になります といっても初めは 列というものを使 するといったこと 列の演算によりどのような動きになるのか といった点から感触を確かめていくのがよいかと思います ただし 列の演算については新旧変わりないため この本では説明を除外しています *1 この本では 列 の算術ライブラリを使うという点について説明を っています 1.3 動作環境について 本書が想定している開発環境については表 1.1 のようになっています いくつかのオープンソースを使 するため Git が必要となっています また実 環境については 実機を想定しています そして シェーダーモデル 3.0 というものが使 できる環境に限定しています ただ現在のハードウェアでは DirectX11 対応していないものが 当たらないレベルなので気にしなくても 丈夫だと思っています で リモートデスクトップ経由や 仮想環境の中での動作については本書の対象外となっております *1 ページ数も限られていますし 2

第 2 章 DirectX 9.0Ex の世界へ それでは早速 DirectX 9.0Ex の世界へ っていきましょう ここでは DirectX を初期化 して 画 を塗りつぶすアプリケーションの作成を 指していきます 2.1 DirectX 9.0Ex のメリット 学習によいバランスであると冒頭で説明しましたが 他のメリットについて説明していませんでした 実際のプログラミングに っていく前に よい点を述べておきます 基本的にはデバイスロストしない Windows 10 の環境では追加のインストールなしで使 できる従来の DirectX 9.0c では デバイスロストが容易に発 しました そして そのデバイスロストの対策としてのコードもそれなりに記述する必要がありました Windows 10 の環境と DirectX 9.0Ex の組み合わせでは 基本的にデバイスロストは発 しません よって今までのデバイスロストからの復帰コードが必要だった箇所は不要になります また Windows 10 では DirectX 9.0Ex は初期状態から使 可能です 追加のコンポーネントのインストールは不要です 昔は 最新の DirectX コンポーネントをインストールしてください と よく われたものでした これは D3DX というライブラリに依存したプログラミングをしたために引き起こされました 初期状態で DirectX 9.0Ex が使えるメリットを殺さないためにも D3DX を使 しないプログラミングをこの本では説明していきます 2.2 プロジェクトの準備 本章で作成するアプリケーションについてのプロジェクト設定について説明します プロジェクト名やアプリケーション名といったものは 各節での名前で作成してください 画像は後節のウィンドウアプリケーションで使 するもので表 しています Visual Studio 2017 を開いて 新しいプロジェクト を選択して作成します Visual C++ のカテゴリーの中にある Windows デスクトップ を選択します この中に Windows デスクトップウィザード という項 があります *1 これを使 します ( 図 2.1) *1 Windows デスクトップアプリケーション というプロジェクト構成もあって紛らわしいです 5

第 3 章ポリゴン描画の前の基礎知識 3.2 DirectX 9.0 (Ex) の論理的なレンダリングパイプライン 3.2 DirectX 9.0 (Ex) の論理的なレンダリングパイプライン 現在においてのレンダリングパイプラインを説明しましたが DirectX 9.0 では 頂点シェーダーとピクセルシェーダーしかプログラマブルな部分はありません い換えれば DirectX 9.0 においては この2つのシェーダーのこと以外を知る必要がありません DirectX 9.0 が出た当時と現在の論理的なレンダリングパイプラインが合っていないという点を考慮しつつ 現在の 語と摺り合わせながら 先ほどのパイプラインを再構成してみたものが図 3.2 となります 厳密には 致しなかったり 適 順序が変わる箇所もありますが 体こんな感じになります 図 3.2: DirectX9 レンダリングパイプライン 3.3 Vertex Shader と Pixel Shader シェーダーへの 出 の関係を図 すると図 3.3 のようになります 頂点シェーダーの場合の は頂点データ ( 位置 法線など ) ですが ピクセルシェーダーの場合には 各ピクセルにおける各属性情報となります また出 先も 頂点シェーダーはラスタライザへ ピクセルシェーダーはフレームバッファへと変わりますが 基本的に計算して結果を書き込むという動きは両者で同じです またそれ以外のアクセスできるユニットも変わりない感じです 30

第 6 章 配布について アプリケーションが出来たら配布して使ってもらうことになるでしょう このときに問題になるのが 分の 元では動くのに 相 先ではエラーが出てうまく動かないといった点です 本章では これについて注意すべきポイント 対応すべき内容についてまとめていきます 6.1 リリースビルドを使う 通常開発しているときには デバッグビルドを使 しています これはブレークポイントを設定して 変数の値を たり ステップ実 を ったりというときに都合のよいものとなっています しかし 配布時ではそういったものは不要です リリースビルドを使 すると デバッグに役 つ情報が削ぎ落とされ 最適化がかかり実 時のパフォーマンスがよくなります ビルドを切り替えるには 図 6.1 のようにプルダウンから構成を選び直すだけです 図 6.1: リリースビルドの選択 デバッグ情報 Visual Studio のプロジェクト設定では なぜか標準状態でリリースビルドでもデバッグ情報の 成が有効になっています 配布するときには デバッグ情報が完全に不要な場合もあるでしょう このときには リンカーの設定で デバッグ情報の 成 を " いいえ " に変更します このデバッグ情報が 成されたままだと 実 体にビルド時のファイルパス関連情報が埋まっていて ( もしかすると ) 恥ずかしい思いをすることがあるかもしれません 62