OpenGL glScale 和 glLoadMatrix
我正在用 Kinect 编写一个 3D 扫描仪,我想显示点云。
点云有一个来自跟踪系统的附加变换矩阵。
我使用: 比例 = 0.0005; glScaled(比例尺,比例尺,比例尺);
遇到这个问题,x,y,z 值范围从 0 - 10.000 被 Opengl 由于裁剪平面而裁剪。
当我使用 glLoadMatrix(trackingtransform);我没有看到任何东西..即使我在 loadmatrix 之后再次使用 glscale 。
I'm writing an 3D Scanner with a Kinect and i want to display the Point clouds..
The Pointclouds have an additional Transformmatrix from a Trackingsystem..
I use:
scale = 0.0005;
glScaled(scale, scale, scale);
to encounter the Problem, that x,y,z Value ranges from 0 - 10.000 are cut by Opengl due to clipping planes.
when i use glLoadMatrix(trackingtransform); i don't see anything.. even if i use glscale again after the loadmatrix.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
您可以直接缩放点所在的矩阵,例如:
You can directly scale the matrix your points are in, like:
glLoadMatrix 替换使用 glScaled 生成的矩阵。
如果你想组合它们,请使用 glMultMatrix 而不是 glLoadMatrix。
也就是说,我建议做 datenwolf 提到的事情。使用投影矩阵设置映射您的使用场景(即0-10000范围内的世界)的坐标系,并保持模型视图矩阵移动。
glLoadMatrix replaces the matrix that you generated with glScaled.
if you want to combine them, use glMultMatrix instead of glLoadMatrix.
That said, I'd advise to do what datenwolf alludes to. Use the projection matrix to set a coordinate system that maps your usage scenario (i.e. a world in the 0-10000 range), and keep the modelview matrix to move around.