ツールとライブラリ

Assimpの入手とビルド

本記事ではassimp 4.1.0を使用する。assimpはassimp.orgから入手可能。 assimp 4.1.0をFBXローダ込みでビルドするためには、最低でもVisual Studio 2012以降が必要である。

Assimpの修正について

本記事ではLightWave 2018の出力したFBXを正常に読み込むため、assimpにいくつかの不具合修正を行なった。
これらの不具合修正はLightWave以外でも有効と考えられる。

  1. UVマップにおける頂点番号「-1」の対応。(NEGATIVE_UVI_LW修正)
  2. マテリアルのTransparentColor属性のサポート(TRANSPARENT_COLOR_LW修正)
  3. Diffuse Colorの解釈を純正FBXと互換性のあるものに変更(DIFFUSE_COLOR_LW修正)
  4. 一部箇所にて、stlのコレクションのインデックス計算時にバッファオーバーランで落ちる現象を修正。(OUTPUTVERT_OVERRUN修正)

各修正内容については、ソースコードと実行ファイルを参照

その他、miniz.h内でエラーになる場合は、mz_zip_array_push_backを下記のように修正する。

static MZ_FORCEINLINE mz_bool mz_zip_array_push_back(mz_zip_archive *pZip, mz_zip_array *pArray, const void *pElements, size_t n)
{
  size_t orig_size = 0;
  if (n==0) return MZ_TRUE;
  assert(NULL!=pElements);
  orig_size = pArray->m_size; if (!mz_zip_array_resize(pZip, pArray, orig_size + n, MZ_TRUE)) return MZ_FALSE;
  memcpy((mz_uint8*)pArray->m_p + orig_size * pArray->m_element_size, pElements, n * pArray->m_element_size);
  return MZ_TRUE;
}

3Dグラフィックツールについて

LightWave 2018を使用する。FBXを出力できるツールなら何でも良いとは思うが、ツールによって出力に癖があるため、対応が必要。


Copyright by MUTATE Systems 2018
管理者宛メール