結果だけでなく過程も見てください

日々の奮闘を綴る日記です。

DirectX

DirectXのテクスチャをファイルからではなくオンメモリからロードする

DirectXでは、以下の方法でテクスチャをファイルからロードできます。 static const char* TEXFILE = "C:\\temp\\tex.dds"; IDirect3DDevice9* pDevice; // 各自作成しておいてね IDirect3DTexture9* pTexture = NULL; : D3DXCreateTextureFromFileEx( pDev…

小数の計算にはfloat型よりもdouble型を使おう(C/C++)

ゲームプログラミングでのお話です。ゲームプログラミングでは、通常キャラクターの速度や座標を小数で保持します。DirectXでは、これらの値を保持するためのベクトルクラスが定義されています。 D3DXVECTOR3などのクラスです。このクラスはx,y,zのメンバ変…

C#でゲームのマップエディタを作る (番外編)

最近ちょっと忙しくて更新ができていないのですが・・・。 とりあえず形になるところまで完成しましたので動画でアップします。 テストのリソースとして色々使ってますが、みんなにはナイショだよ(*・v-)☆ 機能 プロジェクトとして複数のマップを管理 マップ…

C#でゲームのマップエディタを作る (2)

前回記事の続きです。 http://d.hatena.ne.jp/taiyakisun/20120331#1333204146今回はピクチャボックスの描画を行います。 まずは、C#で変換行列を作成し、描画するコードを書くための肩慣らしとして、 エディタのグリッド線を描いてみましょう。頂点のフォー…

C#でゲームのマップエディタを作る (1)

自作ゲームのマップデータ(Luaスクリプト)を テキストエディタで編集するのがしんどくなってきたので マップエディタを作ることにしました。C#もGUIツールを作成するのも始めてなので 作成過程で学んだことを書いていきたいと思います。 間違いがあったらツ…

DirectXで円形ワイプエフェクト

言葉でどう表現していいかわからないのでタイトル名が正しいかわからないのですが、 要は下の図のようなエフェクトの作り方を説明します。実際のゲームで使われているのは、スーパーマリオワールドのゴール後とか、 スーファミのゼルダの伝説でダンジョンか…

実践的な衝突判定(AABB編)

自作ゲームに組み込んでいる衝突判定について、整理も兼ねてご紹介します。 説明を簡単にするために2D空間で説明します。 バウンディングボリューム バウンディングボリュームについては、容易に判定可能で実用的ということで 各軸に平行な四角形(以下の図の…

3D空間に2Dオブジェクトを描画するときにy座標だけ1ドット下にずれる(4)

さてさて。 今まで何回か題名の話を書いてきましたが、 結局なにをやりたいかっていうと、 テクスチャを貼り付けた板ポリゴンがズレなく ドットがつぶれることなく(UV値を正しく算出する)描画することでした。 で、色々調べたり聞いたりしたところ 1つのイメ…

3D空間に2Dオブジェクトを描画するときにy座標だけ1ドット下にずれる(2)

前回の続きです。原因?がわかりました。 環境なんかは前回の記事を参照してください。 原因は頂点座標の丸め誤差によるズレでした。 ここ、当たりはつけてたのですが透視変換後の値が どうなるのか理解が足りてなかったので気づかなかったのですT◇T PIX f…

3D空間に2Dオブジェクトを描画するときにy座標だけ1ドット下にずれる(1)

基本的な方法は以下のサイトの通りなのですが ●スクリーンにある2D板ポリゴンを行列で操作する http://marupeke296.com/DXG_No51_2DBillboardWithOperatingMatrix.html 今ワールド変換行列の平行移動で、どのように値を指定すれば 画面四隅ぴったりに2Dオブ…

DirectXでテクスチャに対してレンダリングを行う方法

通常、DirectXで3Dオブジェクトをレンダリングするときの レンダリング先はIDirect3DDevice9デバイスを作成したときに 一緒に作成されたバックバッファになります。 今回はレンダリング先をバックバッファからテクスチャに 変更する方法を紹介します。 まず…

プライバシーポリシー お問い合わせ