D3DX 8.0b リリースApril 13, 2001 | |
D3DX 8.0b がリリースされました、これは DirectX 8.0 Graphics の D3DX ライブラリのバグフィックス版です。D3DX ライブラリにあった問題点をいくつか解決しており、機能拡張はありません。このライブラリはスタティックなので、修正を反映するにはアプリケーションを再ビルドする必要があります。
日本語環境で一番影響が大きいのは、D3DXCreateText の UNICODE サポートにより Windows 2000 上で 日本語が表示が可能になったことです (Windows 95/98/Me では システム側の UNICODE サポートがありませんのでこの機能は利用できません)。これまではこの関数に日本語を入れても文字化けしていましたが、このリリースでは正しい日本語のメッシュが生成されるようになりました。UNICODE を使用するときは #define UNICODE の宣言を忘れないでください。tchar.h を UNICODE で使う際には #define _UNICODE も必要になります。サンプルコードをダウンロードして参照してください (このサンプルコードは Windows 95/98/Me では動作しません)。
Text3D サンプルコードをダウンロードする。
サンプル コードについての注意:
- DirectX 8 SDK がインストールされていることを前提とし、動作は Microsoft Visual Studio 6.0 SP5 で検証されています。
- DirectX 8 SDK の Graphics フレームワークとユーティリティ (d3dapp.cpp、d3dutil.cpp、dxutil.cpp) を使用しており、これらのファイルは DirectX 8 SDK がデフォルトの位置 (C:\mssdk) にインストールされていると仮定しています。違った場所にインストールしている場合は各ファイルのプロパティからそれぞれの場所を指定してビルドして下さい。
- Visual Studio のインクルード パスに Graphics フレームワークとユーティリティのパスを追加してください。デフォルトでは C:\mssdk\samples\Multimedia\Common\Include です。手順は [ウィンドウ」 → [オプション] → [ディレクトリ] タブ の [ディレクトリ] にこのパスを追加します。
以下はこのリリースに添付されている Readme の日本語版です。
D3DX 8.0b Readme
本リリースは DirectX 8.0 にある D3DX ライブラリのバグ フィックス版です。D3DX はスタティック ライブラリなので、バグ フィックスを反映させるには、ローカルコピーを置き換えて、再コンパイルする必要があります。
バグ フィックス
以下は本リリースで修正されたバグのリストです。その影響する機能ごとに分類してあります。
コア
- D3DXCreateTextureFromFileEx は IE 5.0 が生成した 16 bit BMP をロードでき
- D3DXCreateText 関数は UNICODE をサポートできるようになった。
- すべての D3DX 関数はリソースのロック時に D3DLOCK_NOSYSLOCK を使うようになった。
エフェクト
- D3DXCreateEffectFromFile(A or W) はエラー時に D3DXERR_INVALIDDATA を返すようになった。
- エフェクト コンパイラはベクトルを正しく扱うようになった。
- シェーダ定数をエフェクト内の行列にセットするとき、転置を行うようになった。
- 頂点シェーダやピクセル シェーダをエフェクト内に NULL で設定することが可能になった。
メッシュ
- ID3DXMesh::GenerateAdjacency() はゼロ以外のイプシロン パラメータで動作するようになった。イプシロンがゼロ以外のとき、イプシロンより小さい距離を持つすべての頂点は同じ点を共有しており、隣接生成時に同じ位置として扱われる。
- ID3DXMesh::CloneMeshFVF は D3DFVF_XYZRHW のメッシュで FAIL するようになった。
- ID3DXMesh::DrawSubset は有効なら 32bit 描画にハードウェアを使用するようになった。
- Calls to ID3DXMesh::Optimize の SHAREVB フラグをセットした呼び出しは動作するようになった。
- ID3DXSkinMesh::ConvertToIndexedBlendedMesh はいくつかのバグをフィックスした。
- ID3DXSkinMesh::ConvertToBlendedMesh はいくつかのバグをフィックスしパフォーマンスを改善した。
- ID3DXSkinMesh::ConvertTo* 呼び出し前の ID3DXSkinMesh::GetMaxVertexInfluences 呼び出しは動作するようになった。
- ID3DXSPMesh::ClonePMesh は 65,536 面以上の 32bit メッシュで動作するようになった。
- D3DXSaveMesh と D3DXLoadMesh* 関数は 3D テクスチャ座標を正しく処理するようになった。
- D3DXLoadMesh* は D3DMATERIAL8 を正しく初期化するようになった。
- D3DXLoadMesh* は VertexColors テンプレートの重複したエントリを処理するようになった。
- D3DXLoadMesh* 関数は .X ファイル内に殻のメッシュテンプレートを発見したことを示す D3DXERR_LOADEDMESHASNODATA を返せるようになった。
- D3DXCleanMesh は複数属性メッシュで正しく動作するようになった。
- D3DXIntersectMesh は 32 bit メッシュを処理するようになった。
- (Windows) decimal separator がポイントではないとき、テキスト フォーマット内のエフェクト ファイルと X ファイルが動作するようになった。
テクスチャ
- ボックス フィルタは偶数サイズのソースサーフェイスを処理するようになった。
サンプル
- SkinnedMesh サンプルに多くの改善とバグフィックスが行われた。
- SkinnedMesh サンプルはパレットスキニング Caps を無視しないようになった。
含まれているファイル
- D3dx8d.dll
- D3dx8mesh.h
- D3dx8.lib
- D3dx8d.lib
- D3dx8dt.lib
- Skinnedmesh.exe
- Skinnedmesh.cpp
- Skinnedmesh.h
- Mload.cpp
- Mdraw.cpp
インストール手順
次の手順でこの D3DX リリースをインストールすること。
- DirectX 8.0 SDK がインストールされていなければならない。もしインストールされていないなら、ダウンロードすること。次の手順では SDK が C:\mssdk にインストールされていると仮定する。DirectX 8.0 SDK が実際にインストールされているパスに読み替えてほしい。
- temp ディレクトリ (例えば C:\temp) で ZIP ファイルを展開する。
- 3 c:\mssdk\lib にある d3dx8.lib、d3dx8d.lib、d3dx8dt.lib の名前をそれぞれ変更して、d3dx8.lib.old d3dx8d.lib.old d3dx8dt.lib.old にする。元のライブラリのバックアップが必要なければこのステップは飛ばしても良い (推奨しない)。
- c:\temp\d3dx8mesh.h を c:\mssdk\include にコピーする。
- d3dx8.lib、d3dx8d.lib、d3dx8dt.lib を c:\mssdk\lib にコピーする。
- skinnedmesh.cpp、skinnedmesh.h、mload.cpp、mdraw.cpp を c:\mssdk\samples\multimedia\direct3d\skinnedmesh にコピーする。
- c:\temp\skinnedmesh.exe を c:\mssdk\samples\multimedia\direct3d\bin にコピーする。
- Win9x については c:\windows を OS ディレクトリとすると、d3dx8d.dll を c:\windows\system にコピーする。Win2K については、c:\winnt を OS ディレクトリとすると、d3dx8d.dll を c:\winnt\system32 にコピーする。
- すべての Direct3D サンプルを再ビルドする。
- D3DX8 を使用しているアプリケーションを再ビルドする。
置き換わるライブラリ
| ファイル | DirectX 8.0/8.0a (dated 10/20/2000) | DDirectX 8.0b (dated 3/14/2001) |
| D3dx8.lib | 1,545,750 bytes | 1,597,942 bytes |
| D3dx8d.lib | 40,142 bytes | 40,142 bytes |
| D3dx8dt.lib | 1,823,620 bytes | 1,869,126 bytes |
| D3dx8d.dll | 504,320 bytes | 522,752 bytes |
ページのトップへ