2012-03-25 6 views
7

多分私はドキュメントで何かを見逃しているかもしれませんが、GLMではベクターの転置をすることはできないようです。私はまた、mat3x1またはmat1x3タイプは見ません。 glm :: transposeはベクトルに対しては機能しません。私は何かを逃しているのですか、これは単にGLMに欠けている機能ですか?GLM:ベクトルを転置する方法は?

答えて

8

GLMはGLSLをベースにしています.GLSLは、単にベクトルを転置する必要はありません。ベクトル/行列の乗算を行うと、行列のサイズに作用する方法でベクトルが乗算されます(ただし、乗算の順序を変更する必要がない限り)。したがって、mat4があり、mat4*vec4の場合、vec4は列ベクトルとみなされます。 vec4*mat4を実行すると、行ベクトルと見なされます。 mat2x4*vec4を実行すると、エラーが発生し、vec4*mat2x4が機能します(行ベクトルとして)。

一般に、ベクターを「転置」する必要はありません。システムは単純に何でも動作します。 ; GLSL/GLMに - (uはTをV主外積を計算するため)

+0

I私が理解していないものだと思う。ありがとうございました。 – aeskreis

+0

v * transpose(v)のようなものを計算したい場合はどうでしょうか?ここで、vはvec4です。私が望むのは、結果としてmat4です。私。 4x1と1x4を乗算して4x4を得る。私はGLMでそれをする方法を見ていない。多分あなたはできないでしょうか? – Chuck

+0

@Chuck:それはおそらくそれが非常に便利な操作ではないからです。それに、あなたは簡単に自分で数学をすることができます。ベクトルの各要素をペアごとに掛けるだけです。 –

関連する問題