opengl - 将 OpenGL 4 矩阵转换为 VRML T*R*S

标签 opengl 3d linear-algebra vrml x3d

我正在尝试将场景从直接模式 OpenGL 程序导出到 VRML。

在 OpenGL 和 VRML 中,面可以被分组为具有相对于场景原点的自己的平移、旋转和缩放的对象。

在 OpenGL 中,这些被存储为 4 矩阵,表示一个矩阵中的平移和旋转/缩放 [1] 。在 VRML 中,这些必须表示为单独的平移、旋转和缩放向量 [2] [3] .

如何以这种方式分解任意 4 矩阵?

我更愿意使用库函数来执行此操作,以最大限度地减少我必须维护的代码并减少出错的机会。我在 Windows 上使用 C#,可以访问任何 CLR 或 Windows native DLL。

最佳答案

看看Matrix.Decompose code来自 Monogame 来源。

Remember - OpenGL 矩阵是列优先的,DirectX/XNA 是行优先的。

希望有帮助。

关于opengl - 将 OpenGL 4 矩阵转换为 VRML T*R*S,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10939200/

相关文章:

c++ - 只有一个常数项发生变化时线性系统Ax= b的高效求解

opengl - 用CG代替GLSL可行吗?

c++ - 在 OpenGL c++ 项目中使用资源中的 .tga (targa) 文件

c++ - 网格表示 - 一个顶点(空间位置)= 一个位置,tex 坐标,法线?

matlab - 通过平移和旋转从一个笛卡尔 3D 坐标系更改为另一个

python - 更改 numpy 中矩阵的顺序

OpenGL、漫反射着色器

java - LibGDX 动态构建(快速)模型

algorithm - 3D对称搜索算法

c++ - 支持长 double 的最喜欢/最佳 A.X=B 求解器?