通常用いられる整数型 (32ビット符号付き) は -2,147,483,648 ~ 2,147,483,647 の範囲の値を表現することができます。
殆どのアプリケーションにおいては、この制限が問題になることはまずありません。
しかし、この範囲を超える値を扱う必要のあるアプリケーションも存在します。
そこで考え付くのが、32ビット環境で64ビット整数を扱うための仕組みを作ることですが、実際にやってみると意外なほどに手間が掛ってしまいます。
この記事では、四則演算・10進出力などのプログラムを組むときの手順や考え方について解説していきます。
64ビット整数の表現
まず、64ビット整数を表現するための構造体を定義します。
DWORD (
unsigned long)
組み込みの整数型は最大で32ビットまでなので、これを 2つ組み合わせて64ビット整数を表現します。
#ifndef __QWORD_H__
#define __QWORD_H__
//32ビット整数
typedef unsigned long DWORD;
//64ビット整数
typedef struct {
DWORD dwLow; //下位32ビット
DWORD dwHigh; //上位32ビット
} QWORD;
#undef //__QWORD_H__
//[EOF] |
メンバ
dwHigh の最上位ビットは符号ビットとして利用しますが、この段階では特に気にする必要はないでしょう。
続きを読む "32ビット環境で64ビット整数を扱う (加法編)" »
前回予定していましたFBX形式からメッシュやマテリアル情報を抜き出す方法ですが、FBXSDKのドキュメントがあまりにも、以下略であるため、断念しました。
簡単に理由をあげますと、クラスの説明がたったの英語5単語であったり、関数名がGetなのに説明がSetだったりとすさまじいものがあります。
ですので今回はFBXはおいておき、モーションキャプチャデータであるBVHファイルの利用方法を考えてみたいと思います。
これに対応できるMax,Mayaプラグインを近日に書きたいと思っています。
既に合成を終えたわけではありませんので、間違っている部分があるかもしれません。
その部分は合成が終了しだいプラグインのソースコードと一緒に公開したいと思います。
続きを読む "モーションキャプチャデータの使い方(計画編)" »
松浦さんから依頼を受けて、Autodesk Maya 等の .fbx 形式からMicrosoft DirectX の .x 形式に変換するスクリプトを書きました。
FBX形式の仕様は膨大で、予想していたよりもずっと大掛かりな作業となってしまいました。
これからFBX SDKを扱う人の助けになることを祈って、解説記事を書くことにします。
続きを読む "FBXファイルを読み込む(スキン情報の取得) " »