TWL-System G3Dライブラリ 更新履歴
■ インデックス
追加・変更された機能
不具合修正
追加・変更された機能
不具合修正
追加・変更された機能
追加・変更された機能
不具合修正
追加・変更された機能
不具合修正
追加・変更された機能
不具合修正
追加・変更された機能
不具合修正
不具合修正
不具合修正
不具合修正
追加・変更された機能
不具合修正
追加・変更された機能
不具合修正
追加・変更された機能
不具合修正
追加・変更された機能
不具合修正
追加・変更された機能
不具合修正
追加・変更された機能
不具合修正
追加・変更された機能
不具合修正
追加・変更された機能
不具合修正
■ 2.2.0 PRでの変更点
ノート 83-R01: (コンバータ) オプションの追加
ジョイント、マテリアル、シェイプの最大数をチェックするオプション
-maxjnt、-maxmat、-maxshp を追加しました。
ノート 83-R02: (ライブラリ) 範囲外のフレームをセットした時の挙動の統一
各種アニメーションにおいて範囲外のフレームが呼ばれた時に、種類によってアサートされたり最終フレームに丸め込むなど処理が統一されていなかったため、最終フレームに丸め込むように統一しました。
ノート 83-R03: (ドキュメント) g3dcvtr_UsersManualに警告/エラー一覧の追加
警告/エラー一覧を追加しました。
■ 2.1.1での変更点
ノート 82-R01: (ライブラリ) マテリアルスキップに関する修正の巻き戻し
ノート 81-R03: (ライブラリ) マテリアルスキップの不具合を修正の影響により、マテリアルの状態が一部正常に更新されずにポリゴンに不正な色がかかってしまう場合があるため、この修正を暫定的に巻き戻します。
■ 2.1.0での変更点
ノート 81-R01: (ライブラリ) シェイプ最大数のデフォルト値を変更
特に制限する必要がないため、1つのモデル内の最大シェイプ数を64から256に変更しました。
ノート 81-R02: (コンバータ) オプションの追加
警告をエラーとして扱うオプション -we を追加しました。
ノート 81-R03: (ライブラリ) マテリアルスキップの不具合を修正
マテリアルの更新処理において、非表示もしくは直前のマテリアルと同一であっても更新処理のスキップが行われない場合がある不具合を修正しました。
ノート 81-R04: (ライブラリ) NNS_G3D_GET_ANM マクロに関する不具合を修正
NNS_G3D_GET_ANM マクロにおいて引数として定義されていない変数を使用している不具合を修正しました。
ノート 81-R05: (コンバータ) g3dcvtrからデバッグ用のチェックを削除
リリースパッケージ中のg3dcvtrでデバッグ用のチェックが有効になっていた為に、以前はコンバート可能であったデータがエラーとなる場合がありました。これを修正しました。
ノート 81-R06: (コンバータ) 中間ファイル中の要素サイズが大きい場合にエラーとなる不具合を修正
中間ファイルに2MBを超えるコンテントを持つ要素が含まれていた際にエラーとなる不具合を修正しました。
ノート 81-R07: (コンバータ) 名前が空の場合にエラーが正しく出力されない不具合を修正
ノードやマテリアルの名前が空の場合にエラーが正しく出力されない不具合を修正しました。
■ 2.0.0での変更点
ノート 80-R01: (ライブラリ) NDMAに対応
TWLで追加されたNDMAに対応しました。
■ 2.0.0 RCでの変更点
ノート 78-R01: (コンバータ) g3dcvtrに非正則行列に関するエラーを追加
ウェイテッドエンベロープから参照されるノードのモデリング行列が非正則行列である場合にエラーを出力するよう変更しました。
ノート 78-R02: (コンバータ) g3dcvtrでframe_stepの統一処理の不具合を修正
icaファイルの回転データのXYZ成分、もしくはimaファイルのRGB成分が次の2つの条件を満たす際に、コンスタントな成分のframe_stepが全体のフレームステップとして採用されてしまう不具合を修正しました。
- コンスタントでない2成分のframe_stepが一致する。
- 残りの1成分がコンスタントでかつより大きなframe_stepを持つ。
■ 2008年4月8日版での変更点
ノート 76-R01: (コンバータ) g3dcvtrにアニメーションデータの参照範囲チェックを追加しました。
ica、iva、ima、itp、itaの各中間ファイルにおいて、アニメーションデータがインデックス参照される際の範囲チェックを追加しました。
ノート 76-R02: (マニュアル) 改訂履歴の書式変更
下記に示すpdfマニュアルの改訂履歴の書式を変更しました。
- G3D_BinaryFormat.pdf
- g3dcvtr_UsersManual.pdf
ノート 76-R03: (マニュアル) Xerces-C++のライセンスに関する表記を変更
g3dcvtr_UsersManual.pdfにおいて、Xerces-C++のライセンスに関する表記を変更しました。
ノート 76-R04: (コンバータ) g3dcvtrがエラー発生時に正しい返り値を返さない不具合を修正
g3dcvtrがエラー発生時に1ではなく常に0を返していた不具合を修正しました。
ノート 76-R05: (コンバータ) g3dcvtrでframe_step統一処理の仕様変更
icaファイルの回転データのXYZ成分のframe_stepを統一する際に、最も精度の低いframe_stepではなく最も精度の高いframe_stepに統一するように仕様を変更しました。
■ 2007年11月26日版での変更点
ノート 71-R01: (ライブラリ) 仕様変更
- NNS_G3D_USE_FASTGXDMAマクロを定義するとNNS_G3dGeUseFastDma関数を呼んでもジオメトリコマンドの転送方法が切換できない仕様になっていましたが、これを切換可能なように変更しました。
- NNSi_G3dAnmBlendJnt関数で回転行列のブレンドを行うとき、ブレンド結果の行ベクトルがゼロベクトルになると、
正規化の際にASSERTに失敗するという仕様になっていましたが、
ブレンド結果がゼロベクトルとなった場合はブレンド前の状態に戻すように変更しました。
ノート 71-R02: (コンバータ) g3dcvtrの仕様変更
.imaファイルを変換する際、従来はRed, Green, Blue成分のframe_stepが揃っていなければエラーとなっていましたが、
これをエラーとせず、最も精度の高いframe_stepに合わせて変換を行うよう仕様を変更しました。
ノート 71-R03: (ライブラリ) ASSERTに関する不具合を修正
- NNS_G3dResDefaultSetup関数においてメモリ確保に失敗した場合、
ロールバック処理中に必ずASSERTに失敗してしまい、処理が正常に終了しない不具合を修正しました。
- NNS_G3dGetAnmByIdx関数の第二引数にリソースの所持しているアニメーション数以上の数値を指定した場合、
本来NULLが返るべきところがASSERTで失敗するという不具合を修正しました。
ノート 71-R04: (コンバータ) icaファイル変換時に間違った回転データが出力されることがある不具合を修正
.icaファイルを変換する際、
frame_sizeとframe_step_modeの組み合わせによっては間違った回転データが出力されることがある不具合を修正しました。
ノート 71-R05: (コンバータ) g3dcvtrの.imdファイル変換時にSBCコマンドのNODEDESC命令が正しく発行されないことがある不具合を修正
.imdファイルを変換する際、
ノード構成と<display>::priorityの設定によってはSBCコマンドのNODEDESC命令が正しく発行されないことがある不具合を修正しました。
■ 2006年5月29日版での変更点
ノート 59-R01: (コンバータ) g3dcvtrでコマンドライン引数をファイルから読み込めるように修正
コマンドライン引数をファイルから読み込むことが可能になりました。
先頭にアットマーク(@)をつけたコマンドライン引数は、2文字目以降がファイル名として認識され、
そのファイルの内容が引数として展開されるようになりました。
複数ファイル・多段階の展開が可能です。なお、ファイル参照が循環した場合にはエラーになります。
ノート 59-R02: (コンバータ) g3dcvtrに-tex-nomergeオプションを追加
g3dcvtrに-tex-nomergeオプションを追加いたしました。
このオプションを使用すると、テクスチャやパレットの名前が違う場合は、
データが同一でもマージされずに別々の領域が確保されるようになります。
ノート 59-R03: (ライブラリ) コメントの修正
NNS_G3dGeUseFastDma関数のコメントを修正しました。
ノート 59-R04: (コンバータ) ビルボードを含む中間ファイルがコンバートできない不具合を修正
ビルボードを含む中間ファイルがコンバートできないことがある不具合を修正しました。
■ 2005年9月1日版での変更点
ノート 50-R01: (ライブラリ) 微小角度の回転アニメーションがスムースにならない不具合を修正
微小角度の回転アニメーションを作成した場合に、
アニメーションがスムースにならないという不具合を修正しました。
■ 2005年6月16日版での変更点
ノート 46-R01: (ライブラリ) 各種バグフィックス
2005/06/06版で混入したバグを修正しました。
■ 2005年6月6日版での変更点
ノート 45-R01: (ライブラリ) アニメーション再生時の不具合を修正
.icaファイルを-OSオプションでコンバートした場合、
正しく再生されないケースがあるという不具合を修正しました。
■ 2005年3月28日版での変更点
ノート 43-R01: (ライブラリ) フレームの補間の精度を改善
ジョイントアニメーションでフレームの補間がおこなわれる際に、
キーフレーム間の回転変化量が大きい場合にモデルに歪みが大きくなる場合があり、これを改善しました。
ノート 43-R02: (ライブラリ) SBC命令のコールバックの不具合を修正
SBC 命令NODEDESC, BBY において、
TIMING_CでTIMING_BのNNS_G3D_RSFLAG_SKIPフラグが使われてしまう問題を修正しました。
また、SBC 命令NODEDESC, BBY, BB において、TIMING_Cで処理をスキップした場合に、
以降の処理が破綻してしまう問題を修正しました。
ノート 43-R03: (コンバータ) g3dcvtrにて環境マップ用のコードが不正に動作する不具合を修正
複数の.imdを変換した場合に、環境マップ用のコードが不正に動作する不具合を修正しました。
■ 2005年1月31日版での変更点
ノート 39-R01: (ライブラリ) 環境マップ・投影マップのサポート
NNSi_G3dFuncSbc_ENVMAP関数とNNSi_G3dFuncSbc_PRJMAP関数を追加し、
環境マップと投影(正射影)マップをサポートしました。
ノート 39-R02: (サンプル) サンプルの追加
サンプルを追加しました。
- EnvMapサンプル。環境マップされた球を表示するサンプルです。
- ProjMapサンプル。投影(正射影)マップされた球を表示するサンプルです。
ノート 39-R03: (コンバータ) g3dcvtrがNITRO中間ファイルver. 1.6.0に対応
g3dcvtrがNITRO中間ファイルバージョン1.6.0に対応しました。
環境マップや投影マップを含む.imdファイルをコンバートします。
ノート 39-R04: (ライブラリ) ウェイテッドエンベロープモデルの描画における不具合を修正
ウェイテッドエンベロープモデルで、classic scale offが設定されていた場合(Softimage3D又はSoftimage |XSI)、
g3dcvtrが出力する.nsbmdファイル内の一部データが不正なため、正常に描画されないというバグの修正。
■ 2004年12月6日版での変更点
ノート 34-R01: (サンプル) サンプルの追加
サンプルを追加しました。
- Translucentサンプル。半透明のポリゴン同士が重なるモデルの描画についてのサンプルです。
ノート 34-R02: (ドキュメント) G3Dバイナリファイルフォーマットについてのドキュメントを追加
NitroSystem\docs\G3D\G3D_BinaryFormat.pdfにG3Dで使用する
バイナリファイルのフォーマットについて解説されています。
ノート 34-R03: (コンバータ) g3dcvtrがNITRO中間ファイルver. 1.5.0で追加された仕様に対応
NITRO中間ファイルバージョン1.5.0で追加された、<material>要素に対する追加属性、<display>要素に対する追加属性に対応しました。
ノート 34-R04: (コンバータ) バイナリ生成を改善
複数の<display>要素があるジョイントにビルボードをつけた場合のバイナリ生成を改善しました。
ノート 34-R05: (ライブラリ) Y軸ビルボード変換の不具合を修正
Y軸ビルボード変換を厚みのあるオブジェクトに対して行った場合、
不適切な見かけとなる不具合を修正しました。
ノート 34-R06: (ライブラリ) コールバックが正しく呼ばれない不具合を修正
NNS_G3D_SBC_CALLBACK_TIMING_A_DISABLEマクロを定義してG3Dをコンパイルした場合に、
コールバックが正しく呼ばれないという不具合を修正しました。
■ 2004年11月10日版での変更点
ノート 31-R01: (ライブラリ) ジョイントアニメーションの部分的な再生をサポート
NNS_G3dAnmObjDisableID関数とNNS_G3dAnmObjEnableID関数を追加し、
一部のジョイントだけを対象にしたジョイントアニメーション再生をサポートしました。
ノート 31-R02: (ライブラリ) ジョイントアニメーションにおいて小数点以下フレームの補間再生をサポート
.icaファイルの<node_anm_info>::interpolationがlinearに指定されている場合、
小数点以下のフレームを指定すると、前後のフレームを線形補間してジョイントアニメーションを再生します。
なお、アニメーションをループ再生させる場合には、<node_anm_info>::interp_end_to_startをonにしておく必要があります。
ノート 31-R03: (ライブラリ) ウェイテッドエンベロープ表示の高速化
NNSi_G3dFuncSbc_NODEMIX関数の実装を改良し、ウェイテッドエンベロープ付モデルの表示を高速化しました。
ノート 31-R04: (ライブラリ) NNSG3dRenderObj構造体、NNSG3dRS構造体へのアクセサの追加
NNS_G3dRenderObj構造体とNNS_G3dRS構造体に対するアクセサを追加しました。
ノート 31-R05: (サンプル) サンプルの追加
サンプルを追加しました。
- PartialAnm1サンプル。ジョイントアニメーションの部分的な再生を行います。
- PartialAnm2サンプル。ジョイントアニメーションの部分的な再生を行いますが、PartialAnm1よりは複雑なケースです。
- SlowMotionサンプル。ジョイントアニメーションをスローモーションで再生します。
- SharedMotionサンプル。同一のジョイントアニメーションリソースを、体型の違う2つのモデルで再生します。
- ScreenUtilサンプル。座標変換ユーティリティAPIのサンプルです。ワールド座標系からBGスクリーン座標系に変換したり、BGスクリーン座標系からワールド座標系に変換したりします。
ノート 31-R06: (ライブラリ) α値のアニメーションが正確に再生されない不具合を修正
2004/10/12版における、マテリアルカラーアニメーションでα値のアニメーションが正確に再生されないという不具合を修正しました。
ノート 31-R07: (ライブラリ) アニメーションデータが重複して出力される場合がある不具合の修正
g3dcvtrで.icaファイルをコンバートする場合、フレームステップを2か4に設定していると、最終フレーム付近のフレームでアニメーションデータが重複して出力される場合があるという不具合を修正しました。
ノート 31-R08: (ライブラリ) フレームステップが2か4での再生が不正になる不具合の修正
ジョイントアニメーションで、スケールが8以上又は0.125以下のフレームが存在する場合に、
フレームステップが2か4での再生が不正であるという不具合を修正しました。
ノート 31-R09: (ライブラリ) 表示が不正になるという不具合の修正
ウェイテッドエンベロープの使用時に、カメラが遠いか近い場合、
G3D内部で使用しているテンポラリ変数がオーバーフローするため表示が不正になるという不具合を修正しました。
ノート 31-R10: (コンバータ) g3dcvtrで一部データが不正に出力されるという不具合を修正
g3dcvtrで多くの.imdファイルを1つの.nsbmdファイルにコンバートする場合、
一部データが不正に出力されるという不具合を修正しました。
ノート 31-R11: (コンバータ) g3dcvtrでのアニメーションデータのアラインメントに関する不具合を修正
g3dcvtrで複数の.imaファイルをコンバートする場合、
2番目以降のアニメーションデータのアラインメントが適切に取られていないことがあるという不具合を修正しました。
ノート 31-R12: (コンバータ) g3dcvtrでの<box_test>のpos_scale値出力に関する不具合の修正
g3dcvtrで<box_test>のpos_scale値に対応するデータとして<model_info>のpos_scale値を出力しているという不具合を修正しました。
■ 2004年10月12日版での変更点
ノート 26-R01: (ライブラリ) ウェイテッドエンベロープ表示の追加
NNSi_G3dFuncSbc_NODEMIX関数を追加し、
g3dcvtrで変換されたウェイテッドエンベロープ付のモデルを表示することができるようになりました。
なお、.nsbmdファイルの形式は拡張されていますので、.imdファイルに関しては再コンバートする必要があります。
ノート 26-R02: (ライブラリ) コールバックの仕様変更
コールバックの仕様が変更されました。一部のケースで従来バージョンとは互換性がとれない場合があります。
- NNS_G3dRenderObjSetInitFunc関数を使用することにより、レンダリング直前にNNSG3dRS構造体を引数にとる関数を実行できるようになりました。
- NNSG3dRS構造体のコールバック関数ポインタをSBC命令の数だけ確保することにより、レンダリング時にSBC命令1種類につき1つずつコールバックを登録することができるようになりました。この変更により、複数のコールバックを簡単に使用することができるようになります。
- SBC命令のアドレスを指定してコールバックを呼び出すことはできなくなりました。よって、NNS_G3dRenderObjSetCallBack関数の第3引数の値は無効となります。
- コールバック関数内でコールバック条件やコールバック関数を変更しているコードは変更する必要があります。詳しくは、callback4, callback5サンプルを参照してください。
ノート 26-R03: (ライブラリ) マテリアルアニメーションのチューニング
マテリアルカラーアニメーションとテクスチャSRTアニメーションのパフォーマンスの向上とコードサイズの削減を行いました。
また、マテリアルカラーアニメーションの実行時に、鏡面反射輝度テーブルが必ずイネーブルになるというバグを修正しました。
ノート 26-R04: (サンプル) サンプルの追加
サンプルを追加しました。
- RecordMtxサンプル。g3dcvtrの-sオプションを利用して.imdファイルをコンバートすることにより、callback2サンプルと同様の処理をコールバック関数を使用せずに行うことができます。
- ManualSetupサンプル。NNS_G3dResDefaultSetup関数を使用せずに、読み込んだ.nsbmdファイルをセットアップする方法を説明しています。
- callback5サンプル。コールバック関数を複数登録できるようになったのに伴い、コールバック使用サンプルを追加しました。
- ShadowVolumeサンプル。G3Dを使用してシャドウボリュームを表示する方法を解説しています。
- Envelopeサンプル。ウェイテッドエンベロープを用いた場合と用いない場合の表示品質とパフォーマンスの比較を行っています。
ノート 26-R05: (コンバータ) g3dcvtrのサマリ表示形式の変更(.nsbma .nsbtp .nsbtaファイル)’
g3dcvtrに.nsbma / .nsbtp / .nsbta形式のファイルを引数として与えた場合のサマリ表示の形式を変更しました。
ノート 26-R06: (ライブラリ) NNS_G3dGeSendDLを使用するとハングアップする不具合を修正
NITRO-SDKのGX_InitEx関数でGX_DMA_NOT_USEを選択したときに、
NNS_G3dGeSendDLを使用するとハングアップするという不具合を修正しました。
ノート 26-R07: (ライブラリ) テクスチャのスケーリングが不正にになる場合がある不具合を修正
SoftImage3Dを使用してテクスチャ付のモデルを作成した場合、
テクスチャのスケーリングが正しくなくなる場合があるという不具合を修正しました。
ノート 26-R08: (ライブラリ) ライトの方向が不正に設定されてしまう不具合を修正
NNS_G3dGlbFlushWVP関数において、ライトの方向が不正に設定されてしまうという不具合を修正しました。
ノート 26-R09: (ライブラリ) サイズの大きなテクスチャに関する不具合を修正
サイズの大きなテクスチャが表示されない場合があるという不具合を修正しました。
■ 2004年9月16日版での変更点
ノート 21-R01: (ライブラリ) カレント行列を取得するための関数を追加
NNS_G3dGetCurrentMtx関数により、
カレントの位置座標行列と方向ベクトル行列を取り出すことができます。
ノート 21-R02: (ライブラリ) NNS_G3dGlbFlushP, NNS_G3dGlbFlushVP, NNS_G3dGlbFlushWVP関数の追加
描画前にカレント行列等の初期設定をする関数のバリエーションを初期化方法毎に3種類に分けました。
これらの関数はカレント行列の設定のみが以下のように異なります。
- NNS_G3dGlbFlushP関数は、カレント射影行列に射影変換行列を、カレント位置座標行列と方向ベクトル行列にカメラ行列とモデリング行列を合成した行列を設定します。
- NNS_G3dGlbFlushVP関数は、カレント射影行列に射影変換行列とカメラ行列を合成した行列を、カレント位置座標行列と方向ベクトル行列にモデリング行列を設定します。
- NNS_G3dGlbFlushWVP関数は、カレント射影行列に射影変換行列・カメラ行列・モデリング行列を合成した行列を、カレント位置座標行列と方向ベクトル行列に単位行列を設定します。
上記の関数の違いにより、描画中にカレント行列を取得した場合カレント行列はそれぞれ、
カメラ座標系・ワールド座標系・ローカル座標系の行列になります。
必要とする行列によって3種類の関数を使い分けると、
行列から必要なデータを取得する際に逆行列をかける等の計算を省略することが可能です。
なお、NNS_G3dGlbFlushP関数と従来からあるNNS_G3dGlbFlush関数は同じ動作をします。
NNS_G3dGlbFlushWVP関数とNNS_G3dGlbFlushAlt関数についても同様です。
ノート 21-R03: (ライブラリ) NNSG3dGlb構造体に対するアクセサの追加
NNSG3dGlb構造体内のデータへの読み出し、
書き出しを行うための各種アクセサ関数を追加、整備しました。
ノート 21-R04: (ライブラリ) 未使用コードの削除
未使用であったコードを削除しました。
ノート 21-R05: (コンバータ) g3dcvtrのサマリ表示形式の変更(.nsbca .nsbvaファイル)
g3dcvtrに.nsbca形式のファイルと
.nsbva形式のファイルを引数として与えた場合のサマリ表示の形式を変更しました。
ノート 21-R06: (ライブラリ) スケーリングが正しくかからない不具合を修正
NNS_G3dDraw1Mat1Shpにおいてスケーリングが正しくかからないことがあるという不具合を修正しました。
ノート 21-R07: (ライブラリ) TexCoordソース使用のテクスチャを使用したモデルが正しく描画されない不具合を修正
NNS_G3dDraw1Mat1ShpにおいてTexCoordソースを使用したテクスチャを使用したモデルが
正しく描画されないというバグを修正しました。
■ 2004年9月2日版での変更点
ノート 20-R01: (ライブラリ) 単純なオブジェクトを高速に描画するための関数を追加
関数NNS_G3dDraw1Mat1Shpを新設し、単純なオブジェクトの高速な描画が可能になりました。
ノート 20-R02: (ライブラリ) ジオメトリFIFO不具合(2004/09/01)への対処
ジオメトリFIFOの不具合に対処いたしました。
ノート 20-R03: (ライブラリ) 最適化
256バイトより短いディスプレイリストの転送はDMAを使用せず、CPUで転送するようになりました。
ノート 20-R04: (コンバータ) g3dcvtrのエラー表示の改善
入力XMLファイルにエラーがあった場合のエラー表示を改善しました。
ノート 20-R05: (コンバータ) g3dcvtrの出力の改善
g3dcvtrの出力の改善により、
ディスプレイリストのDMA転送に関係したストール期間が短くなるようになりました。
ノート 20-R06: (ライブラリ) 子ノードのリストが不正となる不具合を修正
NNS_G3dGetChildNodeIDListが出力する子ノードのリストが正しくない場合があるという不具合を修正しました。
ノート 20-R07: (ライブラリ) アニメーションの複数追加に関する不具合を修正
同一のレンダリングオブジェクトにアニメーションを複数追加する場合、
アニメーションが再生されなくなることがあるというバグを修正しました。
ノート 20-R08: (コンバータ) フルウェイトエンベロープモデルの変換に関する不具合を修正
g3dcvtrでフルウェイトエンベロープモデルを正しく変換できない場合があるという不具合を修正しました。
■ 2004年8月10日版での変更点
ノート 16-R01: (ライブラリ) マテリアルカラーアニメーションに対応
マテリアルカラーアニメーションの再生に対応しました。
ノート 16-R02: (ライブラリ) テクスチャSRTアニメーションに対応
テクスチャSRTアニメーションの再生に対応しました。
ノート 16-R03: (ライブラリ) 各種バグフィックス
テクスチャ行列の計算・アニメーションのブレンド・テクスチャパターンアニメーション他の不具合を修正しました。