法線ベクトルの生成とスムージング

次は光源計算にいきたいところですが、メタセコイアのデータには法線ベクトルが含まれないためポリゴン形状から法線ベクトルを計算で求め、スムージングを行います。
メタセコイア以外の法線ベクトルが出力されるモデリングツールを使えばいいのですが、今後必要になるかもしれなので計算処理を作っておきます。

法線ベクトルの生成とスムージング
法線ベクトルの生成とスムージング

続きを読む 法線ベクトルの生成とスムージング

3Dモデルデータフロー考察&とりあえずmqoファイル描画2

mqoのマテリアル(テクスチャと色)を反映して描画してみる。少しDirectX11プログラミングが複雑になってきたので、3Dモデルデータの扱い方について、大まかなデータフロー(仮)を考えてみる。
3Dモデルの描画処理は、そのデータフロー(仮)に沿って作成する。

とりあえずmqoファイル表示2
とりあえずmqoファイル表示2

続きを読む 3Dモデルデータフロー考察&とりあえずmqoファイル描画2

WordPressでSVG形式の画像表示

WordPressでSVG(Scalable Vector Graphics)画像の表示に挑戦してみる。
SVGファイルをアップロードしてimgタグで他の画像と同様に記述し表示……表示されない。やっぱりまだ一般的な画像フォーマットではないので何か設定が必要のようです。
WordPressのSVGに関連するプラグインをインストールしてみるが、うまくいかない。もっと調べてみると、どうやらサーバーの設定(MIME Type)も必要のようです。それと、IE9では表示関連に問題があり対策が必要。
今後、プログラムの説明で図が必要なときは、SVG画像を使う予定です。

SVG画像の表示(WordPress日本公式キャラクター「わぷー」)
WordPress日本公式キャラクター「わぷー」

続きを読む WordPressでSVG形式の画像表示

WCHARって何ですか? 文字列の変換

これまでchar型でしか文字列を扱ったことがなかったので、DirectXTexの画像ファイル読み込みでLPCWSTR(const WCHAR*)という型を見ても特に気にせず、L”文字列”と書けばいいやぐらいしか考えてませんでした。しかし、リテラルではなくconst char*のファイルパスを渡そうとするとコンパイルエラー、どうやら簡単に型のキャストで済むようなものではないらしい。

WCHAR( wchar_t )とは
Wikipedia ワイド文字
その他、ググって調べてみた。

文字列の内部表現が違うので、テキストファイル(char)から取得した文字列をそのままでは使えず、変換する必要があるようです。「wchar_t = 1文字」とは限らないので取扱いに注意(なんか中途半端な文字型のような気がする)。
C++11ではchar16_tやchar32_tという文字型があるので、今後慎重に文字列型の扱い方を考えていきたい。

文字列の変換方法を調べていくつか作成してみました。
続きを読む WCHARって何ですか? 文字列の変換

boost spirit qiでmqo(メタセコイア)ファイル解析&とりあえず描画

ポリゴンが描画できるようになったので、今度はモデルデータファイルを読み込んで表示してみる。モデルデータは、データ作成と解析が簡単にできるmqoファイル(メタセコイアの出力ファイル、テキスト形式)を使用する。

とりあえずmqoファイル表示
とりあえずmqoファイル表示

続きを読む boost spirit qiでmqo(メタセコイア)ファイル解析&とりあえず描画

DirectX11 スマートポインタ活用 BoostとC++11

これまでプログラムしていて、これは危険かもしれないと感じるソースコードがありました。

これのback_buff->Release();
GetBufferで取得したテクスチャを使用後Releaseが必要ですが、書き忘れる自信があります。というか忘れてました。単純なプログラムであればVisualStuioのデバッグですぐにリークが検出され修正個所もすぐに発見できますが、複雑になってくるとそうはいきません。
というわけで、スマートポインタをつかって自動的にRelease関数を呼ぶようにします。

続きを読む DirectX11 スマートポインタ活用 BoostとC++11