繁体   English   中英

乘以glMultMatrixd后获得3D坐标?

[英]Getting 3D coordinates after multiplying by glMultMatrixd?

我有一个矩阵存储在

GLdouble  m[16];

现在,使用glMultMatrixd(m),将此矩阵与点的3d坐标相乘。 我想知道乘以矩阵m后形成的新坐标是什么。 openGL中是否有任何命令可以做到这一点?

不,没有任何有用的方法。

在现代GL中,出于充分的原因,已完全删除了集成矩阵堆栈。 要求应用程序程序员编写自己的矩阵函数,或使用某些现有的库,例如glm (该库在某些仅标头的C ++库中实现了旧OpenGL中所有的东西)。 在这种情况下,值得注意的是, glMultMatrix操作从未经过GPU加速,并且始终由GL实现直接在CPU上执行,因此从GL中删除这些内容不会造成任何损失。

我并不是说让OpenGL为您进行矩阵*向量乘法并读取结果是不可能的。 最直接的方法是使用转换反馈来捕获某些缓冲区对象中顶点着色器的结果。 但是,对于转换单个点,开销将过高

另一种非常麻烦的方法是使用内置的矩阵函数来获取旧的GL,为您计算该乘积,只需将您的第一列作为矩阵的第一列,然后通过使用glMultMatrix将其乘以您设置的矩阵,读回当前的矩阵并在生成的矩阵的第一列中找到转换点。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM