@Blastfurnace は、ダウンロードするための正しいアドレスを提供します。しかし、まだ言いたいことがあります。
代わりに glm を使用してくださいvmath.h
: http://glm.g-truc.net/0.9.5/index.html
vmath.h
私はたくさんのバグを使用して見つけました。演算子の定義によっては、再帰関数呼び出しとスタック オーバーフローが発生します。また、半径と度の間の変換も逆になります。
11行目:
template <typename T>
inline T radians(T angleInRadians)
{
return angleInRadians * static_cast<T>(180.0/M_PI);
}
631行目:
static inline mat4 perspective(float fovy /* in degrees */, float aspect, float n, float f)
{
float top = n * tan(radians(0.5f*fovy)); // bottom = -top
float right = top * aspect; // left = -right
return frustum(-right, right, -top, top, n, f);
}
明らかに正接関数はラジアン入力を受け入れますが、関数 'radian' は代わりにラジアンを度に変換します。
137行目:
inline vecN& operator/=(const vecN& that)
{
assign(*this * that);
return *this;
}
乗算ではなく除算でなければなりません: assign(*this / that)
.
153行目:
inline vecN& operator/(const T& that)
{
assign(*this / that);
}
見る?演算子「/」の再帰呼び出し。少なくとも Xcode では、これによりスタック オーバーフローが発生します。
これらのバグは私を大いに悩ませますが、glm ライブラリはほとんど同じ機能を提供しますが、はるかに安定したコードを提供します。現在のバグの代わりに glm を使用することを強くお勧めしますvmath.h
。おそらく、これらのバグがすべて修正されたときに、単純なvmath.h
ものがより良い選択になるでしょうが、現時点ではあきらめる必要があります.